text: /*
  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
  	/*@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) {
  	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', '/star_rate/rpc.php?j='+vote+'&q='+id_num+'&t='+ip_num+'&c='+units);
      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 ) {
      // Detect Browser
      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"); // 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);