

preloadedImages = new Array();
function preloadImage(url) {
	var img = new Image;
	img.src = url;
	preloadedImages.push(img);
}

// this relies on the imagesPrefix variable being set by a template somewhere
function iurl(path) {
	return imagesPrefix + path;
}

function stars(rating, mini) {
	var result = ''
	var img_base = iurl("ico/star_");
	var img_grey = '';
	if (mini) {
		img_base += 'small_';
		img_grey = iurl("ico/star_small_grey.gif");
	} else {
		img_grey = iurl("ico/star_grey.gif");
	}
	img_base += Math.floor(rating + 0.25);
	var img_full = img_base + '.gif';
	var img_half = img_base + '_half.gif';
	var dr = Math.round(2.0*rating);
	for (i = 0; i < 5; i++) {
		if (dr > 1) {
			result += '<img src="' + img_full + '" border="0">';
		} else if (dr > 0) {
			result += '<img src="' + img_half + '" border="0">';
		} else {
			result += '<img src="' + img_grey + '" border="0">'
		}
		dr -= 2;
	}
	return result;
}

function setElementHTML(id, html) {
	var e = document.getElementById(id);
	e.innerHTML = html;
}

function asyncGetJson(url, cb, eb) {
	var opt = {
			 method: 'get',			 
			 onSuccess: cb,
			 on404: function(){alert('404')},
			 onFailure: eb
			};
	return (new Ajax.Request(url+'&nocache='+(new Date()).getTime(), opt));	
}


