/*
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', 'rpc/rpcvoting.php?j='+vote+'&q='+id_num+'&t='+ip_num+'&c='+units);
    xmlhttp.onreadystatechange = handleResponse;
    xmlhttp.send(null);	
}

function sndLog(username,password,retto,klog, poped) {
	var theUL = document.getElementById('legerrdiv'+poped); // the UL
	
	// switch UL with a loading div
	if(poped!='')theUL.innerHTML = '<div class="loadingPOP"><img src="images/working.gif" style="float:left; padding-left:5px; padding-right:5px;"><p>Validating...</p></div>';
	else theUL.innerHTML = '<div class="loadingPOP"><p><img src="images/working.gif" style="float:left; padding-left:5px; padding-right:5px;">Validating information...</p></div>';
	
    xmlhttp.open('get', 'rpc/rpclogin.php?pop='+poped+'&u='+username+'&p='+password+'&k='+klog+'&r='+retto.replace('#','8uyt56').replace('&','t658uf'));
    xmlhttp.onreadystatechange = handleResponseLog;
    xmlhttp.send(null);	
}

function sndLPass(username,retto) {
	var theUL = document.getElementById('lpassnotPOP'); // the UL
	
	theUL.innerHTML = '<div class="loadingPOP"><img src="images/working.gif" style="float:left; padding-left:5px; padding-right:5px;"><p>Validating...</p></div>';
	
    xmlhttp.open('get', 'rpc/rpclostpass.php?u='+username+'&r='+retto.replace('#','8uyt56').replace('&','t658uf'));
    xmlhttp.onreadystatechange = handleResponse;
    xmlhttp.send(null);	
}

function sndValidation(username) {
	var theUL = document.getElementById('andivalidatePOP'); // the UL
	
	theUL.innerHTML = '<div class="loadingPOP"><img src="images/working.gif" style="float:left; padding-left:5px; padding-right:5px;"><p>Validating...</p></div>';
	
    xmlhttp.open('get', 'rpc/rpcresendvalidate.php?u='+username);
    xmlhttp.onreadystatechange = handleResponse;
    xmlhttp.send(null);	
}

function sndHelpfullRev(id_movie,id_review,vote,id_revDIV) {
	var theUL = document.getElementById('loadRev'+id_revDIV); // the UL
	
	theUL.innerHTML = '<img src="images/working.gif"">';
	
    xmlhttp.open('get', 'rpc/rpcreviews.php?u='+id_movie+'&c='+id_review+'&v='+vote+'&r='+id_revDIV);
    xmlhttp.onreadystatechange = handleResponseHelpFull;
    xmlhttp.send(null);	
}

function sndReportRev(id_movie,id_review,id_revDIV) {
	var theUL = document.getElementById('loadRepo'+id_revDIV); // the UL
	
	theUL.innerHTML = '<img src="images/working.gif"">';
	
    xmlhttp.open('get', 'rpc/rpcreviewsreport.php?u='+id_movie+'&c='+id_review+'&r='+id_revDIV);
    xmlhttp.onreadystatechange = handleResponseHelpFull;
    xmlhttp.send(null);	
}

function handleResponseHelpFull() {
  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[2], update[3]);
            changeText(update[0], update[1]);
        }
		}
    }
}

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 handleResponseLog() {
  if(xmlhttp.readyState == 4){
		if (xmlhttp.status == 200){
       	
        var response = xmlhttp.responseText;
        var update = new Array();

        if(response.indexOf('|') != -1) {
            update = response.split('|');
			if(update[0]!='success') changeText(update[0], update[1]);
			else {
				update[1]=update[1].replace("8uyt56", "#");
				update[1]=update[1].replace("t658uf", "&");
				document.location=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;		
			}
		}
		
	};
var logAction = {
		'#logridb' : function(element){
			element.onclick = function(){

			var user = document.logasform.username.value; // onclick="sndReq('j=1&q=2&t=127.0.0.1&c=5');
			var pass = document.logasform.password.value; // onclick="sndReq('j=1,q=2,t=127.0.0.1,c=5');
			var retto = document.logasform.r.value;
			var keeplog=0;
			if(document.logasform.klog.checked) keeplog=1;
			if(retto=='') retto='index.php';
			sndLog(user,pass,retto,keeplog,''); return false;		
			}
		}
};

var lostPassAction = {
		'#fpassPOP' : function(element){
			element.onclick = function(){
			var user = document.fpassformPOP.username.value; // onclick="sndReq('j=1&q=2&t=127.0.0.1&c=5');
			if(user=='') return false;
			var retto = document.fpassformPOP.r.value;
			if(retto=='') retto='index.php';
			sndLPass(user,retto); return false;		
			}
		}
};

var sValidationAction = {
		'#fvalidRePOP' : function(element){
			element.onclick = function(){
			var user = document.fvalidFormPOP.username.value; // onclick="sndReq('j=1&q=2&t=127.0.0.1&c=5');
			if(user=='') return false;
			sndValidation(user); return false;		
			}
		}
};

var logActionPOP = {
		'#logridbPOP' : function(element){
			element.onclick = function(){
			
			var user = document.logasformPOP.username.value; // onclick="sndReq('j=1&q=2&t=127.0.0.1&c=5');
			var pass = document.logasformPOP.password.value; // onclick="sndReq('j=1,q=2,t=127.0.0.1,c=5');
			var retto = document.logasformPOP.r.value;
			var keeplog=0;
			if(document.logasformPOP.klog.checked) keeplog=1;
			if(retto=='') retto='index.php';
			sndLog(user,pass,retto,keeplog,'POP'); return false;		
			}
		}
};

var rateHelpfull = {
		'a.revhelpuler' : 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 The_id_movie = parameterList['u'];
			var The_id_review = parameterList['c'];
			var The_vote = parameterList['v'];
			var The_id_revDIV = parameterList['r'];
			
			//alert(The_id_movie+" "+The_id_review+" "+The_vote+" "+The_id_revDIV);
			sndHelpfullRev(The_id_movie,The_id_review,The_vote,The_id_revDIV); return false;		
			}
		}
};

var reportReview = {
		'a.revRepuler' : 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 The_id_movie = parameterList['u'];
			var The_id_review = parameterList['c'];
			var The_id_revDIV = parameterList['r'];
			
			//alert(The_id_movie+" "+The_id_review+" "+The_vote+" "+The_id_revDIV);
			sndReportRev(The_id_movie,The_id_review,The_id_revDIV); return false;		
			}
		}
};

	
Behaviour.register(ratingAction);
Behaviour.register(logAction);
Behaviour.register(logActionPOP);
Behaviour.register(rateHelpfull);
Behaviour.register(reportReview);
Behaviour.register(lostPassAction);
Behaviour.register(sValidationAction);
