$("div.songBoxDefault").live("mouseover", function(){
	$(this).find("div.songTabsHolder").show()
})

$("div.songBoxDefault").live("mouseout", function(){
	$(this).find("div.songTabsHolder").hide()
})

$("a.songTabs").live("click", function(){
	songBoxTabs.runSongTabs($(this))
})

$("a.commentNav").live("click", function()
{
	songBoxTabs.commentNav($(this));
	return false;
});

$("a.commentthumbup,a.commentthumbdown").live('click',function(){
	var el = $(this);
	var url = $(this).attr('href');
	var id = $(this).attr('id');
	if (url == "#")
	{
		return false;
	}
	else
	{
		$.ajax({
			type	: 'post',
			url		: url,
			data	: "data[Mp3Comment][id]="+id,
			success : function(data){
							$(el).parents('td.commentPointTd').html(data);
							//$(el).parent().parent().find('.commentPoints').html(data);
							//$(el).parents(".songTabsContentsHolder").find('.commentthumbdisable').removeClass('.commentthumbdisable');
							//$(el).addClass('commentthumbdisable');
						}
		})
	}
	return false;
})

$("input.commentSubmit").live('click',function(){
	var el = $(this);
	var mp3id = $(el).parents(".songTabsContentsHolder").attr('id').replace("songBox_","");
	var form = $(el).parents(".songTabsContentsHolder").find('form#commentFrm');
	if ($(form).find('#commentTxt').val())
	{
		$.ajax({
			type	: 'post',
			url		: $(form).attr('action'),
			data	: $(form).serialize(),
			success : function(){
							$(el).parents(".songTabsContentsHolder").load("/tracks/comment/"+base64.encode(mp3id)).show();
						}
		});
	}
	return false;
})

$("input.shareSubmit").live('click',function(){
	var form = $(this).parents('form');
	var msg = "";
	//alert($(form).serialize())
	
	if ( $(form).find('#youremail') )
	{
		if( !$(form).find('#youremail').val() )
		{
			msg = "Please enter your email address\n";
		}
	}
	
	if( !$(form).find('#toemail').val() )
	{
		msg += "Please enter recipient's email address\n";
	}
	
	if ( msg != "" )
	{
		alert(msg);
		return false;
	}
	
	$.ajax({
		type	: 'post',
		url		: $(form).attr('action'),
		data	: $(form).serialize(),
		success : function(){
						$(form).replaceWith("<p style='text-align:center;'>Email Sent!</p>");
					}
		
	})
	return false;
})

$("a.commentDelete").live('click',function(){
	var id = $(this).attr('id');
	var mp3id = $(this).parents(".songTabsContentsHolder").attr('id').replace("songBox_","");
	$(this).replaceWith("<span class='commentDelete' style='color:#a80000;font-size:11px;'>Are you sure? <a class='confirmCommentDelete' style='color:#a80000;font-size:11px;'> Yes </a><a class='confirmCommentDelete' style='color:#a80000;font-size:11px;'> Cancel </a> </span>");
	$('a.confirmCommentDelete').bind('click',function(){
		if ($(this).text() != " Cancel ")
		{
			var el = $(this);
			$.ajax({
				type	: 'post',
				url		: '/tracks/delete_comment',
				data	: 'data[Mp3Comment][id]='+id,
				success : function(){
								$(el).parents(".songTabsContentsHolder").load("/tracks/comment/"+base64.encode(mp3id)).show();
								$('a.confirmCommentDelete').unbind();
							}
				
			});
		}
		else
		{
			$(this).parents('span.commentDelete').replaceWith('<a id="'+id+'" class="commentDelete" style="color:#a80000;font-size:11px;">delete</a>');
		}
		return false;
	})
	return false;
});

