//<![CDATA[


var RateManager = function() {
	this.originalUserImgsRate = new Array();
}



RateManager.prototype.dom_area = new Array();
RateManager.prototype.legend = new Array('Pas top','Moyen','Sympa','J’aime','J’adore');
RateManager.prototype.originalUserImgsRate = new Array();



RateManager.prototype.getRate = function(id_media) {
	
	var pars = encodeURI("action=get&id_media=" + id_media);
	new Ajax.Request("/common_rfa/rating.php", {
		method: 'post', 
		postBody: pars, 
		onSuccess: function(response) {
			this.updateRate(response)
		}.bind(this)
	});

}



RateManager.prototype.updateRate = function(response) {

	var xml = response.responseXML.documentElement;
	var result_body = xml.getElementsByTagName("result")[0];

	var average_rate = result_body.getAttribute("average_rate");
	var user_rate = result_body.getAttribute("user_rate");
	var sum_rate = result_body.getAttribute("sum_rate");
	var count_rate = result_body.getAttribute("count_rate");
	var id_media = result_body.getAttribute("id_media");

	if($('sumRate_' + id_media))
		$('sumRate_' + id_media).innerHTML = sum_rate;
	if($('countRate_' + id_media))
		$('countRate_' + id_media).innerHTML = count_rate;
	if($('averageRate_' + id_media))
		$('averageRate_' + id_media).innerHTML = average_rate;
	
	
	this.originalUserImgsRate[id_media] = new Array();
	for(i=1;i<=5;i++) {
		if(i <= user_rate) {
			var src ="/common_img/player_mini/star_default_on.gif";
		}	else {
			var src ="/common_img/player_mini/star_default_off.gif";
		}
		this.originalUserImgsRate[id_media][i] = src;
	}

	this.stopRate(id_media);
	
	if(id_media==player_getlastrequest('id_media')) {
		getplayerrate();
	}
}


RateManager.prototype.preRate = function(id_media,rate) {

	this.originalUserImgsRate[id_media] = new Array();

	var user_dom = $('userRate_media_' + id_media);
	var stars_dom = user_dom.childNodes;

        var b = 0;
	for(i = 0; i < stars_dom.length ;i ++) {
	        if( stars_dom[i].innerHTML != undefined ){
	                b++;
	                this.originalUserImgsRate[id_media][b] = stars_dom[i].firstChild.src; 
	        }
		
	}
		
	var a = 0;
	for(i = 0; i < stars_dom.length ;i ++) {
	        if( stars_dom[i].innerHTML != undefined ){
	                a++;
		        if(rate > a-1) {
			        stars_dom[i].firstChild.src = "/common_img/player_mini/star_default_on.gif";
		        } else {
			        stars_dom[i].firstChild.src = "/common_img/player_mini/star_default_off.gif";
		        }
		}
	}
		
}



RateManager.prototype.stopRate = function(id_media) {

	
	
	if(!$('userRate_media_' + id_media)) {
		return;
	}
	
	var user_dom = $('userRate_media_' + id_media);
	
	var stars_dom = user_dom.childNodes;
	
	var a = 0;
	for(i = 0; i < stars_dom.length; i++){
	        if( stars_dom[i].innerHTML != undefined ){
	        	a++;
		        stars_dom[i].firstChild.src = this.originalUserImgsRate[id_media][a];
		}
	}
}




RateManager.prototype.setRate = function(id_media,rate,is_connect) {

        if( is_connect == false ){

                edition("Register&action=comment");

        } else {
        

	var pars = encodeURI("action=set&id_media=" + id_media + "&rate=" + rate);
		
	new Ajax.Request("/common_rfa/rating.php", {
		method: 'post', 
		postBody: pars, 
		onSuccess: function(response) {
			this.updateRate(response)
		}.bind(this)
	});
	
	}
		

}


var rater = new RateManager();


/* Fonction pour maintenir la compatibilité du player externe photo */
function rate(id_media,rate) {
	rater.setRate(id_media,rate,true);
}



/*********** fonction du player ***********/

var init_starplayer_src = new Array();
var legend = new Array('Pas top','Moyen','Sympa','J’aime','J’adore');

