/*
Author: Addam M. Driver
Date: 10/31/2006
 */

var sMax;	// Isthe maximum number of stars
var holder; // Is the holding pattern for clicked state
var preSet; // Is the PreSet value onces a selection has been made
var rated;
var xmlhttp;
var ratemestub;
var pmstub;
var varstub;

// For ajax votes
ratemestub = "/ukdating?action=rateme";
// For submitting votes
pmstub     = "/pm2009?action=saverate";

varstub = "";

if (isdefined("x_xid"))       { varstub += '&xid='       + x_xid; }
if (isdefined("x_personid"))  { varstub += '&personid='  + x_personid; }
if (isdefined("x_theirnick")) { varstub += '&theirnick=' + x_theirnick; }
if (isdefined("x_ratesex"))   { varstub += '&ratesex='   + x_ratesex; }
if (isdefined("x_minage"))    { varstub += '&minage='    + x_minage; }
if (isdefined("x_maxage"))    { varstub += '&maxage='    + x_maxage; }
if (isdefined("x_template"))  { varstub += '&ratingtemplate='    + x_template; }
if (isdefined("x_wraptemplate"))  { varstub += '&wraptemplate='    + x_wraptemplate; }
if (isdefined("x_toprated"))  { varstub += '&toprated='    + x_toprated; }
if (isdefined("x_bodymode"))  { varstub += '&bodymode='    + x_bodymode; }

// Rollover for image Stars //
function rating(num){
	sMax = 0;	// Isthe maximum number of stars
	for(n=0; n<num.parentNode.childNodes.length; n++){
		if(num.parentNode.childNodes[n].nodeName == "A"){
			sMax++;	
		}
	}

	if(!rated){
		s = num.id.replace("_", ''); // Get the selected star
		a = 0;
		for(i=1; i<=sMax; i++){		
			if(i<=s){
				document.getElementById("_"+i).className = "on";
				document.getElementById("rateStatus").innerHTML = num.title;	
				holder = a+1;
				a++;
			}else{
				document.getElementById("_"+i).className = "";
			}
		}
	}
}

// For when you roll out of the the whole thing //
function off(me){
	if(!rated){
		if(!preSet){	
			for(i=1; i<=sMax; i++){		
				document.getElementById("_"+i).className = "";
				document.getElementById("rateStatus").innerHTML = me.parentNode.title;
			}
		}else{
			rating(preSet);
			document.getElementById("rateStatus").innerHTML = document.getElementById("ratingSaved").innerHTML;
		}
	}
}

// When you actually rate something //
function rateIt(me){
	if(!rated){
		document.getElementById("rateStatus").innerHTML = document.getElementById("ratingSaved").innerHTML;
		preSet = me;
		rated=1;

        var rating = me.id.replace("_", '');

        if (isdefined("x_reload") && x_reload == 1) 
        {
          submitit(rating);
        }
        else
        {
		  sendRate(rating);
		  rating(me);
        }
	}
}

function submitit(rating){
  nurl=pmstub + varstub + "&rating=" + rating;

  window.location.href = nurl;
}

// Send the rating information somewhere using Ajax or something like that.
function sendRate(rating){

  var nurl;

  nurl=ratemestub + varstub + "&ajax=1&rating=" + rating;

  xmlhttp=GetXmlHttpObject();
  xmlhttp.open("GET",nurl,true);
  xmlhttp.send(null);
}

function isdefined(variable)
{
  return (typeof(window[variable]) == "undefined")?  false: true;
}

function GetXmlHttpObject()
{
  if (window.XMLHttpRequest)
  {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    return new XMLHttpRequest();
  }
  if (window.ActiveXObject)
  {
    // code for IE6, IE5
    return new ActiveXObject("Microsoft.XMLHTTP");
  }
  return null;
}




