// JavaScript Document

/*
Author: Addam M. Driver
Date: 10/31/2006
*/

var sMax; // Isthe maximum number of stars
var holder; // Is the holding pattern for clicked state
var preSet; // Is the PreSet value onces a selection has been made
var rated;

// Rollover for image Stars //
function rating(num) {
    sMax = 0; // Is the maximum number of stars
    for (n = 0; n < num.parentNode.childNodes.length; n++) {
        if (num.parentNode.childNodes[n].nodeName == "A") {
            sMax++;
        }
    }

    var tabIndex = getTabIndexForListingNumber(currentDetailID);


    s = num.id.replace("_", ''); // Get the selected star

    var currentS = 0;
    if (preSet)
        currentS = preSet.id.replace("_", '');

    var cssClass = '';
    a = 0;
    for (i = 1; i <= sMax; i++) {

        if (i <= s) {
            cssClass = 'on';

            if (i > currentS)
                cssClass = 'add';
        } else {
            cssClass = '';

             if (i <= currentS)
                cssClass = 'subtract';
        }

        if (document.getElementById("_" + i).className != cssClass)
            document.getElementById("_" + i).className = cssClass;

        if (tabIndex >= 0 && document.getElementById('star' + i + '_tab_' + tabIndex).className != cssClass)
            document.getElementById('star' + i + '_tab_' + tabIndex).className = cssClass;

        if (i <= s) {
            document.getElementById("rateStatus").innerHTML = num.title;
            holder = a + 1;
            a++;
        }
    }
}

// For when you roll out of the the whole thing //
function off(me) {

    if (!preSet) {
        var tabIndex = getTabIndexForListingNumber(currentDetailID);
        var cssClass = '';
        
        for (i = 1; i <= sMax; i++) {
            document.getElementById('_' + i).className = cssClass;
            document.getElementById("rateStatus").innerHTML = me.parentNode.title;
        
            if (tabIndex >= 0)
                document.getElementById('star' + i + '_tab_' + tabIndex).className = cssClass;
        }
    } else {
        rating(preSet);
        document.getElementById("rateStatus").innerHTML = '';  //document.getElementById("ratingSaved").innerHTML;
    }
}

// When you actually rate something //
function rateIt(me) {

    document.getElementById("rateStatus").innerHTML = '';  //document.getElementById("ratingSaved").innerHTML + " :: "+me.title;
    preSet = me;
    rated = 1;
    sendRate(me);
    rating(me);
}

// Send the rating information somewhere using Ajax or something like that.
function sendRate(sel) {
    var numStars = sel.id.replace('_', '');
    toggleSet(currentDetailID, 'Rating', null, numStars, null)

    if (userListingsTagsAndRatings['ln' + currentDetailID] == null) {
        userListingsTagsAndRatings['ln' + currentDetailID] = { rating: numStars, 'tags': [] };
    } else {
        userListingsTagsAndRatings['ln' + currentDetailID].rating = numStars;
    }
}

