/**
* Class for adding star for comments
*
* @el id of div element where will be placed stars
* @url url to template (for including images)
* @max max rating
* @text text
* @class unique adds for ids
*/

commentRating = function(el, url, max, text, cls)
{
    this.element = document.getElementById(el);

    this.cls = cls;    
    this.numStars = max;
    this.URL = url;
    this.text = text;
}

commentRating.prototype = 
{
    init: function()
    {
        if(this.element)
        {
            this.printStars();
        }
    }, 

    printStars: function()
    {
        var html = '';
        var css = '';

        css = "background: url('" + this.URL + "/img/gray.png'); ";
        css += "width: 15px; height: 15px; ";
        css += "cursor: pointer; ";
        css += "float: left;";

        for(var i = 1; i <= this.numStars; i++)
        {
            html += '<div style="' + css + '" ';
            html += 'id="'+this.cls+'rate' + i + '"';
            html += ' ></div>';
        }

        html += '<div id="'+this.cls+'rate_text" style="float: left; font-size: 11px; padding-left: 5px;">&nbsp;</div>';
        html += '<input type="hidden" name="'+this.cls+'rating" id="'+this.cls+'rating" value="" />';

        this.element.innerHTML = html;

        for(var i = 1; i <= this.numStars; i++)
        {
            this.attachEvent(this.cls+'rate' + i, i);
        }
    },

    attachEvent: function(el, item)
    {
        var cls = this.cls;
        var el = document.getElementById(el);
        var rateText = document.getElementById(cls+'rate_text');
            
        var numStars = this.numStars;
        var URL = this.URL;
        var text = this.text;
        var rating = document.getElementById(cls+'rating');
        var clicked = false;

        el.onmouseover = function()
        {
            // reset all stars 
            for(var i = 1; i <= numStars; i++)
            {
                var star = document.getElementById(cls+'rate' + i);
                star.style.background = "url('" + URL + "/img/gray.png')";
            }
            
            // selected new stars
            for(var i = 1; i <= item; i++)
            {
                var star = document.getElementById(cls+'rate' + i);
                star.style.background = "url('" + URL + "/img/gold.png')";
                rateText.innerHTML = text + '&nbsp;:&nbsp;' + i;
            }

            clicked = false;
        }
        el.onmouseout = function()
        {
            if(!clicked)
            {
                for(var i = 1; i <= item; i++)
                {
                    var star = document.getElementById(cls+'rate' + i);
                    star.style.background = "url('" + URL + "/img/gray.png')";
                    rateText.innerHTML = '&nbsp;';
                }
                rating.value = '';
            }
        }
        el.onclick = function()
        {
            for(var i = 1; i <= item; i++)
            {
                var star = document.getElementById(cls+'rate' + i);
                star.style.background = "url('" + URL + "/img/gold.png')";
            }

            rating.value = item;
            clicked = true;
        }
    }
}

