
//-----------------------------------------------------------------------------
// REVIEW SCORE
//-----------------------------------------------------------------------------

var review_score_desc 					= ["Totalement inutile", "Peu intéressant", "Neutre", "Intéressant", "Très intéressant"]
var review_score_img_width 				= 18
var review_score_img_height 			= 16
var review_score_star					= "reviewCommentScoreStar"
var review_score_elm_desc_mousemove 	= "reviewCommentScoreDesc"
var review_score_elm_desc_mouseout 		= "reviewCommentScoreDescText"
var review_score_input_score 			= "reviewCommentScore"
var review_score_message_voted 			= "Déjà voté"

//----------------------------------------------------------------------------------------------------------
function review_score_onmousemove(e, self, id)
{
	if(!e) e = window.event;	// manage IE

	// find the score index
	var cursor_x = findPosX(e, self)								// get cursor relative position
	var index = Math.floor(cursor_x / review_score_img_width);		// snap the cursor position
	
	// set the description text
	$(review_score_elm_desc_mousemove + id).innerHTML = review_score_desc[index]	
	
	// move the image according the cursor position
	var background_pos = -(index + 1) * review_score_img_height; 	// calc background position
	self.style.backgroundPosition = 0 + " " + background_pos;		// set background position property
}

//----------------------------------------------------------------------------------------------------------
function review_score_onmousemove_voted(e, self, id)
{
	if(!e) e = window.event;	// manage IE

	$(review_score_elm_desc_mousemove + id).innerHTML = review_score_message_voted;
}

//----------------------------------------------------------------------------------------------------------
function review_score_onmouseout(e, self, id)
{

	// when mouseout reset the description text to default value contained in the hidden input
	$(review_score_elm_desc_mousemove + id).innerHTML = $(review_score_elm_desc_mouseout + id).value;
	
	// move back the background image to the score
	var value = parseInt($(review_score_input_score + id).value);	// get score value
	var background_pos = -(value + 1) * review_score_img_height;	// calc background position
	self.style.backgroundPosition = 0 + " " + background_pos;		// set background position property
}

function review_score_set_value(elm, value)
{
	var background_pos = -(value + 1) * review_score_img_height;	// calc background position
	elm.style.backgroundPosition = 0 + " " + background_pos;		// set background position property
}

//----------------------------------------------------------------------------------------------------------
function review_score_onclick_not_logged(e, self, company_id, review_id)
{
	var elm = $(review_score_star + review_id);
	elm.onmousemove = null;
	elm.onmouseout = null;
	$(review_score_elm_desc_mouseout + review_id).value = substitute(MESSAGES["review_score_not_logged"][g_lng], company_id, review_id);
	
	review_score_onmouseout(e, self, review_id);
}

//----------------------------------------------------------------------------------------------------------
function review_score_onclick(e, self, id)
{
	if(!e) e = window.event;	// manage IE

	// find the score index
	var cursor_x = findPosX(e, self)								// get cursor relative position
	var index = Math.floor(cursor_x / review_score_img_width);		// snap the cursor position
	review_score_send(id, index);
}

//----------------------------------------------------------------------------------------------------------
function review_score_send(review_id, score) 
{
	var url    = SETTINGS["review_score_send_url"];
	var pars   = 'id_review=' + review_id + '&score=' + score;
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onLoading: review_score_show_load, onComplete: review_score_show_response} );
}

//----------------------------------------------------------------------------------------------------------
function review_score_show_load() 
{	
}

//----------------------------------------------------------------------------------------------------------
function review_score_show_response(originalRequest) 
{
	var results = originalRequest.responseText.split(";");
	var error 		= results[0];
	var id_review 	= results[1];
	var final_score = results[2];
	var vote_count 	= results[3];
	
	var elm = $(review_score_star + id_review);
	
	elm.onmousemove = null;
	elm.onmouseout = null;

	// ok
	if (error == 0)
	{
		$(review_score_input_score + id_review).value = final_score;
		$(review_score_elm_desc_mouseout + id_review).value = "Merci ! " + vote_count + " votes ";
	}
	else if (error == 1)
	{
		$(review_score_elm_desc_mouseout + id_review).value = "Erreur.";
	}
	// already voted
	else if (error == 2)
	{
		$(review_score_elm_desc_mouseout + id_review).value = "Vous avez déjà voté.";
	}	
	review_score_onmouseout(null, elm, id_review);
}


