
function GetRequest(){
	var ajaxRequest;
	
	try
	{
		// Opera 8.0+, Firefox, Safari
		ajaxRequest = new XMLHttpRequest();
	} 
	catch (e)
	{
		// Internet Explorer Browsers
		try
		{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) 
		{
			try
			{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e)
			{
				// Something went wrong
				return false;
			}
		}
	}

	return ajaxRequest;
}


function ByTitle()
{
	var title = document.getElementById('by_Title').value;

	if (title == "")
		return;


	var ajaxRequest = GetRequest()

	// Create a function that will receive data sent from the server
	ajaxRequest.onreadystatechange = function(){
		if(ajaxRequest.readyState == 4){
			var ajaxDisplay = document.getElementById('SearchResults');
			ajaxDisplay.innerHTML = ajaxRequest.responseText;
		}
	}

	

//	var queryString = "?func=SearchTitle&title=" + title + "&exact=0";
	var queryString = "?func=SearchTitle&title=" + title;
	ajaxRequest.open("GET", "index.php" + queryString, true);
	ajaxRequest.send(null); 

}

function ByArtist()
{
	var artist = document.getElementById('by_Artist').value;
	if (artist == "")
		return;

	var ajaxRequest = GetRequest()

	// Create a function that will receive data sent from the server
	ajaxRequest.onreadystatechange = function(){
		if(ajaxRequest.readyState == 4){
			var ajaxDisplay = document.getElementById('SearchResults');
			ajaxDisplay.innerHTML = ajaxRequest.responseText;
		}
	}

	//var queryString = "?func=SearchArtist&artist=" + artist + "&exact=0";
	var queryString = "?func=SearchArtist&artist=" + artist;
	ajaxRequest.open("GET", "index.php" + queryString, true);
	ajaxRequest.send(null); 

}

function BrowseArtist(vid_id)
{

        var ajaxRequest = GetRequest()

        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
                        var ajaxDisplay = document.getElementById("Browse_" + vid_id);
                        ajaxDisplay.innerHTML = ajaxRequest.responseText;
                }
        }

        var queryString = "?func=BrowseArtist&vid_id=" + vid_id;
        ajaxRequest.open("GET", "index.php" + queryString, true);
        ajaxRequest.send(null);



}

function AddSearchToPlaylist()
{

	var checkboxes = get_all_checkboxes(document.getElementById("SearchResults"));

        var i = 0;
	var ids = new Array();
        for (i=0; i< checkboxes.length; i++)
        {
                if (checkboxes[i].checked == true && checkboxes[i].id != "checkbox_select_all")
		{
 			ids.push(checkboxes[i].value);
		}
		checkboxes[i].checked = false;
		
        }


        var ajaxRequest = GetRequest();

        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
                        var ajaxDisplay = document.getElementById('Playlist');
                        ajaxDisplay.innerHTML = ajaxRequest.responseText;
			//Update Queue
			rebuildQueue();
                }
        }

	var idsvar = ArrayQuerystring(ids, "VideoID");

        var queryString = "?func=AddToPlayList" + idsvar;
        ajaxRequest.open("GET", "index.php" + queryString, true);
        ajaxRequest.send(null);


}

function AddBrowseToPlaylist()
{
	var checkboxes = get_all_checkboxes(document.getElementById("BrowseBand"));


        var i = 0;
	var ids = new Array();
        for (i=0; i< checkboxes.length; i++)
        {
                if (checkboxes[i].checked == true && checkboxes[i].className == "Results_Selection")
		{
 			ids.push(checkboxes[i].value);
		}
		checkboxes[i].checked = false;
		
        }

        var ajaxRequest = GetRequest();

        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
                        var ajaxDisplay = document.getElementById('Playlist');
                        ajaxDisplay.innerHTML = ajaxRequest.responseText;
			//Update Queue
			rebuildQueue();
/*
			if (noplaylist) {
				rebuildQueue();
				playNextInQueue();
			}
			else 
				rebuildQueue();
*/
                }
        }

	var idsvar = ArrayQuerystring(ids, "VideoID");

        var queryString = "?func=AddToPlayList" + idsvar;
        ajaxRequest.open("GET", "index.php" + queryString, true);
        ajaxRequest.send(null);

}


function ArrayQuerystring(tmpArray, tmpName)
{
	var querystring = "";
	var i = 0;
	var temp = "";
	for (i=0; i<tmpArray.length; i++)
	{	
	     temp = escape(tmpArray[i].toString());
	     //manually escape "+" sign
	     temp = temp.replace(new RegExp( "\\+", "g" ), "%2B");
	     querystring += "&" + tmpName + "[]=" + temp;
	} 

	return querystring;
}

function AddToPlaylist(brightcoveID)
{
	var ajaxRequest = GetRequest()

	var querystring = "?func=AddToPlayList&BrightcoveID=" + brightcoveID;
        ajaxRequest.open("GET", "index.php" + querystring, true);
        ajaxRequest.send(null);
}


function ClearPlayList()
{

        var ajaxRequest = GetRequest();


        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
			if (currentListType == "playlist")
			{
	        		var parentelement = document.getElementById("Playlist");
			  	parentelement.innerHTML = "";
	
				_queue = new Array();
				initQueue();
			}
                }
        }



	var querystring = "?func=ClearPlayList";
        ajaxRequest.open("GET", "index.php" + querystring, true);
        ajaxRequest.send(null);
	

}

