var RATINGSWIDGET = 1;
var RATINGSWIDGETDIRECTWRITE = 1;
var RATINGSWIDGET_IMG_ROOT = '/images/rate/i/';
var RATINGSWIDGET_SET_PAGE = '/index.php?action=films/vote';
var RATINGSWIDGET_SET_LOGIN = '/index.php?action=login_form';
// This is the color that you will rate on.
var RATINGSWIDGET_TYPE_COLOR = 2;
// This is the number of colors that should be selected
var RATINGSWIDGET_TYPE_MAX = 2;
// These are the values associated with the size of the rating widget
var RATINGSWIDGET_HEIGHT = 17;
var RATINGSWIDGET_WIDTH = 80;
// Storing and preloading of ratingwidget images
var RatingWidgetImages;
var RatingWidgetMyRatingImage;
var RatingWidgetMemberRatingImage;

function RatingWidgetImageName(starColor, n)
{
    if(n == -1)
    {
        return RATINGSWIDGET_IMG_ROOT + "stars_" + starColor + "_notinterested.gif";
    }

    return RATINGSWIDGET_IMG_ROOT + "stars_" + starColor + "_" + n + ".gif";
}

function RatingWidgetImage(starColor, numStars)
{
    if( !RatingWidgetImages[starColor][numStars])
    {
       RatingWidgetImages[starColor][numStars] = new Image(RATINGSWIDGET_WIDTH, RATINGSWIDGET_HEIGHT);
       RatingWidgetImages[starColor][numStars].src = RatingWidgetImageName(starColor, numStars);
    }
    return RatingWidgetImages[starColor][numStars].src;
}

function RatingWidgetPreload() {
    if (! RatingWidgetImages) {
        RatingWidgetImages = new Array();
        for (var j = 0; j <= RATINGSWIDGET_TYPE_MAX; j++) {
            RatingWidgetImages[j] = new Array();
        }
        for (var j = 1; j <= RATINGSWIDGET_TYPE_COLOR; j++) {

            for (var i = 0; i <= 10; i++) {
                RatingWidgetImages[j][i*5] = new Image(RATINGSWIDGET_WIDTH, RATINGSWIDGET_HEIGHT);
                RatingWidgetImages[j][i*5].src = RatingWidgetImageName(j,i*5);

            }
        }
        RatingWidgetMyRatingImage = new Image(RATINGSWIDGET_WIDTH, RATINGSWIDGET_HEIGHT);
        RatingWidgetMyRatingImage.src = RATINGSWIDGET_IMG_ROOT + "my_rating.gif";
        RatingWidgetSaveRatingImage = new Image(RATINGSWIDGET_WIDTH, RATINGSWIDGET_HEIGHT);
        RatingWidgetSaveRatingImage.src = RATINGSWIDGET_IMG_ROOT + "save_rating.gif";
        //RatingWidgetSaveRatingImage.src = RATINGSWIDGET_IMG_ROOT + "save_rating.png";
        RatingWidgetMemberRatingImage = new Image(RATINGSWIDGET_WIDTH, RATINGSWIDGET_HEIGHT);
        RatingWidgetMemberRatingImage.src = RATINGSWIDGET_IMG_ROOT + "member_rating.gif";

        RatingWidgetNIImage = new Image(RATINGSWIDGET_WIDTH, RATINGSWIDGET_HEIGHT);
        RatingWidgetNIImage.src = RATINGSWIDGET_IMG_ROOT + "ni.gif";

        RatingWidgetCLImage = new Image(RATINGSWIDGET_WIDTH, RATINGSWIDGET_HEIGHT);
        RatingWidgetCLImage.src = RATINGSWIDGET_IMG_ROOT + "clear.gif";
        RatingWidgetCLSImage = new Image(RATINGSWIDGET_WIDTH, RATINGSWIDGET_HEIGHT);
        RatingWidgetCLSImage.src = RATINGSWIDGET_IMG_ROOT + "clear_selected.gif";

        RatingWidgetEnabled = true;
    }
}
// State Info about all the RatingWidgets on the page
var RatingWidgetCount = 0;
var RatingWidgetItemIds = new Array();
var RatingWidgetTypes = new Array();
var RatingWidgetNumStars = new Array();
var RatingWidgetDefStars = new Array();
var RatingWidgetValidate = new Array();
var RatingWidgetTimers = new Array();
var RatingWidgetmediaType = new Array();
var RatingWidgetHeading = new Array();
var RatingWidgetClearRatingButtons = new Array();
var RatingWidgetLastEntered = -1;
var RatingWidgetEnabled = false;

