var ExtendedRater = Class.create({
	baseUrl:'',
	path:'',
	stripesEvent:'',
	textSnippet1:'',
	textSnippet2:'',
	initialize: function(){

	},
	updateRating4Provider: function (providerId, score) {
		 
		this.stripesEvent = 'getRating';
		var url = this.baseUrl + '/' + this.path;
		var parameters = new Hash();
		parameters.set('providerId', providerId);
		parameters.set('ranking', score*10);
		Utils.sendRequest(url, parameters, extendedRater.handleVotingRequest);
	},
	handleVotingRequest: function(json){
//		alert(json.success);
		if (json.success) {
//			alert(json.values[0]);
			extendedRater.createNewRater4Provider(json.values[0].providerId, json.values[0].rating*0.1, json.values[0].ratingNumber);


		}
		else {
			$('rater_1_status').innerHTML = 'an error occurrend';
		}
	},
	createNewRater4Provider: function (providerId, rating, ratingNumber) {
		var elements = document.getElementsByTagName("div");
		var index = 0;
		for(var i = 0; i < elements.length; i++){
			if((elements[i].id.indexOf("rater_" + providerId) != -1)
				&&(elements[i].id.indexOf("status") == -1)
				&&(elements[i].id.indexOf("bg") == -1)
				&&(elements[i].id.indexOf("fg") == -1)
				&&(elements[i].id.indexOf("feeler") == -1)){
				var elementName = elements[i].id + '_status';
				$(elementName).innerHTML = this.textSnippet1 + ": " + ratingNumber + " " + this.textSnippet2;
				elementName = elements[i].id;
				$(elementName).innerHTML = '';		
				new Rater($(elementName), 
					raterLayout.stars,
					{ width:110,
						height:22,
						rated:true,
						ratingto: function(obj, score){ extendedRater.updateRating4Provider(providerId,score); },
						fg:this.baseUrl + "/images/star_over.gif", 
						bg:this.baseUrl + "/images/star_empty.gif", 
						fg_rated:this.baseUrl + "/images/star_over.gif", 
						reratable: false },
					rating );

				
			}
		}


		
		
		


	}
})
