/* Player functions */

var volume_set = false;

function playTrack(catno) {

	if (catno != "") {
		
		addRecent(catno);
		
		// get info about track
		$w1.get('playtrackinfo.php', { catno: catno }, function (data) {
															 
			data = data.replace("&#39;","");
			data = data.replace("\n","");
			data = data.replace("\r","");
			var splitdiv=data.split("|||");
			var playcomposer=splitdiv[0];
			var playtitle=splitdiv[1];
			var playalbum=splitdiv[2];
			var playfile= "../" + splitdiv[3];
			var playduration=parseInt(splitdiv[4],10);
			var playbytes=parseInt(splitdiv[5],10);
			
			// show sidebar details
			$w1("#sidebar_container_player").show();
			$w1("#sidebar_track_title").text(playtitle);
			
			// fire the audio player function and give it data
			JSStream(playcomposer,playtitle,playalbum,playfile,playduration,playbytes);

		});
		
	// end if catno not blank
	}
	
}

function addRecent(catno) {
	$w1.get('tracks_recent.php?catno=' + catno);
}

//Messages: control to sound
//--------------------------------------------------------------
function pauseSound( ){ 
	getMovie("sound_swf_solo").pauseSound();
	$w1("#curent_playstate").val("pause");
}
function resumeSound( ){ 
	getMovie("sound_swf_solo").resumeSound(); 
	$w1("#curent_playstate").val("play");
}

function fastForward( ){ getMovie("sound_swf_solo").fastForward(); }
function rewind( ){ getMovie("sound_swf_solo").rewind(); }
function setVolume( vol ){ getMovie("sound_swf_solo").setVolume(vol); }
function getTrackDetails( ){ getMovie("sound_swf_solo").getTrackDetails( ); }
function setSongPosition( percent ){ getMovie("sound_swf_solo").setSongPosition( percent );  }
function stopSound(){ getMovie("sound_swf_solo").stopSound(); }


//Messages: sound to control
//--------------------------------------------------------------
function sendPercentSongLoaded( percent ){ 
	// set hidden form var so other funcs know how far loaded track is
	$w1("#current_percent").val(percent);
}

function sendSongPosition( position ){ 
	// alert( position ); 
}
function setTrackDetails( details ){ 
	// alert(details);
}

function setDurationString( duration ){ 
	
	var catno = $w1("#current_playing").val();
	
	var playMouseOver = $w1("#current_playmouseover").val();
	
	// calc % played from 0:00 / 0:00 string
	var durStringSplit = duration.split(" / ");
	var curTimeSplit = durStringSplit[0].split(":");
	var percLoaded = $w1("#current_percent").val();
	
	if (percLoaded == 100) {
		var totTimeSplit = durStringSplit[1].split(":");
	} else {
		var dataTime = $w1("#album_tracklist_track_time" + catno).text();
		var totTimeSplit = dataTime.split(":");
	}
	
	curTimeSplit[0] = parseInt(curTimeSplit[0],10);
	curTimeSplit[1] = parseInt(curTimeSplit[1],10);
	totTimeSplit[0] = parseInt(totTimeSplit[0],10);
	totTimeSplit[1] = parseInt(totTimeSplit[1],10);
	var curSecs = (curTimeSplit[0] * 60) + curTimeSplit[1];
	var totSecs = (totTimeSplit[0] * 60) + totTimeSplit[1];
	
	var percTime = (curSecs / totSecs) * 100;
	percTime = Math.round(percTime*100)/100;
	
	// if track 100% played (and has played some to stop initial value of 0:00 to 0:00 = 100%)
	if (percTime == 100 && curSecs > 0) {
		
		resetButtons();
		
		stopSound();
		setSongPosition(0);
		
	}	
	
	// set widths
	$w1("#album_tracklist_track_play" + catno).css("width" , percTime + '%');
	$w1("#album_tracklist_track_load" + catno).css("width" , percLoaded + '%');
	
	
	
	// set time display
	if (percTime != 0) {
		$w1("#album_tracklist_track_current_time" + catno).text('(' + durStringSplit[0] + ')');
		$w1("#album_tracklist_track_current_time" + catno).show();
		$w1("#sidebar_track_title_time").text('(' + duration + ')');
		$w1("#sidebar_track_title_time").show();
	} else {
		$w1("#album_tracklist_track_current_time" + catno).hide();
		$w1("#sidebar_track_title_time").text("");
	}
	//
	
	
	// update relevant play width if not hovering over play area for resize
	if (playMouseOver != "true" && playMouseOver != "drag") {
		$w1("#album_tracklist_track_play" + catno).css("width" , percTime + '%');
	}
	
	setVolume($w1("#sidebar_volume_control").slider("value"));
}