function RatingWidgetMouseOver(imgNum, whichStar)
{
    // Cancel any background request to restore this image.
    if (RatingWidgetTimers[imgNum] != 0) {
        window.clearTimeout(RatingWidgetTimers[imgNum]);
        RatingWidgetTimers[imgNum] = 0;
    }
    RatingWidgetLastEntered = imgNum;
    // Make the RatingWidget show appropriate feedback.

    if(RatingWidgetHeading[imgNum] != 0){
    document.images["ratingHeader" + imgNum].src = RatingWidgetMyRatingImage.src;
    }
    if (whichStar > -1) {
        document.images["RatingWidget"+imgNum].src = RatingWidgetImage(RATINGSWIDGET_TYPE_COLOR, whichStar);
    }
    if (whichStar == -1){
        document.images["RatingWidget"+imgNum].src = RatingWidgetImage(RATINGSWIDGET_TYPE_COLOR, whichStar);
    }

    return false;
}

function RatingWidgetClick(whichStar)
{
    var itemId;
    var rateHref;
    var rateWindow;
    var mediaType;
    var imgNum = RatingWidgetLastEntered;
    if(!USERSESSION)
    {
        window.location.href = RATINGSWIDGET_SET_LOGIN;
                return void(0);
    }
    //if (RatingWidgetHeading[imgNum] != 0)
    //{
        //document.images["ratingHeader" + imgNum].src = RatingWidgetSaveRatingImage.src;
        document.images["RatingWidget" + imgNum].src = RatingWidgetSaveRatingImage.src;
        RatingWidgetTimers[imgNum] = window.setTimeout("RatingWidgetRestore("+imgNum+")", 550);
    //}
    RatingWidgetEnabled = false;
    itemId = RatingWidgetItemIds[imgNum];
    mediaType = RatingWidgetmediaType[imgNum];
    // Update the saved state of the RatingWidget and the display
    rateHref = "&film_id="+itemId+"&rate="+whichStar;
    RatingWidgetTypes[imgNum] = RATINGSWIDGET_TYPE_COLOR;
    RatingWidgetNumStars[imgNum] = whichStar;

    if(RatingWidgetValidate[imgNum] == 1)
    {
        document.WriteReviewForm.ratingChecked.value='true';
    }


    rateHref = RATINGSWIDGET_SET_PAGE + rateHref;
    //window.location.href = rateHref;
    //return void(0);
    RatingSubmitImage = new Image(0, 0);
    RatingSubmitImage.src = rateHref;
    RatingWidgetEnabled = true;
    return void(0);
}
function RatingWidgetClear(imgNum) {
    var itemId;
    var rateHref;
    var rateWindow;
    var mediaType;
    var whichStar = 0;
    if(!USERSESSION)
    {
        window.location.href = RATINGSWIDGET_SET_LOGIN;
                return void(0);
    }
    o = document.getElementById("delDiv" + imgNum);
    if (o)
    {
      o.style.display = "none";
      DefRatingHide(o, imgNum);
    }
    if (RatingWidgetHeading[imgNum] != 0)
    {
        document.images["ratingHeader" + imgNum].src = RatingWidgetSaveRatingImage.src;
        RatingWidgetTimers[imgNum] = window.setTimeout("RatingWidgetRestore("+imgNum+")", 250);
    }
    RatingWidgetEnabled = false;
    itemId = RatingWidgetItemIds[imgNum];
    mediaType = RatingWidgetmediaType[imgNum];
    // Update the saved state of the RatingWidget and the display
    rateHref = "&film_id="+itemId+"&rate="+whichStar;
    RatingWidgetTypes[imgNum] = 1;
    RatingWidgetNumStars[imgNum] = RatingWidgetDefStars[imgNum];

    if(RatingWidgetValidate[imgNum] == 1)
    {
        document.WriteReviewForm.ratingChecked.value='true';
    }

    rateHref = RATINGSWIDGET_SET_PAGE + rateHref;
    //window.location.href = rateHref;
    //return void(0);
    RatingSubmitImage = new Image(0, 0);
    RatingSubmitImage.src = rateHref;
    RatingWidgetEnabled = true;
    return void(0);
}
function RatingWidgetRestore(imgNum)
{
    if (!document.images["RatingWidget"+imgNum]) return;

    document.images["RatingWidget"+imgNum].src = RatingWidgetImage(RatingWidgetTypes[imgNum], RatingWidgetNumStars[imgNum]);

    if(RatingWidgetHeading[imgNum] != 0)
    {
        if(RatingWidgetTypes[imgNum] == 1)
        {
            document.images["ratingHeader" + imgNum].src = RatingWidgetMemberRatingImage.src;
        }
        else
        {
            document.images["ratingHeader" + imgNum].src = RatingWidgetMyRatingImage.src;
        }
    }

    if (RatingWidgetLastEntered == imgNum)
    {
        RatingWidgetLastEntered = -1;
    }
}
function RatingWidgetMouseOut(whichStar) {
    // Restore the image to the saved state, once a little time has elapsed.
    var imgNum = RatingWidgetLastEntered;
    if (imgNum < 0) {
        return void(0);
    }
    if (! RatingWidgetTimers[imgNum]) {
        RatingWidgetTimers[imgNum] = window.setTimeout("RatingWidgetRestore("+imgNum+")", 100);
    }
}

