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/ratings/0star.jpg",
	"../images/ratings/1star.jpg",
	"../images/ratings/2star.jpg",
	"../images/ratings/3star.jpg",
	"../images/ratings/4star.jpg",
	"../images/ratings/5star.jpg");
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 + "'>");
}