function onVoteOver( post_id ) {
	$( 'vote_result_' + post_id ).style.display = 'none';
	$( 'vote_' + post_id ).style.display = 'block';
}

function onVoteOut( post_id ) {
	$( 'vote_result_' + post_id ).style.display = 'block';
	$( 'vote_' + post_id ).style.display = 'none';
	onHeartOut( post_id, 5 );
}

function onHeartOver( post_id, heart_id ) {
	for( var i = 1; i <= heart_id; i++ ) {
		$( 'heart_' + i + '_' + post_id ).src = '/wp-content/themes/site/images/challenge_vote_pink_heart.jpg';
	}
}

function onHeartOut( post_id, heart_id ) {
	for( var i = 1; i <= heart_id; i++ ) {
		$( 'heart_' + i + '_' + post_id ).src = '/wp-content/themes/site/images/challenge_vote_blue_heart.jpg';
	}
}

function vote( post_id, score ) {
	var params = 'participation_id=' + post_id + '&score='+score;
	var ajaxRequest = new Ajax.Request(
		'/wp-content/themes/site/vk_vote.php',
		{
			method: 'get',
			parameters: params,
			onComplete: onVoteComplete,
			onFailure: onVoteFailure
		}
	);
}

function onVoteComplete( request ) {
	var result = parseResponse( request.responseText );
	if( result.error == null ) {
		$( 'vote_' + result.challenge_post_id ).style.display = 'none';
		$( 'vote_panel_' + result.challenge_post_id ).onmouseover = function() {
			return false;
		};
		$( 'vote_panel_' + result.challenge_post_id ).onmouseout = function() {
			return false;
		};
		onVoteOut( result.challenge_post_id );
		$( 'vote_result_' + result.challenge_post_id ).style.width = parseInt( ( parseFloat( result.score ) / 5 ) * 105 ) + 'px';
		alert( "Ton vote a bien été pris en compte, nous te remercions pour ta participation." );
	} else {
		alert( result.error );
	}
}

function onVoteFailure( request ) {
	alert( 'Internal server error, please try again in few minutes...' );
}

function parseResponse( response ) {
	var results = response.split( new RegExp( "&amp;" , "g" ) );
	var values = new Array();
	
	for( var i=0 ; i < results.length ; i++ ) {
		var keyval = results[ i ].split( new RegExp( "=" , "g" ) );
		values[ keyval[ 0 ] ] = keyval[ 1 ];
	}
	
	return values;
}