jQuery.fn.rater = function(url, options){
	if (url == null) 
		return;
	var settings = {
		url: url, // post changes to 
		maxvalue: 5, // max number of stars
		curvalue: 0, // number of selected stars
		overvalue: 0,
		type: "click"
	};
	if(options) { jQuery.extend(settings, options); };

	var stars = new Array(settings.maxvalue);
	
	for (var i = 0; i < settings.maxvalue; i++) 	stars[i] = 1;
	for (var i = 0; i < settings.curvalue; i++) 	stars[i] = 2;
	//for (var i = 0; i < settings.overvalue; i++) 	stars[i] = 3;
	//jQuery(this).empty();
	for (var i = 0; i < stars.length; i++)
	{
		var image = $('<img />');
		image.attr("border", "0");
		image.attr("alt", (i+1));
		image.attr("rel", '#'+$(this).attr('id'));
		
		switch (stars[i])
		{
			case 2:
				image.attr("src", "/images/stars/star.gif");
				break;
				
			default:
				image.attr("src", "/images/stars/star-no.gif");
				break;
		}
		
		if (settings.type == "click")
		{
			image.click(
				function ()
				{
					var container = $(this).parent();
					jQuery.post(
						url, {"rating":$(this).attr("alt")}, function (response)
						{
							message = response.split('|');
							
							container.empty();
							settings.type = 'static';
							if (message[0] == 1)
							{
								settings.curvalue = message[2];
								container.rater(url, settings);
							} else
							{
								container.rater(url, settings);
							}
							container.append("<br /><small>"+message[1]+"</small>");
						}
					);
				}
			);
			
			image.mouseover(
				function(){
					$($(this).attr('rel')).raterstatus({
						maxvalue: settings.maxvalue,
						curvalue: settings.curvalue,
						overvalue: $(this).attr("alt"),
						type: settings.type
					});
					//$(this).attr("src", "/images/stars/star-over.gif");
				}
			);
			image.mouseout(
				function(){
					settings.overvalue = 0;
					$($(this).attr('rel')).raterstatus(settings);
				}
			);
			
		}
		jQuery(this).append(image);
	}
}

jQuery.fn.raterstatus = function(options) {
	var settings = {
		maxvalue: 5, // max number of stars
		curvalue: 0, // number of selected stars
		overvalue: 0,
		type: "click"
	};
	if(options) { jQuery.extend(settings, options); };
	//alert(settings.overvalue);

	var stars = new Array(settings.maxvalue);
	
	for (var i = 0; i < settings.maxvalue; i++) 	stars[i] = 1;
	for (var i = 0; i < settings.curvalue; i++) 	stars[i] = 2;
	for (var i = 0; i < settings.overvalue; i++) 	stars[i] = 3;
	
	var container = jQuery(this);
	//alert($("#"+container.attr("id")+" > img").length);
	for (var i = 0; i < $(container).find("img").length; i++)
	{
		image = container.find("img")[i];
		switch (stars[i])
		{
			case 2:
				$(image).attr("src", "/images/stars/star.gif");
				break;

			case 3:
				$(image).attr("src", "/images/stars/star-over.gif");
				break;

			default:
				$(image).attr("src", "/images/stars/star-no.gif");
				break;
		}
		
		
	}
}