layout_id_pattern = new RegExp(/\blayout\b/);
rating_pattern = new RegExp(/\bstar([0-5])\b/);

var stored_rating_trees = {};
var stored_star_rating_trees = {};

function get_layout_container(element) {
	// Get the container that tells us the layout id:
	for (element=element.parentNode;!element.className.match(layout_id_pattern);element = element.parentNode) {}
	return element;
}

function restore_stars(layout_id) {
	elements = getElementsByTagAndClassName('P', 'login-alert');
	for (i=0;i<elements.length;i++) {
		swapDOM(elements[i], stored_star_rating_trees[layout_id]);
	}
	x = $$('#layout-'+layout_id+' p.rating')[0];
	setStyle(x, {'display':'block'});
}

function show_login_box() {
	var rating=this.className.match(rating_pattern)[1];
	var layout_container = get_layout_container(this);
	var layout_id = layout_container.id.split('-')[1];
	x = $$('#layout-'+layout_id+' ul')[0];
	y = $$('#layout-'+layout_id+' p.rating')[0];
	stored_star_rating_trees[layout_id]=x;
	stored_rating_trees[layout_id] = y;
	setStyle(y, {'display':'none'});
	swapDOM(x, P({'class':'login-alert'}, 'You must login to rate'));
	setTimeout("restore_stars("+layout_id+")", 2500);
	return false;
}

function setup_layout_rating_loginboxes() {
	var eles = $$('.star-rating > li > a');
	for (i=0;i<eles.length;i++) {
		eles[i].onclick=show_login_box;
	}	
}

addLoadEvent(setup_layout_rating_loginboxes);
