//Initialize search field
$(function(){
sSearched = false;
$("#search_keywords").focus(function () {
	if (!sSearched) {
		$(this).val("");
		sSearched = true;
	}
});

sBrowse = $("#vars").text(); //get search string
});
	//handles display of errors and loading messages

		//fStatus - displays message in div#ajax_error
		//eg. fStatus(load/refine/clear);
		function fStatus (sStatus) {
			var e = $("#ajax_error");
			switch(sStatus) {
				case "load":
					e.empty().html(
						"Please wait &nbsp;&nbsp;&nbsp;<img src=\"ajax.loader.gif\" alt=\"Loading...\" height=\"11\" width=\"43\" />"
					);
					break;
				case "refine":
					e.empty().html(
						"Whoops... That’s a lot of tracks. try refining the search."
					);
					break;
				case "clear":
					e.empty();
					break;
				default:
				//code to be executed if n is different from case 1 and 2
				alert("fStatus case failed. =[");
					break;
			}


		}
		//end fStatus
		
		//fGet - used to get contents from server to be displayed on the page
		//eg. fGet("get alnums/tracks/details", #div_id, #album_id);
		function fGet(sWhat, sTarget, sId, bSel){
			
			//contact server for content
			$.post(
				'get_cont.php', //Form action
				{sWhat:sWhat,sId:sId,bSel:bSel}, //Post vars
				function(data){
					var sResponse = data;
					
					//place response content
					$("#"+ sTarget).removeClass("waiting").html(sResponse);
					
					//if checking for new release albums display back option for new release tracks
					if(sWhat=="tracks"){
						$("#back_track_releases").addClass("show_track_releases").click(function(){
							$("#back_track_releases").removeClass("show_track_releases");
							fGet("new_tracks", "browse_track", null, true );
						});
					}
					
					//if after selectable content ie. lists
					if (bSel){
						$("#"+ sTarget +' .a_pick')
							.click(function() {
								$("#"+ sTarget +' .a_pick').removeClass("t_sel");//clear all selections
								sId = $(this).addClass("t_sel").attr('id');//get id of selected element		
								
								if ( $("#"+sId).hasClass("album_id")) {
									fGet("tracks", "browse_track", sId, true); //get list of songs
								} else if ($("#"+sId).hasClass("track_id")) {									
									fGet("details", "det_view_cont", sId, false); //song details
								} else if ( $("#"+sId).hasClass("s_det") ){
									fGet("details_search", "det_view_cont", "wood001", false); //song details
								} else if ($("#"+sId).hasClass("rel_album_id")){
									fGet("rel_tracks", "browse_track", sId, true);
								} else if ($("#"+sId).hasClass("mycut_album_id")){
									fGet("mycuts_tracks", "search_browse_track", sId, true); //get list of songs
								}
								
							})
							.hover(function() {
								$(this).toggleClass("t_over"); 
							}, function() { 
							 $(this).toggleClass("t_over"); 
						});
					} else {
						
						showPlayer(sId);
						
						//Song versions
						$("#track_ver .a_pick")
							.click(function() {

							$('#track_ver .a_pick').removeClass("sel");
							
							sTrackId = $(this).addClass("sel").attr('id'); //get the track version id
							
							//Load flash player
							showPlayer(sTrackId);
							
							})
							.hover(function() {
								$(this).toggleClass("over");
							}, function() { 
							 $(this).toggleClass("over");
						});
					}
					sResponse = null; //clear memory
				}
			);
			fStatus("clear");//clear the status
		}
		//end fGet

		function showPlayer(tId){
			
			fStatus("load"); //loading message
			sTrackId = tId; //get the track version id						
			sTrackUrl = $("#"+sTrackId).addClass("sel").attr("rel");//get url to xml file
			sTrackTitle = "<strong>Now Playing:</strong><br/>" + $("#"+sTrackId).attr("title");//get url to xml file
			
			fPath = sTrackUrl;
			
			$(".play_now").empty().html(sTrackTitle);//set the "now playing title"
			
			//Check if track has been added to current users MyCuts.
			check_mycuts(sTrackId);
			
			//Remove any previous click functionality
			$("#dl_track").addClass('download_track').unbind("click");
			//logic for track download button
			$("#dl_track").click(function(){
				location.href="http://www.woodcutmusic.co.nz/download_track.php?track="+sTrackId;
			});
			
			var nc = Date();///get date
			sTrackUrl = sTrackUrl + "&nc=" + nc; //randomise the url to stop caching								
			fFlashMe ( "player_l", sTrackUrl);//generate flash player with the right url
			if ($("#player").hasClass("hide")){
				$("#player").slideDown("slow").removeClass("hide");
			}
				
			fStatus("clear");//clear the status
			
			return;
		}
		
		//fFlashMe - flash player
		function fFlashMe (sWhere, sXml) {

			$("#flash").empty().append('<div id="player_l"></div>');
			//var nc = Date();//get date
			fo = new SWFObject("./player/player.swf?xmlPath="+sXml , sWhere, "100%", "40%", "7", "#ADA159");
			
			fo.write(sWhere); 
			fo = null;

		}
		//end fFlashMe
		
		function check_mycuts(track_id){
			
			var temp = track_id.split("_");
			track_id = temp[1];
			var isMyCuts = $("#isMyCuts").val(); //Check if current page is MyCuts

			//Display MyCut delete button
			if(isMyCuts){
				
				$("#del_track").empty().html("Remove from MyCuts")
				.click(function(){
					
					$.post(
						'mycuts_ajax.php',
						{track_id:track_id,action:"del"}, //Post vars
						function(data){
							var sResponse = data;
							
							$("#del_track").empty().html(sResponse);
							
							if(sResponse=="Removing..."){
								
								//Hide Player
								$("#player").slideUp("slow").addClass("hide");
								
								//Stop player
								fFlashMe ( "player_l", null);
								//Hide player
								fGet("mycuts_tracks", "search_browse_track", null, true );
								
								fStatus("clear");//clear the status
							}
							
							
						}
					);
				});
				
				
			} else {
				
				//contact server for content
				$.post(
					'mycuts_ajax.php', //Form action
					{track_id:track_id,action:"check"}, //Post vars
					function(data){
						var sResponse = data;					
	
						if(sResponse){
							
							if(sResponse=="Add to MyCuts"){							
								$("#add_track").empty().html(sResponse).addClass("add_mycuts");
							} else {
								$("#add_track").empty().html(sResponse);
							}
						}
						
						if(sResponse!="Track already added!"){
							//Add onclick functionality
							$('#add_track').click(function(){
								
								if(temp[0]=="splay"){
									add_to_mycuts(track_id,1);	
								}else{
									add_to_mycuts(track_id);
								}
							});
						} else {
							$('#add_track').add().removeClass("add_mycuts");
							$('#add_track').add().unbind("click");
						}
							
						sResponse = null;
					}
				);
			}			
		}
		
		//Save fav
		function add_to_mycuts(track_id,sTrack){
			
			if(!sTrack)
				sTrack=null;
			
			//contact server for content
			$.post(
				'mycuts_ajax.php', //Form action
				{track_id:track_id,action:"add",strack:sTrack}, //Post vars
				function(data){
					var sResponse = data;
					//place response content
					if(sResponse=="Please login"){
					$("#add_track").empty().removeClass("add_mycuts").html(sResponse)
						.animate({opacity: 1.0}, 3000)
						.fadeOut('slow',function(){
							$("#add_track").empty();
						})
						.fadeIn('slow', function(){
							
							$("#add_track").empty().html("Add to MyCuts").addClass("add_mycuts");
						});
					} else {
						
						$("#add_track").empty().removeClass("add_mycuts").unbind("click").html(sResponse);
					}
					
					
					
					//Clear memory
					sResponse = null;
				}
			);
							
		}

