/////////////////////////////////////////////////////////////////
if(typeof(console) === 'undefined') {
    var console = {};
    console.log = console.error = console.info = console.debug = console.warn = console.trace = console.dir = console.dirxml = console.group = console.groupEnd = console.time = console.timeEnd = console.assert = console.profile = function() {};
}

// Global vars
var hash = "MT";
var quickJump = false;
var quickZoom = false;
var bodyID;
var cycle_current = 0;
var cycle_total = 0;
var s3content = "http://leviev.s3.amazonaws.com/content/";
var s3catalogue = "http://leviev.s3.amazonaws.com/catalogue/";
var catFilenameArray;
var catFullPosition = 0;
var iPad = navigator.userAgent.match(/iPad/i) != null;
var musicPlaying;


$(document).ready(function(){
	
	/////////////////////////////////////////////////////////////
	// Frame deep-linking

	// Locations deep-linking on page load
	if (window.location.hash != null){

		hash = window.location.hash;
		
		if( hash.length >= 2  ) {
			
			goTo = hash.substring(2);
			checkRootForDeeplink(goTo);
			
		}	
	}
	
	// Stores the value of percentage of track loaded
	var global_lp = 0;

	$("#jquery_jplayer").jPlayer({
		ready: function () {
			this.element.jPlayer("setFile", "http://leviev.s3.amazonaws.com/music/leviev-music.mp3").jPlayer("play");	//	pause	play

			musicPlaying = true;
	
			// Draw the control bar

			var ctrlBar = "";

			for (i=0; i < 100; i++){
 				ctrlBar = ctrlBar + "<a href='#' id='lb-"+i+"'>|</a>";
			}

			$('#player_progress_ctrl_bar').html(ctrlBar);

			demoInstanceInfo(this.element, $("#demo_info")); // This displays information about jPlayer's configuration in the demo page
		},
		customCssIds: true
	})
	.jPlayer("onProgressChange", function(lp,ppr,ppa,pt,tt) {
 		var lpInt = parseInt(lp);
 		var ppaInt = parseInt(ppa);

 		global_lp = lpInt;

 		var loadBar = "";
 		for (l=0; l < lpInt; l++){
 			loadBar = loadBar + "|";
 		}

 		var playBar = "";
 		for (i=0; i < ppaInt; i++){
 			playBar = playBar + "|";
 		}

 		$('#player_progress_play_bar').text(playBar);
 		$('#player_progress_load_bar').text(loadBar);
	})
	.jPlayer("onSoundComplete", function() {
		this.element.jPlayer("play");
	});

	$("#player_play").click( function() {
		$('#jquery_jplayer').jPlayer("play");
		$(this).blur();
		return false;
	});

	$("#player_pause").click( function() {
		$('#jquery_jplayer').jPlayer("pause");
		$(this).blur();
		return false;
	});

	$("#player_stop").click( function() {
		$('#jquery_jplayer').jPlayer("stop");
		$(this).blur();
		return false;
	});

	$("#player_volume_min").click( function() {
		$('#jquery_jplayer').jPlayer("volume", 0);
		$(this).blur();
		return false;
	});

	$("#player_volume_max").click( function() {
		$('#jquery_jplayer').jPlayer("volume", 100);
		$(this).blur();
		return false;
	});

	$("#player_progress_ctrl_bar a").live( "click", function() {
		$("#jquery_jplayer").jPlayer("playHead", this.id.substring(3)*(100.0/global_lp));
		$(this).blur();
		return false;
	});

	/////////////////////////////////////////////////////////////
	
}); // End (document).ready


function demoInstanceInfo(myPlayer, myInfo) {
	var jPlayerInfo = "<p>This jPlayer instance is running in your browser using ";

	if(myPlayer.jPlayer("getData", "usingFlash")) {
		jPlayerInfo += "<strong>Flash</strong> with ";
	} else {
		jPlayerInfo += "<strong>HTML5</strong> with ";
	}
	
	if(myPlayer.jPlayer("getData", "usingMP3")) {
		jPlayerInfo += "<strong>MP3</strong>";
	} else {
		jPlayerInfo += "<strong>OGG</strong>";
	}
	
	
	jPlayerInfo += " files.<br />This instance is using the constructor options:<br /><code>$(\"#" + myPlayer.jPlayer("getData", "id") + "\").jPlayer({<br />";
	
	jPlayerInfo += "&nbsp;&nbsp;&nbsp;nativeSupport: " + myPlayer.jPlayer("getData", "nativeSupport");
	jPlayerInfo += ", oggSupport: " + myPlayer.jPlayer("getData", "oggSupport");
	jPlayerInfo += ", customCssIds: " + myPlayer.jPlayer("getData", "customCssIds");
	
	jPlayerInfo += "<br />});</code></p>";
	myInfo.html(jPlayerInfo);
}

function demoStatusInfo(myPlayer, myInfo) {
	var jPlayerStatus = "<p>jPlayer is ";
	jPlayerStatus += (myPlayer.jPlayer("getData", "diag.isPlaying") ? "playing" : "stopped");
	jPlayerStatus += " at time: " + Math.floor(myPlayer.jPlayer("getData", "diag.playedTime")) + "ms.";
	jPlayerStatus += " (tt: " + Math.floor(myPlayer.jPlayer("getData", "diag.totalTime")) + "ms";
	jPlayerStatus += ", lp: " + Math.floor(myPlayer.jPlayer("getData", "diag.loadPercent")) + "%";
	jPlayerStatus += ", ppr: " + Math.floor(myPlayer.jPlayer("getData", "diag.playedPercentRelative")) + "%";
	jPlayerStatus += ", ppa: " + Math.floor(myPlayer.jPlayer("getData", "diag.playedPercentAbsolute")) + "%)</p>";
	myInfo.html(jPlayerStatus);
}

/////////////////////////////////////////////////////////////////

function pressPlayFrame() {

	$("#player_play").click();
	musicPlaying = true;
	
}

function pressPauseFrame() {

	$("#player_pause").click();
	musicPlaying = false;
	
}

/////////////////////////////////////////////////////////////////

function setLocationHash(value){
	window.location.hash = "/"+value;
	return false;
}

/////////////////////////////////////////////////////////////////

function checkRootForDeeplink(newFilename){
	
	str = newFilename.replace("%23", "#");

	var splitName = newFilename.split(".php");

	url = "directoryListing.php?directory=./&extension=.php";

	$.get(url, function(data) {
	
		var filenameArray = data.split(",");
		
		for ( var h = 0; h < filenameArray.length; h++) {
			
			if ( (splitName[0] + ".php") == filenameArray[h] ) {
			
				$("#mainFrame").attr("src", str);
			
			}
		}
	});	
}

/////////////////////////////////////////////////////////////////

function updateParentFrame() {
	document.getElementById('mainFrame').contentWindow.adjustParentWindow(musicPlaying);
}