function disableSelection(element) {
    element.onselectstart = function() {
        return false;
    };
    element.unselectable = "on";
    element.style.MozUserSelect = "none";
    element.style.cursor = "default";
}

function checkPlayShowing() {
	// check if container showing
	// get versionof catno and check if button visible and show by clicking the show versions button if not
	var catno = $w1("#current_playing").val();
	if (document.getElementById('album_tracklist_versions_versionof' + catno)) {
		
		var catnoSplit = catno.split("_");
		var versionofTrackno = $w1("#album_tracklist_versions_versionof" + catno).val();
		versionofTrackno = String("00" + versionofTrackno).slice(-3);
		versionofCatno = catnoSplit[0] + "_" + catnoSplit[1] + "_" + catnoSplit[2] + "_" + versionofTrackno + "01";

		var albumTracklistFull = document.getElementById("album_tracklist_full" + versionofCatno);
		if (albumTracklistFull.style.display == "none" || albumTracklistFull.style.display == "") {
			$w1("#album_tracklist_version_button" + versionofCatno).click();
		}
	}
}

function resetPlayer(){
	// return all indicator divs to 0%

	$w1("div.album_tracklist_track_load").css("width" , "0%");
	$w1("div.album_tracklist_track_play").css("width" , "0%");
	// hide all current times
	$w1("div.album_tracklist_track_current_time").hide();
	
	resetIcons();
	
	
}

function JSStream(composer, title, album, file, duration, bytes)
{

	// dumpProps(getMovie("sound_swf"));
	getMovie("sound_swf_solo").playSound(composer, title, album, file, duration, bytes);
	$w1("#current_playstate").val("play");
}

function getMovie(movieName) 
{
	if (navigator.appName.indexOf("Microsoft") != -1) 
	{
		return document.getElementById(movieName);
	}
	else 
	{
		return document[movieName];
	}
}

function resetIcons(){
	$w1("div.album_tracklist_track_buttons_img_pause").hide();
	$w1("div.album_tracklist_track_buttons_img_resume").hide();
	$w1("div.album_tracklist_track_buttons_img_play").show();
	
	// sidebar buttons
	$w1("#sidebar_track_play").show();
	$w1("#sidebar_track_pause").hide();
	$w1("#sidebar_track_resume").hide();
}

function resetButtons(){
	
	$w1("div.album_tracklist_track_buttons_img_play").show();
	$w1("div.album_tracklist_track_buttons_img_resume").hide();
	$w1("div.album_tracklist_track_buttons_img_pause").hide();
	
	// sidebar buttons
	$w1("#sidebar_track_play").show();
	$w1("#sidebar_track_pause").hide();
	$w1("#sidebar_track_resume").hide();
}

function paginateCatalogueContent(){

	var target = ".catalogue_list_item";
	
	if($w1("#current_genre").val() != "All"){

		 target += "[genre*='"+$w1("#current_genre").val()+"']";
	}
	
	if($w1("#current_catalogue").val() != "All"){

		 target += "[rel='"+$w1("#current_catalogue").val()+"']";
	}

	$w1("#catalogue_nav_container").text("");
	$w1(".catalogue_list_item").hide();
	$w1(target).quickpaginate({
			perpage: 20,
			showcounter: true,
			pager: $w1("#catalogue_nav_container")
	});
	
	results = ($w1(target).length)? true: false;
	
	
	setBreadCrumbs(results);
	$w1('html, body').animate({scrollTop:0}, 'fast');

}

function setBreadCrumbs(results){

	$w1("#genre_text").hide();
	
	if($w1("#current_genre").val() != "All"){

		if(results){
			
			var content = "<p id=\"genre_text\">Current genre filter: <span id=\"genre_label\">" + $w1("#current_genre").val() + "</span> (<a href=\"" + location.href + "\" id=\"reset_genre\">Reset</a>)</p>";	
		}else{
			var content = "<p id=\"genre_text\">No albums found for <span id=\"genre_label\">" + $w1("#current_genre").val() + "</span>, please try another genre from the left. (<a href=\"" + location.href + "\" id=\"reset_genre\">Reset</a>)</p>"
			
		}	
		 $w1("#genre_text").html(content); 	
	 	 $w1("#genre_text").show();
	}
	
	if($w1("#current_catalogue").val() != "All"){

		 $w1("#catalogue_title").text($w1(".catalogue_link[rel='" + $w1("#current_catalogue").val()+"']").text());
		 
	}else{
		
		$w1("#catalogue_title").text("Music Catalogues");
	}
	
	
}

/*Project related functions*/

