/** 
* 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; 
        } 
    } 
}  