/* Search for tracks based on provided keywords. */
function perform_search(sPageFocus){

	var search_string = $("#search_keywords").val();
	
	if(sPageFocus==1){
	
		/*$.post(
			'search_ajax.php',
			{search:search_string,type:"album"},
			function(data){
				//Response data
				var sResponse = data;
				var sTarget = "browse_album";
				//Process search results (if any)
				$("#"+sTarget).html(sResponse);
				
				$("#"+ sTarget +' .a_pick').click(function() {
					$("#"+ sTarget +' .a_pick').removeClass("t_sel");//clear all selections
					sId = $(this).addClass("t_sel").attr('id');//get id of selected element								
					
					if ( $("#"+sId).hasClass("album_id")) {
						getTracks("browse_track", sId); //get list of songs
					}
						
				})
				.hover(function() {
					$(this).toggleClass("t_over"); 
				}, function() { 
				 $(this).toggleClass("t_over"); 
				});
			}
		);*/
		
		//Hide album title
		$(".t_track").addClass('search_t_track');
		//Expand track title
		$(".t_album").addClass('search_t_album');
		//Hide album column
		$("#browse_album").addClass('search_browse_album');
		//Enlarge tracks column
		$("#browse_track").addClass('search_browse_track');
		
		$.post(
			'search_ajax.php',
			{search:search_string,type:"track"},
			function(data){
				//Response data
				var sResponse = data;
				var sTarget = "browse_track";
				//Process search results (if any)
				$("#browse_track").html(sResponse);
				
				$("#"+ sTarget +' .a_pick').click(function() {				
					
					$("#"+ sTarget +' .a_pick').removeClass("t_sel");//clear all selections
					sId = $(this).addClass("t_sel").attr('id');//get id of selected element								
					
					showPlayer(sId);
					
					if ($("#"+sId).hasClass("track_id")) {
						getTrackDetails(sId); //song details
					}
						
				})
				.hover(function() {
					$(this).toggleClass("t_over"); 
				}, function() { 
				 $(this).toggleClass("t_over"); 
				});
			}
		);
		
		return;
	
	} else {
		
		document.location.href = "http://www.woodcutmusic.co.nz/search.php?find="+encodeURIComponent(search_string);

	}
}