function get_player_star_type() {
         var img = document.getElementById('playerrate_1').src;
         myregexp = /_([a-z]+)_[a-z]+\.gif$/;
         myregexp.exec(img);
         return RegExp.$1;
}

function getplayerrate() {
	var id_media = player_getlastrequest('id_media');
        if (id_media == 0)
                return;
	var pars = encodeURI("action=get&id_media=" + id_media);
	/* envoi de la requete vers le serveur */
	var myAjax = new Ajax.Request("/common_rfa/rating.php", {method: 'post', postBody: pars, onSuccess: getplayerrate_on_success, onFailure: getplayerrate_on_failure} );
}
	
	
function getplayerrate_on_success(http) {
	var xml = http.responseXML.documentElement;
	var result_body = xml.getElementsByTagName("result")[0];
	var user_rate = result_body.getAttribute("user_rate");
	
	var type = get_player_star_type();

	/* etoiles du vote user */
	for(i=1;i<=5;i++) {
		if(i <= user_rate)
			var src ="/common_img/player_mini/star_" + type + "_on.gif";
		else
			var src ="/common_img/player_mini/star_" + type + "_off.gif";
		var id = "playerrate_" + i;
		if($(id))
			$(id).src = src;
	}

}

function getplayerrate_on_failure(http) {
	return true;
}


function stopplayerrate() {
	var id_media = player_getlastrequest('id_media');
        if (id_media == 0)
                return;
	affiche_text_rate('off');
 	for(i=1;i<=5;i++) {
 		var id = "playerrate_" + i;
 		$(id).src = init_starplayer_src[i];
	}

 	var popup = 'player-ratetext';
 	if ($(popup)) {
        	$(popup).innerHTML = 'Votez';
 	}
}


function preplayerrate(rate) {
	var id_media = player_getlastrequest('id_media');
        if(id_media == 0)
                return;

	affiche_text_rate('off');
	var type = get_player_star_type();

	for(i=1;i<=5;i++) {
		var id = "playerrate_" + i;
		init_starplayer_src[i] = $(id).src; 
		if(i<=rate) {
			$(id).src = "/common_img/player_mini/star_" + type + "_on.gif";
		} else {
			$(id).src = "/common_img/player_mini/star_" + type + "_off.gif";
		}
	}
	
	 var popup = 'player-ratetext';
	 if ($(popup))
		$(popup).innerHTML=legend[rate-1];
}




function playerrate(rate) {
	var id_media = player_getlastrequest('id_media');
        if(id_media == 0)
                return;
	var pars = encodeURI("action=set&id_media=" + id_media + "&rate=" + rate);

	/* envoi de la requete vers le serveur */
	var myAjax = new Ajax.Request("/common_rfa/rating.php", {method: 'post', postBody: pars, onSuccess: setplayerrate_on_success, onFailure: setrate_on_failure} );
}

function setplayerrate_on_success(http)	{
	var type = get_player_star_type();
	var xml = http.responseXML.documentElement;
	var result_body = xml.getElementsByTagName("result")[0];

	var ok_result = result_body.getAttribute("ok");
	var id_media = result_body.getAttribute("id_media");
	var user_rate = result_body.getAttribute("user_rate");
	if(ok_result == "true") {
		for(i=1;i<=5;i++) {
			if(i <= user_rate) 
				init_starplayer_src[i] ="/common_img/player_mini/star_" + type + "_on.gif";
			else
				init_starplayer_src[i] ="/common_img/player_mini/star_" + type + "_off.gif";
		}	
	
		player_update_vote();
	}
	stopplayerrate();
}


function setrate_on_failure(http) {
	return true;
}



/* VIeilles fonction pour les version 1.0 */

var init_star_src = new Array();
var init_text_src = new Array();

function getphotorate(id_media)
	{
	var pars = encodeURI("action=get&id_media=" + id_media);
	
	/* envoi de la requéte vers le serveur */
	var myAjax = new Ajax.Request("/common_rfa/rating.php", {method: 'post', postBody: pars, onSuccess: getphotorate_on_success, onFailure: getphotorate_on_failure} );
	}
	
	
