function iwExpandControl(){
	$('iw-rating-bar-control-expand').hide();
	$('iw-rating-bar-control-collapse').show();
	Effect.SlideDown('iw-rating-bar-control');
	return true;
}
function iwCollapseControl(){
	$('iw-rating-bar-control-collapse').hide();
	$('iw-rating-bar-control-expand').show();
	Effect.SlideUp('iw-rating-bar-control');
	return true;
}
function iwExpandCharts(){
	$('iw-rating-bar-charts-expand').hide();
	$('iw-rating-bar-charts-collapse').show();
	Effect.SlideDown('iw-rating-bar-charts');
	return true;
}
function iwCollapseCharts(){
	$('iw-rating-bar-charts-collapse').hide();
	$('iw-rating-bar-charts-expand').show();
	Effect.SlideUp('iw-rating-bar-charts');
	return true;
}
function iwToggleHint(hint){
	$(hint).show();
	return true;
}
function iwUpdateStatus(msg, hide){
	if (hide) $('iw-rating-bar-working').hide();
	$('iw-rating-bar-result').update(msg);
	Effect.Appear('iw-rating-bar-result',{queue:'front'});
	Effect.Fade('iw-rating-bar-result',{delay:1.0,queue:'end'});
	return true;
}

function iwUpdateScoreAndRating(elem,score,rating){
	$('iw-rating-bar-working').show();
	var url = 'index.php';
	var pars = 'action=ajax';
	pars += '&rs='+encodeURIComponent('IwRating::ajaxController');
	pars += '&score='+encodeURIComponent(score);
	pars += '&rating='+encodeURIComponent(rating);
	pars += '&page_name='+encodeURIComponent(wgPageName);
	var myAjax = new Ajax.Request(
		url, 
		{
			method:'post',
			parameters: pars,
			requestHeaders: {Accept: 'application/json'},
			onSuccess: function(transport){
				var msg = 'updated successfully';
				try{
					var json = transport.responseText.evalJSON(true);
					if (json.rating != ""){
						$('iw-rating-bar-rating-stat').update(json.rating);
					}
					if (json.score_plus != ""){
						$('iw-rating-bar-score-plus').update(json.score_plus);
					}
					if (json.score_minus != ""){
						$('iw-rating-bar-score-minus').update(json.score_minus);
					}
					if (json.score_help != ""){
						$('iw-rating-bar-score').update(json.score_help);
					}
          /*
					if (json.charts != ""){
						$('iw-rating-bar-charts-body').update(json.charts);
					}
                                  */
					iwUpdateStatus(msg, true);
				} catch(e) {
					msg = "updated successfully, error occurred to parse the response, this page will be relaoded...";
					iwUpdateStatus(msg, true);
					window.location.reload( true );
				}
			},
			onFailure: function(transport){
				iwUpdateStatus('error occurred during connection', true);
			}
		}
	);
	return false;
}
