var IntialRatingValue = 0;
function rating_rolloverImage(evt, rating, flag) {
	var newImageSource = '';
	if(flag == 'on') {
		newImageSource = document.getElementById('rating_full_star').innerHTML;
	} else {
		newImageSource = document.getElementById('rating_empty_star').innerHTML;
	}
	if(rating != null && rating > 0) {
		for(var i = 1; i <= rating; i++) {
			var image = document.getElementById('rating_' + i);
			image.src = newImageSource;
		}
	}
	/*
	if(window.event)
	{
		window.event.cancelBubble = true;
	}
	else
	{
		evt.stopPropagation();
	}*/
	//evt.cancelBubble = true;
	evt.cancelBubble = true;
}
function setDefaultRating(evt)
{
   updateContents(IntialRatingValue);
   evt.cancelBubble = true;
}
function rating_submit(rating){
	var serverUrl = document.getElementById('rating_server_url').innerHTML;
	var pageUrl = document.getElementById('rating_page_url').innerHTML;
	pageUrl = pageUrl.replace("=", "_");
	pageUrl = escape(pageUrl);
	var req = newXMLHttpRequest();
	req.onreadystatechange = getRatingReadyStateHandlerForText(req, updateContents);
	req.open("POST", serverUrl + "/contentRating.jhtml", true);
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	req.send("page_rate=" + rating + '&page_url=' + pageUrl + '&event=rateContent');
}
function call_rating(val)
{
	if(s4.locked == true)	
		return;
	else
	{
	 s4.locked = true;	
	 rating_submit(val);
	}
}
function load_rating(){
	var serverUrl = document.getElementById('rating_server_url').innerHTML;
	var pageUrl = document.getElementById('rating_page_url').innerHTML;
	pageUrl = pageUrl.replace("=", "_");
	pageUrl = escape(pageUrl);
    var req = newXMLHttpRequest();
	req.onreadystatechange = getReadyStateHandlerForText(req, updateContentsOnLoad);
	req.open("POST", serverUrl + "/contentRating.jhtml", true);
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	req.send('&page_url=' + pageUrl + '&event=finalRating');
}
function updateContentsOnLoad(result)
{
//	alert(result);
	resultContent = result;
	if(result != null)
	{
		resultArr = result.split("***");
		if(resultArr.length > 0)
			resultContent = resultArr[1];
		else
		  resultContent = 0;
		if(resultArr[0] == "true")
		{
			s4.locked = true; // The user rated allready.
		}
	}
	//alert(resultContent);
	updateContents(resultContent);
}
function updateContents(resultContent) {
	var	fullImageSource = document.getElementById('rating_full_star').innerHTML;
	var	emptyImageSource = document.getElementById('rating_empty_star').innerHTML;
	
	if(resultContent != null && resultContent > 0) {
		resultContent = Math.round(resultContent);
		if(resultContent > 5) {
			resultContent = 5;
		}
		IntialRatingValue = resultContent;
		for(var i = 1; i <= resultContent; i++) {
			var image = document.getElementById('rating_' + i);
			image.src = fullImageSource;
		}
		for(var i = 5; i > resultContent; i--) {
			var image = document.getElementById('rating_' + i);
			image.src = emptyImageSource;
		}
	} else {
		for(var i = 5; i > 0; i--) {
			var image = document.getElementById('rating_' + i);
			image.src = emptyImageSource;
		}
	}
	if(resultContent == null)
		resultContent = 0;
	s4.value = resultContent-1;
}
/*
 * Returns an new XMLHttpRequest object, or false if the browser
 * doesn't support it
 */
function newXMLHttpRequest() {
	var xmlreq = false;
	// Create XMLHttpRequest object in non-Microsoft browsers
	if (window.XMLHttpRequest) {
		xmlreq = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		try {
			// Try to create XMLHttpRequest in later versions
			// of Internet Explorer
			xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e1) {
			// Failed to create required ActiveXObject
			try {
				// Try version supported by older versions
				// of Internet Explorer
				xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e2) {
				// Unable to create an XMLHttpRequest by any means
				xmlreq = false;
			}
		}
	}
	return xmlreq;
}
function getReadyStateHandlerForText(req, responseTextHandler) {
	// Return an anonymous function that listens to the XMLHttpRequest instance
	return function () {
		// If the request's status is "complete"
		if (req.readyState == 4) {
			// Check that we received a successful response from the server
			if (req.status == 200) {
				// Pass the XML payload of the response to the handler function.
				
				responseTextHandler(req.responseText);
			} 
		}
	}
}
function getRatingReadyStateHandlerForText(req, responseTextHandler) {
	// Return an anonymous function that listens to the XMLHttpRequest instance
	return function () {
		// If the request's status is "complete"
		if (req.readyState == 4) {
			// Check that we received a successful response from the server
			if (req.status == 200) {
				// Pass the XML payload of the response to the handler function.
				document.getElementById("ratingMessage").innerHTML = "<b>"+thank_rating+"</b>";
				document.getElementById("ratingMessage").style.display = "";
				responseTextHandler(req.responseText);
			} 
			else {
				// An HTTP problem has occurred
				//alert("HTTP error "+req.status+": "+req.statusText);
				
			}
		}
	}
}
function trim(s){
try {
return s.replace(/^\s+|\s+$/g, "");
} catch(e) {
return s;
}
}
function setMessage(msg)
{
	document.getElementById("message").innerHTML = "<b>" + msg + "</b>";
	document.getElementById("message").style.display = '';
}