function RatingWidgetCreate(imgNum, itemId, starColor, numStars, defStars, heading, clearRating)
{
  var w_rite = "";

    with (document)
    {
        w_rite += ("<div id='ratingDiv" + imgNum + "'><table cellspacing=0 cellpadding=0 border=0>");
        w_rite += ("<tr><td><img src='images/spacer.gif"
          + "' width=90 height=1 border=0></td></tr>");
        if (heading == 1)
        {
            if(starColor == 1)
            {
                w_rite += ("<tr><td align='center'><img name='ratingHeader" + imgNum + "' src='"
                  + RATINGSWIDGET_IMG_ROOT + "member_rating.gif"
                  + "' width=80 height=14 border=0></td></tr>");
            }
            else if (starColor == 2)
            {
                w_rite += ("<tr><td align='center'><img name='ratingHeader" + imgNum + "' src='"
                  + RATINGSWIDGET_IMG_ROOT + "my_rating.gif"
                  + "' width=80 height=14 border=0></td></tr>");
            }
        }

        if (itemId < 0) {
            // If an Item is negative this makes the bar disabled...
            w_rite += ("<tr><td align='center'><img src='"
                  + RatingWidgetImage(starColor, numStars)
                  + "' width=80 height=15 border=0></td></tr>");
        } else {

                   w_rite += ("<tr ><td align='center' class='link'><map name='RatingWidget"
                  + imgNum
                  + "'>"
                  + "<area onClick='javascript:RatingWidgetClick(-1);' onMouseOver='RatingWidgetMouseOver("
                  + imgNum
                  + ",-1);' onMouseOut='RatingWidgetMouseOut(-1);' shape='rect' coords='0,0,14,16'>"

                  + "<area onClick='javascript:RatingWidgetClick(5);' onMouseOver='RatingWidgetMouseOver("
                  + imgNum
                  + ",5);' onMouseOut='RatingWidgetMouseOut(5);' shape='rect' coords='14,0,20,16'>"

                  + "<area onClick='javascript:RatingWidgetClick(10);' onMouseOver='RatingWidgetMouseOver("
                  + imgNum
                  + ",10);' onMouseOut='RatingWidgetMouseOut(10);' shape='rect' coords='20,0,27,16'>"

                  + "<area onClick='javascript:RatingWidgetClick(15);' onMouseOver='RatingWidgetMouseOver("
                  + imgNum
                  + ",15);' onMouseOut='RatingWidgetMouseOut(15);' shape='rect' coords='27,0,33,16'>"
                  + "<area onClick='javascript:RatingWidgetClick(20);' onMouseOver='RatingWidgetMouseOver("
                  + imgNum
                  + ",20);' onMouseOut='RatingWidgetMouseOut(20);' shape='rect' coords='33,0,40,16'>"
                  + "<area  onClick='javascript:RatingWidgetClick(25);' onMouseOver='RatingWidgetMouseOver("
                  + imgNum
                  + ",25);' onMouseOut='RatingWidgetMouseOut(25);' shape='rect' coords='40,0,46,16'>"

                  + "<area  onClick='javascript:RatingWidgetClick(30);' onMouseOver='RatingWidgetMouseOver("
                  + imgNum
                  + ",30);' onMouseOut='RatingWidgetMouseOut(30);' shape='rect' coords='46,0,53,16'>"

                  + "<area  onClick='javascript:RatingWidgetClick(35);' onMouseOver='RatingWidgetMouseOver("
                  + imgNum
                  + ",35);' onMouseOut='RatingWidgetMouseOut(35);' shape='rect' coords='53,0,59,16'>"

                  + "<area  onClick='javascript:RatingWidgetClick(40);' onMouseOver='RatingWidgetMouseOver("
                  + imgNum
                  + ",40);' onMouseOut='RatingWidgetMouseOut(40);' shape='rect' coords='59,0,66,16'>"
                  + "<area  onClick='javascript:RatingWidgetClick(45);' onMouseOver='RatingWidgetMouseOver("
                  + imgNum
                  + ",45);' onMouseOut='RatingWidgetMouseOut(45);' shape='rect' coords='66,0,72,16'>"
                  + "<area  onClick='javascript:RatingWidgetClick(50);' onMouseOver='RatingWidgetMouseOver("
                  + imgNum
                  + ",50);' onMouseOut='RatingWidgetMouseOut(50);' shape='rect' coords='72,0,79,16'>"
                  + "</map><img name='RatingWidget"
                  + imgNum
                  + "' usemap='#RatingWidget"
                  + imgNum
                  + "' src='"
                  + RatingWidgetImage(starColor, numStars)
                  + "' width=80 height=16 border=0></td></tr>");

        }
        w_rite += ("</table></div>");

        w_rite += ("<div id='defDiv" + imgNum + "' style='display: none;'><table cellspacing=0 cellpadding=0 border=0>");
        w_rite += ("<tr><td><img src='images/spacer.gif"
          + "' width=90 height=1 border=0></td></tr>");
        if (heading == 1)
        {
                w_rite += ("<tr><td align='center'><img src='"
                  + RATINGSWIDGET_IMG_ROOT + "member_rating.gif"
                  + "' width=80 height=14 border=0></td></tr>");
        }
        if (itemId < 0)
        {
            // If an Item is negative this makes the bar disabled...
            w_rite += ("<tr><td align='center'><img src='"
                  + RatingWidgetImage(1, defStars)
                  + "' width=80 height=15 border=0></td></tr>");
        }
        else
        {
                   w_rite += ("<tr ><td align='center' class='link'><img src='"
                  + RatingWidgetImage(1, defStars)
                  + "' width=80 height=16 border=0></td></tr>");
        }
        w_rite += ("</table></div>");

        if (clearRating == 1)
        {
            w_rite += ("<div id='delDiv" + imgNum + "' ");
            if (starColor == 1)
            {
                w_rite += ("style='display: none;'");
            }
            w_rite += ("><table cellspacing=0 cellpadding=0 border=0>");
            w_rite += ("<tr><td><img src='images/spacer.gif"
                    + "' width=1 height=2 border=0></td></tr>");
            w_rite += ("<tr><td align='center'><img name='ratingClear" + imgNum + "' src='"
                  + RATINGSWIDGET_IMG_ROOT + "clear.gif"
                  + "' onMouseOver='DefRatingDisplay(this, "
                  + imgNum
                  + ");' onMouseOut='DefRatingHide(this, "
                  + imgNum
                  + ");'  onClick='javascript:RatingWidgetClear(" + imgNum + ");' border=0></td></tr>");
            w_rite += ("</table></div>");
        }

        if (RATINGSWIDGETDIRECTWRITE)
        {
            write(w_rite);
        }
        else
        {
            return w_rite;
        }
    }
}

