/*

oAjax and sendRequestTo variables should be defined before the code below
is used.

*/

var states = new Object;

function handleVote(args) {
	if (!args) return false;
	var review_id = args[0];
	var response = args[1];
	if (!review_id) return false;
	var r_text = response.responseText;
	if (r_text.search(/^success/) == -1) {	
		alert(r_text);
		return false;	
	}
	showBlock(review_id);
	return true;
}

function showBlock(review_id) {
	if (!review_id) return false;
	var row = document.getElementById('thanks_'+review_id);
	if (!row) return false;
	row.style.display = 'block';
	states[review_id] = true;
}

function hideBlock(review_id) {
	if (!review_id) return false;
	var row = document.getElementById('thanks_'+review_id);
	if (!row) return false;
	row.style.display = 'none';
	states[review_id] = false;	
}

function vote(review_id, yes_or_no) {
	if (!yes_or_no || !review_id ) return false;

	if (states[review_id] == true) {
		hideBlock(review_id);
		return false;
	}	else if (states[review_id] != null) {
		showBlock(review_id);
		return false;
	}
	
	var request = oAjax.request();
	request.setParam('pkg', 'twibo');	
	request.setParam('action', 'hotel_review_vote');
	request.setParam('review_id', review_id);
	request.setParam('yes_or_no', yes_or_no);
	
	var response = request.process(sendRequestTo);	
	response.execFunction("handleVote", review_id, response);
	
	return false;	
}
