

SocialEngineAPI.Rate = new Class({
  
	  // Class
	Implements: [Options],
  
  Base: {},
  
  options : {
		'profile_id' : 0,
		'rate_type' : 0,
		'object_name' : 0,
		'max_value' : 10
  },
  
 // Methods
  initialize: function(options)
  {
  	var bind = this;
    this.setOptions(options);
    window.addEvent('domready', function()
    {
   			bind.get_votes();
    });
  },
  
	// points nodes
	rate: function(rate_value)
	{
		var bind = this;
		//AJAX
		new Request.JSON
		({
      url : 'requests.php',
      method : 'get',
      data : {
      	'task' : 'rate',
      	'rate_object_id' : this.options.profile_id,
      	'rate_value' : rate_value,
      	'rate_type' : this.options.rate_type
      },
      onComplete : function(rate_array_values)
      {
     			bind.draw (rate_array_values);
      }
    }).send();
	},
	get_votes: function()
	{
		var bind = this;
		//AJAX
		new Request.JSON
		({
      url : 'requests.php',
      method : 'get',
      data : {
      	'task' : 'get_votes',
      	'rate_object_id' : this.options.profile_id,
      	'rate_type' : this.options.rate_type
      },
      onComplete : function(rate_array_values)
      {
     			bind.draw (rate_array_values);
      }
    }).send();
	},
		
	draw: function(rate_array_values)
	{
		var images='';
		var rate_icon=0;
		var half_rate=0;
		average=rate_array_values['average'];
		round_average=Math.floor(rate_array_values['average']);
		if (average!=round_average){
			half_rate=1;
		}
		rate_icon=round_average;
		for (i=1;i<=this.options.max_value;i++)
		{
			if (i<=rate_icon)
			{
				images=images+"<div class='rate_icon' onclick=\"SocialEngine."+this.options.object_name+".rate('"+i+"')\"></div>";
			}else
			{
				if ((half_rate==1) && (rate_icon+1)==i){images=images+"<div class='rate_icon_half' onclick=\""+this.options.object_name+".rate('"+i+"')\"></div>";
				}else
				{
					images=images+"<div class='rate_icon_disabled' onclick=\"SocialEngine."+this.options.object_name+".rate('"+i+"')\"></div>";
				}
			}
			
			if (i==this.options.max_value){
				images=images+"<div class='clr'></div>";
			}
		}
		$('rate').innerHTML="<div align='left'>"+this.Base.Language.Translate(69007011)+"</div>"+images+"<div class='clr'></div><div id='average_rate' align='center'> "+rate_array_values['average']+" "+this.Base.Language.Translate(69007001)+this.options.max_value+" ("+rate_array_values['total']+" "+this.Base.Language.Translate(69007002)+" ) </div>";
	}

});