function RatingWidgetCreateRatingOnly(itemId, starColor, numStars, heading)
{
  var w_rite = "";

    with (document)
    {
        w_rite += ("<table cellspacing=0 cellpadding=0 border=0>");
        w_rite += ("<tr><td><img src='images/spacer.gif' width=90 height=1 border=0></td></tr>");
        if (heading == 1)
        {
            if (starColor == 1)
            {
                w_rite += ("<tr><td align='center'><img src='"
                  + RATINGSWIDGET_IMG_ROOT + "member_rating.gif"
                  + "' width=80 height=14 border=0></td></tr>");
            }
            else if (starColor == 2)
            {
                w_rite += ("<tr><td align='center'><img src='"
                  + RATINGSWIDGET_IMG_ROOT + "my_rating.gif"
                  + "' width=80 height=14 border=0></td></tr>");
            }
        }

        if (itemId < 0)
        {
            // If an Item is negative this makes the bar disabled...
            w_rite += ("<tr><td align='center'><img src='"
                  + RatingWidgetImage(starColor, numStars)
                  + "' width=80 height=15 border=0></td></tr>");
        } else {
            w_rite += ("<tr ><td align='center' class='link'><img src='"
                  + RatingWidgetImage(starColor, numStars)
                  + "' width=80 height=16 border=0></td></tr>");

        }
        w_rite += ("</table>");

        if (RATINGSWIDGETDIRECTWRITE)
        {
            write(w_rite);
        }
        else
        {
            return w_rite;
        }
    }
}