var songBoxTabs = {
		
		init : function()
		{
			currTabs 		= null
			currTabsId 		= null
			currTabsContent = null
			currSongBox		= null
			currSongBoxId	= null
			
			currIncompleteSongId 	= null
			currIncompleteEditForm 	= null
			
			deleteSongDone = false;
		},
		runSongTabs : function(tab){
			//alert($(tab).html())
			selectedTabs		= tab
			selectedTabsId		= $(selectedTabs).attr("id")
			selectedTabsName	= $(selectedTabs).attr("class")
			selectedTabsName	= selectedTabsName.replace("songTabs ","")
			selectedSongBox 	= $(selectedTabs).parent().parent().parent()
			selectedSongBoxId	= $(selectedSongBox).attr("id")
			selectedTabsContent = $(selectedSongBox).find("div.songTabsContentsHolder")
			
			if(currIncompleteEditForm != null)
			{
				$(currIncompleteEditForm).click()
				currIncompleteEditForm 	= null;
				currIncompleteSongId	= null
			}
			
			if(currTabsId == null)
			{
				$(selectedSongBox).removeClass("songBoxDefault").addClass("songBoxSelected")
				
				songBoxTabs.openTabsContent()
				
				currTabs		= selectedTabs
				currTabsId 		= selectedTabsId;
				currTabsContent	= selectedTabsContent
				currSongBox		= selectedSongBox
				currSongBoxId	= selectedSongBoxId
				
			}else if(currTabsId == selectedTabsId)
			{
				$(currTabsContent).hide().empty()
				$(currSongBox).removeClass("songBoxSelected").addClass("songBoxDefault").mouseout()
				
				currTabsId 		= null
				currTabsContent	= null
				currSongBox		= null
				currSongBoxId	= null
				currTabs 		= null
			}else{
				
				if(currSongBoxId != selectedSongBoxId)
				{
					$(currSongBox).removeClass("songBoxSelected").addClass("songBoxDefault").mouseout()
					$(selectedSongBox).removeClass("songBoxDefault").addClass("songBoxSelected")
					
					currSongBox		= selectedSongBox
					currSongBoxId	= selectedSongBoxId
					
					$(currTabsContent).hide().empty()
				}
				
				$(currTabsContent).hide().empty()
				
				songBoxTabs.openTabsContent()
				
				currTabs		= selectedTabs
				currTabsId 		= selectedTabsId;
				currTabsContent	= selectedTabsContent
				
			}
		},
		openTabsContent : function(){
			switch(selectedTabsName)
				{
					case "addToPlaylistTabs": songBoxTabs.addToPlaylist()
											  break;
					  
					case "playlistAddToPlaylistTabs": songBoxTabs.playlistAddToPlaylist()
											  break;
											  
					case "infoTabs" 		: songBoxTabs.info()
											  break;
											  
					case "playlistInfoTabs" : songBoxTabs.playlistInfo()
											  break;						  
					
					case "editTabs" 		: songBoxTabs.edit()
											  break;
					
					
					case "downloadTabs" 	: songBoxTabs.download()
											  break;
					
					case "shareTabs" 		: songBoxTabs.share();//songBoxTabs.default()
											  break;
											  
					case "commentsTabs" 	: songBoxTabs.comment()
											  break;
					
					//playlistDeleteTabs

					case "deleteTabs" 		: songBoxTabs.deleteSong()
											  break;
											  
					case "playlistDeleteTabs" 	: songBoxTabs.playlistDeleteSong()
											  	break;
				}
		},
		share	: function ()
		{
			songId = selectedTabsId.replace("share_","");
			$(selectedTabsContent).empty().load("/tracks/share/"+base64.encode(songId)).show();
		},
		comment	: function ()
		{
			songId = selectedTabsId.replace("comments_","");
			$(selectedTabsContent).empty().load("/tracks/comment/"+base64.encode(songId)).show();
			//$(selectedTabsContent).show()
		},
		commentNav : function (el)
		{
			$(selectedTabsContent).load($(el).attr('href'));//.show();
		},
		addToPlaylist : function()
		{
			songId = selectedTabsId.replace("add_","")
			
			$.ajax({
				type	: 	'POST',
				url		: 	'/listeners/selectPlaylist/',
				success	: 	function(data)
							{
								var a = eval('('+data+')');
								var status = a.status
								
								if(status == "failed")
								{
									$("#warningLoginListener").click()
									
									$('input.defButtonFancyBox#cancel').live("click", function(){
										$.fancybox.close()
										songBoxTabs.runSongTabs(currTabs)
										clicked = true;
									})
								}else if(status == "success"){
									$(selectedTabsContent).empty().load("/listeners/selectPlaylist/"+songId+"/fromSonglist", function(){
										$(selectedTabsContent).show()
									})
								}
							}
			})
		},
		playlistAddToPlaylist : function()
		{
			playlistId = selectedTabsId.replace("add_","")
			
			$.ajax({
				type	: 	'POST',
				url		: 	'/listeners/selectPlaylist/',
				success	: 	function(data)
							{
								var a = eval('('+data+')');
								var status = a.status
								
								if(status == "failed")
								{
									$("#warningLoginListener").click()
									
									$('input.defButtonFancyBox#cancel').live("click", function(){
										$.fancybox.close()
										songBoxTabs.runSongTabs(currTabs)
										clicked = true;
									})
									
								}else if(status == "success"){
									$(selectedTabsContent).empty().load("/listeners/selectPlaylist/"+playlistId+"/fromPlaylist", function(){
										$(selectedTabsContent).show()
									})
								}
							}
			})
		},
		info : function()
		{
			songId = selectedTabsId.replace("info_","")
			$(selectedTabsContent).empty().load("/artists/song/"+songId+"/info")
			$(selectedTabsContent).show()
		},
		playlistInfo : function(){
			playlistId = selectedTabsId.replace("info_","")
			
			$(selectedTabsContent).empty().load("/artists/song/"+playlistId+"/playlistInfo")
			$(selectedTabsContent).show()
		},
		download : function()
		{
			songId = selectedTabsId.replace("download_","")
			$.fancybox({
					'padding'		: 0,
					'autoScale'		: true,
					'transitionIn'	: 'none',
					'transitionOut'	: 'none',
					'href'			: "/tracks/getdownload/"+base64.encode(songId)
				});

			//$(currSongBox).removeClass("songBoxSelected").addClass("songBoxDefault").mouseout()
			$(selectedSongBox).removeClass("songBoxSelected").addClass("songBoxDefault")
			selectedTabsId		= null;
			selectedTabsName	= null;
			selectedTabsName	= null;
			selectedSongBox 	= null;
			selectedSongBoxId	= null;
			selectedTabsContent = null;
			
			return false;
		},
		edit : function()
		{
			songId = selectedTabsId.replace("edit_","")
			$(selectedTabsContent).empty().load("/artists/song/"+songId+"/edit")
			$(selectedTabsContent).show()
		},
		cancelEdit : function()
		{
			if(currTabsId != null){
				songBoxTabs.runSongTabs(currTabs)
			}else if(currIncompleteEditForm != null)
			{
				$(currIncompleteEditForm).click()
				currIncompleteEditForm 	= null;
				currIncompleteSongId	= null;
			}
		},
		/*
		default : function()
		{
			//$(selectedTabsContent).find("div.songTabsContentsTitle").html("Default")
			$(selectedTabsContent).show()
		},
		*/
		submitApprovalForm : function(SWFUploadFile)
		{
			if(currTabsId != null){
				songBoxTabs.runSongTabs(currTabs)
			}
			
			selectedIncompleteSongId 	= $(SWFUploadFile).parent().parent().attr("id")
			selectedIncompleteEditForm 	= SWFUploadFile
			
			
			if(selectedIncompleteSongId != currIncompleteSongId){
				$(".SWFUploadFileListingFiles_edit_panel").empty().hide()
				$(SWFUploadFile).parent().parent().find(".SWFUploadFileListingFiles_edit_panel").load("/artists/song/"+selectedIncompleteSongId+"/edit", function(){
					$(SWFUploadFile).parent().parent().find(".SWFUploadFileListingFiles_edit_panel").show()
				})
				
				currIncompleteEditForm = selectedIncompleteEditForm
				currIncompleteSongId = selectedIncompleteSongId
				
			}else{
				$(SWFUploadFile).parent().parent().find(".SWFUploadFileListingFiles_edit_panel").empty().hide()
				
				currIncompleteEditForm 	= null;
				currIncompleteSongId	= null
			}
			
		},
		deleteSong : function()
		{
			songId = selectedTabsId.replace("delete_","")
			
			$(selectedTabsContent).empty()
			$(selectedTabsContent).hide()
			
			clicked			= false;
			
			$(selectedTabsContent).hide().empty()
			
			$("a#songDeleteConfirmation").attr("href","/artists/songDelete/confirm/"+songId)
			
			$('a#songDeleteConfirmation').fancybox({
				showCloseButton : false,
				hideOnContentClick	: false,
				hideOnOverlayClick : false
			});

			$('a#songDeleteConfirmation').click()
			
			$('input.defButtonFancyBox#cancel').live("click", function(){
				if(!clicked){
					songBoxTabs.runSongTabs(currTabs)
					clicked = true;
				}
				return false;
			})
			
			$('input.defButtonFancyBox#ok').live("click", function(){
				$.fancybox.close()
				return false;
			})
			
			$('input.defButtonFancyBox#yesDeleteSong').live("click", function(){
				if(!clicked){
					songBoxTabs.confirmDeleteSong()
					clicked = true;
				}
				return false;
			})
		},
		playlistDeleteSong : function(){
			playlistId = selectedTabsId.replace("delete_","")
			
			$(selectedTabsContent).empty()
			$(selectedTabsContent).hide()
			
			clicked			= false;
			
			$(selectedTabsContent).hide().empty()
			
			$("a#songDeleteConfirmation").attr("href","/listeners/songDelete/confirm/"+playlistId)
			
			$('a#songDeleteConfirmation').fancybox({
				showCloseButton : false,
				hideOnContentClick	: false,
				hideOnOverlayClick : false
			});

			$('a#songDeleteConfirmation').click()
			
			$('input.defButtonFancyBox#cancel').live("click", function(){
				if(!clicked){
					songBoxTabs.runSongTabs(currTabs)
					clicked = true;
				}
				return false;
			})
			
			$('input.defButtonFancyBox#ok').live("click", function(){
				$.fancybox.close()
				return false;
			})
			
			$('input.defButtonFancyBox#yesDeleteSong').live("click", function(){
				if(!clicked){
					songBoxTabs.playlistConfirmDeleteSong()
					clicked = true;
				}
				return false;
			})
		},
		deleteIncompleteSong : function(SWFUploadFile)
		{
			if(currTabsId != null){
				songBoxTabs.runSongTabs(currTabs)
			}
			
			selectedIncompleteSongId 	= $(SWFUploadFile).parent().parent().attr("id")
			selectedIncompleteEditForm 	= SWFUploadFile
			
			if(selectedIncompleteSongId != currIncompleteSongId){
				$(".SWFUploadFileListingFiles_edit_panel").empty().hide()
				
				currIncompleteEditForm = selectedIncompleteEditForm
				currIncompleteSongId = selectedIncompleteSongId
				
			}else{
				$(SWFUploadFile).parent().parent().find(".SWFUploadFileListingFiles_edit_panel").empty().hide()
				
				currIncompleteEditForm 	= null;
				currIncompleteSongId	= null
			}
			
			$("a#songDeleteConfirmation").attr("href","/artists/songDelete/confirm/"+selectedIncompleteSongId)
			
			$('a#songDeleteConfirmation').fancybox({
				showCloseButton : false,
				hideOnContentClick	: false,
				hideOnOverlayClick : false
			});
			
			$('a#songDeleteConfirmation').click()
			
			$('input.defButtonFancyBox#cancel').live("click", function(){
				$.fancybox.close();
				return false;
			})
			
			$('input.defButtonFancyBox#yesDeleteSong').live('click',function(){
				songBoxTabs.confirmDeleteSong()
				return false;
			})
			
			$('input.defButtonFancyBox#ok').live("click", function(){	
				$.fancybox.close()
				return false;
			})
		},
		confirmDeleteSong : function(){
			if(!deleteSongDone){
				confirmDeleteSong = true;
				songId = $("input#deleteSongId").val();
				$(".myFancyBox_Content h3").fadeOut("fast", function(){
					$(this).empty().load("/artists/songDelete/confirmed/"+songId).fadeIn("fast", function(){
						if(currTabsId != null){
							$("#songBox_"+songId).fadeOut("fast", function(){
								$(this).remove()
							})
						}else{
							$(".SWFUploadFileListingFiles_songList#"+songId).fadeOut("fast", function(){
								$(this).remove()
							})
						}
						confirmDeleteSong = false;
					})
				})
				
				$(".myFancyBox_Footer").html("<div class='borderDefButtonFancyBox_default' ><input class='defButtonFancyBox' type='button' value='Ok' id='ok'/></div><div class='clearDiv'></div>")
			}	
		},
		playlistConfirmDeleteSong : function(){
			if(!deleteSongDone){
				confirmDeleteSong = true;
				$(".myFancyBox_Content h3").fadeOut("fast", function(){
					$(this).empty().load("/listeners/songDelete/confirmed/"+playlistId).fadeIn("fast", function(){
						if(currTabsId != null){
							
							$("#songBox_"+playlistId).fadeOut("fast", function(){
								$(this).remove()
							})
						}
						
						confirmDeleteSong = false;
					})
				})
				
				$(".myFancyBox_Footer").html("<div class='borderDefButtonFancyBox_default' ><input class='defButtonFancyBox' type='button' value='Ok' id='ok'/></div><div class='clearDiv'></div>")
			}	
		},
		deletePlaylist : function(playlistId)
		{
			clicked			= false;
			pId = playlistId;
			$("a#songDeleteConfirmation").attr("href","/listeners/playlistDelete/confirm/"+pId)
			
			$('a#songDeleteConfirmation').fancybox({
				showCloseButton : false,
				hideOnContentClick	: false,
				hideOnOverlayClick : false
			});

			$('a#songDeleteConfirmation').click()
			
			$('input.defButtonFancyBox#yesDeletePlaylist').live("click", function(){
				if(!clicked){
					songBoxTabs.confirmDeletePlaylist(pId)
					clicked = true;
					pId = null
				}
			})
		},
		confirmDeletePlaylist : function(pid)
		{
			$(".myFancyBox_Content h3").fadeOut("fast", function(){
				$(this).empty().load("/listeners/playlistDelete/confirmed/"+pid).fadeIn("fast", function(){
					
					$("#playlist").load("/listeners/getPlaylist/"+listenerId, function(){
						var playlistId = $("#playlist").find("a.playlistMenuActive").attr("id");
						$("#SongList").load("/listeners/getSonglist/"+playlistId+"/"+listenerId)
					});
				})
			})
				
				$(".myFancyBox_Footer").html("<div class='borderDefButtonFancyBox_default' ><input class='defButtonFancyBox' type='button' value='Ok' id='cancel' onclick='$.fancybox.close()'/></div><div class='clearDiv'></div>")
		}
	}
songBoxTabs.init()