var selectedItemIndex = 0;

/***************************************************/
/******** ADDING/DELETING TO PLAYLIST ****************/

function addSongToBasketList(id, title, artist, album,  price, formatString,  url) {
	var playlist = readCookie('PlayList');
	var songEntry = id+'%%'+title+'%%'+artist+'%%'+album+'%%'+price+'%%'+formatString+'%%'+url;  
	if (playlist == null) {
		createCookie('PlayList', songEntry, 30);
	} else {
		// Do not store duplicate ids
		var index = 0;
		var songs = playlist.split('::');
		for (var i = 0; i < songs.length; i++) {
			index++;
			var songId = songs[i].split('%%')[0];
			if (id == songId) {
				// id already exists in cookie...
				// set as selected but do not add to cookie
				changeSelectedTo(index-1);	
				return true;
			}
		}
		// id isn't in cookie so we add it..
		createCookie('PlayList', playlist+'::'+songEntry, 30);
		//set selected to this last added clip
		changeSelectedTo(index);
	} 
}

function addAlbumToBasketList(id, artist, album,  price, formatString) {
	var emptyField = "---";
	var playlist = readCookie('PlayList');
	var songEntry = id+'%%'+emptyField+'%%'+artist+'%%'+album+'%%'+price+'%%'+formatString+'%%'+emptyField;  	
	if (playlist == null) {
		// alert('plnull');
		createCookie('PlayList', songEntry, 30);
	} else {
		// alert('nonull.playlist='+playlist);
		// Do not store duplicate ids
		var songs = playlist.split('::');
		for (var i = 0; i < songs.length; i++) {
			var songId = songs[i].split('%%')[0];
			if (id == songId) {
				// id already exists in cookie...
				changeSelectedTo(i);
				return true;
			}
		}
		// id isn't in cookie so we add it..
		createCookie('PlayList', playlist+'::'+songEntry, 30);
	} 
}

/*get the selected item displayed in the player, but don't start playing*/
function initPlayList(){
	initSelection();
	var playlist = readCookie('PlayList');
	if(playlist != null){
		var songs = playlist.split('::');
		for (var i = 0; i < songs.length; i++) {
		 	if(i == selectedItemIndex){
				addSongToPlayer(songs[i].split('%%'));
				break;
			}
		}
	}
}

/***************************************************/
/******** SELECTED/PLAYING INDEX HANDLING **********/
/***************************************************/


// Play clip with specified id
function playSelected(imgDir) {
	var playlist = readCookie('PlayList');
	if (playlist != null) {
		var songs = playlist.split('::');
		for (var i = 0; i < songs.length; i++) {
			if (i == selectedItemIndex) {
				// Found the right song
				addSongToPlayer(songs[i].split('%%'));	
				unsetBtnPlay(imgDir);
				playURL(songs[i].split('%%')[6]);
				break;
			}
		}
	}
	return false;	
}	

//take array and split up
function addSongToPlayer(song){
	if(song instanceof(Array)){
		id = song[0];
		trackName=song[1];	
		artistName = song[2];		
		if(trackName.length > 20){
			trackName = trackName.substring(0,18) + "..";
		}
		if(artistName.length > 20){
			artistName = artistName.substring(0,18) + "..";
		}
		document.getElementById('trackNameClip').innerHTML = trackName;
		document.getElementById('artistNameClip').innerHTML = artistName;
		document.getElementById('buyClip').onclick = function(){
			basketForm = document.getElementById('basketAdd');
			try{										
				basketForm.itemId.value = id;	
				basketForm.singleItem.value = true;		
				basketForm.submit();
				return true;
			}
			catch(err){alert(err.Description);}	
			return false;				
		} 
	}
	else{
		//alert('song not array');
	}
}

