var RATEBAR_MLY_PAGE = '';
var RATEBAR_MODE = 'NOLOGIN';
var WEBTV = '';

// http://www.sugardvd.com/Global/images/starbar/


var RATEBAR_STARS_PER_BAR = 5;
//
var RATEBAR_TYPE_EMPTY = 0;
var RATEBAR_TYPE_PREDICT = 1;
var RATEBAR_TYPE_RATE = 2;
var RATEBAR_TYPE_STATIC = 3;
var RATEBAR_TYPE_AVG = 4;
var RATEBAR_TYPE_MAX = 4;
//
var RATEBAR_HEIGHT = 15;
var RATEBAR_STAR_WIDTH = 16;
var RATEBAR_GAP_WIDTH = 3;
var RATEBAR_WIDTH = RATEBAR_STARS_PER_BAR*RATEBAR_STAR_WIDTH + (RATEBAR_STARS_PER_BAR-1)*RATEBAR_GAP_WIDTH;
//
var RATEBAR_PREFIX_HEIGHT = 15;
var RATEBAR_PREFIX_WIDTH = 60;
var RATEBAR_NI_BUTTON_HEIGHT = 21;
var RATEBAR_NI_BUTTON_WIDTH = 77;
var RATEBAR_HS_BUTTON_HEIGHT = 21;
var RATEBAR_HS_BUTTON_WIDTH = 78;
//
var RATEBAR_NI_VALUE = -1;
var RATEBAR_HS_VALUE = -2;
//
// Storing and preloading of ratebar images
//
var RatebarImages;
function RatebarImageName(starType, n) {
    if ( n <= 0 ) {
      starType = "0"
      n = "10"
    }

    return RATEBAR_IMG_ROOT + "stars_" + starType + "_" + n + ".gif";
}
function RatebarImage(starType, numStars) {
    // If already fetched and cached, use it.
    // Otherwise cache it now for future use.
    var n = Math.min(Math.max(Math.round(numStars * 10), 0), 10*RATEBAR_STARS_PER_BAR);
    if (! RatebarImages[starType][n]) {
        RatebarImages[starType][n] = new Image(RATEBAR_WIDTH, RATEBAR_HEIGHT);
        RatebarImages[starType][n].src = RatebarImageName(starType, n);
    }
    return RatebarImages[starType][n].src;
}
function RatebarHaventSeenImage(selected) {
    return RATEBAR_IMG_ROOT
        + (selected ? "btn_havent_seen_sel.gif" : "btn_havent_seen_unsel.gif")}
function RatebarNotInterestedImage(selected) {
    return RATEBAR_IMG_ROOT
        + (selected ? "btn_not_interested_sel.gif" : "btn_not_interested_unsel.gif");
}
function RatebarPreload() {
    // Preload the images that are used for tracking mouse movement.
    // Note that this is only called if there is a ratebar on the page,
    // so it is safe to include this on every page.
    if (! RatebarImages) {
        RatebarImages = new Array();
        for (var j = 0; j <= RATEBAR_TYPE_MAX; j++) {
            RatebarImages[j] = new Array();
        }
        for (var j = RATEBAR_TYPE_RATE; j <= RATEBAR_TYPE_RATE; j++) {
        //for (j = 0; j <= RATEBAR_TYPE_MAX; j++) {
            for (var i = 1; i <= RATEBAR_STARS_PER_BAR; i++) {
                RatebarImages[j][i] = new Image(RATEBAR_WIDTH, RATEBAR_HEIGHT);
                RatebarImages[j][i].src = RatebarImageName(j, 10*i);
            }
        }
        RatebarEnabled = true;
    }
}
//
// Place to store state about all the ratebars on the page
//
var RatebarCount = 0;
var RatebarItemIds = new Array();
var RatebarTypes = new Array();
var RatebarNumStars = new Array();
var RatebarRefresh = new Array();
var RatebarTimers = new Array();
var RatebarPredictions = new Array();
var RatebarSpecialValues = new Array();
var RatebarLastEntered = -1;
//
// Interaction functions
//
var RatebarEnabled = false;
//
function RatebarMouseOver(imgNum, whichStar) {
    // Cancel any background request to restore this image.
    if (RatebarTimers[imgNum] != 0) {
        window.clearTimeout(RatebarTimers[imgNum]);
        RatebarTimers[imgNum] = 0;
    }
    // If we left an image, restore it right now.
    if (RatebarLastEntered >= 0 && RatebarLastEntered != imgNum) {
        RatebarRestore(RatebarLastEntered);
    }
    // If we're now over one of the special buttons,
    // and we were previously on some othe part of this widget,
    // make sure we restore the stars.
    if (RatebarLastEntered >= 0 && RatebarLastEntered == imgNum
            && (whichStar == RATEBAR_HS_VALUE || whichStar == RATEBAR_NI_VALUE)) {
        RatebarRestore(RatebarLastEntered);
    }
    RatebarLastEntered = imgNum;
    // Make the ratebar show appropriate feedback.
    if (whichStar == RATEBAR_HS_VALUE) {
        //document.images["ratebar"+imgNum].src = RatebarImage(RATEBAR_TYPE_EMPTY, whichStar);
    } else if (whichStar == RATEBAR_NI_VALUE) {
        //document.images["ratebar"+imgNum].src = RatebarImage(RATEBAR_TYPE_EMPTY, whichStar);
    } else {
        document.images["ratebar"+imgNum].src = RatebarImage(RATEBAR_TYPE_RATE, whichStar);
    }
    if (document.images["ratebar_hs"+imgNum]) {
        document.images["ratebar_hs"+imgNum].src = RatebarHaventSeenImage((whichStar == RATEBAR_HS_VALUE));
    }
    if (document.images["ratebar_ni"+imgNum]) {
        document.images["ratebar_ni"+imgNum].src = RatebarNotInterestedImage((whichStar == RATEBAR_NI_VALUE));
    }
    // Overwrite the ugly link text in the status region.
    window.status = "Click to rate the movie \""+whichStar+" stars\"";
    return false;
}
function RatebarRestore(imgNum) {
    // Restore the ratebar state.
    document.images["ratebar"+imgNum].src = RatebarImage(RatebarTypes[imgNum], RatebarNumStars[imgNum]);
    if (document.images["ratebar_hs"+imgNum]) {
        document.images["ratebar_hs"+imgNum].src = RatebarHaventSeenImage((RatebarSpecialValues[imgNum] == RATEBAR_HS_VALUE));
    }
    if (document.images["ratebar_ni"+imgNum]) {
        document.images["ratebar_ni"+imgNum].src = RatebarNotInterestedImage((RatebarSpecialValues[imgNum] == RATEBAR_NI_VALUE));
    }
    RatebarTimers[imgNum] = 0;
    if (RatebarLastEntered == imgNum) {
        RatebarLastEntered = -1;
    }
    window.status = "";
}
function RatebarMouseOut(imgNum, whichStar) {
    // Restore the image to the saved state, once a little time has elapsed.
    if (! RatebarTimers[imgNum]) {
        RatebarTimers[imgNum] = window.setTimeout("RatebarRestore("+imgNum+")", 100);
    }
}