function updateProjectAddId() {
	var projectAddId = $w1('#project_select').val();
	$w1('#project_add_id').val(projectAddId);
}


function updateProjectList() {
	// if projects showing update them
	loadingProjList();
	if (document.getElementById("account_projectlist_tracklist_container")) {
		$w1('#account_projectlist_tracklist_container').load('projects_list.php');
	}
}

function loadingProjList() {
	if (document.getElementById("account_projectlist_tracklist_container")) {
		$w1('#account_projectlist_tracklist_container').html('<div style="padding:5px;font-size:12px;font-weight:bold;">Loading...</div>');
	}
}

function clearProjectAddName() {
	$w1('#project_add_name').val("");
	$w1('#project_select').val("");
}

function changeProjectAddName() {
	var projectAddName = $w1('#project_add_name').val();
	$w1('#project_add_name_page').val(projectAddName);
}

function updateProjectAddId() {
	var projectAddId = $w1('#project_select').val();
	$w1('#project_add_id').val(projectAddId);
}

function addTrack(catno) { // popup select project
	// get projects list for client_id
	catno = catno.replace(/^\d_/,"");
	$w1.get('projects_get.php?list=select', function(data) {
		$w1("#popup_title").html('Add track to project');
		var listExisting = '';
		if (data != "") {
			var listExisting = 'or select an existing project from:<br><br>' + data + '<br><br>';
		}
		$w1("#popup_content").html('<input type="text" name="project_add_name" id="project_add_name" value="Type new project name" onfocus="clearProjectAddName();" onchange="changeProjectAddName();" /><br><br>' + listExisting + '<input type="submit" value="Add track" onclick="addTrackDB(\'' + catno + '\')">');
		showPopup();
	});
}

function addTrackDB(catno) {
	catno = catno.replace(/^\d_/,"");
	var projectId = $w1('#project_select').val();
	var projectName = $w1('#project_add_name').val();
	$w1.get('projects_add_track.php?catno=' + catno + '&project_id=' + projectId + '&project_name=' + urlencode(projectName), function() {
		updateProjectList();																					   
		$w1("#popup_content").html('Track<br>added');
		setTimeout('hidePopup()',1000);
		$w1.scrollTo('#account_projectlist_tracklist_container', 500);
	});
}

function removeTrack(catno,projectId) { // popup confirm delete
	$w1.get('tracks_get.php?catno=' + catno + '&echo=true', function(data) {
		var dataSplit = data.split('|||');
		var trackName = dataSplit[1];
		$w1("#popup_title").html('Confirm track deletion');
		$w1("#popup_content").html('Delete ' + trackName + '?<br><br><input type="reset" value="Cancel" onclick="cancelPopup(' + projectId + ');"><input type="submit" value="Delete" onclick="deleteTrack(\'' + catno + '\',\'' + projectId + '\');">');
		showPopup();
   });
}

function deleteTrack(catno,projectId) {

	loadingProjList();
	$w1("#popup_content").html('Deleting...');
	// delete from db
	$w1.get('projects_delete_track.php?project_id=' + projectId + '&catno=' + catno, function() {
		updateProjectList();																					   
		$w1("#popup_content").html('Track<br>deleted');
		setTimeout('hidePopup()',1000);
		$w1.scrollTo('#account_projectlist_tracklist_container', 500);
   });
}

function downloadTrack(catno) { // popup confirm delete
	catno = catno.replace(/^\d_/,"");
	$w1.get('tracks_get.php?catno=' + catno, function(data) {
		var dataSplit = data.split('|||');
		var trackName = urlencode(dataSplit[1]);
		var trackComp = dataSplit[6];
		
		// include checks for existing files
		var mp3Exists = '';
		if (dataSplit[12].indexOf('true') > -1) mp3Exists = '<a href="download.php?track=' + catno + '&type=mp3&tracktitle=' + urlencode(trackName) + '&trackcomp=' + urlencode(trackComp) + '&refer=' + urlencode(window.location.hash) + '" onclick="setTimeout(\'hidePopup()\',1000);">mp3</a>';
		var wavExists = '';
		if (dataSplit[13].indexOf('true') > -1) wavExists = '<br><a href="download.php?track=' + catno + '&type=wav&tracktitle=' + urlencode(trackName) + '&trackcomp=' + urlencode(trackComp) + '&refer=' + urlencode(window.location.hash) + '" onclick="setTimeout(\'hidePopup()\',1000);">wav</a>';
		var noneExists = '<br><br>';
		if (mp3Exists == '' && wavExists == '') noneExists = 'Sorry we could not retrieve any file types for you to download. <a href="contact">Please contact us</a><br><br>';
		
		$w1("#popup_title").html('Download Track');
		$w1("#popup_content").html('Download<br>' + urldecode(trackName) + '<br>as:<br><br>' + mp3Exists + wavExists + noneExists + '<input type="reset" value="Cancel" onclick="cancelPopup();">');
		showPopup();
	 });
}