function playURL(clipURL){


document.getElementById("playme").innerHTML='<OBJECT ID="mediaPlayer" ' +  
  ' CLASSID="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"  ' +
  ' CODEBASE="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" ' +
  ' STANDBY="Laddar Microsoft Windows Media Player komponenter..." ' +
  ' TYPE="application/x-oleobject">' +
  ' <PARAM NAME="fileName" VALUE="' + clipURL + '">' +
  ' <PARAM NAME="animationatStart" VALUE="false">' +
  ' <PARAM NAME="transparentatStart" VALUE="false">' +
  ' <PARAM NAME="autoStart" VALUE="true">' +
  ' <PARAM NAME="showControls" VALUE="false">' +
' <EMBED type="application/x-mplayer2" ' +
' pluginspage = "http://www.microsoft.com/Windows/MediaPlayer/"' +
' SRC="' + clipURL + '"' +
' name="MediaPlayer1"' +
' width=0' +
' height=0' +
' AutoStart=true' +
' showControls=false' +
' >' +
' </EMBED>' +
' </OBJECT>';


	//if(navigator.userAgent.indexOf("Firefox") != -1){
	//	document.getElementById("playme").innerHTML="<embed src='"+clipURL+"' hidden=true autostart=true loop=false>";
	//}
	//else{
	//	document.getElementById("playme").innerHTML=
	//	'<OBJECT ID="mediaPlayer" CLASSID="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" CODEBASE="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" STANDBY="Laddar Microsoft Windows Media Player komponenter..." TYPE="application/x-oleobject"><PARAM NAME="fileName" VALUE="'+clipURL+'"><PARAM NAME="animationatStart" VALUE="false"><PARAM NAME="transparentatStart" VALUE="false"><PARAM NAME="autoStart" VALUE="true"><PARAM NAME="showControls" VALUE="false"><PARAM NAME="hidden" VALUE="true"><EMBED type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" SRC="'+clipURL+'" name="MediaPlayer1" hidden="true" AutoStart="true" showControls="false"></EMBED></OBJECT>';
	//}	
	return false;	
}

// Play clip with specified id
// deprecated, use playSelected in combination with set changeSelectedTo
function play(id,imgDir) {	
	var playlist = readCookie('PlayList');
	if (playlist != null) {
		var songs = playlist.split('::');
		for (var i = 0; i < songs.length; i++) {
			var songId = songs[i].split('%%')[0];
			if (id == songId) {
				// Found the right song			
				addSongToPlayer(songs[i].split('%%'));
				unsetBtnPlay(imgDir)
				playURL(songs[i].split('%%')[6]);
				break;
			}
		}
	}
	return false;	
}	

function stopPlaying(imgDir) {
	document.getElementById("playme").innerHTML="";
	setBtnPlay(imgDir);
	return false;
}

function initSelection(){
	var savedSelectedItem = readCookie('SelectedItem');
	if(savedSelectedItem == null) {
		changeSelectedTo(0);
	} else {
		eraseCookie('SelectedItem');
		changeSelectedTo(savedSelectedItem);		
	} 
}

function getCurrentNumberOfItems(){
	var playlist = readCookie('PlayList');
	if (playlist == null) {
		return 0;
	}
	else{
		var songs = playlist.split('::');
		return songs.length;
	}
}

function increaseSelected() {
	if(selectedItemIndex<(getCurrentNumberOfItems()-1)) {
		var newIdx = selectedItemIndex;
		newIdx++;
		changeSelectedTo(newIdx);
	}
}
function decreaseSelected() {
	if(selectedItemIndex>0) {
		changeSelectedTo(selectedItemIndex-1);
	}
}
function changeSelectedTo(newIdx) {
	selectedItemIndex=newIdx;	
	createCookie('SelectedItem', selectedItemIndex, 1);
}


/*********************************************************/
/******** PLAYER BUTTONS ********************************/
/***************************************************/

function toggleBtnPlay(imgDir){
	img = document.getElementById("play_stop_img");
	if (img.src.indexOf("play_track_btn.png")!= -1) {				
		playSelected(imgDir);
	} else {		
		stopPlaying(imgDir);
	}	
	return false;
}

function setBtnPlay(imgDir){
	img = document.getElementById("play_stop_img");
	img.src = imgDir + "play_track_btn.png";
	return false;	
}

function unsetBtnPlay(imgDir){
	img = document.getElementById("play_stop_img");
	img.src = imgDir + "stop_track_btn.png";	
	return false;
}

/*********************************************************/
/******** COOKIE HANDLING ********************************/
/***************************************************/

function createCookie(name,value,minutes) {
	if (minutes) {
		var date = new Date();
		date.setTime(date.getTime()+(minutes*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

/*********************************************************/
/******** HELPER FUNCTIONS ********************************/
/***************************************************/
function arrContainsString(arr, string) {
	for(x in arr) {
		if(arr[x]==string) {
			return true;
		}	
	}
	return false;
}

