rateText = new Array("","The story sucks. Go play in traffic!","Better than sucks, but kinda fishy","Helped my boredom, not my news hunger.", "Good one! has All-Stars in it.","I am buying you a beer, man!");

function updateRatings(id, vote) {
	var httpRequest = false;
// Mozilla, Safari etc
	if (window.XMLHttpRequest) { httpRequest = new XMLHttpRequest(); 	}
	else if (window.ActiveXObject) {/*hehe...IE*/
		try { httpRequest = new ActiveXObject("Msxml2.XMLHTTP"); 	} 
		catch (e) {
			try { httpRequest = new ActiveXObject("Microsoft.XMLHTTP") } 
			catch (e) {}
		}
	}
	if (!httpRequest) return false;
	var container = getContainer("rater");
	container.innerHTML = "<img src='pagerate/images/loader00.gif' alt='Updating..' /> Updating...";
	
	httpRequest.onreadystatechange = function () { handleResponse(httpRequest, container); };
	httpRequest.open('GET', 'pagerate/_updateratings.php?id=' + id + '&r=' + vote, true);
	httpRequest.send(null);
}

function handleResponse(httpRequest, container) {
	if ((httpRequest.readyState == 4) && (httpRequest.status == 200)) { 	container.innerHTML = httpRequest.responseText; }
	else { }
}


function getContainer(name) {
//IS IE 4 or 5 (or 6 beta)
if (document.all) { return eval("document.all."+name); }
 //IS NETSCAPE 4 or below
if (document.layers) { return document.layers[name]; }
if (document.getElementById && !document.all) { return document.getElementById(name); }
}

function addEvent( obj, type, fn )
{
	if (obj.addEventListener)
		obj.addEventListener( type, fn, false );
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
	else obj['on'+type] = fn;
}

function removeEvent( obj, type, fn )
{
	if (obj.removeEventListener) obj.removeEventListener( type, fn, false );
	else if (obj.detachEvent)
	{
		obj.detachEvent( "on"+type, obj[type+fn] );
		obj[type+fn] = null;
		obj["e"+type+fn] = null;
	}
	else obj["on"+type] = null;
}

function init() {
	var container = getContainer('rater');
	var links = container.getElementsByTagName('a');
	var r = getContainer('rateText');
	rateText[0] = r.innerHTML;
		
	for (var i = 0; i < links.length; i++) {
  	addEvent(links[i], 'click', actionParse);
  	addEvent(links[i], 'mouseover', dSet);
  	addEvent(links[i], 'mouseout', dClear);
	}
}
addEvent(window,"load",init);

function stopEvent(e) {
// for DOM-friendly browsers
if (e.stopPropagation) { e.stopPropagation(); e.preventDefault(); } 
else { e.returnValue = false; /*IE*/ e.cancelBubble = true;  }
}

function actionParse(event) {
	var parameterString = this.href.replace(/.*\?(.*)/, "$1"); // onclick="updateRatings('id=1&r=2&pl=1');
	var parameterTokens = parameterString.split("&"); // onclick="updateRatings('id=1','r=2');
	var parameterList = new Array();
	for (var j = 0; j < parameterTokens.length; j++) {
		var parameterName = parameterTokens[j].replace(/(.*)=.*/, "$1"); // id
		var parameterValue = parameterTokens[j].replace(/.*=(.*)/, "$1"); // 1
		parameterList[parameterName] = parameterValue;
	}
	var id = parameterList['id'];
	var vote = parameterList['r'];
	updateRatings(id, vote); 
	stopEvent(event);		
}

function dSet(event) {
	var parameterString = this.href.replace(/.*\?(.*)/, "$1");
	var parameterTokens = parameterString.split("&");
	var parameterList = new Array();
	for (var j = 0; j < parameterTokens.length; j++) {
		var parameterName = parameterTokens[j].replace(/(.*)=.*/, "$1"); 
		var parameterValue = parameterTokens[j].replace(/.*=(.*)/, "$1");
		parameterList[parameterName] = parameterValue;
	}
	var vote = parameterList['r'];
	var d = getContainer('rateText');
	d.innerHTML = rateText[vote];
	stopEvent(event);		
}

function dClear(event) { var d = getContainer('rateText'); d.innerHTML = rateText[0]; stopEvent(event); }

