var favButtonAddedSrc = "pix/removefavorite.png";
var favButtonRemovedSrc = "pix/addfavorite.png";
var favURL = 'favorites.php';
var favID = null;
var fileID = null;
var request;

function setVars(fid, fav)
{
  fileID = fid;
  favID = fav;
  favB = document.getElementById('favB');
  favB.onclick = favDo;
  favB.onload = null;
}

function favDo()
{
  if(favID)
  {
    favRequest('action=rem&favID='+favID);
  }
  else
  {
    favRequest('action=add&fileID='+fileID);
  }
}

function build_HttpRequest() {
	if (window.XMLHttpRequest)
		{
			var request = new XMLHttpRequest();
			if (request.overrideMimeType) { request.overrideMimeType('text/xml');}
		}
		
		else if (window.ActiveXObject)
		{
			try {var request = new ActiveXObject("Msxml2.XMLHTTP");} 
				catch (e) 
				{
					try {var request = new ActiveXObject("Microsoft.XMLHTTP");} catch (e) {}
				}
		}
		
		if (!request) 
		{ 
			alert('Cannot create an XML HTTP instance');
			return false;
		}
		return request;
}

function favRequest(requestVars) {
	request = build_HttpRequest();
	request.onreadystatechange = parseresponse;
	request.open('GET', favURL+'?'+requestVars, true);
	request.send(null);
}

function parseFavResponse(resp)
{
  var favButton = document.getElementById('favB');
  
  if(resp[1] == 'add') //the asked action was add
  {
    if(resp[2] == 'ok') //everything went alright!
    {
      favButton.src = favButtonAddedSrc;
      setVars(fileID, resp[3]); //in case the user needs to remove the fav, we know its ID
    }
    else
    {
      //Print out our error
      alert("There has been an error with adding the favorite.\n"+resp[2]);
    }
  }
        
  if(resp[1] == 'remove')
  {
    if(resp[2] == 'ok')
    {
      setVars(fileID, null)
      favButton.src = favButtonRemovedSrc;    
    }
    else
    {
      //Print out our error
      alert("There has been an error with removing the favorite.\n"+resp[2]);
    }
  }  
}


function parseresponse() {
	if (request.readyState == 4 && request.status == 200) 
	{
		var resp = request.responseText.split('|');
			
		if(resp[0] == 'favs')
		{
        parseFavResponse(resp);
		}
	}
}