function downloadAlbum(catno) { // popup confirm delete
	$w1.get('album_get.php?catno=' + catno, function(data) {
		var dataSplit = data.split('|||');
		var albumName = urlencode(dataSplit[0]);
		$w1("#popup_title").html('Download Album');
		$w1("#popup_content").html('Download<br>' + urldecode(albumName) + '<br>as:<br><br><a href="download_album_zip.php?album=' + catno + '&type=mp3" onclick="setTimeout(\'hidePopup()\',1000);">mp3</a><br><a href="download_album_zip.php?album=' + catno + '&type=wav" onclick="setTimeout(\'hidePopup()\',1000);">wav</a><br><br><input type="reset" value="Cancel" onclick="cancelPopup();"><br><br><span style="font-size:10px; font-weight:bold;">After you click a link your album will be zipped up and your download will begin. This can take a while depending on the number of tracks in the album. You can navigate around the West One Music site but please don\'t navigate away until your download has begun.</span>');
		showPopup();
	 });
}

function deleteProject(projectId) { // popup confirm delete
	$w1.get('projects_get.php?list=|||&single=' + projectId, function(data) {
		var dataSplit = data.split('---');
		var projectName = dataSplit[1];
		$w1("#popup_title").html('Confirm project deletion');
		$w1("#popup_content").html('Delete ' + projectName + '?<br><br><input type="reset" value="Cancel" onclick="cancelPopup(' + projectId + ');"> <input type="submit" value="Delete" onclick="deleteProjectDB(\'' + projectId + '\');">');
		showPopup();
	 });
}

function deleteProjectDB(projectId) {
	loadingProjList();
	$w1("#popup_content").html('Deleting...');
	// delete from db
	$w1.get('projects_delete_project.php?project_id=' + projectId, function() {
		updateProjectList();																					   
		$w1("#popup_content").html('Project<br>deleted');
		setTimeout('hidePopup()',1000);
   });
}

function addAlbum(catno) { // popup select project
	// get projects list for client_id
	catno = catno.replace(/^\d_/,"");
	$w1.get('projects_get.php?list=select', function(data) {
		$w1("#popup_title").html('Add album to project');
		var listExisting = '';
		if (data != "") {
			var listExisting = 'or select an existing project from:<br><br>' + data + '<br><br>';
		}
		$w1("#popup_content").html('<input type="text" name="project_add_name" id="project_add_name" value="Type new project name" onfocus="clearProjectAddName();" onchange="changeProjectAddName();" /><br><br>' + listExisting + '<input type="submit" value="Add album" onclick="addAlbumDB(\'' + catno + '\')">');
		showPopup();
	});
}

function addAlbumDB(catno) {
	catno = catno.replace(/^\d_/,"");
	var projectId = $w1('#project_select').val();
	var projectName = $w1('#project_add_name').val();
	$w1("#popup_content").html('Adding...');
	$w1.get('projects_add_track.php?catno=' + catno + '&project_id=' + projectId + '&project_name=' + urlencode(projectName), function() {
		updateProjectList();																					   
		$w1("#popup_content").html('Album<br>added');
		setTimeout('hidePopup()',1000);
	});
}

function downloadProject(projectId) { // popup confirm delete
	$w1.get('projects_get.php?list=|||&single=' + projectId, function(data) {
		var dataSplit = data.split('---');
		var projectName = dataSplit[1];
		$w1("#popup_title").html('Download Project');
		$w1("#popup_content").html('Download<br>' + projectName + '<br>as:<br><br><a href="download_project.php?project_id=' + projectId + '&type=mp3" onclick="setTimeout(\'hidePopup()\',1000);">mp3</a><br><a href="download_project.php?project_id=' + projectId + '&type=wav" onclick="setTimeout(\'hidePopup()\',1000);">wav</a><br><br><span style="font-size:10px; font-weight:bold;">After you click a link your project will be zipped up and your download will begin. This can take a while depending on the number of tracks in your project. You can navigate around the West One Music site but please don\'t navigate away until your download has begun.</span>');
		showPopup();
	 });
}

function sidebarNewProj() {
	
	loadingProjList();
	var projectName = $w1('#sidebar_newproj_input').val();
	$w1.get('projects_add_project.php?project_name=' + urlencode(projectName),function() {
		updateProjectList();																					   
	});
}