﻿/* RATINGS SYSTEM */
var currentRating = new Array();
var ratingDIVPrefix = "ratingStar";
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);
    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);

}