function getTracks (sTarget, sId){
	
	var sWhat = "tracks";	
	
	$.post(
		'get_cont.php',
		{sWhat:sWhat,sId:sId},
		function(data){
			//Response data
			var sResponse = data;
			
			$("#" + sTarget).html(sResponse);
			
			$("#"+ sTarget +' .a_pick').click(function() {				
			
				$("#"+ sTarget +' .a_pick').removeClass("t_sel");//clear all selections
				sId = $(this).addClass("t_sel").attr('id');//get id of selected element								
				
				if ($("#"+sId).hasClass("track_id")) {
					getTrackDetails(sId); //song details
				}
				
			}).hover(function() {
				$(this).toggleClass("t_over"); 
			}, function() { 
			 $(this).toggleClass("t_over"); 
			});
		}
	
	);
}

function getTrackDetails (sId){
	
	var sTarget = "det_view_cont";
	
//contact server for content
	$.post(
		'get_cont.php', //Form action
		{sWhat:"details",sId:sId}, //Post vars
		function(data){
			var sResponse = data;
			//place response content
			$("#"+ sTarget).removeClass("waiting").html(sResponse);
						
				//Enable Browse this album button in track details (Only on search page)
				$('#browse_album_button').show();				
			
				//song versions
				$("#track_ver .a_pick")
					.click(function() {
	
					$('#track_ver .a_pick').removeClass("sel");
					fStatus("load"); //loading message
					sTrackId = $(this).addClass("sel").attr('id'); //get the track version id
					sTrackUrl = $("#"+sTrackId).attr("rel");//get url to xml file
					sTrackTitle = "<strong>Now Playing:</strong><br/>" + $("#"+sTrackId).attr("title");//get url to xml file
					fPath = sTrackUrl;
					
					$(".play_now").empty().html(sTrackTitle);//set the "now playing title"

					//Check if track has been added to current users MyCuts.
					check_mycuts(sTrackId);
					
					var nc = Date();///get date
					sTrackUrl = sTrackUrl + "&nc=" + nc; //randomise the url to stop caching								
					fFlashMe ( "player_l", sTrackUrl);//generate flash player with the right url
					if ($("#player").hasClass("hide")){
						$("#player").slideDown("slow").removeClass("hide");
					}
						
					fStatus("clear");//clear the status
					})
					.hover(function() {
						$(this).toggleClass("over");
					}, function() { 
					 $(this).toggleClass("over");
				});
			
			sResponse = null; //clear memory
		}
	)
}

//Displays the album and associated tracks in search when 'Browse this album' button pressed.
function browseThisAlbum(){
	
	//Get album id
	var albumId = $('#cAlbum').val(); 
	var sId = "a_" + albumId; //Same as albumId but with the a_ prefix. Required by get_cont.
	
	//Display column for browsing albums as well as album column title.
	$(".t_track").removeClass('search_t_track');
	//Expand track title
	$(".t_album").removeClass('search_t_album');
	//Hide album column
	$("#browse_album").removeClass('search_browse_album');
	//Enlarge tracks column
	$("#browse_track").removeClass('search_browse_track');
	
	//Set target column to display response data
	var sTarget = "browse_album";
	
	//contact server for content
	$.post(
		'get_cont.php', //Form action
		{sWhat:"album",aId:albumId}, //Post vars
		function(data){
			var sResponse = data;
			
			//place response content
			$("#"+ sTarget).removeClass("waiting").html(sResponse);
			
			$("#"+ sTarget +' .a_pick').removeClass("t_sel");//clear all selections

			if ( $("#"+sId).hasClass("album_id")) {				
				fGet("tracks", "browse_track", sId, true); //get list of songs
			} 
			
			//if after selectable content ie. lists
			$("#"+ sTarget +' .a_pick')
			.hover(function() {
					$(this).toggleClass("t_over"); 
				}, function() { 
				 $(this).toggleClass("t_over"); 
			});
				/*.click(function() {
					$("#"+ sTarget +' .a_pick').removeClass("t_sel");//clear all selections
					sId = $(this).addClass("t_sel").attr('id');//get id of selected element		
					
					if ( $("#"+sId).hasClass("album_id")) {
						fGet("tracks", "browse_track", sId, true); //get list of songs
					} 					
				})*/
			
			sResponse = null; //clear memory
		}
	);
	fStatus("clear");//clear the status
}
