var value;
var votes;
var votesLabel;
var ratingGlobal;
var ratingUser;
var ratingform;
var options;
var userInterface;
var averageInterface;
function writeBlock(className,value){
	var str="<div class='"+className+"'>";
	
	for(var i=1;i<=5;i++){
		str += ( i<value )?	'<span class="full"></span>' : '<span class="empty"></span>';
	}
	
	str+="</div>";
	return str;
}
function updateBlock(div, value){
		var spans =div.descendants("span");
		spans.each(function( span ){
			if ( span.value<=value && span.hasClassName("empty")){
				span.removeClassName('empty');
				span.addClassName('full');
			
			}else if(span.value>value && span.hasClassName("full")){
				span.removeClassName('full');
				span.addClassName('empty');
			}
			
				
		})
}
function spanOver(e)
{
	var a = Event.element(e);
//	alert (a.up("div").className);
	updateBlock( a.up("div") , a.value);
	
	var option = options.find(function(opt){
			return opt.value==a.value;
	})
	if(option!=undefined)
		option.up("select").selectedIndex=option.index;
	
	//alert(option.innerHTML);
	userInterface.innerHTML=option.innerHTML;

}

function spanClick(e){
	var a = Event.element(e);
	
		
	var spans=$A($$("#rating .user span"));
	spans.each( function ( span ){
				Event.stopObserving(span,"mouseover",spanOver);
				Event.stopObserving(span,"click",spanClick);
			});
	ratingform.submit();
}

function initRating(){
	
	new Insertion.Top($("rating"),writeBlock("user",0));	
	new Insertion.Top($("rating"),writeBlock("average",Math.ceil(value)+1));
	
	new Insertion.After($$("#rating .user")[0],"<div  class='label' id='userInterface'></div>");
	new Insertion.Before($$("#rating .user")[0],"<div  class='userTitle title'>"+ratingUser+"</div>");
	new Insertion.After($$("#rating .average")[0],"<div class='label' id='averageInterface'>"+votes+votesLabel+"</div>");
	new Insertion.Before($$("#rating .average")[0],"<div  class='global title'>"+ratingGlobal+"</div>");	
	
	userInterface=$("userInterface");
	averageInterface=$("averageInterface");
	

	
	var spans=$A($$("#rating .user span"));
	var i=1;
	spans.each(function (span){
				span.value=i;
				Event.observe(span,"mouseover",spanOver);
				Event.observe(span,"click",spanClick);
				i+=1;
			})
}
function isCompatible(){
	return true;
}
							
function ratingInitialize(){
	// Traducir en tt_ratingconstants.ts กกก
	
	if ($("rating-value")!=undefined)
		value=$("rating-value").innerHTML;
	if ($("rating-votes")!=undefined)
		votes=$("rating-votes").innerHTML;
	if ($("rating-votes-label")!=undefined)
		votesLabel=$("rating-votes-label").innerHTML;
	if ($("rating-global")!=undefined)
		ratingGlobal=$("rating-global").innerHTML;
	if ($("rating-user")!=undefined)
		ratingUser=$("rating-user").innerHTML;
	if ($$("#rating form").length>0)
		ratingform=$$("#rating form")[0];
		
	options=$A( $$( "#rating select option" ) );

	ratingaccesible=$("rating-accesible");

	if (isCompatible()){
		Element.hide(ratingform);
		if (ratingaccesible!=undefined)
			Element.hide(ratingaccesible);
		initRating();
		
	}

}

function drawForm(form){
	var  redirect = $A( form.getInputs('hidden' , 'redirect') );
//	alert(redirect);
	if (redirect.length>0){
		form.action=$F(redirect[0])+"&no_cache=1";
	}
}
function formInitialize(form){
		form.each(drawForm);
}
	
function rateFormInitialize(){
	var form=$A($$("form"));
	if (form.length>0  && GBrowserIsCompatible())
		formInitialize(form);
	ratingInitialize();
}

Event.observe(window,"load",rateFormInitialize);