jQuery.fn.ratings = function(stars, initialRating) {
  initialRating = parseInt(initialRating);

  //Save  the jQuery object for later use.
  var elements = this;
  
  //Go through each object in the selector and create a ratings control.
  return this.each(function() {
  
	//Make sure intialRating is set.
	if(!initialRating)
	  initialRating = 0;
	  
	//Save the current element for later use.
	var containerElement = this;
	
	//grab the jQuery object for the current container div
	var container = jQuery(this);
	
	//Create an array of stars so they can be referenced again.
	var starsCollection = Array();
	
	//Save the initial rating.
	containerElement.rating = initialRating;
	
	//Set the container div's overflow to auto.  This ensure it will grow to
	//hold all of its children.
	container.css('overflow', 'auto');
	
	//create each star
	for(var starIdx = 0; starIdx < stars; starIdx++) {
	  
	  //Create a div to hold the star.
	  var starElement = document.createElement('div');
	  
	  //Get a jQuery object for this star.
	  var star = jQuery(starElement);
	  
	  //Store the rating that represents this star.
	  starElement.rating = starIdx + 1;
	  
	  //Add the style.
	  star.addClass('jquery-ratings-star');
	  
	  //Add the full css class if the star is beneath the initial rating.
	  if(starIdx < initialRating) {
		star.addClass('jquery-ratings-full');
	  }
	  
	  //add the star to the container
	  container.append(star);
	  starsCollection.push(star);
	  
	  //hook up the click event
	  star.click(function() {
		//set the containers rating
//		containerElement.rating = this.rating;
	$.ajaxSetup({ 
		type: "POST"
	});
	var data = {
		'action' : 'vote',
		'image': IMAGE_ID,
		'submit_vote' : 'yes',
		'vote_select' : this.rating, // 1 .. 10
		'voteSubmit' : 'Îöåíèòü',
		'rnd' : Math.random()
	};
	$('#vote_accepted').hide();
	jQuery.getJSON('/vote_image.php', data, function(rdata){
		try{
			if(rdata.result == "1"){//OK
				containerElement.rating = rdata.rating;
			}else{//ERROR
			}
			$('#rating_stat').html(rdata.html);
			$('#vote_accepted').html(rdata.msg);
			$('#vote_accepted').show('slow');
		}catch(e){
		}
	});

		//When clicked, fire the 'ratingchanged' event handler.  
		//Pass the rating through as the data argument.
//		elements.triggerHandler("ratingchanged", {rating: this.rating});
	  });
	  
	  star.mouseenter(function() {
		//Highlight selected stars.
		for(var index = 0; index < this.rating; index++) {
		  starsCollection[index].addClass('jquery-ratings-full');
		}
		//Unhighlight unselected stars.
		for(var index = this.rating; index < stars; index++) {
		  starsCollection[index].removeClass('jquery-ratings-full');
		}
	  });
	  
	  container.mouseleave(function() {
		//Highlight selected stars.
		for(var index = 0; index < containerElement.rating; index++) {
		  starsCollection[index].addClass('jquery-ratings-full');
		}
		//Unhighlight unselected stars.
		for(var index = containerElement.rating; index < stars ; index++) {
		  starsCollection[index].removeClass('jquery-ratings-full');
		}
	  });
	}
  });
};

