var xmlHttp;
var displayHandler; // function that should be called to display results
var results = new Object; // Object that will contain results, in this case: "num" and "avg".

function GetXmlHttpObject(handler) {
	var objXMLHttp = null;

	try {
		objXMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e2) {}
	}

	if (objXMLHttp == null) {
		objXMLHttp=new XMLHttpRequest();
	}

	return objXMLHttp;
}

function parseResults(resultString) {
	var resultDelim = "|";
	var pairDelim = "=";
	var pairsArray = resultString.split(resultDelim);
	
	for (i=0; i<pairsArray.length; i++) {
		nvPair = pairsArray[i].split(pairDelim);
		results[nvPair[0]] = nvPair[1];
	}	
}

function stateChanged() {
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
		parseResults(xmlHttp.responseText);
		displayHandler();
	}
}

function processRating(rating) {
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {
		alert ("Browser does not support HTTP Request");
		return;
	}

	var url = new String(window.location.href);
	var parameters = "url=" + escape(url.replace(window.location.search, "")) + "&rating=" + rating;	
	var action = "/pagerating/ratepage.do";

	xmlHttp.open("POST", action, true);
	xmlHttp.onreadystatechange = stateChanged;
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", parameters.length);
	xmlHttp.send(parameters);
}
