var name = 'CRPLAYLIST';
var ENDCHAR = '#|#';
var SEPCHAR = '#,#';
var COMACHAR = '#c#';
var audioPlaylist = new Array();
var audioPlaylistString='';
var expires ='';
var path ='/';
var domain = window.location.hostname;
var secure ='';

var audioElements = [];
var audioSortIds = [];

// PlayListItem
var PlayListItem = function(audioId, audioTitle,audioPrograma, audioDate, audioDuration,audioImage,audioDescarrega,audioProgramaId,audioEscapetitle){
	
	this.Id = audioId;
	this.Title = audioTitle;
	this.Date = audioDate;
	this.Programa = audioPrograma;
	this.Duration = audioDuration;
	this.Image = audioImage;
	this.Descarrega = audioDescarrega;
	this.ProgramaId = audioProgramaId;
	this.EscapeTitle = audioEscapetitle;
	
};

PlayListItem.prototype.serialize = function(){ 
	serialize = this.Id + SEPCHAR + escapeComa(this.Title) + SEPCHAR+ escapeComa(this.Programa) + SEPCHAR + this.Date + SEPCHAR + this.Duration + SEPCHAR + this.Image + SEPCHAR + this.Descarrega + SEPCHAR + this.ProgramaId + SEPCHAR + this.EscapeTitle;
	return serialize;
};

function escapeComa(comastring)
{
	return comastring.replace("," , COMACHAR);
}

function unescapeComa(comastring)
{
	return comastring.replace(COMACHAR,",");
}


function deserializePlayListString(playliststring)
{

	ArraySerializedItems = playliststring.split(ENDCHAR);

	ArraySerializedItems.each( function(item, index){
		audioPlaylist[index]=desearializePlayListItem(item);
	} );

	
}

function desearializePlayListItem(item)
{
  var ListItem = new PlayListItem();
  arrayItem = item.split(SEPCHAR);
  ListItem.Id = arrayItem[0];
  ListItem.Title = unescapeComa(arrayItem[1]);
  ListItem.Programa = unescapeComa(arrayItem[2]);
  ListItem.Date = arrayItem[3];
  ListItem.Duration = arrayItem[4];
  ListItem.Image = arrayItem[5];
  ListItem.Descarrega = arrayItem[6];
  ListItem.ProgramaId = arrayItem[7];
  ListItem.EscapeTitle = arrayItem[8];
  
  return ListItem;
}

/*
function checkIfPlaylistcookie()
{
	var currcookieValue= getPlayListCookie();
	var check=false;
	if(currcookieValue != null)
	{
		audioPlaylist = currcookieValue.split(ENDCHAR);
		check = true;
	}
	else
	{
		setCookie();
	}
	return check;
}
*/
function checkIfPlaylistcookie()
{
	getPlayListCookie();
	var check=false;
	if(audioPlaylist != null && audioPlaylist.length != 0)
	{
	
		check = true;
	}
	else
	{
		setCookie();
	}
	return check;
}


function getPlayListCookie() {
  var start = document.cookie.indexOf( name + "=" );
  var len = start + name.length + 1;
  if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
    return null;
  }
  if ( start == -1 ) return null;
  var end = document.cookie.indexOf( ";", len );
  if ( end == -1 ) end = document.cookie.length;
  var  cookvalue = unescape(document.cookie.substring( len, end ));
  if(cookvalue !="null" && cookvalue !="")
  {
	  
	  audioPlaylist=StringArray2ObjectArray(cookvalue.split(ENDCHAR));
  /*cookieValue = document.cookie.substring( len, end );
  audioPlaylist= cookieValue.split(',');*/
  return unescape( document.cookie.substring( len, end ) );
  }
  audioPlaylist = null;
  return null;
 
  
}

function StringArray2ObjectArray(stringarray)
{
	
	var PlayList = new Array();
	for(i=0; i<stringarray.length;i++)
	{
		var item = desearializePlayListItem(stringarray[i]);
		PlayList.push(item);
		
	}
	return PlayList;
}

function setCookie() {
  var today = new Date();
  today.setTime( today.getTime() );
  
  var expires = 9000 * 1000 * 60 * 60 * 24;
  
  var expires_date = new Date( today.getTime() + (expires) );
  document.cookie = name+"="+escape( arrayPlaylistToString() ) +
    ( ( expires ) ? ";expires="+expires_date.toGMTString() : "" ) + //expires.toGMTString()
    ( ( path ) ? ";path=" + path : "" ) +
    ( ( domain ) ? ";domain=" + domain : "" ) +
    ( ( secure ) ? ";secure" : "" );
}

function deleteCookie() {
  if ( getCookie( name ) ) document.cookie = name + "=" +
    ( ( path ) ? ";path=" + path : "") +
    ( ( domain ) ? ";domain=" + domain : "" ) +
    ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

function addAudio(itemId,titol,text,data,duration,image,descarrega,programaid,escapetitle)
{
	if(audioPlaylist==null) audioPlaylist = new Array();
	
	var listitem = new PlayListItem(itemId,titol,text,data,duration,image,descarrega,programaid,escapetitle);
	//audiostring=listitem.serialize();
	
	audioPlaylist.push(listitem);
	audioElements[listitem.Id]=listitem;
	audioSortIds.push(listitem.Id);
	

	setCookie();
}

function removeAudio(index)
{
	if( index>=0 ) {
	  var a = audioSortIds.slice(), b = a.audioSortIds( index );
	  b.pop()
	  audioSortIds = a.concat( b );
	}
}

function changeAudioPlayListOrder(SortIds)
{
	audioSortIds = SortIds;
	audioPlaylist = createPlaylistBySortIds();
	//audioPlaylist = $("#sortable-ul").sortable("toArray");
	
	setCookie();
}

function createPlaylistBySortIds(){
	var playlist = [];
	var i=0;
	for (i=0;i<audioSortIds.length;i++)
	{
		playlist[i]=audioElements[audioSortIds[i]];
	}
	return playlist;
}

function getPlayListItemById(itemId){
	return audioElements[itemId];
}

function getPlayListItemOrderById(itemId)
{	i=0;
	
	while (i<audioSortIds.length)
	{
		if(audioSortIds[i]==itemId){
			return i
		}
		i++;
	}
	return -1
}

function arrayPlaylistToString()
{
	var playstring="";
	if( audioPlaylist==null) return null;
	var i=0;
	for (i=0;i<audioPlaylist.length;i++)
	{
		var item = new PlayListItem(audioPlaylist[i].Id,audioPlaylist[i].Title,audioPlaylist[i].Programa,audioPlaylist[i].Date,audioPlaylist[i].Duration,audioPlaylist[i].Image,audioPlaylist[i].Descarrega,audioPlaylist[i].ProgramaId,audioPlaylist[i].EscapeTitle);
		playstring = playstring + item.serialize();
		
		if(i!= (audioPlaylist.length -1)) playstring = playstring + ENDCHAR;
		
	}
	return playstring;
	//return audioPlaylist.join(ENDCHAR);
}



