function RatingController()
{
	this.reqWidgetQueue= new Array();//queue with the widgets that made a request through this controller object
	var self=this;
	this.localWidgetReff = null;
	this.ref=null;
	this.ref_err=null;
	this.type=null;
	this.applyRate=function(banc_id, rate)
	{
		this.type='banc';
		this.ref=banc_id;
		this.ref_err=document.getElementById('mesaj_err_vote');
		var rqid=RequestManager.getInstance().createRequest(RatingController.getInstance(),URL+"index.php?page=banc&action=vote&banc_id="+banc_id+'&vote='+rate);
		RequestManager.getInstance().startRequest(rqid);
		this.ref_img=document.getElementById('rating_text');
		this.ref_img.innerHTML='<img src="'+URL+'images/ajax-loader.gif">';
		
	}
	this.applyRatePoza=function(poza_id, rate)
	{
		this.ref=poza_id;
		this.type='poza';
		this.ref_err=document.getElementById('mesaj_err_vote');
		var rqid=RequestManager.getInstance().createRequest(RatingController.getInstance(),URL+"index.php?page=poza&action=vote&poza_id="+poza_id+'&vote='+rate);
		RequestManager.getInstance().startRequest(rqid);
		this.ref_img=document.getElementById('rating_text');
		this.ref_img.innerHTML='<img src="'+URL+'images/ajax-loader.gif">';
	}
	this.applyRateFilm=function(film_id, rate)
	{
		this.ref=film_id;
		this.type='film';
		this.ref_err=document.getElementById('mesaj_err_vote');
		var rqid=RequestManager.getInstance().createRequest(RatingController.getInstance(),URL+"index.php?page=film&action=vote&film_id="+film_id+'&vote='+rate);
		RequestManager.getInstance().startRequest(rqid);
		this.ref_img=document.getElementById('rating_text');
		this.ref_img.innerHTML='<img src="'+URL+'images/ajax-loader.gif">';
	}
	this.applyRateDesen=function(desen_id, rate)
	{
		this.ref=desen_id;
		this.type='desen';
		this.ref_err=document.getElementById('mesaj_err_vote');
		var rqid=RequestManager.getInstance().createRequest(RatingController.getInstance(),URL+"index.php?page=desen&action=vote&desen_id="+desen_id+'&vote='+rate);
		RequestManager.getInstance().startRequest(rqid);
		this.ref_img=document.getElementById('rating_text');
		this.ref_img.innerHTML='<img src="'+URL+'images/ajax-loader.gif">';
		
	}
	this.applyRateRaspuns=function(raspuns_id, rate)
	{
		this.ref=raspuns_id;
		this.type='raspuns';
		this.ref_err=document.getElementById('mesaj_err_vote'+raspuns_id);
		var rqid=RequestManager.getInstance().createRequest(RatingController.getInstance(),URL+"index.php?page=intrebare&action=vote&raspuns_id="+raspuns_id+'&vote='+rate);
		RequestManager.getInstance().startRequest(rqid);
		
	}
	this.applyRateJoc=function(joc_id, rate)
	{
		this.ref=joc_id;
		this.type='joc';
		this.ref_err=document.getElementById('mesaj_err_vote');
		var rqid=RequestManager.getInstance().createRequest(RatingController.getInstance(),URL+"index.php?page=joc&action=vote&joc_id="+joc_id+'&vote='+rate);
		RequestManager.getInstance().startRequest(rqid);
		this.ref_img=document.getElementById('rating_text');
		this.ref_img.innerHTML='<img src="'+URL+'images/ajax-loader.gif">';
		
	}

	/**
	 * @param The manager index of the request 
	 * @desc This method is a handler for the completition of one request
	 */
	this.handleResponse=function (managerIndex)
	{	
		this.ref_err.innerHTML="";
		var respContent=RequestManager.getInstance().getRequestObj(managerIndex).getResponseContent();
		result=eval(respContent);
		if(this.type!='raspuns')
		{
			this.ref_img=document.getElementById('rating_text');
			this.ref_img.innerHTML='&nbsp;';
		}		
		if(result.length==6)
		{
			document.getElementById('cur_rating'+this.ref).style.width=(result[4]['value']*13)+'px';
			document.getElementById('rate_votes'+result[5]['value']).innerHTML=result[1]['value'];
			document.getElementById('rate_avg_votes'+result[5]['value']).innerHTML=result[2]['value'];			
			this.ref_err.innerHTML=result[0]['value'];
			return true;
			
		}
		if(result.length==3)
		{
			document.getElementById('cur_rating').style.width=(result[2]['value']*25)+'px';
			document.getElementById('rate_votes').innerHTML=result[1]['value'];
			document.getElementById('rate_avg_votes').innerHTML=result[2]['value'];
			this.ref_err.innerHTML=result[0]['value'];
			return true;
		}
		else
		{
			this.ref_err.innerHTML=result[0]['value'];
			return false;
		}
				
		return true;					
	}
}

RatingController.__instance__=null;

RatingController.getInstance=function()
{
	if(RatingController.__instance__==null)
	{
		RatingController.__instance__=new RatingController();
	}
	return RatingController.__instance__;
}
