﻿	var starImages = new Array("images/controlstars-0.gif",
	"images/controlstars-1.gif",
	"images/controlstars-2.gif",
	"images/controlstars-3.gif",
	"images/controlstars-4.gif",
	"images/controlstars-5.gif");
	var starMap = new Array(
		'0,0,12,20',
		'13,0,24,20',
		'25,0,36,20',
		'37,0,48,20',
		'49,0,60,20',
		'61,0,72,20');
	
	var starMessages = new Array("No opinion",
	"I hate it",
	"I don't like it",
	"It's OK",
	"I like it",
	"I love it",
	"&nbsp;",
	"Saving...",
	"<span class="+'"'+"SavedRatingNotification"+'"'+">Saved</span>"
	);

	var starTwinkler = new Array();
	var msgTwinkler = new Array();
	var justSavedTwinkler = new Array();
	var justSaved = new Array();
	var delayTime = 500;
	var allImages = new Array();
function preloadImages(){
for (i=0; i < preloadImages.length ;i++){
	allImages[i] = new Image();
	allImages[i].src = preloadImages.arguments[i];
	}
}
preloadImages(starImages);

function SwapStars(id, rating){
	if (document.images["stars." + id] != undefined) {
		if (rating == undefined) {
			var hiddenField = document.getElementById(id);
			if (hiddenField.value != '')
			{
				rating = parseInt(hiddenField.value);
			}
			else
			{
				rating = 0;
			}
		}
		document.images["stars." + id].src = starImages[rating];
	}
}
function SwapStarMsg(id, rating){
	var msg = document.getElementById("messages." + id);

	if (msg != undefined)
	{
		if (rating == undefined){
			msg.innerHTML = starMessages[6];
		} else {
			msg.innerHTML = starMessages[rating];
		}
	}
}

function ResetJustSaved(id)
{
	justSaved[id] = 0;
}

function SaveRating(id, rating)
{
	var hiddenField = document.getElementById(id);
	hiddenField.value = rating;
}

function SaveStars(id, rating){

if ((rating==0)||(rating==1)||(rating==2)||(rating==3)||(rating==4)||(rating==5))
	{
	if (justSaved[id] == 1)
	{
		SwapStars(id, rating);
	}
	SaveRating(id, rating);
	SwapStarMsg(id, 7);
	justSaved[id] = 1;
	}
	else
	{
	alert("Rating Value out of the bound, Values can only be 0/1/2/3/4/5. Current rating value: " + rating);
	}
}

function StarMouseOver(id, rating){
	if (starTwinkler[id] != 0){
	window.clearTimeout(starTwinkler[id]);
	starTwinkler[id] = 0;
}
if (msgTwinkler[id] != 0){
	window.clearTimeout(msgTwinkler[id]);
	msgTwinkler[id] = 0;
	}
if (justSavedTwinkler[id] != 0){
	window.clearTimeout(justSavedTwinkler[id]);
	justSavedTwinkler[id] = 0;
	}
	if (justSaved[id] == 0)
	{
		SwapStars(id, rating);
		SwapStarMsg(id, rating); 
	}
}
function StarMouseOut(id){
	starTwinkler[id] = window.setTimeout("SwapStars('"+id+"')", delayTime);
	msgTwinkler[id] = window.setTimeout("SwapStarMsg('"+id+"')", delayTime);
	if (justSaved[id] == 1)
	{
		justSavedTwinkler[id] = window.setTimeout("ResetJustSaved('"+id+"')", delayTime);
	}
}
function DisplayStars (id, rating, saveScript){
	var starID = "stars." + id;
	starTwinkler[id] = 0;
	msgTwinkler[id] = 0;
	justSavedTwinkler[id] = 0;
	justSaved[id] = 0;
	document.write("<img vspace=2 title = 'Rate it' src='" + starImages[rating] + "'");
	document.write(" border=0 usemap='#starmap" + id);
	document.write("' id='" + starID + "' />");
	document.write("<map style='cursor: pointer;cursor: hand;'" + " name='starmap" + id +"'>");
	var i = 0;
	for (i = 0; i < 6; i++) {
	document.write("<area shape=rect " + 
	"coords='" + starMap[i] + "' " +
	"onMouseOver=\"StarMouseOver('" + id + "'," + i + ");\" " +
	"onMouseOut=\"StarMouseOut('" + id + "');\" " +
	"onClick=\"SaveStars('" + id + "'," + i + ");" + saveScript +
	"\" />");
	}
	document.write("</map>");
}
function DisplayMsg (id){
	var msgID = "messages." + id;
	document.write("<span id='" + msgID + "' class='RatingMessage'>");
	document.write(starMessages[6] + "</span>"); 
}
