/*********************************************************************
File:			smite.js
Description:	Supports the AJAX of the Smite Queue
*********************************************************************/
var iPollStop = 1000;
pollRefresh();

function pollRefresh() {
	if (iPollStop == 4000) {
		requestQueueRefresh();
	} else {
		iPollStop = 4000;
	}
	
	the_timeout= setTimeout('pollRefresh();',iPollStop);
}

var xmlHttp;
var xmlHttp2;
var sURL;
var sURL2;

function createXMLHttpRequest() {
	if (window.ActiveXObject) {
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	} else if (window.XMLHttpRequest) {
		xmlHttp = new XMLHttpRequest();
	}
}

function handleQueueStateChange() {
	if(xmlHttp.readyState == 4) {
		if(xmlHttp.status == 200) {
			repaintQueue();
		}
		else {
			alert ("AJAX error!");
		}
	}
}

function repaintQueue() {
	var responseXML = xmlHttp.responseXML;
	var sStatus = responseXML.getElementsByTagName("status").item(0).firstChild.nodeValue;
	
	//clear out queuebox
	while (document.getElementById("QueueBox").hasChildNodes())
	{
	  document.getElementById("QueueBox").removeChild(document.getElementById("QueueBox").firstChild);
	}
	
	//Parse XML and populate list
	if (sStatus == "ITEMS") {
		//if there are items in the queue
		var itemsNode = responseXML.firstChild.firstChild.nextSibling;
		
		for (var node = itemsNode.firstChild; node != null; node = node.nextSibling)
		{
			sSmiter = node.firstChild.firstChild.nodeValue;
			iTarget_ID = node.firstChild.nextSibling.firstChild.nodeValue;
			sDedication = node.firstChild.nextSibling.nextSibling.firstChild.nodeValue;
			sTargetName = node.firstChild.nextSibling.nextSibling.nextSibling.firstChild.nodeValue;
			iSmiter_ID = node.firstChild.nextSibling.nextSibling.nextSibling.nextSibling.firstChild.nodeValue;
			
			//Make Sender Link
			var aSender = document.createElement("a");
			aSender.setAttribute("href","http://spatulaofdeath.com/?id=" + iSmiter_ID);
			aSender.appendChild(document.createTextNode(sSmiter));
			
			//Make Target Link
			if (iTarget_ID > 0) {
				var aTarget = document.createElement("a");
				aTarget.setAttribute("href","http://spatulaofdeath.com/?id=" + iTarget_ID);
				aTarget.appendChild(document.createTextNode(sTargetName));
			} else {
				var aTarget = document.createTextNode(sTargetName);
			}
			
			//Make smiteBy element
			var smiteBy = document.createElement("div");
			smiteBy.setAttribute("class","smiteBy");
			smiteBy.appendChild(aSender);
			smiteBy.appendChild(document.createTextNode(" SMITES "));
			smiteBy.appendChild(aTarget);
			
			//Make smiteDed element
			var smiteDed = document.createElement("div");
			smiteDed.setAttribute("class","smiteDed");
			smiteDed.appendChild(document.createTextNode(sDedication));
			
			//Make Big Div element
			var smiteItem = document.createElement("div");
			smiteItem.setAttribute("class","smiteItem");
			smiteItem.appendChild(smiteBy);
			smiteItem.appendChild(smiteDed);
			
			//Attach to page
			document.getElementById("QueueBox").appendChild(smiteItem);
			
		} //end loop through queue items		
	} //end if items returned
} //end function

function requestQueueRefresh() {	
	sURL = "smite_queue.php";
	sURL = sURL + "?ts=" + new Date().getTime();
	
	createXMLHttpRequest();
	xmlHttp.onreadystatechange = handleQueueStateChange;
	xmlHttp.open("GET", sURL, true);
	xmlHttp.send(null);
}

/******************************* RATE *************************************/

function createXMLHttpRequest2() {
	if (window.ActiveXObject) {
		xmlHttp2 = new ActiveXObject("Microsoft.XMLHTTP");
	} else if (window.XMLHttpRequest) {
		xmlHttp2 = new XMLHttpRequest();
	}
}

