/*
Page:           rating.js
Created:        Aug 2006
Handles actions and requests for rating bars.	
--------------------------------------------------------- 
ryan masuga, masugadesign.com
ryan@masugadesign.com 
--------------------------------------------------------- */
/*var readout = document.createElement('div');
readout.setAttribute('id','readoutdiv');
if(document.body)
    document.body.appendChild(readout);
else
	alert("can't find <body> tag!");*/

var xmlhttp
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	  try {
	  xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")
	 } catch (e) {
	  try {
	    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
	  } catch (E) {
	   xmlhttp=false
	  }
	 }
	@else
	 xmlhttp=false
	@end @*/
	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) {

		memberid='userid'+id_num;
		user=document.getElementById(memberid).value;
		if(memid=='' || memid=='')
		{	
			alert("Login first.");
			return;
		}
		else if(user==memid || memtype=='school' )
		{
			alert("Sorry, You can't give rate this Exercise.");
			return;
		}
			

var theUL = document.getElementById('unit_ul'+id_num); // the UL

	
// switch UL with a loading div
xmlhttp.open('get', 'rpc.php?j='+vote+'&q='+id_num+'&t='+ip_num+'&c='+units);
xmlhttp.onreadystatechange = handleResponse;
xmlhttp.send(null);

var cookieName = 'rater_' + id_num;
var cookieValue = '' + vote;
var today = new Date();
var expire = new Date();
nDays=30;
expire.setTime(today.getTime() + 3600000*24*nDays);
document.cookie = cookieName+'='+escape(cookieValue)
+ ';expires='+expire.toGMTString();
}

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]);
	
//            changeText('unit_long1', update[1]);
        }
		}
    }
}

function changeText( div2show, text ) {
    // Detect Browser
	var viewer = document.getElementById(trim(div2show));
    viewer.innerHTML = text;
}

/* =============================================================== */
var ratingAction = {
		'a.rater' : function(element){

			element.onclick = function(){
				
			var parameterString = this.href.replace(/.*\?(.*)/, "$1"); // onclick="sndReq('j=1&q=2&t=127.0.0.1&c=5');
			var parameterTokens = parameterString.split("&"); // onclick="sndReq('j=1,q=2,t=127.0.0.1,c=5');
			var parameterList = new Array();

			for (j = 0; j < parameterTokens.length; j++) {
				var parameterName = parameterTokens[j].replace(/(.*)=.*/, "$1"); // j
				var parameterValue = parameterTokens[j].replace(/.*=(.*)/, "$1"); // 1
				parameterList[parameterName] = parameterValue;
			}
			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); return false;		
			}
		}
		
	};
Behaviour.register(ratingAction);

