function fillstars(number, total, type, ext) {
	if(typeof type=="undefined") type='number';
	if(typeof ext=="undefined") ext='.png';
	var i=1;
	for (i=1;i<=total;i++) {
		if(i<=Math.round(number)) {
			if(i-number==.5) {
				document.getElementById('rating' + i).src='/library/star_half.png';
				document.getElementById('rating' + i).style.background='url(\'/library/star_' + (type=='number' ? Math.round(number*10/total) : type) + ext + '\')';
			} else {

				document.getElementById('rating' + i).src='/library/star_' + (type=='number' ? Math.round(number*10/total) : type) + ext;
				document.getElementById('rating' + i).style.background='none';
			}
		} else {
			document.getElementById('rating' + i).src='/library/star_empty.png';
			document.getElementById('rating' + i).style.background='none';
		}
	}
}
function ratingmouseover(number, total) {
	if(document.getElementById('savedrating').value=='') {
		fillstars(number, total, 'new', '.gif');
		document.getElementById('rating').value=number;
	}
}
function ratingmouseout(average, total) {
	if(document.getElementById('savedrating').value=='') {
		fillstars(average, total);
	}
}
function saverating(type, id, total) {
	var rating=Number(document.getElementById('rating').value);
	var ajaxRequest;
	try{
		ajaxRequest = new XMLHttpRequest();
	} catch (e){
		try{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				alert("Javascript Error");
				return false;
			}
		}
	}
	ajaxRequest.onreadystatechange = function(){
		if(ajaxRequest.readyState == 4){
			if(ajaxRequest.responseText=='good'){
				document.getElementById('savedrating').value=1;
				document.getElementById('ratingcontainer').style.cursor='default';
				document.getElementById('my_rating').innerHTML=rating;
				fillstars(rating, total);
				var resetvoting=setTimeout(function(){document.getElementById('savedrating').value='';document.getElementById('ratingcontainer').style.cursor='pointer';}, 2000);
			} else {
				alert(ajaxRequest.responseText);
			}
		}
	}
	ajaxRequest.open('POST', '/library/rate', true);
	ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	ajaxRequest.send('type=' + type + '&id=' + id + '&rating=' + rating);
	document.getElementById('savedrating').value=1;
	document.getElementById('ratingcontainer').style.cursor='default';
	document.getElementById('my_rating').innerHTML=rating;
	fillstars(rating, total);
	var resetvoting=setTimeout(function(){document.getElementById('savedrating').value='';
document.getElementById('ratingcontainer').style.cursor='pointer';}, 2000);
}
