(function($) {

    /* emmezeta slider plugin */
    $.fn.product_image_slider = function(options) {
        
        var base = this;
      
        var opts = $.extend({
            thumb_from: 'category_large',
            inspiration: false  
        }, options);
        
        base.buildMarkup = function(element_number){
          
            $('#pr_h_image_out').after('<ul id="pr_h_selected_slider_nav"/>');            
            for (i = 1; i <= element_number; i++) {
                $('#pr_h_selected_slider_nav').append('<li id="pr_image_tabs-'+ i +'"><a href="#pr_image-'+ i +'"></a></li>');
            }
            
            if(opts.inspiration){
                var extra_nav = $('<ul id="extra_slider_nav"><li id="extra_slider_nav_prev"><a href="#" title="Prethodna slika">Prethodna slika</a></li><li id="extra_slider_nav_next"><a href="#" title="Sljedeća slika">Sljedeća slika</a></li></ul>');
                extra_nav.insertAfter('#pr_h_selected_slider_nav');
            }
            
        };
        
        base.prepareSlider = function(){
            
            $('#pr_h_selected_slider_nav li a').each(function(index) {
                var img_src = $('#pr_image-'+(index+1)+' img').attr('src').replace('_'+ opts.thumb_from, '_thumb'),
                    img_alt = $('#pr_image-'+(index+1)+' img').attr('alt');

                $(this).append('<img src="'+ img_src +'" width="50" height="50" alt="'+img_alt+'" />');

            });
          
            var query_id = window.location.hash;
            if (query_id && query_id != '#featured-products' && ($(query_id).size() > 0)) {
                //oznacavanje
                $('.pr_image').removeClass('image_selected').filter(query_id).addClass('image_selected');
                $('#pr_h_selected_slider_nav li a').removeClass('tabs_selected').filter('a[href*='+query_id+']').addClass('tabs_selected');
                //prikazivanje
                var css_hide = { 'opacity' : '0', 'z-index' : '100' },
                    css_show = { 'opacity' : '1', 'z-index' : '101' };                                           
                $('.pr_image').css(css_hide).filter(query_id).css(css_show);
            } else {
                //oznacavanje
                $('.pr_image').removeClass('image_selected').filter(':first').addClass('image_selected');
                $('#pr_h_selected_slider_nav li a').removeClass('tabs_selected');
                $('#pr_h_selected_slider_nav a:first').addClass('tabs_selected');
                //prikazivanje
                var css_hide = { 'opacity' : '0', 'z-index' : '100' },
                    css_show = { 'opacity' : '1', 'z-index' : '101' };
                $('.pr_image').css(css_hide).filter('.image_selected').css(css_show);                   
            }  
            
        };
        
        base.getPosition = function(element_number){
          
            var index = $('#pr_h_selected_slider_nav a').index($('.tabs_selected'));
            
            if(index <= 0){
                $('#extra_slider_nav_prev, #extra_slider_nav_prev a').hide();
                $('#extra_slider_nav_next').show();
            } else if ((index + 1) >= element_number){
                $('#extra_slider_nav_next, #extra_slider_nav_next a').hide();
                $('#extra_slider_nav_prev').show();
            } else {
                $('#extra_slider_nav_next').show();
                $('#extra_slider_nav_prev').show();
            }
            
        };
        
        base.slider = function(element_number){
            
            $('#pr_h_selected_slider_nav li a').live('click', function(e){
                        
                if($(this).attr('class') != 'tabs_selected'){                    
                
                    var active_link = $(this).attr('href');                    
                    if ($.browser.msie) {
                        var active_link = this.hash;                    
                    }
                                        
                    var css_hide = { 'opacity' : '0', 'z-index' : '100' },
                        css_show = { 'z-index' : '102' },
                        css_neutral = { 'z-index' : '101' };
                    
                    $(active_link).filter(':not(:animated)').css(css_show).animate({opacity: 1}, 300, function(){
                        
                        $('.image_selected').css(css_hide);
                        $('.pr_image').removeClass('image_selected').filter(active_link).addClass('image_selected');
                        $('.image_selected').css(css_neutral);
                                                                                                                
                    });
                    
                    $('#pr_h_selected_slider_nav li a').removeClass('tabs_selected');
                    $(this).addClass('tabs_selected');
                    
                    base.getPosition(element_number);
                
                } else {
                    e.preventDefault();
                }
                
                e.preventDefault();                    

            });
            
        };
        
        base.prevNext = function(element_number){
            
            $('#extra_slider_nav li').hover(function(){
                
                $(this).find('a:not(:animated)').fadeIn('fast').css({display: 'block'});
                
            },function(){
                
                $(this).find('a').fadeOut('fast');
                
            });
            
            $('#extra_slider_nav li a').live('click', function(e){
                
                var id = $(this).parent().attr('id');
                
                if(id == 'extra_slider_nav_next'){                       
                    
                    $('#pr_h_selected_slider_nav li a.tabs_selected').parent().next('li').find('a').trigger('click');
                    base.getPosition(element_number);
                                        
                } else {
                    
                    $('#pr_h_selected_slider_nav li a.tabs_selected').parent().prev('li').find('a').trigger('click');
                    base.getPosition(element_number);                    
                }
                
                e.preventDefault();                
            });
            
        };
        
        return this.each(function() {   

            /* ako imamo više slika od jedne */
            var element_number = $('.pr_image').size(),
                image_number = $('.pr_image img').size();                
                
            if ( (element_number > 1) && (element_number === image_number) ) {

                base.buildMarkup(element_number);
                base.prepareSlider();                
                base.slider(element_number);
                
                if(opts.inspiration){
                    base.getPosition(element_number);
                    base.prevNext(element_number);
                }
                   
            }

        
        });
                    
    };

})(jQuery);