var Rating = function() {

    //Картинки для разных состояний
    var changeImages = {
        activeImage: "/images/active_bstar.gif", //Картинка при наведении
        unactiveImage: "/images/unactive_bstar.gif" //Неактивная звезда
    }
    
    var starImages = new Array(); //Массив с айдишниками картинок-звездочек
    
    /*
        Предзагрузка картинок
    */
    function preloadImages()
    {
        var img = new Image();
        img.src = changeImages.activeImage;
        img.src = changeImages.unactiveImage;
    }
        
    /*
        Получение порядкового номера картинки
    */
    function getImageOrderNum(_id)
    {
        var result = 0;
        
        for(var i = 0; i < starImages.length; i++)
        {
            if(starImages[i].attr("id") == _id)
            {
                break;
            }
            else
            {
                result++;
            }
        }
        
        return result;
    }
    
    /*
        Получение списка айдишников предыдущих картинок + текущая
    */
    function getBeforeIds(_id) {
        
        var result = "";

        for(var i = 0; i <= getImageOrderNum(_id); i++)
        {
            result += result == "" ? "#" + starImages[i].attr("id") : ", #" + starImages[i].attr("id");
        }
        
        return result;
    }
    
    /*
        Получение списка всех айдишников
    */
    function getAllIds() {
        var result = "";

        for(var i = 0; i < starImages.length; i++)
        {
            result += result == "" ? "#" + starImages[i].attr("id") : ", #" + starImages[i].attr("id");
        }
        
        return result;
    }
    
    return {
        
        //Добавление других событий к картинке с айдишником _id
        addHandlers: function(_elem) {},
        
        /*
            Иницализация событий
        */
        init: function() {
            var i = 1;
            $("#rateBlock .rateStar").each(function() {
                starImages.push($(this));
            });
            
            var all_ids = getAllIds();
            
            for(var i = 0; i < starImages.length; i++)
            {
                starImages[i].mouseenter(function() {
                    var ids = getBeforeIds($(this).attr("id"));
                    $(ids).attr("src", changeImages.activeImage);
                    $("#ratingText").text($(this).attr("alt"));
                })
                .mouseleave(function() {
                    var ids = getBeforeIds($(this).attr("id"));
                    $(ids).attr("src", changeImages.unactiveImage);
                    $("#ratingText").text("");
                })
                .click(function() {
                    $(all_ids).unbind('mouseenter mouseleave');
                });
                
                this.addHandlers(starImages[i]);
            }
            
            preloadImages();
        }
    };
}();
