YAHOO.namespace("aos.vote");

YAHOO.aos.vote.Utils = function(max, clicked, rated) {
	this.maxNumberOfStars = max;
	this.clickedState = clicked;
	this.isRated = rated;
};

YAHOO.aos.vote.Utils.prototype = {

	rollOver : function(element) {
		this.maxNumberOfStars = 0;
		for(var n = 0; n < element.parentNode.childNodes.length; n++) {
			if(element.parentNode.childNodes[n].nodeName == "A") {
				this.maxNumberOfStars ++;
			}
		}

		var star = element.id.replace("_", '');
		var a = 0;
		for (var index = 1; index <= this.maxNumberOfStars; index++) {
			if(index <= star){
				YAHOO.util.Dom.addClass("_" + index, "on");
				YAHOO.util.Dom.get("AOS_RateStatus").innerHTML = "Betyg: " + element.title;
				this.clickedState = a + 1;
				a ++;
			} else {
				YAHOO.util.Dom.removeClass("_" + index, "on");
			}
		}
		YAHOO.util.Dom.get("AOS_RateStatus").innerHTML = "Betyg: " + this.clickedState;

	},

	rollOff : function(element) {
		if(!this.isRated){
			for(var i = 1; i <= this.maxNumberOfStars; i++){
				YAHOO.util.Dom.removeClass("_" + i, "on");
			}
			YAHOO.util.Dom.get("AOS_RateStatus").innerHTML = "Klicka på stjärnorna för att välja betyg.";
		} else {
			YAHOO.aos.vote.utils.rollOver(this.isRated);
			YAHOO.util.Dom.get("AOS_RateStatus").innerHTML = "Tryck på skicka för att publicera, <a id=\"AOS_RateClear\" href=\"#\" onclick=\"YAHOO.aos.vote.utils.clearStars();return false;\">rensa</a>.";
		}
	},

	onClick : function(element){
		this.isRated = element;
		YAHOO.aos.vote.utils.rollOver(element);
		YAHOO.aos.vote.utils.setFormValue(element);
		YAHOO.util.Dom.get("AOS_RateStatus").innerHTML = "Tryck på skicka för att publicera, <a id=\"AOS_RateClear\" href=\"#\" onclick=\"YAHOO.aos.vote.utils.clearStars();return false;\">rensa</a>.";
	},

	setFormValue : function(element) {
		var communityForm = YAHOO.util.Dom.get("AOS_CommunityForm");
		communityForm.vote.value = element.title;
	},

	clearStars : function () {
		this.clickedState = false;
		this.isRated = false;
		for (var index = 1; index <= this.maxNumberOfStars; index++) {
			YAHOO.util.Dom.removeClass("_" + index, "on");
		}
		YAHOO.util.Dom.get("AOS_CommunityForm").vote.value = "";
		YAHOO.util.Dom.get("AOS_RateStatus").innerHTML = "Klicka på stjärnorna för att betygsätta";
	 	return false;
	}
}

YAHOO.aos.vote.utils = new YAHOO.aos.vote.Utils();