function DefRatingDisplay(i, imgNum)
{
    o = document.getElementById("defDiv" + imgNum);
    if (o) o.style.display = "inline";
    o = document.getElementById("ratingDiv" + imgNum);
    if (o) o.style.display = "none";

    i.src = RatingWidgetCLSImage.src;
}
function DefRatingHide(i, imgNum)
{
    o = document.getElementById("defDiv" + imgNum);
    if (o) o.style.display = "none";
    o = document.getElementById("ratingDiv" + imgNum);
    if (o) o.style.display = "inline";

    i.src = RatingWidgetCLImage.src;
}

function RatingWidgetInsert(itemId, memberUser, numStars, defStars, validate, type, heading, clearRating)
{
    var imgNum = RatingWidgetCount++;
    if (itemId >= 0) {
        // Get orginal values
        RatingWidgetItemIds[imgNum] = itemId;
        RatingWidgetTypes[imgNum] = memberUser;
        RatingWidgetNumStars[imgNum] = numStars;
        RatingWidgetDefStars[imgNum] = defStars;
        RatingWidgetValidate[imgNum] = validate;
        RatingWidgetTimers[imgNum] = 0;
        RatingWidgetmediaType[imgNum] = type;
        RatingWidgetHeading[imgNum] = heading;
        RatingWidgetClearRatingButtons[imgNum] = clearRating;
    }

    if (RATINGSWIDGETDIRECTWRITE)
    {
        RatingWidgetCreate(imgNum, itemId, memberUser, numStars, defStars, heading, clearRating);
    }
    else
    {
        return RatingWidgetCreate(imgNum, itemId, memberUser, numStars, defStars, heading, clearRating);
    }
}

function RatingWidgetInsertRatingOnly(itemId, memberUser, numStars, heading)
{
    if (RATINGSWIDGETDIRECTWRITE)
    {
        RatingWidgetCreateRatingOnly(itemId, memberUser, numStars, heading);
    }
    else
    {
        return RatingWidgetCreateRatingOnly(itemId, memberUser, numStars, heading);
    }
}

RatingWidgetPreload();