function RatebarClick(imgNum, whichStar) {
    var itemId;
    var rateHref;
    var rateWindow;
    if (! RatebarEnabled) {
        return void(0);
    }

    RatebarEnabled = false;

    if (RATEBAR_MODE != "NOLOGIN") {
      itemId = RatebarItemIds[imgNum];
      // Update the saved state of the ratebar and the display
      if (whichStar == RATEBAR_NI_VALUE) {
          rateHref = "&ref_item="+itemId+"&ratio="+"norec";
          RatebarTypes[imgNum] = RATEBAR_TYPE_PREDICT;
          RatebarNumStars[imgNum] = RatebarPredictions[imgNum];
          RatebarSpecialValues[imgNum] = whichStar;
      } else if (whichStar == RATEBAR_HS_VALUE) {
          rateHref = "&ref_item="+itemId+"&ratio="+"noseen";
          RatebarTypes[imgNum] = RATEBAR_TYPE_PREDICT;
          RatebarNumStars[imgNum] = RatebarPredictions[imgNum];
          RatebarSpecialValues[imgNum] = whichStar;
      } else {
          rateHref = "&ref_item="+itemId+"&ratio="+whichStar;
          RatebarTypes[imgNum] = RATEBAR_TYPE_RATE;
          RatebarNumStars[imgNum] = whichStar;
          RatebarSpecialValues[imgNum] = 0;
      }
    }

    rateHref = RATEBAR_SET_PAGE + rateHref +"&url_back=" + escape(window.location.href);

    if (RATEBAR_MODE == "NOLOGIN") {

      alert('This option allowed for register members only.');
      RatebarEnabled = true;
      return void(0);
    }

   RatebarRestore(imgNum);
    // Save the rating.
    if (RatebarRefresh[imgNum]) {
        // Must refresh this page
        window.location.href = rateHref;
        RatebarEnabled = true;
        return void(0);
    }
    // Try to use an IFRAME.
    if (window.callback_iframe) {
        window.callback_iframe.location.href = rateHref+"&iframe=t";
        // Return special value to leave this window alone
        RatebarEnabled = true;
        return void(0);
    }
    // If that failed, try using a pop-up window.

    if (rateWindow && ! rateWindow.closed) {
        //rateWindow.blur();
        rateWindow.location.href = rateHref+"&js=t";
        //self.focus();
        RatebarEnabled = true;
        return void(0);
    }
    // If that failed, run in this window.
    window.location.href = rateHref;
    RatebarEnabled = true;
    return void(0);
}

