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

Modified by EasySpoon

*/

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;

function createObject(objId) {
	if (document.getElementById) return document.getElementById(objId);
	else if (document.layers) return eval("document." + objId);
	else if (document.all) return eval("document.all." + objId);
	else return eval("document." + objId);
}

// 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){
				createObject("_"+i).className = "on";
				createObject("rateStatus").innerHTML = num.title;	
				holder = a+1;
				a++;
			}else{
				createObject("_"+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++){		
				createObject("_"+i).className = "";
				createObject("rateStatus").innerHTML = me.parentNode.title;
			}
		}else{
			rating(preSet);
			createObject("rateStatus").innerHTML = createObject("ratingSaved").innerHTML;
		}
	}
}

// When you actually rate something //
function rateIt(me){
	if(!rated){
		createObject("rateStatus").innerHTML = createObject("ratingSaved").innerHTML;
		createObject("vote").value = me.id.replace("_", '');
		preSet = me;
		rated=1;
		rating(me);
		createObject("vote_button").disabled = false;
	}
}

function resetRate() {
	rated=null;
	preSet=null;
	holder=null;

	for(i=1; i<=sMax; i++){		
		createObject("_"+i).className = "";
	}
	sMax=null;
	createObject("rateStatus").innerHTML = "";
	createObject("vote").value = "";
	createObject("vote_button").disabled = true;
}

//----------------

var review_sMax;	// Isthe maximum number of stars
var review_holder; // Is the holding pattern for clicked state
var review_preSet; // Is the PreSet value onces a selection has been made
var review_rated;

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function validateReviewForm() {
	if ((createObject('review_vote').value != '') && (trim(createObject('rev_des').value) != ''))
		createObject('review_submit').disabled = false;
	else
		createObject('review_submit').disabled = true;
}

// Rollover for image Stars //
function review_rating(num){
	review_sMax = 0;	// Isthe maximum number of stars
	for(n=0; n<num.parentNode.childNodes.length; n++){
		if(num.parentNode.childNodes[n].nodeName == "A"){
			review_sMax++;	
		}
	}
	
	if(!review_rated){
		s = num.id.replace("_review", ''); // Get the selected star
		a = 0;
		for(i=1; i<=review_sMax; i++){		
			if(i<=s){
				createObject("_review"+i).className = "on";
				createObject("review_rateStatus").innerHTML = num.title;	
				review_holder = a+1;
				a++;
			}else{
				createObject("_review"+i).className = "";
			}
		}
	}
}

// For when you roll out of the the whole thing //
function review_off(me){
	if(!review_rated){
		if(!review_preSet){	
			for(i=1; i<=review_sMax; i++){		
				createObject("_review"+i).className = "";
				createObject("review_rateStatus").innerHTML = me.parentNode.title;
			}
		}else{
			review_rating(review_preSet);
			createObject("review_rateStatus").innerHTML = createObject("review_ratingSaved").innerHTML;
		}
	}
}

// When you actually rate something //
function review_rateIt(me){
	if(!review_rated){
		createObject("review_rateStatus").innerHTML = createObject("review_ratingSaved").innerHTML;
		createObject("review_vote").value = me.id.replace("_review", '');
		review_preSet = me;
		review_rated=1;
		review_rating(me);
		validateReviewForm();
	}
}

function review_resetRate() {
	review_rated=null;
	review_preSet=null;
	review_holder=null;

	for(i=1; i<=review_sMax; i++){		
		createObject("_review"+i).className = "";
	}
	review_sMax=null;
	createObject("review_rateStatus").innerHTML = "";
	createObject("review_vote").value = "";
	validateReviewForm();
}
