var lssRatingStar = Class.create({
	config : {
		min : 0,
		max : 5
	},
	
	initialize : function(inValueField, inStarField){
		this.valueField = $(inValueField);
		this.starField = $(inStarField);
		
		this.createField();
	},
	
	createField : function(){
		var element = [];
		if(this.config.min <= 0){
			var span = document.createElement("span");
			span.appendChild(document.createTextNode("x"));
			Element.setStyle(span, { cursor : "hand" });
			
			Event.observe(span, "click", this.changeValue.bind(this, 0));
			
			element[element.length] = span;
			element[element.length] = document.createTextNode(" | ");
		}
		
		for(i=this.config.min; i<=this.config.max; i++){
			if(i != 0){
				var span = document.createElement("span");
				if(i <= this.valueField.value || 0){
					span.appendChild(document.createTextNode("★"));
				}else{
					span.appendChild(document.createTextNode("☆"));
				}
				Element.setStyle(span, { cursor : "hand" });
				Event.observe(span, "click", this.changeValue.bind(this, i));
				
				element[element.length] = span;
			}
		}
		
		this.starField.innerHTML = "";
		for(i=0; i<element.length; i++){
			this.starField.appendChild(element[i]);
		}
	},
	
	changeValue : function(inValue){
		inValue = inValue || 0;
		this.valueField.value = inValue;
		this.createField();
	}
});