//
// Ratebar creation
//
function InsertRatebar(itemId, starType, numStars, refreshWhenChanged) {

    var altText;
    var imgAttrs;
    RatebarPreload();
    if (numStars == 1) {
        altText = numStars+" star";
    } else {
        altText = numStars+" stars";
    }



    imgAttrs = " src='"+RatebarImage(starType, numStars)+"' alt='"+altText+"' width="+RATEBAR_WIDTH+" height="+RATEBAR_HEIGHT+" border=0 align='absmiddle'";
    if (itemId < 0) {
        // No real itemID, so just a non-interactive image
        document.write("<img"+imgAttrs+">");
    } else {
        var imgNum = RatebarCount++;
        // Remember the true state of the ratebar.
        RatebarItemIds[imgNum] = itemId;
        RatebarTypes[imgNum] = starType;
        RatebarNumStars[imgNum] = numStars;
        RatebarSpecialValues[imgNum] = 0;
        RatebarRefresh[imgNum] = refreshWhenChanged;
        RatebarTimers[imgNum] = 0;

        // Emit the HTML
        with (document) {
            // Only integral input allowed.
            // Associate the gap between stars with the star just to the left of the gap.

          if (1 == 2) {  
            write("<map name='ratebar"+imgNum+"'>");
            for (var i = 1; i <= RATEBAR_STARS_PER_BAR; i++) {
                var left = (i-1) * (RATEBAR_STAR_WIDTH + RATEBAR_GAP_WIDTH);
                var right = Math.min(left + RATEBAR_STAR_WIDTH +RATEBAR_GAP_WIDTH - 1, RATEBAR_WIDTH);
                var top = 0;
                var bottom = RATEBAR_HEIGHT - 1;
                var altText = "Click to rate it \"" + i + " star";
                if (i != 1) {
                    altText = altText + "s";
                }
                altText = altText + "\"";
                if ( WEBTV == 'yes' ) {
                  write("<area href='' onClick='javascript:RatebarClick("+imgNum+","+i+");' alt='"+altText+"'");
                } else {
                  write("<area href='javascript:RatebarClick("+imgNum+","+i+");' alt='"+altText+"'");
                }
                write(" onMouseOver='RatebarMouseOver("+imgNum+","+i+");'");
                write(" onMouseOut='RatebarMouseOut("+imgNum+","+i+");'");
                write(" shape='rect' coords='"+left+","+top+","+right+","+bottom+"'>");
            }

            write("<\/map>");

          }
            write("<img"+imgAttrs+" name='ratebar"+imgNum+"' usemap='#ratebar"+imgNum+"'>");
        }
    }
    return imgNum;
}

function InsertFullRatebar(itemId, starType, numStars, predictedRating,
                           avgRating, notInterested, haveNotSeen, refreshWhenChanged) {
    var imgNum;
    with (document) {
        write("<table cellpadding=0 cellspacing=0 cellborder=0 width='" + (RATEBAR_PREFIX_WIDTH + RATEBAR_WIDTH) + "'>");
        write("<tr><td align=left><nobr>");
        imgNum = InsertRatebar(itemId, starType, numStars, refreshWhenChanged);
        // Update the stored state of the gauge
        if (notInterested) {
            RatebarSpecialValues[imgNum] = RATEBAR_NI_VALUE;
        } else if (haveNotSeen) {
            RatebarSpecialValues[imgNum] = RATEBAR_HS_VALUE;
        }
        RatebarPredictions[imgNum] = predictedRating;
        write("<\/nobr><\/td><\/tr>");
        write("<tr><td><nobr>");
        write("<a href='javascript:RatebarClick("+imgNum+","+RATEBAR_HS_VALUE+");'"
              + " onMouseOver='RatebarMouseOver("+imgNum+","+RATEBAR_HS_VALUE+")'"
              + " onMouseOut='RatebarMouseOut("+imgNum+","+RATEBAR_HS_VALUE+")'"
              + ">");
        write("<img src='" + RatebarHaventSeenImage(haveNotSeen)
              + "' width=" + RATEBAR_HS_BUTTON_WIDTH + " height=" + RATEBAR_HS_BUTTON_HEIGHT + " border=0"
              + " alt='Click to rate it \"Have Not Seen It\"'"
              + " name='ratebar_hs"+imgNum+"'"
              + ">");
        write("<\/a>");
        write("<a href='javascript:RatebarClick("+imgNum+","+RATEBAR_NI_VALUE+");'"
              + " onMouseOver='RatebarMouseOver("+imgNum+","+RATEBAR_NI_VALUE+")'"
              + " onMouseOut='RatebarMouseOut("+imgNum+","+RATEBAR_NI_VALUE+")'"
              + ">");
        write("<img src='" + RatebarNotInterestedImage(notInterested)
              + "' width=" + RATEBAR_NI_BUTTON_WIDTH + " height=" + RATEBAR_NI_BUTTON_HEIGHT + " border=0"
              + " alt='Click to rate it \"Not Interested\"'"
              + " name='ratebar_ni"+imgNum+"'"
              + ">");
        write("<\/a>");
        write("<\/nobr><\/td><\/tr>");
        write("<\/table>");
    }
}
// --></SCRIPT>