function requestRate() {	
	//Disable rate button
	document.getElementById("btnRate").setAttribute("disabled","true");
	
	//CaptureValues
	var iUser_ID = 0;
	var iSmite_ID = 0;
	var iRating = 0;
	
	if (document.getElementById("user_id").value > 0) {
		iUser_ID = document.getElementById("user_id").value;
	}
	if (document.getElementById("smite_id").value > 0) {
		iSmite_ID = document.getElementById("smite_id").value;
	}
	if (document.getElementById("rating").value > 0) {
		iRating = document.getElementById("rating").value;
	}
	
	//alert(iUser_ID + " - " + iSmite_ID + " - " + iRating);

	sURL2 = "smite_rate.php?smite_id=" + iSmite_ID + "&user_id=" + iUser_ID + "&rating=" + iRating;
	sURL2 = sURL2 + "&ts=" + new Date().getTime();
	
	createXMLHttpRequest2();
	xmlHttp2.onreadystatechange = handleRateStateChange;
	xmlHttp2.open("GET", sURL2, true);
	xmlHttp2.send(null);
}

function handleRateStateChange() {
	if(xmlHttp2.readyState == 4) {
		if(xmlHttp2.status == 200) {
			newRate();
		}
		else {
			alert ("AJAX error!");
		}
	}
}

function newRate() {
	var responseXML = xmlHttp2.responseXML;
	var sStatus = responseXML.getElementsByTagName("status").item(0).firstChild.nodeValue;
	
	//clear out queuebox
	while (document.getElementById("RateBox").hasChildNodes())
	{
	  document.getElementById("RateBox").removeChild(document.getElementById("RateBox").firstChild);
	}
	
	//Parse XML and populate list
	if (sStatus == "ITEMS") {
		//if there are items in the queue
		var itemsNode = responseXML.firstChild.firstChild.nextSibling;
		
		for (var node = itemsNode.firstChild; node != null; node = node.nextSibling)
		{
			sSmiter = node.firstChild.firstChild.nodeValue;
			iTarget_ID = node.firstChild.nextSibling.firstChild.nodeValue;
			sDedication = node.firstChild.nextSibling.nextSibling.firstChild.nodeValue;
			sTargetName = node.firstChild.nextSibling.nextSibling.nextSibling.firstChild.nodeValue;
			iSmiter_ID = node.firstChild.nextSibling.nextSibling.nextSibling.nextSibling.firstChild.nodeValue;
			iSmite_ID = node.firstChild.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.firstChild.nodeValue;
			
			//Make Sender Link
			var aSender = document.createElement("a");
			aSender.setAttribute("href","http://spatulaofdeath.com/?id=" + iSmiter_ID);
			aSender.appendChild(document.createTextNode(sSmiter));
			
			//Make Target Link
			if (iTarget_ID > 0) {
				var aTarget = document.createElement("a");
				aTarget.setAttribute("href","http://spatulaofdeath.com/?id=" + iTarget_ID);
				aTarget.appendChild(document.createTextNode(sTargetName));
			} else {
				var aTarget = document.createTextNode(sTargetName);
			}
			
			//Make smiteBy element
			var smiteBy = document.createElement("div");
			smiteBy.setAttribute("class","smiteBy");
			smiteBy.appendChild(aSender);
			smiteBy.appendChild(document.createTextNode(" SMITES "));
			smiteBy.appendChild(aTarget);
			
			//Make smiteDed element
			var smiteDed = document.createElement("div");
			smiteDed.setAttribute("class","smiteDed");
			smiteDed.appendChild(document.createTextNode(sDedication));
			
			//Make hidden element
			var smiteHidden = document.createElement("input");
			smiteHidden.setAttribute("id","smite_id");
			smiteHidden.setAttribute("type","hidden");
			smiteHidden.setAttribute("value",iSmite_ID);
			
			//Make Big Div element
			var smiteItem = document.createElement("div");
			smiteItem.setAttribute("class","smiteItem");
			smiteItem.appendChild(smiteBy);
			smiteItem.appendChild(smiteDed);
			smiteItem.appendChild(smiteHidden);
			
			//Attach to page
			document.getElementById("RateBox").appendChild(smiteItem);
			
		} //end loop through queue items		
	} //end if items returned
	
	//Enable rate button
	document.getElementById("btnRate").removeAttribute("disabled");
	document.getElementById("rating").selectedIndex = 0;
	
} //end function
