function HighlightRating(id, rating)
{
	var images = new Array();
	clearTimeout(timeoutId);
						
	for (var i=0; i<numStars; i++)
	{
		images[i] = document.getElementById(id+'_rate'+(i+1));
		images[i].src = baseUrl+(i<rating?'_img/icon_stars_1.gif':'_img/icon_stars_0.gif');
	}
	
	var ratingMsg = document.getElementById('ratingMsg');
	if (ratingMsg)
	{
		switch (rating)
		{
			case 1: ratingMsg.innerHTML = "Bleh"; break; 
			case 2: ratingMsg.innerHTML = "It's OK"; break;
			case 3: ratingMsg.innerHTML = "Pretty good"; break;
			case 4: ratingMsg.innerHTML = "This is great!"; break;
			case 5: ratingMsg.innerHTML = "I love it!"; break;
		}
	}
}

function ShowExistingRating(id, rating)
{
	timeoutId = setTimeout(
		function() 
		{
			var images = new Array();
			for (var i=0; i<numStars; i++)
			{
				images[i] = document.getElementById(id+'_rate'+(i+1));
				images[i].src = baseUrl+(i+1<=rating?'_img/icon_stars_1.gif':'_img/icon_stars_0.gif');
			}
			
			var ratingMsg = document.getElementById('ratingMsg');
			if (ratingMsg)
			{
				ratingMsg.innerHTML = "";
				if (isUnrated)
					ratingMsg.innerHTML = "Unrated";
			}
		}, 250);
}

function RateItem(ratingType, id, itemIdName, itemIdValue, rating)
{
	clearTimeout(timeoutId);
	
	var url  = baseUrl+'/__webservices/wsRateItem.php?';
		url += '_textmode=json';
		url += '&type='+ratingType;
		url += '&'+itemIdName+'='+itemIdValue;
		url += '&rating='+rating;
		
	var ratingMsg = document.getElementById('ratingMsg');
	if (ratingMsg)
		ratingMsg.innerHTML = 'Saving rating...';
	
	var request = YAHOO.util.Connect.asyncRequest('GET', url, { success:RateItem_Success, failure:RateItem_Failure, argument:[ratingType, itemIdName, itemIdValue, rating] });

	return false;
}

function RateItem_Success(result)
{
	var rating = eval("("+result.responseText+")");
	var ratingStars = document.getElementById('ratingStars');
	var ratingMsg = document.getElementById('ratingMsg');
	
	// alert(result.argument);
	
	var ratingType 		= result.argument[0];
	var itemIdName 		= result.argument[1];
	var itemIdValue 	= result.argument[2];
	var ratingScore 	= result.argument[3];
	
	if (rating['error']!=undefined)
	{
		var error = "ERROR: "+rating['error']['msg'];
		var code = rating['error']['code'];
		
		if (ratingMsg)
			ratingMsg.innerHTML = '';
			
		if (code==100) // access denied
		{
			// make user login
			//document.forms['loginForm']._target.value = currentPage;
			// alert(currentPage);
			
			var loginError = document.getElementById('loginError');
			if (loginError)
			{
				loginError.style.display = 'block';
				loginError.innerHTML = 'Please login in to rate this.';
			}
			
			//alert('hey');
			DisplayLoginPopup(baseUrl+'__webservices/wsRateItem.php?type='+ratingType+'&'+itemIdName+'='+itemIdValue+'&rating='+ratingScore+'&_target='+escape(currentPage));
		}
		else
		{				
			if (ratingMsg)
				ratingMsg.innerHTML = error + " ("+code+")";
			else
				alert(code + error);
		}
	}
	else
	{				
		var msg = "Thank you for rating!";
		
		if (ratingMsg)
		{
			ratingMsg.innerHTML = msg;
		}
		else
		{
			alert(msg);
		}
		
		if (ratingStars)
		{
			var str = '';
			
			var images = ratingStars.getElementsByTagName('img');
			var i=0;
			for (img in images)
			{
				if(images[img].toString().indexOf('HTMLImageElement')!=-1)
				{
					starImage = images[img].src;
					
					if (i+1<=rating)
						starImage = starImage.replace(/icon_stars_0.gif/, 'icon_stars_1.gif');
					else
						starImage = starImage.replace(/icon_stars_1.gif/, 'icon_stars_0.gif');								
					
					str += '<img src="'+starImage+'" height="12" width="12" />';
				}		
				
				i++;				
			}
			
			ratingStars.innerHTML = str;
		}
	}
}

function RateItem_Failure(result)
{
	alert("ERROR: Unable to save rating. Please try again.");
}
