(function($){

    $.fn.favouriteItemsBookmarks = function(){
        var normalImageSrc = setting.siteRootUrl + "/templates/adrooo/images/fav.gif";
        var hoverImageSrc = setting.siteRootUrl + "/templates/adrooo/images/favOver.gif";
        
        function mouseOver(){
            var $this = $(this);
            if ($this.data("active")) 
                return;
            $this.attr("src", hoverImageSrc);
        }
        
        function mouseOut(){
            var $this = $(this);
            if ($this.data("active")) 
                return;
            $this.attr("src", normalImageSrc);
        }
        
        function changeFavouriteItems(){
        
            var $this = $(this);
            setActive($this, !$this.data("active"));
            var action = $this.data("active") ? "add" : "remove";
            
            var itemId = $this.attr("id").replace("favImage", "");
            $.post(setting.siteRootUrl + "/index.php/item/manageFavouriteItems", {
                'action': action,
                'itemId': itemId
            }, function(response){
            
            }, "json");
        }
        
        function setActive($this, active){
            $this.attr("src", (active) ? hoverImageSrc : normalImageSrc);
            $this.data("active", active);
        }
        
        var $this = $(this);
        
        $.post(setting.siteRootUrl + "/index.php/item/manageFavouriteItems", {
            'action': 'list'
        }, function(response){
            var isItemOn = {};
            
            for (i in response.favouriteItems) {
                var favouriteItem = response.favouriteItems[i];
                isItemOn[favouriteItem.itemId] = true;
            }
            
            $this.each(function(){
                $this = $(this);
                var itemId = $this.attr("id").replace("favImage", "");
                setActive($this, (isItemOn[itemId]) ? true : false);
                $this.mouseover(mouseOver);
                $this.mouseout(mouseOut);
                $this.click(changeFavouriteItems);
            });
            
        }, "json");
    }
    
})(jQuery);

$(document).ready(function(){
    $(".fav_image, .fav_image_details").favouriteItemsBookmarks();
});
