function getRatedState(rating_el, cookiename) {
	switch (rating_el) {
		case 'rating1':
			return Cookie.get(cookiename).charAt(0) == 1;
		case 'rating2':
			return Cookie.get(cookiename).charAt(1) == 1;
		case 'rating3':
			return Cookie.get(cookiename).charAt(2) == 1;
		case 'rating4':
			return Cookie.get(cookiename).charAt(3) == 1;
		case 'rating5':
			return Cookie.get(cookiename).charAt(4) == 1;
		case 'rating6':
			return Cookie.get(cookiename).charAt(5) == 1;
		case 'rating7':
			return Cookie.get(cookiename).charAt(6) == 1;
		case 'rating8':
			return Cookie.get(cookiename).charAt(7) == 1;
		case 'rating9':
			return Cookie.get(cookiename).charAt(8) == 1;
	}
}

function setRatedState(rating_el, cookiename) {
	var acratings = Cookie.get(cookiename);
	Cookie.remove(cookiename);
	switch (rating_el) {
		case 'rating1':
			acratings =  1 + acratings.substr(1);
			break;
		case 'rating2':
			acratings =  acratings.substr(0,1) + 1 + acratings.substr(2);
			break;
		case 'rating3':
			acratings =  acratings.substr(0,2) + 1 + acratings.substr(3);
			break;
		case 'rating4':
			acratings =  acratings.substr(0,3) + 1 + acratings.substr(4);
			break;
		case 'rating5':
			acratings =  acratings.substr(0,4) + 1 + acratings.substr(5);
			break;
		case 'rating6':
			acratings =  acratings.substr(0,5) + 1 + acratings.substr(6);
			break;
		case 'rating7':
			acratings =  acratings.substr(0,6) + 1 + acratings.substr(7);
			break;
		case 'rating8':
			acratings =  acratings.substr(0,7) + 1 + acratings.substr(8);
			break;
		case 'rating9':
			acratings =  acratings.substr(0,8) + 1;
			break;
	}
	Cookie.set(cookiename, acratings, {path: "/", duration:365});
}

function highlightStar(rating_el, starnum) {
	var starList = $ES('img',rating_el);
	// for number of stars go through each and highlight
	for ( i=0; i < starList.length; i++ ) {
		if( i < starnum )
			starList[i].src='images/layout/icon-rating-plus.jpg';
		else
			starList[i].src='images/layout/icon-rating-minus.jpg';
	}
}

function resetStars(rating_el) {
	var rating;
	switch (rating_el) {
		case 'rating1':
			rating = 4; break;
		case 'rating2':
			rating = 5; break;
		case 'rating3':
			rating = 4; break;
		case 'rating4':
			rating = 5; break;
		case 'rating5':
			rating = 4; break;
		case 'rating6':
			rating = 4; break;
		case 'rating7':
			rating = 5; break;
		case 'rating8':
			rating = 3; break;
		case 'rating9':
			rating = 4; break;
	}
	
	var starList = $ES('img',rating_el);
	// for number of stars go through each and highlight
	for ( i=0; i < starList.length; i++ ) {
		if( i < rating )
			starList[i].src='images/layout/icon-rating-plus.jpg';
		else
			starList[i].src='images/layout/icon-rating-minus.jpg';
	}
}

function incrementCounter(rating_el) {
	var spanCounter = $E('span', rating_el).innerHTML;
	var newNumber = spanCounter.toInt()+1;
	$E('span', rating_el).setHTML( newNumber );
}

function initEvents(rating_el) {
	$ES('img',rating_el).each( function(el,i) {
		el.addEvent('click', function(e) {
			e = new Event(e);
			if( !getRatedState(rating_el, 'acratings') ) {
				incrementCounter(rating_el);
				setRatedState(rating_el,'acratings');
				resetStars(rating_el);
			}
			e.stop();
		});
		el.addEvent('mouseover', function(e) {
			e = new Event(e);
			if( !getRatedState(rating_el, 'acratings') ) highlightStar(rating_el,i+1);
			e.stop();
		});
		el.addEvent('mouseout', function(e) {
			e = new Event(e);
			if( !getRatedState(rating_el, 'acratings') ) resetStars(rating_el);
			e.stop();
		});
	});
}