var xmlHttp;
var myid =0;
function createXMLHttpRequest() 
{
    if (window.ActiveXObject) 
    {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    } 
    else if (window.XMLHttpRequest) 
    {
        xmlHttp = new XMLHttpRequest();
    }
}

var starImages = new Array("../images/icons/0star.gif",
	"../images/icons/1star.gif",
	"../images/icons/2star.gif",
	"../images/icons/3star.gif",
	"../images/icons/4star.gif",
	"../images/icons/5star.gif");
var starImagesA = new Array("../images/icons/fondoazul/0star.gif",
	"../images/icons/fondoazul/1star.gif",
	"../images/icons/fondoazul/2star.gif",
	"../images/icons/fondoazul/3star.gif",
	"../images/icons/fondoazul/4star.gif",
	"../images/icons/fondoazul/5star.gif");
var nullStarMessage = "../images/icons/0star.gif"
	var starMap = new Array('0,0,13,12',
	'0,0,13,12',
	'14,0,26,12',
	'27,0,39,12',
	'40,0,52,12',
	'53,0,65,12');
	var savedRatings = new Array();
	var changedRatings = new Array();
	var starTwinkler = new Array();
	var msgTwinkler = new Array();
	var isRatingsBarChanged = false;
	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);
preloadImages(starImagesA);

function SaveRatingAjax(id, cid, ratingType, ratingValue)
{
	rating = ratingValue;
	var submitURL = ''
	+ '../template/ajaxRating.aspx?'
	+ 'id=' + id
	+ '&cid=' + cid
	+ '&Rating=' + ratingValue ;
	
	myid = id;
	isRatingsBarChanged = true;
		createXMLHttpRequest();
		xmlHttp.onreadystatechange = handleStateChange;
		xmlHttp.open("GET", submitURL, true);
		xmlHttp.send(null);
}
function handleStateChange() 
{

    if(xmlHttp.readyState == 4) 
    {
        if(xmlHttp.status == 200) 
        {
  
        var myVotes = document.getElementById("lblVotes" + myid).innerHTML;
        myVotes = eval(parseInt(myVotes,10) + parseInt(1,10));

        document.getElementById("ltlstars" + myid).innerHTML = '<IMG src=../images/icons/' + rating + 'star.gif>';
	    document.getElementById("ltlMessage" + myid).innerHTML  = '';
		document.getElementById("lblVotes" + myid).innerHTML = '&nbsp;' +myVotes;
	    }
        else
        {
        alert("Error in AJAX");
        }
    }
}

function SaveRatingAjaxAzul(id, cid, ratingType, ratingValue) {
    rating = ratingValue;
    var submitURL = ''
	+ '../template/ajaxRating.aspx?'
	+ 'id=' + id
	+ '&cid=' + cid
	+ '&Rating=' + ratingValue;

    myid = id;
    isRatingsBarChanged = true;
    createXMLHttpRequest();
    xmlHttp.onreadystatechange = handleStateChangeAzul;
    xmlHttp.open("GET", submitURL, true);
    xmlHttp.send(null);
}
function handleStateChangeAzul() {

    if (xmlHttp.readyState == 4) {
        if (xmlHttp.status == 200) {

            var myVotes = document.getElementById("lblVotes" + myid).innerHTML;
            myVotes = eval(parseInt(myVotes, 10) + parseInt(1, 10));

            document.getElementById("ltlstars" + myid).innerHTML = '<IMG src=../images/icons/fondoazul/' + rating + 'star.gif>';
            document.getElementById("ltlMessage" + myid).innerHTML = '';
            document.getElementById("lblVotes" + myid).innerHTML = '&nbsp;' + myVotes;
        }
        else {
            alert("Error in AJAX");
        }
    }
}
function SwapStars(id, rating, fondo)
{
	if (rating == undefined)
	{
		rating = 0;
	}

	if (fondo == 'azul')
	document.images["stars." + id].src = starImagesA[rating];
	else
	document.images["stars." + id].src = starImages[rating];
	
}

function SaveStarsAjax(id, cid, rating,fondo)
{
 
  
	if ((rating==1)||(rating==2)||(rating==3)||(rating==4)||(rating==5))
	{
	savedRatings[id] = rating;
	changedRatings[id] = 1;
	if (fondo == 'azul')
	SaveRatingAjaxAzul(id, cid, 'onetofive', rating);	
	else
	SaveRatingAjax(id, cid, 'onetofive', rating );	
	}
	else
	{
	alert("Valor fuera de rango, Valores posibles 1/2/3/4/5. Valor Actual: " + rating);
	}
}

function StarMouseOver(id, rating, fondo)
{
//alert("StarMouseOver:" + id + ":" + rating);

	if (starTwinkler[id] != 0)
	{
	window.clearTimeout(starTwinkler[id]);
	starTwinkler[id] = 0;
	}
	
  SwapStars(id, rating, fondo);
}
function StarMouseOut(id,fondo)
{
//alert("StarMouseOut:" + id);

	starTwinkler[id] = window.setTimeout("SwapStars('"+id+"',0,'" + fondo +"')", delayTime);	
}
function DisplayStarsAjax (id, cid, rating, fondo)
{
   	var starID = "stars." + id;
	starTwinkler[id] = 0;
	msgTwinkler[id] = 0;
	document.write("<map name='starmap" + id +"'>");
	var i = 0;
	for (i = 1; i < 6; i++) 
	{
	document.write("<area shape=rect " + 
	"coords='" + starMap[i] + "' " +
	"onMouseOver=\"StarMouseOver('" + id + "'," + i + ",'"+fondo+"');\" " +
	"onMouseOut=\"StarMouseOut('" + id + "','" + fondo + "');\" " +
	"onClick=\"SaveStarsAjax('" + id + "','" + cid + "'," + i + ",'" + fondo + "');" +
	"\" >");
	}

	document.write("</map>");
	if (fondo == 'azul')
	    document.write("<img vspace=2 title = 'Califica' src='" + starImagesA[rating] + "'");
	else
	    document.write("<img vspace=2 title = 'Califica' src='" + starImages[rating] + "'");
	document.write(" border=0 usemap='#starmap" + id);
	document.write("' id='" + starID + "'>");
}

