Ext.onReady(function() {
	//loadingMsgBox = Ext.MessageBox.wait('Loading...', 'Please wait');

	window.onload = function () {
		//loadingMsgBox.hide();
	}

	$$('th.sortcol').each(function (heading) {
		Event.observe(heading, 'mouseup', player.reorder, heading);
	});

	window.onload = loaded;
});

function loaded() {
  setTimeout('player.build_idmap();', 10);
}

terms = {
	show : function (url) {
		window.open(url, "terms_window","status=0,toolbar=0");
	}
}

player = {
	swf: 'jsplayer',
	track : 0,
	volume : 0,
	lapsed : 0,
	time : 0,
	load : 0,
	state : 0,
	id_map : [],
	id_rmap : {},
	id_locked : false,
	id_smap : "",

	stateChanged : function () {
		$$('th.control').each(function (control) {
			control.removeClassName('start');
			control.removeClassName('pause');
			control.removeClassName('buffering');
			switch (player.state) {
				case 1:
					control.addClassName('buffering');
					break;
				case 2:
					control.addClassName('pause');
					break;
				case 0:
				default:
					control.addClassName('start');
			}
		});
		$$('td.control').each(function (control) {
			control.removeClassName('start');
			control.removeClassName('pause');
			control.removeClassName('buffering');

			parent_tr = control.up();
			parent_tr.removeClassName('current-track');

			if (control.id == 'play-control-'+player.id_map[player.track]) {
				parent_tr.addClassName('current-track');
				switch (player.state) {
					case 1:
						control.addClassName('buffering');
						break;
					case 2:
						control.addClassName('pause');
						break;
					case 0:
					default:
						control.addClassName('start');
				}
			} else {
				control.addClassName('start');
			}
		});
	},

	toggleState : function(type) {
		if (type > -1) {
			if (player.track == player.id_rmap[type]) {
				sendEvent(player.swf,'playpause');
			} else {
				sendEvent(player.swf,'playitem',player.id_rmap[type]);
			}
		} else {
			sendEvent(player.swf,'playpause');
		}
	},

	reorder : function(e) {
		if (player.state != 0) {
			sendEvent(player.swf,'playpause');
		}
		
		player.track = 0;

		if (e.findElement('th').hasClassName('sortdesc')) {
			order='asc';
		} else {
			order='desc';
		}
		sort=e.findElement('th').innerHTML.toLowerCase();
		url = '/store/main/xspf?siteId='+cart_site_id+'&sort='+sort+'&order='+order;

		player.loadingDetails();

		player.build_idmap();

		player.track = 0;

		thisMovie(player.swf).loadFile({file:url+"&hint="+player.id_smap});

		sendEvent(player.swf,'playitem',player.track);
	},

    	build_idmap : function() {
		player.id_locked = true;

		items = $$('td.control');

		player.id_map = [];
		player.id_rmap = [];
		player.id_smap = "";
		i=0;
		for (x in items) {
		  if (!items[x].id) continue;
		  player.id_map[i] = items[x].id.replace(/play\-control\-/, '');
		  player.id_rmap[player.id_map[i]] = i;
		  player.id_smap+=player.id_map[i]+",";
		  i++;
		}

		player.id_locked = false;
	},

	itemChanged : function() {
		if (player.id_locked == true) {
			setTimeout('player.itemChanged();', 10);
			return;
		}

		if (player.state != 0) {
			sendEvent(player.swf,'playpause');
		}
		url = 'main/trackInfo?id='+$('hidden-track-id-'+player.id_map[player.track]).value;
		player.loadingDetails();
		new Ajax.Request(url, {
		  method: 'get',
		  onSuccess: function(transport) {
		  	eval('json = '+transport.responseText);
		  	$('player-track-title').innerHTML = json.title;
		  	$('player-track-producer').innerHTML = json.producer;
		  	$('player-track-length').innerHTML = json.play_time_string;
			if (player.state == 0) {
		  		sendEvent(player.swf,'playitem',player.track);
			}
		  }
		});
	},

	loadingDetails : function() {
		$('player-track-title').innerHTML = 'Please wait...';
	  	$('player-track-producer').innerHTML = 'myStudio Store';
	  	$('player-track-length').innerHTML = '0:00';
	}
}

sendEvent = function(swf,typ,prm) {
	if ($(swf).sendEvent) {
		$(swf).sendEvent(typ,prm);
	} else {
		//alert('Cannot access the player');
	}
}

getUpdate = function (typ,pr1,pr2,swf) {
	switch (typ) {
		case 'item':
			player.track = pr1;
			player.itemChanged();
			break;
		case 'volume':
			player.volume = pr1;
			break
		case 'load':
			player.load = pr1;
			break;
		case 'time':
			player.time = pr2;
			player.lapsed = pr1;
			break;
		case 'state':
			player.state = pr1;
			player.stateChanged();
			break;
	}
}

getItemData = function (swf,idx) {
	obj = null;
	if (thisMovie(swf).itemData) {
		obj = thisMovie(swf).itemData(idx);
	} else {
		// alert('Cannot access the player');
	}
	alert(obj);
	return obj;
}

thisMovie = function (swf) {
  if(navigator.appName.indexOf("Microsoft") != -1) {
    return window[swf];
  } else {
    return document[swf];
  }
}

switch_cart = function (obj) {
	if (obj.checked) {
		if (!cart.items[obj.name]) cart.items[obj.name]=0;
		cart.total-=cart.items[obj.name];
		$$('input[name='+obj.name+']').each(
			function (el) {
				if (!el.checked) {
					switch_cart(el);
				} else {
					cart.packages[obj.name]=el.value;
				}
			});
		$$('label[for='+obj.id+']').each(function (el) {
			el.addClassName('checked');
		});
		cart.items[obj.name]=$(obj.id+'_usd').value*1;
		cart.total+=cart.items[obj.name];
	} else {
		$$('label[for='+obj.id+']').each(function (el) {
			el.removeClassName('checked');
		});
	}
	$('total').innerHTML = (cart.total*cart.rate).toFixed(2);
}
