/*
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(ID) {
    xmlhttp.open('get', '/PHP_ROOT/hb100-2009/rpc.php?ID='+ID);
    xmlhttp.onreadystatechange = handleResponse;
    xmlhttp.send(null);	
}


function sndReqSubCheck(ID) {
    xmlhttp.open('get', '/PHP_ROOT/hb100-2009/rpc.php?checksub=1&ID='+ID);
    xmlhttp.onreadystatechange = handleResponseSubCheck;
    xmlhttp.send(null);	
}

function sndReqSubscribe(ID, email) {
    xmlhttp.open('get', '/PHP_ROOT/hb100-2009/rpc.php?dosub=1&ID=' + ID + '&email=' + email);
    xmlhttp.onreadystatechange = handleResponseSubscribe;
    xmlhttp.send(null);	
}

function sndReqSubscribeAdd(ID) {
    xmlhttp.open('get', '/PHP_ROOT/hb100-2009/rpc.php?addsub=1&ID=' + ID);
    xmlhttp.onreadystatechange = handleResponseSubscribeAdd;
    xmlhttp.send(null);	
}

function sndReqSubscribeRemove(ID) {
    xmlhttp.open('get', '/PHP_ROOT/hb100-2009/rpc.php?remsub=1&ID=' + ID);
    xmlhttp.onreadystatechange = handleResponseSubscribeRemove;
    xmlhttp.send(null);	
}

function handleResponse() {
  if(xmlhttp.readyState == 4){
	if (xmlhttp.status == 200){
       	
        	var response = xmlhttp.responseText;
        	//alert(response);
        	var update = new Array();

        	if(response.indexOf('|') != -1) {
        	    update = response.split('|');
         	    changeText(update[0], update[1]);
         	    
         	    sndReqSubCheck(update[2]); 
        	}
		
	}
    }
}

function handleResponseSubCheck() {
  if(xmlhttp.readyState == 4){
	if (xmlhttp.status == 200){
       	
        	var response = xmlhttp.responseText;
        	var update = new Array();
        	if (response == 0) {
        		openSub("subscribe");
        		openSub("subscriberForm");
        	}
        	else if (response == 1) {
        		openSub("subscribe");
        		openSub("subscriberAdd");
        	}        	
	}
    }
}

function handleResponseSubscribe() {
  if(xmlhttp.readyState == 4){
	if (xmlhttp.status == 200){
       	
        	var response = xmlhttp.responseText;
        	var update = new Array();
        	
        	if (response == 1) {
        		closeSub("subscribe");
        		closeSub("subscriberForm");
        		openSub("subscribeSucess");
        	}
        	
        	//alert(response);
        	
	}
    }
}

function handleResponseSubscribeAdd() {
  if(xmlhttp.readyState == 4){
	if (xmlhttp.status == 200){
       	
        	var response = xmlhttp.responseText;
        	var update = new Array();
        	
        	if (response == 1) {
        		closeSub("subscribe");
        		closeSub("subscriberAdd");
        		openSub("subscribeSucess");
        	}
        	
        	//alert(response);
        	
	}
    }
}


function handleResponseSubscribeRemove() {
  if(xmlhttp.readyState == 4){
	if (xmlhttp.status == 200){
       	
        	var response = xmlhttp.responseText;
        	var update = new Array();
        	
        	if (response == 1) {
        		closeSub("unsibscribe");
        		openSub("unsibscribeSucess");
        	}
        	
        	//alert(response);
        	
	}
    }
}


function closeSub(sID) {
	document.getElementById(sID).style.display = "none";
}

function openSub(sID) {
	document.getElementById(sID).style.display = "block";
}

function subscribe(sID) {
	sEmail = document.getElementById("emailAddress").value;
	if (sEmail == "") {
		alert("Please Enter Your Email Address");
		document.getElementById("emailAddress").focus();
		return false;
	}
	if (echeck(sEmail)==false){
		alert("Please Enter A Valid Email Address");
		document.getElementById("emailAddress").focus();
		return false;
	}
	sndReqSubscribe(sID, sEmail);
	return false;
}

function subscriberAdd(sID) {
	sndReqSubscribeAdd(sID);
}

function subscriberRemove(sID) {
	sndReqSubscribeRemove(sID);
}
/**
 * DHTML email validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */
function echeck(str) {
	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	
	if (str.indexOf(at)==-1){
	   return false;
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return false;
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
	    return false;
	}

	 if (str.indexOf(at,(lat+1))!=-1){
	    return false;
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
	    return false;
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
	    return false;
	 }

	 if (str.indexOf(" ")!=-1){
	    return false;
	 }

	 return true					
}


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'];
			//alert('sndReq(' + parameterString.split("=")[1] + ')');  return false;	
			sndReq(parameterString.split("=")[1]); return false;		
			}
		}
		
	};
Behaviour.register(ratingAction);