function RefreshPlayList()
{
        var ajaxRequest = GetRequest();

        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
                        var ajaxDisplay = document.getElementById('Playlist');
                        ajaxDisplay.innerHTML = ajaxRequest.responseText;

//        		Sortable.create('Playlist', { onUpdate : updatePlaylistOrder});
                }
        }

	var queryString = "?func=GetPlayList";
        ajaxRequest.open("GET", "index.php" + queryString, true);
        ajaxRequest.send(null);
	

}

function GetHouseList(listID)
{
        var ajaxRequest = GetRequest();
	var random = document.getElementById("RandomPlay").checked

        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
                        var ajaxDisplay = document.getElementById('Playlist');
                        ajaxDisplay.innerHTML = ajaxRequest.responseText;
			currentListType = "houselist";
			currentListId = listID;
			startHouselistQueue(listID, random);
//        		Sortable.create('Playlist', { onUpdate : updatePlaylistOrder});
                }
        }

	var queryString = "?func=GetHouseList&listid=" + listID;
        ajaxRequest.open("GET", "index.php" + queryString, true);
        ajaxRequest.send(null);
	

}


function check_all_search(element)
{
	//var p_element = document.getElementById("SearchResults");
	var checkboxes = get_all_checkboxes(document.getElementById("SearchResults"));
	var checkAll = element.checked;

	ToggleCheckedItem(checkboxes, checkAll);

}

function check_all_artist(videoID)
{
//	var p_element = document.getElementById("Browse_" + videoID);;
	var checkboxes = get_all_checkboxes(document.getElementById("Browse_" + videoID));
	var checkAll = checkboxes[0].checked;

	ToggleCheckedItem(checkboxes, checkAll);
}

function get_all_checkboxes(p_element)
{
	var i = 0;
	var input_elements = p_element.getElementsByTagName("input"); 
	var checkboxes = new Array();

	for (i=0; i< input_elements.length; i++)
	{
		if (input_elements[i].type == "checkbox")
			checkboxes.push(input_elements[i]);
	}

	return checkboxes;
}


function ToggleCheckedItem(elements, checkAll)
{

	var i = 0;
        for (i=0; i< elements.length; i++)
        {
		elements[i].checked = checkAll;
	}

}


function resetClick(asd, videoID)
{

	var element = document.getElementById("Browse_" + videoID);

	var i;
        for (i=element.childNodes.length - 1; i>0; i--)
        {
		if (element.childNodes[i].nodeType != 1)
		{
			continue;
		}
	
		if (element.childNodes[i].tagName == "DIV" && element.childNodes[i].className == "BrowseResults_Artist_Selected")
		{
			continue;
		}
		else
		{
			element.removeChild(element.childNodes[i]);
		}
	}


	asd.className="BrowseResults_Item_Artist";
	asd.onclick = new Function("BrowseArtist("+videoID+")");


}


function checkEnter(e, target)
{

	if(e && e.which){ //if which property of event object is supported (NN4)
		e = e;
		characterCode = e.which; //character code is contained in NN4's which property
	}
	else{
		e = event;
		characterCode = e.keyCode; //character code is contained in IE's keyCode property
	}

	if(characterCode == 13){ //if generated character code is equal to ascii 13 (if enter key)
		if (target == "Artist")
			ByArtist();
		else
			ByTitle();
		return false;
	}
	else{
		return true;
	}

}


function clearText(element, content)
{
	if(element.value==content)
		element.value='';
}

function resetText(element, content)
{
	if(element.value=='')
		element.value=content;
}

function updatePlaylistOrder ()
{
                var options = {
                                method : "get",
                                parameters : { data : Sortable.serialize("Playlist"), args : 4 }
                        };
                new Ajax.Request('listorder.php', options);
}

function removePlayListItem(playerId, brightcoveId, publisherId, dataID)
{

        var ajaxRequest = GetRequest();

	var querystring = "?func=RemovePlayListItem&DataID=" + dataID;
        ajaxRequest.open("GET", "index.php" + querystring, true);
        ajaxRequest.send(null);
	
        var parentelement = document.getElementById("Playlist");
        var element = document.getElementById("Playlist_Item_" + dataID);
  	parentelement.removeChild(element);

	removeFromQueue(brightcoveId, playerId, publisherId);

}

function getDefaultHouseList()
{

	var i = 0;
	var houselists = document.getElementById("ListSuggestions");

	var houselist_items = houselists.getElementsByTagName("div"); 

	if (houselist_items.length > 0 ) {
		var houselist = houselist_items[0].id;
		GetHouseList(houselist);
	}
}

function SendToFriend()
{

        var ajaxRequest = GetRequest();

	var yourName = document.getElementById('SendYourName');
	var yourEmail= document.getElementById('SendYourEmail');
	var targetEmail= document.getElementById('SendEmail');
	var senderName = yourName.value;
	var senderEmail = yourEmail.value; 
	var target = targetEmail.value; 
	
        var querystring = "?func=mailfriend&name=" + senderName + "&senderEmail=" + senderEmail + "&targetEmail=" + target  + "&listid=" + currentListId;

	if (currentListType == "houselist")
		querystring += "&type=hl";
	else if (currentListType == "referrallist")
		querystring += "&type=pl";
	else
		querystring += "&type=pl";
	

        ajaxRequest.open("GET", "index.php" + querystring, true);
        ajaxRequest.send(null);

	alert("Your playlist has been sent.");

}

function showRemoveAll()
{

	var RemoveAll = document.getElementById("RemoveAll");
	RemoveAll.className = 'Playlist_Panel_Right';
	RemoveAll.style.display = '';
	
}

function hideRemoveAll()
{

	var RemoveAll = document.getElementById("RemoveAll");
	RemoveAll.className = '';
	RemoveAll.style.display = 'none';
}

