/* player */
var _ad_timer_ = null;
var adv_obj  = function(){
	var adv = $("#player_top_advertise");
	this.showAdv = function() {
		adv.show();
	}
}();
var player					=	null;
var player_obj				=	null;
var player_ready			=	false;
var isPlayerTimeDragging	=	false;

function addListeners() {
	if (player) {
		player_obj = new PlayerModel(player);
	} else {
		setTimeout("addListeners()", 200);
	}
}

function playerReady (obj) {
	try {
		player = document.getElementById(obj['id']);
		addListeners();
	} catch (e) {
		alert(e);
	}
}
function playerPlaylistHandler(obj) {
	player_obj.playerPlaylistHandler(obj);
}

function playerViewPlayHandler (obj) {
	//alert(obj.state);
}

function reloadPlayer () {
	//var html = $("#master_player_" + player_current_id).addClass("hidden").removeClass("hidden");}
}
var PlayerModel = function (pl)
{
	var handle		=	this;
	var self		=	this;
	//var player		=	null;
	this.player		=	null;
	var button		=	{play:0, pause:0, prev:0, next:0};
	var gate		=	conf.base_url + 'library/gate';
	var update		=	true;
	var library		=	library_obj || null;
	var play_random	=	true;
	var playlist	=	null;
	
	var current_item_duration		=	0;
	var current_item_duration_old	=	0;

	if (pl != undefined) {
		//for (var i in pl) alert(i + '-> ' +pl[i]);
		//alert(document.getElementByName(pl.id));
		//alert(document.getElementById(pl.id));
		//this.player	=	document.getElementsByName(pl.id)[0] || document.getElementById(pl.id) || document.getElementById(pl['id']);
	}

	this.playlist_id			=	0;
	this.is_playing				=	false;
	this.is_paused				=	false;
	this.playlist				=	[];
	this.current_url			=	'';
	this.current_index			=	0;
	this.mode					=	null;//"media"; //media or playlist
	this.playlist_complex		=	null;
	this.is_muted				=	false;
	

	this.change = function() {
		//alert('change');
	};
	
	var play_image = function (image) {
		if (image != undefined) {//alert(image);
			if ($('#banner_info').css('display') == 'block') {
				$('#banner_info').hide();
				$("#clip_info .s_thumb").addClass('white_bg');
			}
			$("#clip_info .s_thumb a span img").attr("src", image);
			
		}
	};

	this.sendEvent = function (event, val) {
		//alert(event+'->'+val);
		try {
			player.sendEvent(event, val);
			
				//reloadPlayer();
			//} else {
			//	player.sendEvent(event, val);
			//}
		} catch (e) {
			//document.location = conf.base_url;
			//alert('sendEvent ' + e);
		}
		play_random = false;
	};
	
	this.center_controls = function() {
		var left_margin = Math.floor($('#player_controls').width() / 2);
		if (left_margin > 0) {
			$('#player_controls').css({left:'50%', 'margin-left':'-'+left_margin+'px'});
		}
	}

	this.current_item_share_show = function() {
		var target = $("#player_current_item_share");
		if (self.mode == "search") {
//			handle.current_item_share_hide();
//			return;
			$("#movieclip_share").hide();
		} else {
			$("#movieclip_share").show();
			var twitter_text = '';
			if (handle.mode == "playlist") {
				twitter_text = "Currently listening to \""+handle.playlist[handle.current_index].title+"\" at "+conf.base_url + 'preview_' + handle.playlist_id + '_' + handle.current_index;
			} else if (handle.mode == "media") {
				twitter_text = "Currently listening to \""+handle.current_item_title+"\" at " + conf.base_url + 'preview_' + handle.current_item_id + '_' + handle.current_item_title;
			}
			$("#player_share_twitter_text").text(twitter_text);
			$("#player_share_form_twitter", target).unbind("submit").submit(function(e){
				e.preventDefault();
				var text	=	$("#player_share_twitter_text").val();
				openBrWindow("http://twitter.com/home?status="+encodeURIComponent(text), "player_twitter_share", 500, 700, 'yes');
			});
		}
		target.show();
	}
	
	this.current_item_share_hide = function() {
		var target = $("#player_current_item_share");
		$("#player_share_form_twitter", target).unbind("submit");
		$("#player_share_twitter_text").text('');
		target.hide();
	};

	this.playerSelectedItem = function (obj) {
		try {
			//adv
			if (Number($.cookie('adv_total')) <= 3) {
				if (_ad_timer_ != null)	clearTimeout(_ad_timer_);
				$("#player_top_advertise").show();
				var closeAdv = function() {
					$('#player_top_advertise').hide();
					_ad_timer = null;
				}
				_ad_timer_ = setTimeout(closeAdv, conf.google_ads_time * 1000);
				var date = new Date();
				date.setTime(date.getTime() + (60 * 60 * 1000));
				$.cookie('adv_total', Number($.cookie('adv_total')) + 1, {path: '/', expires: date});
			} else {
				$('#player_top_advertise').hide();
			}
			var title = self.mode == "media" ? self.current_item_title : self.playlist[obj.index].title;


			////if (this.playlist_complex.length == 0) {
			//alert reload complex playlist
			//}
			self.current_index = obj.index;
			if (1) {
				$.post(gate, {act:"getLibraryItemByUrl", url:self.playlist[obj.index].file, title:title}, function (data) {
					if (data.state) {
						//var title = [];
						self.current_item_title		=	data.data.title;
						self.current_item_album		=	data.data.album;
						self.current_item_artist	=	data.data.artist;
						self.current_item_id		=	data.data.id;

						self.play_playlist_title(data.data.artist || "Library");
						/*if (data.title != undefined && data.title != '') {
							title.push(data.title);
						}
						if (data.artist != undefined && data.artist != '') {
							title.push(data.artist);
						}
						if (data.album != undefined && data.album != '') {
							title.push(data.album);
						}
						self.play_title(title.join(' - ', title));
						handle.play_playlist_title(data.data.artist || "Library");
						play_image(data.data.thumbnail);
						handle.mode = "media";
						self.play_url(data.data.url);
						handle.check_mode();*/
						self.current_item_share_show();
					} else {
						//alert(false);
					}
				},"json");
			}
			if (self.playlist[obj.index].duration == 0) {
				update = true;
			}
			self.play_title(title);
			play_image(self.playlist[obj.index].image);
		} catch (e) {
			alert('playerSelectedItem ' + e);
		}
	};
	
	this.play_item = function (item) {
		play_random = false;
		self.sendEvent("play_item", item);
		$.post(gate, {act:"playItem", item:item, o:Math.random()});
	};

	// Plays and index from a current playlist - not ready
	this.play_index = function (index) {
		play_random = false;
		if (self.playlist_id == 0) return;
		self.sendEvent("play_index", index);
		$.post(gate, {act:"playIndex", playlist_id: self.playlist_id, index:index});
	};

	// Play a record by id and increment server value - ready
	this.play_id = function (id) {
		play_random = false;
		self.sendEvent("play_id", id);
		$.post(gate, {act:"playIdLog", id:id});
	};

	this.play_playlist = function (obj)
	{
		play_random = false;
		try {
			obj.preventDefault();
		} catch (e) {
			//alert(e);
		}
		//check whatever event comes from custom call or from event handler
		var playlist_id = Number(obj.type != undefined ? obj.target.id.split("_")[1] : obj);
		if (playlist_id < 0) return;

		self.mode = "playlist";
		self.playlist_id = playlist_id;
		self.play_playlist_title($("#playlistreload_"+playlist_id).text());
		self.playlist_url = conf.base_url + "library/export/playlist/rss20/" + playlist_id+"/" + Math.random(99999999);
		//alert(self.playlist_url);
		self.sendEvent("LOAD", self.playlist_url);
	};
	
	this.play_playlist_shuffle = function (obj) {
		play_random = false;
		//check whatever event comes from custom call or from event handler
		var playlist_id = Number(obj.type != undefined ? obj.target.id.split("_")[1] : obj);
		if (playlist_id < 0) return;
		handle.mode = "playlist";
		//handle.check_mode();
		handle.playlist_id = playlist_id;
		handle.play_playlist_title($("#playlistreload_"+playlist_id).text());
		handle.playlist_url = conf.base_url + "library/export/playlist/rss20/" + playlist_id + '/shuffle';
		handle.sendEvent("LOAD", handle.playlist_url);
	};

	this.play_library = function (e)
	{
		try {
			e.preventDefault();
		} catch (e) {
			//alert(e);
		}
		play_random = false;
		handle.mode = "library";
		//handle.current_play_mode = "library";
		//handle.check_mode();
		handle.sendEvent("LOAD", conf.base_url + "library/export/library/rss20/library");
		handle.play_playlist_title("Library");
	};

	this.play_common = function (mode)
	{
		play_random = false;
		handle.mode = "playlist";
		handle.mode = "common";
		var url = conf.base_url + "library/export/common/rss20/"+mode+"/"+Math.random(999999);
		//alert(url);

		//handle.current_play_mode = "library";
		//handle.check_mode();
		handle.sendEvent("LOAD", url);
		handle.play_playlist_title("Common");
	};
	
	this.play_library_shuffle = function ()
	{
		play_random = false;
		handle.mode = "playlist";
		handle.mode = "library";

		//handle.current_play_mode = "library";
		//handle.check_mode();
		handle.sendEvent("LOAD", conf.base_url + "library/export/library/rss20/library/shuffle");
		handle.play_playlist_title("Library");
	};

	this.backward = function () {
		if (button.prev) {
			self.sendEvent("PREV");
		}
	};

	this.forward = function () {
		if (button.next) {
			self.sendEvent("NEXT");
		}
	};
	
	this.pause = function () {
		self.is_paused = true;
		self.sendEvent("PLAY", "false");
	};

	this.seekPercent = function (percent) {
		self.seek(Math.floor((current_item_duration/100)*percent));
	};

	this.seekBarClickHandler = function (event) {
		//alert(event.pageX);
		//console.log($(this));
	};

	this.seek = function (time) {
		self.sendEvent("SEEK", time);
	}

	this.playerStopHandler = function () {
		self.is_playing = false;
		$("#player_button_play").show();
		$("#player_button_play span").removeClass("s_disabled");
		$("#player_button_stop, #player_button_pause").hide();
		$("#player_button_stop span, #player_button_pause span").addClass("s_disabled");
		self.center_controls();
	}

	this.playerPlayHandler = function (obj) {
		//console.log(obj.state);
		//alert(obj.state);
		
		if (obj.state) {
			self.is_playing	=	true;
			self.is_paused	=	false;
			$("#player_button_play").hide();
			$("#player_button_stop, #player_button_pause").show();
			$("#player_button_stop span, #player_button_pause span").removeClass("s_disabled");
		} else {
			self.is_paused	=	true;
			$("#player_button_play").show();
			$("#player_button_play span").removeClass("s_disabled");
			$("#player_button_stop").show();
			$("#player_button_stop span").removeClass("s_disabled");
			$("#player_button_pause").hide();
			$("#player_button_pause span").addClass("s_disabled");
		}
		self.center_controls();
	};

	this.play_url = function (url) {
		play_random = false;
		//alert(url);
		self.current_url = url;
		self.sendEvent("LOAD", url);
		//self.play();
	};

	this.check_mode = function() {
		//if (handle.mode == "media")	$("#pbb, #pbf").hide();
		//else						$("#pbb, #pbf").show();
	};
	
	this.play_playlist_title = function (title) {
		if (title == undefined) return;
		$("#player_playlist_current_play").show().text(title);
	};
	
	this.play_title = function (str) {
		if (str == undefined) return;
		$("#player_current_play").show().text(str);
		try {
			document.title = str + ' - musiccove.com';
		} catch (e) {
			alert(e);
		}
	};
	var rand = function(min, max) {
		return Math.floor(Math.random() * (max - min + 1)) + min;
	};
	
	this.playerModelStateHandler = function (obj) {
		//alert(library.playlist_handler.current_obj.id);
		if (play_random) {
			var list = $("#my_playlist_list_holder > ul > li");
			var id = $(list[rand(0, list.length)]).attr("id").split("_")[1];
			//library.playlist_handler.get({id:id, autostart:true, friend:1});
			library.playlist_handler.get({id:id, autostart:true, friend:1});
			self.pause();
			play_random = false;
		}
		$("#player_controls").removeClass("hidden");

		switch (obj.newstate) {
			case "COMPLETED":
				self.playerStopHandler();
				if (self.current_index == (self.playlist.length - 1)) {
					switch(self.mode) {
						case "media":
							self.play_library_item(self.current_item_id);
						break;
						case "playlist":
							self.play_library_item(self.playlist_id);
						break;
						case "library":
							self.play_library();
						break;
					}
				}
			break;
			case "PLAYING":
				self.playerPlayHandler({state:true});
				if (self.is_paused) {
					//self.sendEvent("PLAY", "false");
					//console.log('halted');
				}
				//console.log(self.current_index+':'+self.playlist.length);
			break;
		}
	};

	this.playerModelErrorHandler = function (obj) {
		switch (obj.newstate) {
			case "COMPLETED":
				//self.playerStopHandler();
			break;
		}
		//for (var i in obj) {
			//$("#player_state").prepend(i+"->"+obj[i]+"<br />");
		//}
		//if player throws an error go to next playlist item
		if (self.playlist != null && self.playlist.length > 1) {
			
			//self.forward();
			//setTimeout("function(){$('#player_state').empty();}", 3000);
		} else {
			//self.stop();
		}
	};

	this.playerModelTimeHandler = function (obj) {
		if (!isPlayerTimeDragging) {
//			/console.log(obj.duration);
			current_item_duration = obj.duration;
			switch(self.mode) {
				case "library":
					//alert(self.playlist[self.current_index].duration);
					if (update && Number(self.playlist[self.current_index].duration) == 0 && obj.duration !=0) {
						$.post(gate, {act:"updateDuration", mode:self.mode, index:self.current_index, duration:obj.duration}, function (data) {
							if (data.state) {
								$("#library_item_"+data.id+" div.s_duration").text(data.duration);
							}
						},"json");
						update = false;
					}
				break;
				case "playlist":
					if (update && self.playlist_id > 0 && Number(self.playlist[self.current_index].duration) == 0 && obj.duration !=0) {
						$.post(gate, {act:"updateDuration", mode:self.mode, playlist_id:self.playlist_id, index:self.current_index, duration:obj.duration}, function (data) {
							if (data.state) {
								$("#library_item_"+data.id+" div.s_duration").text(data.duration);
							}
						},"json");
						update = false;
					}
				break;
				case "media":
					if (update && Number(self.playlist[self.current_index].duration) == 0 && obj.duration !=0) {
						$.post(gate, {act:"updateDuration", mode:self.mode, item_id:self.current_item_id, duration:obj.duration}, function (data) {
							if (data.state) {
								$("#library_item_"+data.id+" div.s_duration").text(data.duration);
							}
						},"json");
						update = false;
					}
				break;
			}
			if (self.mode == "playlist" && update && Number(self.playlist[self.current_index].duration) == 0 && obj.duration !=0) {
				$.post(gate, {act:"updateDuration", mode:self.mode, playlist_id:self.playlist_id, index:self.current_index, duration:obj.duration}, function (data) {
					if (data.state) {
						$("#library_item_"+data.id+" div.s_duration").text(data.duration);
					}
				},"json");
				update = false;
			}
			var left = Number((obj.position / obj.duration)*100);
			if (left > 0) {
				$("#seek_bar_control").css("left", Number((obj.position / obj.duration)*100) + "%");
			}
		}
		//alert(obj.duration);
	};

	this.playerPlaylistHandler = function (obj) {
		button.play = 1;
		self.playlist = player.getPlaylist();
		//console.log(self.playlist);
		//check len of playlist and show/hide backward and forward buttons
		//alert(self.playlist.length);
		if (self.playlist.length > 1) {
			//$("#player_button_next, #player_button_prev").show();
			button.prev = button.next = 1;
			$("#player_button_next span, #player_button_prev span").removeClass("s_disabled");
		} else {
			//$("#player_button_next, #player_button_prev").hide();
			button.prev = button.next = 0;
			$("#player_button_next span, #player_button_prev span").addClass("s_disabled");
		}
		self.center_controls();
		self.play();
		//move expolrer box
		//$("#explorer_box").css("top", 81);
	};

	var update_state = function () {
		if (self.is_muted) {
			$("#pbmute").hide();
			$("#pbunmute").show();
		} else {
			$("#pbmute").show();
			$("#pbunmute").hide();
		}
	};

	this.playerMuteHandler = function (obj) {
		self.is_muted = Boolean(obj.state);
		update_state();
	};

	this.playerPrevHandler = function() {
	};
	
	this.playerNextHandler = function() {
	};

	this.playerModelBufferHandler = function (obj) {
		//console.log(obj);
	};

	this.playerModelLoadedHandler = function (obj) {
		//console.log(obj.offset);
		$("#seek_bar_progress").css("width", Math.ceil((obj.loaded / obj.total)*100) + "%");
	};
	
	this.playerAddEventListeners = function () {
		try {
			playlist = player.getPlaylist();
			if((playlist !== null) && ( playlist !== undefined)) {
				//debugger;
				self.playlist = playlist;
				player.addControllerListener("ITEM", "player_obj.playerSelectedItem"); //current play item
				player.addControllerListener("PLAY", "player_obj.playerPlayHandler"); //play pause handler
				player.addControllerListener("PLAYLIST", "playerPlaylistHandler"); //playlist load complete
				player.addControllerListener("STOP", "player_obj.playerStopHandler"); //stop handler
				player.addControllerListener("MUTE", "player_obj.playerMuteHandler");
				

				//view events
				player.addViewListener("PLAY", "playerViewPlayHandler"); //play pause handler
				player.addViewListener("PREV", "player_obj.playerPrevHandler");
				player.addViewListener("NEXT", "player_obj.playerNextHandler");
				
				//model event
				player.addModelListener("BUFFER", "player_obj.playerModelBufferHandler");
				player.addModelListener("LOADED", "player_obj.playerModelLoadedHandler");

				player.addModelListener("STATE", "player_obj.playerModelStateHandler"); //state handler
				player.addModelListener("ERROR", "player_obj.playerModelErrorHandler"); //error handler
				player.addModelListener("TIME", "player_obj.playerModelTimeHandler");
			} else {
				setTimeout("player_obj.playerAddEventListeners();", 500);
			}
		} catch (e) {
			alert(e);
		}
	};
	this.play_encoded_url = function (obj) {
		play_random = false;
		this.current_encoded_url = obj.url;
		switch (obj.engine) {
			default:
				$.post(gate, {act:"getDecodedUrl", engine:obj.engine, url:obj.url}, function (data) {
						if (data.state) {
							handle.play_title(obj.title);
							handle.play_playlist_title(obj.engine_title);
							play_image(obj.image);
							handle.play_url(data.data.url || data.data);
							self.current_item_share_show();
							//handle.mode = "media";
							//self.check_mode();
						} else {
							alert(data.err);
						}
					},
					"json"
				);
			break;
		}
	};
	this.play = function() {
		if (button.play) {
			self.is_playing = true;
			self.is_paused = false;

			$("#player_button_play").hide();
			$("#player_button_stop, #player_button_pause, #pbmute").show();
			$("#player_button_stop span, #player_button_pause span, #pbmute span").removeClass("s_disabled");
			self.center_controls();
			self.sendEvent("PLAY", "true");
		}
	};

	this.stop = function () {
		self.is_playing = false;
		$("#player_button_play").show();
		$("#player_button_play span").removeClass("s_disabled");
		$("#player_button_stop, #player_button_pause, #pbmute").hide();
		self.center_controls();
		self.sendEvent("STOP");
	};

	this.reset_title = function() {
		$("#player_current_play").hide().text('');
	};
	
	this.play_library_item = function (id) {
		if (id < 0) return;
		play_random = false;
		$.post(gate, {act:"getLibraryItemUrl", id:id}, function (data) {
				if (data.state) {
					//handle.current_play_mode	=	"library";
					var title = [];
					handle.current_item_title	=	data.data.title;
					handle.current_item_album	=	data.data.album;
					handle.current_item_artist	=	data.data.artist;
					handle.current_item_id		=	id;
					if (data.data.title != undefined && data.data.title != '') {
						title.push(data.data.title);
					}
					if (data.data.artist != undefined && data.data.artist != '') {
						title.push(data.data.artist);
					}
					if (data.data.album != undefined && data.data.album != '') {
						title.push(data.data.album);
					}
					handle.play_title(title.join(' - ', title));
					handle.play_playlist_title(data.data.artist || "Library");
					play_image(data.data.thumbnail);
					handle.mode = "media";
					self.play_url(data.data.url);
					handle.check_mode();
					self.current_item_share_show();
				}
			},
			"json"
		);
	};

	this.hide_current_item_lyrics = function() {
		$("#lyrics_info_wrap_1").hide();
		$("#lyrics_info_album_1, #lyrics_info_artist_1, #lyrics_info_song_1, #lyrics_info_release_1, #lyrics_info_content_1").empty();
		$("#lyrics_info_link_1").hide().removeAttr("href");
		$("#lyrics_info_image_1").hide().removeAttr("src");
		$("#lyrics_buy_link_1").hide().removeAttr("href");
	};

	this.load_current_item_lyrics = function() {
		$.post(library_obj.gate, {act:"getLyricsInfo", album: self.current_item_album, artist: self.current_item_artist, song: self.current_item_title}, function (data) {
				if (data.state) {
					$("#lyrics_info_wrap_1").show();
					$("#lyrics_info_album_1").text(data.data.album);
					$("#lyrics_info_artist_1").text(data.data.artist);
					$("#lyrics_info_song_1").text(data.data.song);
					$("#lyrics_info_release_1").text(data.data.release);
					$("#lyrics_info_link_1").show().attr("href", data.data.link);
					$("#lyrics_info_image_1").show().attr("src", data.data.image);
					$("#lyrics_buy_link_1").show().attr("href", data.data.link);
					$("#lyrics_info_content_1").html(data.data.lyric);
				} else {
					$("#lyrics_info_wrap_1").hide();
				}
			},
			"json"
		);
	};
	this.mute = function() {
		self.is_muted = !self.is_muted;
		self.sendEvent("MUTE");
	};
	
	this.share_twitter = function () {
		//$("#share_wrap").show();
		var target = $("#player_share_wrap");
		target.css({
				width	:	'600px',
				left	:	(clientWidth() / 2 - 400 / 2) + scrollLeft(),
				top		:	(clientHeight() / 2 - 100 / 2 ) + scrollTop(),
				position:	"absolute"
			}
		)
		.show();
		var obj = {
			act		:	"getPlayerShareForm",
			engine	:	"twitter",
			mode	:	self.mode,
			index	:	self.current_index,
			o		:	Math.random()
		};
		if (handle.current_item_id != undefined) {
			obj.item_id = self.current_item_id;
		}
		if (self.mode == "playlist") {
			obj.playlist_id = self.playlist_id;
		}
		$.post(gate, obj, function (data) {
				if (data.state) {
					$("#player_share_form_content").html(data.form);
					$("#player_twitter_share_form_internal").unbind("submit").submit(function(e){
						e.preventDefault();
						var text	=	$("#player_share_twitter_text").val();
						openBrWindow("http://twitter.com/home?status="+encodeURIComponent(text), "playlist_twitter_share", 500, 700, 'yes');
					});
				} else {
					alert(data.err.join("\n"));
				}
			},
			"json"
		);
		$("#player_share_form_content").text(language.msg.loading);
	};


	this.player_share_hide = function () {
		var target = $("#player_share_wrap");
		target.hide();
	};
	$("#seek_bar_progress").live("click", self.seekBarClickHandler);
	//$("#explorer_box").css("top", 10);
	//init
	$(".play_common").live("click", function(e) {
		e.preventDefault();
		try {
			e.preventDefault();
			var mode = e.target.id.split("_")[1];
			self.play_common(mode);
		} catch (e) {
			//alert(e);
		}
	});
	$("#player_button_prev, #player_button_pause, #player_button_play, #player_button_stop").unbind("click");

		$("#player_button_pause").bind("click", this.pause);
		$("#player_button_play").bind("click", this.play);
		$("#player_button_stop").bind("click", this.stop);
		$("#player_button_next").bind("click", this.forward);

		$("#player_button_stop, #player_button_pause, #pbmute").hide();
		self.center_controls();
		//.self.check_mode();
		//attach events
		this.playerAddEventListeners();
		$(".play_media").live('click', function (e){
			e.preventDefault();
			self.play_library_item(Number(e.target.id.split("_")[1]));
		});
		$(".play_library").live('click', handle.play_library);
		$(".play_playlist").live('click', handle.play_playlist);
		
		$(".left_play_playlist").live('click', function(e) {
			e.preventDefault();
			library.playlist_handler.get({id:e.target.id.split("_")[1], autostart:true});
		});
		$(".pps").live('click', handle.play_playlist_shuffle);
		$(".player_share_twitter").live('click', handle.share_twitter);
		$("#pswc").live("click", handle.player_share_hide);

		$("#player_button_prev").live('click', handle.backward);
		$("#pbmute").live('click', handle.mute);
		$("#pbunmute").live('click', handle.mute);

		//execute batch
		for (var i in library_obj.batch) {
			var o = library_obj.batch[i];
			if (o.obj == "player") {
				switch (o.act) {
					case "play_library_item":
						handle.play_library_item(o.id);
					break;
					default:
					break;
				}
			}
		}
}
