﻿/* RATINGS SYSTEM */
var currentRating = new Array();
var ratingDIVPrefix = "ratingsControl";
var starOn = "savedRatingStar";
var starOff = "emptyRatingStar";
var starOver = "filledRatingStar";

// MouseOver - Light stars less than or equal to current target
function starLight(starNum, ratingID) {
    for (var i = 1; i <= starNum; i++) {
        document.getElementById(ratingDIVPrefix + i + ratingID).className = starOver;
    }
    for (var i = starNum + 1; i <= 5; i++) {
        document.getElementById(ratingDIVPrefix + i + ratingID).className = starOff;
    }
}

// MouseOut - Light stars less than or equal to current rating
function starDim(starNum, ratingID) {
    for (var i = 1; i <= currentRating[ratingID].rating; i++) {
        document.getElementById(ratingDIVPrefix + i + ratingID).className = starOn;
    }
    for (var i = currentRating[ratingID].rating + 1; i <= 5; i++) {
        document.getElementById(ratingDIVPrefix + i + ratingID).className = starOff;
    }
}

// Click - Save rating in unique object per rating control, update hidden field value if supplied
function starSave(starNum, ratingID, valueField) {

    if (currentRating[ratingID] == null) {
        currentRating[ratingID] = new Object();
    }
    if (valueField != null) {
        currentRating[ratingID].valueField = document.forms[0].elements[valueField];
    }
    else {
        currentRating[ratingID].valueField = false;
    }
    currentRating[ratingID].rating = starNum;
    starDim(starNum, ratingID);
    if (currentRating[ratingID].valueField) {
        currentRating[ratingID].valueField.value = starNum;
    }
}

// Initialize - Dynamically create rating controls
function ratingsInit(starNum, ratingID, valueField) {
    var parentControl = document.getElementById(ratingID);
    if (parentControl != null)
    {
        for (var i = 1; i <= 5; i++) {
            var ratingDIV = document.createElement("div");
            ratingDIV.setAttribute("id", ratingDIVPrefix + i + ratingID);
            ratingDIV.ratingValue = i;
            ratingDIV.ratingID = ratingID;
            ratingDIV.onmouseover = function() { starLight(this.ratingValue, this.ratingID); };
            ratingDIV.onmouseout = function() { starDim(this.ratingValue, this.ratingID); };
            ratingDIV.onclick = function() { starSave(this.ratingValue, this.ratingID, valueField); };
            parentControl.appendChild(ratingDIV);
        }
   
        var floatClear = document.createElement("br");
        floatClear.setAttribute("clear", "all");
        parentControl.appendChild(floatClear);
        starSave(starNum, ratingID, valueField);
    }
}