function getphotorate_on_success(http){
	//alert(http.responseText);
	var xml = http.responseXML.documentElement;
	var result_body = xml.getElementsByTagName("result")[0];

	var average_rate = result_body.getAttribute("average_rate");
	var user_rate = result_body.getAttribute("user_rate");
	var count_rate = result_body.getAttribute("count_rate");
	var id_media = result_body.getAttribute("id_media");

	/* etoiles d ela moyenne */
	/*for(i=1;i<=5;i++)
		{
		if(average_rate >= i)
			{var src = "/common_img/bio/stars_rouge.gif";}
		else
			{
			if(average_rate >= i-0.5)
				{var src  = "/common_img/bio/stars_demi.gif";}
			else
				{var src  = "/common_img/bio/stars_grise.gif";}
			}
		var id = "playeravgrate_" + i;
		$(id).src = src;
		}*/
	
	/* etoiles du vote user */
	for(i=1;i<=5;i++){
		if(i <= user_rate){
			var src ="/common_img/player_mini/star_default_on.gif";
		}
		else{
			var src ="/common_img/player_mini/star_default_off.gif";
		}
		var id = "rate_" + i;
		$(id).src = src;
	}
	
	if(user_rate==0){
		init_text_src[id_media] = "/common_img/bio/bt_votez.gif";
	}
	else{
		init_text_src[id_media] = "/common_img/bio/" + user_rate + ".gif";
	}
	$("ratetext_" + id_media).src = init_text_src[id_media];
}


function getphotorate_on_failure(http)
{
alert("oups");
}
	

function photorate(id_media,rate)
{
	if(is_connect!=false){
		var pars = encodeURI("action=set&id_media=" + id_media + "&rate=" + rate);
		/* envoi de la requéte vers le serveur */
		var myAjax = new Ajax.Request("/common_rfa/rating.php", {method: 'post', postBody: pars, onSuccess: setphotorate_on_success, onFailure: setphotorate_on_failure} );	
	}
	else{
		vote_alert();
	}	
}


function setphotorate_on_success(http)
{

var xml = http.responseXML.documentElement;
var result_body = xml.getElementsByTagName("result")[0];
var ok_result = result_body.getAttribute("ok");
var id_media = result_body.getAttribute("id_media");

if(ok_result == "true")
	{
	var user_rate = result_body.getAttribute("user_rate");
	var count_rate = result_body.getAttribute("count_rate");
	var average_rate = result_body.getAttribute("average_rate");
	var sum_rate = result_body.getAttribute("sum_rate");
	// modifications des etoiles user
	init_star_src[id_media] = new Array();
	init_text_src[id_media] = "/common_img/bio/" + user_rate + ".gif";

	for(i=1;i<=5;i++)
		{
		if(i <= user_rate)
			{init_star_src[id_media][i] ="/common_img/player_mini/star_default_on.gif";}
		else
			{init_star_src[id_media][i] ="/common_img/player_mini/star_default_off.gif";}
		}
	}

	// modifications des etoiles de moyenne
	var id_sum = "sum_rating";
	if($(id_sum))
		$(id_sum).innerHTML = sum_rate;

	// modifications du nombre de votes
	var id_count = "count_rating";
	if($(id_count))
		$(id_count).innerHTML = count_rate;

	average_rate = Math.round(average_rate*100)/100; 
	var id_avg = "avg_rating";
	if($(id_avg))
		$(id_avg).innerHTML = average_rate;

	if($("gorate_" + id_media))
		{$("gorate_" + id_media).style.display = "none";}
	
	stoprate_photo(id_media);
}


function setphotorate_on_failure(http)
{
alert("oups");
}

function prerate_photo(id_media,rate)
{
init_star_src[id_media] = new Array();
init_text_src[id_media] = $("ratetext_" + id_media).src
for(i=1;i<=5;i++)
	{
	var id = "rate_" + i;
	init_star_src[id_media][i] = $(id).src; 
	$(id).src = "/common_img/player_mini/star_default_off.gif";
	}
	
for(i=1;i<=rate;i++)
	{
	var id = "rate_" + i;
	$(id).src = "/common_img/player_mini/star_default_on.gif";
	}
	
	$("ratetext_" + id_media).src ="/common_img/bio/" + rate + ".gif";
}


