/*
Page:           rating.js
Created:        Aug 2006
Last Mod:       Mar 11 2007
Handles actions and requests for rating bars.	
--------------------------------------------------------- 
ryan masuga, masugadesign.com
ryan@masugadesign.com 
Licensed under a Creative Commons Attribution 3.0 License.
http://creativecommons.org/licenses/by/3.0/
See readme.txt for full credit details.
--------------------------------------------------------- */
var xmlhttp
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
	try { 
		xmlhttp = new XMLHttpRequest(); 
	} catch (e) { xmlhttp=false }
}
function myXMLHttpRequest() {
	var xmlhttplocal;
	try {
		xmlhttplocal= new ActiveXObject("Msxml2.XMLHTTP")
	} catch (e) {
		try {
			xmlhttplocal= new ActiveXObject("Microsoft.XMLHTTP")
		} catch (E) {
			xmlhttplocal=false;
		}
	}
	if (!xmlhttplocal && typeof XMLHttpRequest!='undefined') {
		try {
			var xmlhttplocal = new XMLHttpRequest();
		} catch (e) {
			var xmlhttplocal=false;
			alert('couldn\'t create xmlhttp object');
		}
	}
	return(xmlhttplocal);
}
function sndReq(vote,id_num,ip_num,units,block) {
	var theUL = document.getElementById('unit_ul'+id_num); // the UL

	// switch UL with a loading div
	theUL.innerHTML = '<div class="loading"></div>';

	xmlhttp.open('get', '../reviews/rate.cfm?rpc=1&j='+vote+'&q='+id_num+'&t='+ip_num+'&c='+units+'&b='+block);
	xmlhttp.onreadystatechange = handleResponse;
	xmlhttp.send(null);	
}
function handleResponse() {
	if(xmlhttp.readyState == 4){
		if (xmlhttp.status == 200){
			var response = xmlhttp.responseText;
			var update = new Array();
			if(response.indexOf('|') != -1) {
				update = response.split('|');
				changeText(update[0], update[1]);
			}
		}
	}
}
function changeText( div2show, text ) {
	var IE = (document.all) ? 1 : 0;
	var DOM = 0; 
	if (parseInt(navigator.appVersion) >=5) {DOM=1};

	// Grab the content from the requested "div" and show it in the "container"
	if (DOM) {
		var viewer = document.getElementById(div2show);
		viewer.innerHTML = text;
	} else if(IE) {
		document.all[div2show].innerHTML = text;
	}
}
var ratingAction = {
	'a.rater' : function(element){
		element.onclick = function() {
			var parameterString = this.href.replace(/.*\?(.*)/, "$1");
			var parameterTokens = parameterString.split("&");
			var parameterList = new Array();

			var theBlock='0';
			for (j = 0; j < parameterTokens.length; j++) {
				var parameterName = parameterTokens[j].replace(/(.*)=.*/, "$1"); // j
				var parameterValue = parameterTokens[j].replace(/.*=(.*)/, "$1"); // 1
				parameterList[parameterName] = parameterValue;
				if((parameterName=='b') && (parameterValue=='1')) theBlock='1';
			}
			var theratingID = parameterList['q'];
			var theVote = parameterList['j'];
			var theuserIP = parameterList['t'];
			var theunits = parameterList['c'];

			//for testing	alert('sndReq('+theVote+','+theratingID+','+theuserIP+','+theunits+')'); return false;
			sndReq(theVote,theratingID,theuserIP,theunits,theBlock); return false;		
		}
	}
};
Behaviour.register(ratingAction);
