/*
Page:			rating.js
Created:       	 Aug 2006
Last Mod:       	May 2008
Modified by:	Brian Thoms

--------------------------------------------------------- 
Modified rating.js to take new parameters for newly structured database.
See readme-ElggInstallation.txt for more details
--------------------------------------------------------- 
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 sndFeedbackReq(feedback,blog_id,user_id,rpc) {
	var feedbackDiv = document.getElementById('ratingsfeedback'+blog_id); // the UL
	// switch UL with a loading div
	//feedbackDiv.innerHTML = '<div class="feedbackloading"> Uploading Comment </div>';
	feedbackDiv.innerHTML = '';
	var Feedbackurl=rpc+"?feedback="+feedback+"&blog="+blog_id+"&user="+user_id;
	//alert(Feedbackurl);
	xmlhttp.open("get",Feedbackurl);
	
	xmlhttp.onreadystatechange = handleFeedbackResponse;

	xmlhttp.send(null);	

}

function handleFeedbackResponse() {

  if(xmlhttp.readyState == 4){
		if (xmlhttp.status == 200){
       	
        var response = xmlhttp.responseText;
        var update = new Array();
	
        if(response.indexOf('|') != -1) {
            update = response.split('|');
			changeFeedbackText(update[0],update[1]);

        }
		}
    }
}

function changeFeedbackText(div2show, text) {
    // Detect Browser
	var divLayer = " ";

	var splitDIV = div2show.split([" "]);	
	  for (var i=0; i < splitDIV.length; i++) 
	  {
	    if(splitDIV[i] != " ");
			divLayer=splitDIV[i];
		}
	var divText = text.toString();

    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(divLayer);
		viewer.innerHTML = divText;
    }  
	else if(IE) 
	{
        document.all[divLayer].innerHTML = divText;
    }
}

/* =============================================================== */
var feedbackAction = {

		'a.feedback' : function(element){
			element.onclick = function(){
			var parameterString = this.href.replace(/.*\?(.*)/, "$1");
			var parameterTokens = parameterString.split("&");
			var parameterList = new Array();

			for (x = 0; x < parameterTokens.length; x++) {
				var parameterName = parameterTokens[x].replace(/(.*)=.*/, "$1"); // j
				var parameterValue = parameterTokens[x].replace(/.*=(.*)/, "$1"); // 1
				parameterList[parameterName] = parameterValue;

			}
			var theFeedback = parameterList['feedback'];
			var theBlogID = parameterList['blog'];
			var theRaterID = parameterList['user'];
			var theRPC = parameterList['rpc'];
			sndFeedbackReq(theFeedback,theBlogID,theRaterID,theRPC); return false;		
			}
		}
	};
Behaviour.register(feedbackAction);