//-----------------------------------------------------------------------------
// REVIEW SUB COMMENTS
//-----------------------------------------------------------------------------

function review_comment_toggle_size(e, self, id)
{
	var min = "40px";
	var max = "200px";
	var elm = document.getElementById("textareaComment" + id)
	
	if (elm.style.height == max)
	{
		elm.style.height = min;
		self.innerHTML = MESSAGES["review_popup_bigger_zone"][g_lng];
	}
	else
	{
		elm.style.height = max;
		self.innerHTML = MESSAGES["review_popup_smaller_zone"][g_lng];
	}
}

//-----------------------------------------------------------------------------
function review_comment_update(id_review)
{
	var grow_max_char 	= SETTINGS["review_comment_grow_max_char"];
	var max_chars 		= SETTINGS["review_comment_max_char"];
	var msg_exceeded 	= MESSAGES["review_popup_exceeded"][g_lng];
	var msg_remaining 	= MESSAGES["review_popup_remaining"][g_lng];
	
	var form = document["send_comment_" + id_review];
	if (form == null)
		return;
	
	if (form.comment.readOnly)
		return;

	if (form.comment.value.length == 0)
	{
		form.button_send.disabled = true;
	}
	else
		form.button_send.disabled = false;
	
	var elm_count = $("comment_character_counter_value_" + id_review);
	var elm_label = $("comment_character_counter_label_" + id_review);
	if(form.comment.value.length > max_chars)
	{
		if(elm_label.innerHTML != msg_exceeded)
			elm_label.innerHTML = msg_exceeded;
		elm_count.value = form.comment.value.length - max_chars;
		elm_count.className = "inputCharCountExceeded";
	}
	else
	{
		if(elm_label.innerHTML != msg_remaining)
			elm_label.innerHTML = msg_remaining;
		elm_count.value = max_chars - form.comment.value.length;
		elm_count.className = "inputCharCountRemaining";
	}
}

//-----------------------------------------------------------------------------
function review_comment_send(self, id_review, captcha, comment)
{
	var form = document["send_comment_" + id_review];
	
	if (comment.length > SETTINGS["review_comment_max_char"])
	{
		alert(MESSAGES["review_comment_too_big"][g_lng]);
		return false;
	}
	
	self.disabled = true;
	form.comment.readOnly = true;

	var url    = SETTINGS["review_comment_send_url"];
	var pars   = 'id_review=' + id_review +  '&captcha=' + captcha + '&comment=' + escape(comment);
	var myAjax = new Ajax.Request( url, {method: 'post', parameters: pars, onLoading: review_comment_show_load, onComplete: review_comment_show_response} );
	
	return true;
}

//----------------------------------------------------------------------------------------------------------
function review_comment_show_load() 
{
}

//----------------------------------------------------------------------------------------------------------
function review_comment_show_response(originalRequest) 
{
	var results 	= originalRequest.responseText.split(";");
	var error 		= results[0];
	var id_review 	= results[1];
	
	var form = document["send_comment_" + id_review];
	var elm_count = $("comment_character_counter_value_" + id_review);
	var elm_label = $("comment_character_counter_label_" + id_review);
		
	// ok
	if (error == 0)
	{
		elm_count.style.display = "none";
		form.button_send.style.display = "none";
		elm_label.innerHTML = MESSAGES["review_comment_added"][g_lng];
		location = "review.php?id=" + id_review + "#commentPopup" + id_review;
	}
	else if (error == 24)
	{
		elm_count.style.display = "none";
		form.button_send.disabled = false;
		elm_label.innerHTML = MESSAGES["review_comment_timer"][g_lng]; 
	}
	else if (error == 6)
	{
		elm_count.style.display = "none";
		form.button_send.disabled = false;
		elm_label.innerHTML = MESSAGES["review_popup_code"][g_lng]; 
	}
}



