function PlayerCallback(id, args){
	for (var i = 0;i<PlayerInstance.length;i++){
		if (PlayerInstance[i][0] == id){
			PlayerInstance[i][1].callback(args);
		}
	}
}

function PlayerEventCallback(id, args){
	for (var i = 0;i<PlayerInstance.length;i++){
		if (PlayerInstance[i][0] == id){
			PlayerInstance[i][1].eventCallback(args);
		}
	}
}

var PlayerInstance = new Array();

function Player(id){
	this.player = document.getElementById(id);
	this.id = id;
	this.isRegistered = false;
	this.callbackArgs = "";
	this.onChangeEvent = null;
	PlayerInstance.push(new Array(id, this));
}

Player.prototype.callback = function(args){
	this.callbackArgs = args + "";
}

Player.prototype.eventCallback = function(args){
	if (args == 'change'){
		if (this.onChangeEvent != null){
			this.onChangeEvent.actionPerformed();
		}
	}
}

Player.prototype.registerEvent = function(type, obj){
	if (type == 'onChange'){
		this.onChangeEvent = obj;
	}
}

Player.prototype.register = function(){
	if (!this.isRegistered){
		this.isRegistered = true;
		this.player.JMAPI_init(this.id);
	}
}

Player.prototype.start = function(position){
	this.player.JMAPI_start(position);
}

Player.prototype.stop = function(){
	this.player.JMAPI_stop();
}

Player.prototype.halt = function(){
	this.player.JMAPI_halt();
}

Player.prototype.next = function(){
	this.player.JMAPI_next();
}

Player.prototype.last = function(){
	this.player.JMAPI_prev();
}

Player.prototype.jump = function(index){
	this.player.JMAPI_jump(index);
}

Player.prototype.setTransform = function(ll, lr, rr, rl){
	this.player.JMAPI_setTransform(ll, lr, rr, rl);
}

Player.prototype.addTrack = function(name, url, index){
	this.player.JMAPI_addTrack(name, url, index);
}

Player.prototype.removeTrack = function(index){
	this.player.JMAPI_removeTrack(index);
}

Player.prototype.getTrackPosition = function(){
	this.register();
	this.player.JMAPI_getTrackPosition();
	return this.callbackArgs;
}

Player.prototype.getTrackLength = function(){
	this.register();
	this.player.JMAPI_getTrackLength();
	return this.callbackArgs;
}

Player.prototype.getID3 = function(value){
	this.register();
	this.player.JMAPI_getID3(value);
	return this.callbackArgs;
}

Player.prototype.getTrackIndex = function(){
	this.register();
	this.player.JMAPI_getTrackIndex();
	return this.callbackArgs;
}

Player.prototype.getTrackName = function(){
	this.register();
	this.player.JMAPI_getTrackName();
	return this.callbackArgs;
}

Player.prototype.getTrackFilename = function(){
	this.register();
	this.player.JMAPI_getTrackFilename();
	return this.callbackArgs;
}

Player.prototype.setVolume = function(value){
	this.player.JMAPI_setVolume(value);
}

Player.prototype.setBalance = function(value){
	this.player.JMAPI_setBalance(value);
}


Player.prototype.getVolume = function(){
	this.register();
	this.player.JMAPI_getVolume();
	return this.callbackArgs;
}

Player.prototype.getBalance = function(){
	this.register();
	this.player.JMAPI_getBalance();
	return this.callbackArgs;
}