function stoprate(id_media)
{
for(i=1;i<=5;i++)
	{
	var id = "rate_" + id_media + "_" + i;
	$(id).src = init_star_src[id_media][i];
	}
$("ratetext_" + id_media).src = init_text_src[id_media];
}

function stoprate_photo(id_media){
	for(i=1;i<=5;i++){
		var id = "rate_" + i;
		$(id).src = init_star_src[id_media][i];
	}

	$("ratetext_" + id_media).src = init_text_src[id_media];
}







/* fonctions de vote du player rire dans la page artiste et dans la home by challet */
// Un bon refactoring sur toutes ces fonctions de vote ça ferait pas de mal

var init_starrire_src = new Array();
var init_textrire_src = new Array();
var displaying_media;


function prerate_rire(rate) {
	
	for(i=1;i<=5;i++){
		var id = "rirerate_" + i;
		init_starrire_src[i] = $(id).src; 
		if(i <= rate) {
			$(id).src = "/common_img/player_mini/star_default_on.gif";
		} else {
			$(id).src = "/common_img/player_mini/star_default_off.gif";
		}	
	}
	
	$('ratetext').src = "/common_img/bio/" + rate + ".gif";
}

function stoprirerate(){
	for(i=1;i<=5;i++){
		var id = "rirerate_" + i;
		$(id).src = init_starrire_src[i];
	}

	$("ratetext").src = init_textrire_src;
}


function getrirerate(id_media) {

	displaying_media = id_media;
		
	var pars = encodeURI("action=get&id_media=" + id_media);
		
	new Ajax.Request("/common_rfa/rating.php", {
		method: 'post',
		postBody: pars,
		onSuccess: function(http) {
			display_rirerate(http)
		},
		onFailure: function() {
		}
	});

}

function rirerate(rate) {

	if(is_connect!=false){
		var pars = encodeURI("action=set&id_media=" + displaying_media + "&rate=" + rate);
		/* envoi de la requéte vers le serveur */
		new Ajax.Request("/common_rfa/rating.php", {
			method: 'post',
			postBody: pars,
			onSuccess: function(http) {
				display_rirerate(http)
			},
			onFailure: function() {
			}
		});
	} else {
		edition("Register&action=rating");
	}

}

function display_rirerate(http) {

	var xml = http.responseXML.documentElement;
	var result_body = xml.getElementsByTagName("result")[0];
	var ok_result = result_body.getAttribute("ok");
	var id_media = result_body.getAttribute("id_media");

	if(ok_result == "true"){
		var user_rate = result_body.getAttribute("user_rate");
		var count_rate = result_body.getAttribute("count_rate");
		var avg_rate = result_body.getAttribute("average_rate");
		var sum_rate = result_body.getAttribute("sum_rate");

		// modifications des etoiles user
		
		if(user_rate != 0) {
			init_textrire_src = "/common_img/bio/" + user_rate + ".gif";
		} else {
			init_textrire_src = "/common_img/bio/bt_votez.gif";
		}

		for(i=1;i<=5;i++){
			if(i <= user_rate)
				{init_starrire_src[i] = "/common_img/player_mini/star_default_on.gif";}
			else
				{init_starrire_src[i] = "/common_img/player_mini/star_default_off.gif";}
			}

		if($('count_rate')) {
			$('count_rate').innerHTML = count_rate;
		}
		if($('sum_rate')) {
			$('sum_rate').innerHTML = sum_rate;
		}
		if($('avg_rate')) {
			$('avg_rate').innerHTML = avg_rate;
		}

	stoprirerate();
	}
	
}

/* Fin des vieilles fonctions pour les versions 1.0



/* Fonction d'affichage des texte d'information de vote */
function affiche_text_rate(val) {
	var text = document.getElementById('player-ratetext');
	var boutons = document.getElementById('boutonsPlayer');
	if (val == "on") {
		text.className = "etat_rate on";
		if (boutons)
			boutons.className = "off";
	} else {
		text.className = "etat_rate off";
		if (boutons)
			boutons.className = "on";
	}
}

//]]>