//-----------------------------------------------------------------------------
// REVIEW MESSAGE
//-----------------------------------------------------------------------------

function review_message_toggle_size(e, self, id)
{
	var min = "160px";
	var max = "400px";
	var elm = document.getElementById("textareaMessage" + id)
	
	if (elm.style.height == max)
	{
		elm.style.height = min;
		self.innerHTML = MESSAGES["review_popup_bigger_zone"][g_lng];
	}
	else
	{
		elm.style.height = max;
		self.innerHTML = MESSAGES["review_popup_smaller_zone"][g_lng];
	}
}

//-----------------------------------------------------------------------------
function review_message_update(id_review)
{
	var grow_max_char 	= SETTINGS["review_message_grow_max_char"];
	var max_chars 		= SETTINGS["review_message_max_char"];
	var msg_exceeded 	= MESSAGES["review_popup_exceeded"][g_lng];
	var msg_remaining 	= MESSAGES["review_popup_remaining"][g_lng];
	
	var form = document["send_message_" + id_review];
	
	if (form == null)
		return;
		
	if (form.message.readOnly)
		return;

	if (form.message.value.length == 0)
	{
		form.button_send.disabled = true;
	}
	else
		form.button_send.disabled = false;
	
	var elm_count = $("character_counter_value_" + id_review);
	elm_count.style.display = "inline";
	var elm_label = $("character_counter_label_" + id_review);
	if(form.message.value.length > max_chars)
	{
		if(elm_label.innerHTML != msg_exceeded)
			elm_label.innerHTML = msg_exceeded;
		elm_count.value = form.message.value.length - max_chars;
		elm_count.className = "inputCharCountExceeded";
	}
	else
	{
		if(elm_label.innerHTML != msg_remaining)
			elm_label.innerHTML = msg_remaining;
		elm_count.value = max_chars - form.message.value.length;
		elm_count.className = "inputCharCountRemaining";
	}
}

//-----------------------------------------------------------------------------
function review_message_send(self, id_review, id_user_to, captcha, comment)
{
	var form = document["send_message_" + id_review];
	
	if (comment.length > SETTINGS["review_message_max_char"])
	{
		alert(MESSAGES["review_message_too_big"][g_lng]);
		return false;
	}
	
	self.disabled = true;
	form.message.readOnly = true;

	var url    = SETTINGS["review_message_send_url"];
	var pars   = 'id_review=' + id_review + '&id_user_to=' + id_user_to +  '&captcha=' + captcha + '&message=' + escape(comment);
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onLoading: review_message_show_load, onComplete: review_message_show_response} );
	
	return true;
}

//----------------------------------------------------------------------------------------------------------
function review_message_show_load() 
{
}

//----------------------------------------------------------------------------------------------------------
function review_message_show_response(originalRequest) 
{
	var results 	= originalRequest.responseText.split(";");
	var error 		= results[0];
	var id_review 	= results[1];
	
	var form = document["send_message_" + id_review];
	var elm_count = $("character_counter_value_" + id_review);
	var elm_label = $("character_counter_label_" + id_review);
	var elm_captcha = $("validationContainer" + id_review);
		
	// ok
	if (error == 0)
	{
		elm_count.style.display = "none";
		elm_captcha.style.display = "none";
		elm_label.innerHTML = MESSAGES["review_message_sent"][g_lng]
	}
	else
	{
		elm_count.style.display = "none";
		form.button_send.disabled = false;
		form.message.readOnly = false;
		if (error == 1)
			elm_label.innerHTML = MESSAGES["review_popup_too_short"][g_lng]
		else if (error == 6)
			elm_label.innerHTML = MESSAGES["review_popup_code"][g_lng]
		else if (error == 28)
			elm_label.innerHTML = MESSAGES["review_message_timer"][g_lng]
		else if (error == 30)
			elm_label.innerHTML = MESSAGES["review_message_limit"][g_lng]
	}
}