var PLB_current = new Object();
var PLB_inprocess = new Object();

function ChangePlaylistStatus(id, obj, func, type)
{
	if (!is_authorized)
	{
		open_authform( '', 'login' );
		return;
	}
	
	var div = document.getElementById('AddToPlaylistDIV');
	
	if (obj != undefined)
	{
		var b = getBounds(obj);
		div.style.left = b.left+"px";
		div.style.top = b.top+"px";
	}
	
	PLB_current['obj'] = obj;
	PLB_current['func'] = func;
	PLB_current['id'] = id;
	PLB_current['type'] = type;
	
	if ( playlists_items.in_array(id) )
	{
		var RemoveFromPlaylist = new Ajax();
		var url = '/account/playlists/removeany/'+id;
		PLB_inprocess[PLB_current['id']] = PLB_current;
		RemoveFromPlaylist.sendRequest(url, null, 'GET', ChangePlaylistStatusBack);
		ChangePlaylistCancel();
		return;
	}

	DisableScreen();
	div.style.display = 'block';
	//RefreshPlaylistList();
}

function AddToPlaylistCurrent(pl_id)
{
	var AddToPlaylist = new Ajax();
	if (PLB_current['type'] == 'track' || PLB_current['type'] == 'song')
		var type = 'item';
	else
		var type = 'album';
	
	var url = '/account/playlists/add/'+type+'/'+pl_id+'/'+PLB_current['id']; //alert(url);
	PLB_inprocess[PLB_current['id']] = PLB_current;
	AddToPlaylist.sendRequest(url, null, 'GET', ChangePlaylistStatusBack);
	ChangePlaylistCancel();
}

function ChangePlaylistStatusBack(text)
{
	//alert(text);
	var arr = text.split('::');
	if (arr.length < 2) return;
	if (arr[0] == 'added')
	{
		if (PLB_inprocess[arr[1]]['type'] == 'item' || PLB_inprocess[arr[1]]['type'] == 'track')
			playlists_items[playlists_items.length] = arr[1];
	}
	else if (arr[0] == 'removed')
	{
		if (PLB_inprocess[arr[1]]['type'] == 'item' || PLB_inprocess[arr[1]]['type'] == 'track')
			playlists_items.remove_item(arr[1]);
	}
		
	if ( typeof(PLB_inprocess[arr[1]]['func']) == 'function' )
		PLB_inprocess[arr[1]]['func']( arr[0], arr[1], PLB_inprocess[arr[1]]['type'] );
}

function RefreshPlaylistList()
{
	var ul = document.getElementById('playlists_add_list');
	ul.innerHTML = '';
	var img = document.createElement('img');
	img.src = '/images/loading_small.gif';
	ul.appendChild(img);
	
	var RPLAjax = new Ajax();
	RPLAjax.sendRequest('/account/playlists/getlist', null, 'get', RefreshPlaylistListBack);
}

function RefreshPlaylistListBack(text)
{
	var arr = text.split("\n");
	var ul = document.getElementById('playlists_add_list');
	ul.innerHTML = '';
	for (var i in arr)
	{ 
		if (typeof(arr[i]) != 'string') continue; 
		var data = arr[i].split('::', 2);
		if (data.length != 2) continue;// alert(arr[i]+' '+data[0]+' '+data[1]);
		//ul.innerHTML += '<li><a href="javascript:;" onclick="AddToPlaylistCurrent('+data[0]+')">'+data[1]+'</a></li>';
		//continue;
		var li = document.createElement('li');
		var a = document.createElement('a');
		a.href = 'javascript:;';
		a.setAttribute('onclick', 'AddToPlaylistCurrent('+data[0]+')');
		a.innerHTML = data[1];
		li.appendChild(a);
		ul.appendChild(li);
	}
}

function ChangePlaylistCancel()
{
	PLB_current = new Object();
	HideElement('AddToPlaylistDIV');
	HideElement('CreatePlaylistDIV');
	EnableScreen();
}

var PLB_create_playlist;

function CreatePlaylist(name, id)
{
	PLB_create_playlist = id;
	var RPCPjax = new Ajax();
	RPCPjax.sendRequest('/account/playlists/create/'+name, null, 'get', CreatePlaylistBack);
}

function CreatePlaylistBack(text)
{
	if (text.substr(0, 2) != 'ok') return;
	var id = text.substr(2);
	ShowElement('AddToPlaylistDIV');
	HideElement('CreatePlaylistDIV');
	RefreshPlaylistList();
}
