var name = 'BOOKMARKTV3';
var ENDCHAR = '#|#';
var SEPCHAR = '#,#';
var COMACHAR = '#c#';
var videoPlaylist = new Array();
var videoPlaylistString='';
var expires ='';
var path ='/';
var domain = 'tv3.cat';
var secure ='';

var videoElements = [];
var videoSortIds = [];

// PlayListItem
var PlayListItem = function(videoId, videoTitle, videoSeccio, videoDate, videoUrl_friend, videoDescription, videoUrlImatge, videoAgregatEl){
	
	this.Id = videoId;
	this.Title = videoTitle;
	this.Seccio = videoSeccio;
	this.videoDate = videoDate;
	this.Url_friend = videoUrl_friend;
	this.Description = videoDescription;
	this.Url_imatge = videoUrlImatge;
	this.AgregatEl = videoAgregatEl;
	
};

PlayListItem.prototype.serialize = function(){ 
	serialize = this.Id + SEPCHAR + escapeComa(this.Title) + SEPCHAR+ escapeComa(this.Seccio) + SEPCHAR + this.videoDate + SEPCHAR + this.Url_friend + SEPCHAR + escapeComa(this.Description) + SEPCHAR + this.Url_imatge + SEPCHAR + this.AgregatEl;
	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){
		videoPlaylist[index]=desearializePlayListItem(item);
	} );

	
}

function desearializePlayListItem(item)
{
	if (typeof(item)=='string') {
	  var ListItem = new PlayListItem();
	  arrayItem = item.split(SEPCHAR);
	  ListItem.Id = arrayItem[0];
	  ListItem.Title = unescapeComa(arrayItem[1]);
	  ListItem.Seccio = unescapeComa(arrayItem[2]);
	  ListItem.videoDate = arrayItem[3];
	  ListItem.Url_friend = arrayItem[4];
	  ListItem.Description = unescapeComa(arrayItem[5]);
	  ListItem.Url_imatge = arrayItem[6];
	  ListItem.AgregatEl = arrayItem[7];
	  
	  return ListItem;
	} else {
	  return item;
	}
}


function checkIfPlaylistcookie()
{
	var currcookieValue= getPlayListCookie();
	var check=false;
	if(currcookieValue != null)
	{
		videoPlaylist = currcookieValue.split(ENDCHAR);
		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 !="")
  {
	  
   videoPlaylist=StringArray2ObjectArray(cookvalue.split(ENDCHAR));
  /*cookieValue = document.cookie.substring( len, end );
  videoPlaylist= cookieValue.split(',');*/

  return unescape( document.cookie.substring( len, end ) );
  }
  videoPlaylist = 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 addVideo(Id,Title,Seccio,VideoDate,Url_friend,Description,Url_imatge)
{
		var DateMoment = new Date();
		
		var day = DateMoment.getDate().toString(); 
		if (day.length==1) {
			day = "0"+day;
		}
		var month = DateMoment.getMonth().toString();
		if (month.length==1) {
			month = "0"+month;
		}
		var year = DateMoment.getFullYear().toString();
		var hoy = day + "/" + month + "/" + year;
		
		if(videoPlaylist==null){
			videoPlaylist = new Array();		
		}
		
		var listitem = new PlayListItem(Id,Title,Seccio,VideoDate,Url_friend,Description,Url_imatge, hoy);
		//videostring=listitem.serialize();
		
		videoPlaylist.push(listitem);
		videoElements[listitem.Id]=listitem;
		videoSortIds.push(listitem.Id);
		

		setCookie();
}

function removeVideo(index)
{
	if( index>=0 ) {
	  var a = videoSortIds.slice(), b = a.videoSortIds( index );
	  b.pop()
	  videoSortIds = a.concat( b );
	}
}

function changevideoPlaylistOrder()
{
	//videoSortIds = SortIds;
	videoPlaylist = createPlaylistBySortIds();
	//videoPlaylist = $("#sortable-ul").sortable("toArray");
	
	setCookie();
	return false;
}

function createPlaylistBySortIds(){
	var playlist = [];
	var i=0;

	for (i=0;i<videoSortIds.length;i++)
	{
		playlist[i]=videoElements[videoSortIds[i]];
	}	
	
	return playlist;
}

function getPlayListItemById(itemId){
	return videoElements[itemId];
}

function getPlayListItemOrderById(itemId)
{	i=0;
	
	while (i<videoSortIds.length)
	{
		if(videoSortIds[i]==itemId){
			return i
		}
		i++;
	}
	return -1
}

function arrayPlaylistToString()
{
	var playstring="";
	if( videoPlaylist==null) return null;
	var i=0;
	for (i=0;i<videoPlaylist.length;i++)
	{
		var item = new PlayListItem(videoPlaylist[i].Id,videoPlaylist[i].Title,videoPlaylist[i].Seccio,videoPlaylist[i].videoDate,videoPlaylist[i].Url_friend,videoPlaylist[i].Description,videoPlaylist[i].Url_imatge,videoPlaylist[i].AgregatEl);
		playstring = playstring + item.serialize();		
	
		if(i!= (videoPlaylist.length -1)) playstring = playstring + ENDCHAR;
		
	}
	return playstring;
	//return videoPlaylist.join(ENDCHAR);
}



