(function($){
  
    function resizeLayout() {
        var current_width = $(window).width();
        var small_medium = 1475;
        var medium_wide = 1800;
        if (current_width < small_medium) {
            if( $('#page').hasClass('medium') ) {
                $('#page').removeClass('medium').addClass('small');
            }
            if($('#page').hasClass('wide')) {
                $('#page').removeClass('wide').addClass('small');
            }
        }
        if ((current_width >= small_medium) && (current_width < medium_wide)) {
            if($('#page').hasClass('small')) {
                $('#page').removeClass('small').addClass('medium');
            }
            if($('#page').hasClass('wide')) {
                $('#page').removeClass('wide').addClass('medium');
            }
        }

        if ((current_width >= medium_wide)) {
            if($('#page').hasClass('small')) {
                $('#page').removeClass('small').addClass('wide');
            }
            if($('#page').hasClass('medium')) {
                $('#page').removeClass('medium').addClass('wide');
            }      
        }
    }

    $(window).resize(function(){
        resizeLayout();
    });
  
    $(document).ready(function(){
        resizeLayout();

//        menuImagesAnimation = new MenuImagesAnimation();
//        menuImagesAnimation.startAnimation();
    
        $('#navigation .menu-block-wrapper > ul.menu > li').bind('mouseenter', function() {
            $this = $(this);
      
            $this.addClass('menu-item-hovered');
      
            if(!$this.hasClass('active') && !$this.hasClass('active-trail')) {
                $active_ul = $('#navigation .menu-block-wrapper > ul.menu > li.active-trail  ul');
                if ($active_ul.length == 0) {
                    $active_ul = $('#navigation .menu-block-wrapper > ul.menu > li.active  ul');
                }
        
        

//                mlid = _ritek_get_menu_li_mlid($this);
//                menuImagesAnimation.animateTo(mlid);
            }
        });
        $('#navigation .menu-block-wrapper > ul.menu > li').bind('mouseleave', function() {
            $this = $(this);
      
            $this.removeClass('menu-item-hovered');
      
            if(!$this.hasClass('active') && !$this.hasClass('active-trail')) {
                $active_ul = $('#navigation .menu-block-wrapper > ul.menu > li.active-trail  ul');
                if ($active_ul.length == 0) {
                    $active_ul = $('#navigation .menu-block-wrapper > ul.menu > li.active  ul');
                }
                $li = $('#navigation .menu-block-wrapper > ul.menu > li.active-trail');
                if ($li.length == 0) {
                    $li = $('#navigation .menu-block-wrapper > ul.menu > li.active');
                }        
//                active_mlid = _ritek_get_menu_li_mlid($li);
//                menuImagesAnimation.animateTo(active_mlid);
            }
        });
    


        $('#sidebar-first ul.menu > li.expanded').bind('mouseenter', function(){
            $li = $(this);
            $li.addClass('menu-item-hovered');
        });

        $('#sidebar-first ul.menu > li.expanded').bind('mouseleave', function(){
            $li = $(this);
            $li.removeClass('menu-item-hovered');
        });


    });
  
    function _ritek_get_menu_li_mlid($li) {
        if($li == undefined) {
            $li = $('#navigation .menu-block-wrapper > ul.menu > li:first');
        }
        classes = $li.attr('class');
        start = classes.indexOf('menu-mlid-')+10;
        end = classes.indexOf(' ', start);
        if(end < 0) {
            mlid = classes.substr(start);
        } else {
            mlid = classes.slice(start, end);
        }
        return mlid;
    }
  
    function MenuImagesAnimation() {
        this.queue = [];
        this.nextMlid = 0;
        this.animating = false;
        this.counter = 0;
        this.animationType = '';
    
        this.restartAnimation = function() {
            if(menuImagesAnimation.animating != true) {
                mlid = menuImagesAnimation.nextMlid;
                images = $('#navigation-images-wrapper .'+menuImagesAnimation.animationType+' img.mlid-'+mlid).sort(function(){ 
                    return Math.round(Math.random())-0.5
                });
                for (var index = 0; index < images.length; index++) {
                    menuImagesAnimation.queue.push({
                        image: images[index], 
                        mlid: mlid
                    });
                }
                if (menuImagesAnimation.animationType == 'secondary') {
                    menuImagesAnimation.animationType = 'primary';
                } else {
                    menuImagesAnimation.animationType = 'secondary';
                }
                menuImagesAnimation.animating = true;
                menuImagesAnimation.processAnimation();
            }
            else {
        

            }
            setTimeout(menuImagesAnimation.restartAnimation, 1500);
        }
    
        this.startAnimation = function() {
            //начальные данные
            $li = $('#navigation .menu-block-wrapper > ul.menu > li.active-trail');
            if ($li.length == 0) {
                $li = $('#navigation .menu-block-wrapper > ul.menu > li.active');
            }
      
            menuImagesAnimation.nextMlid = _ritek_get_menu_li_mlid($li);
            menuImagesAnimation.animationType = 'secondary';
            //      menuImagesAnimation.restartAnimation();
            setTimeout(menuImagesAnimation.restartAnimation, 5000);
        //      menuImagesAnimation.restartAnimation();
      
 
      
        //      setTimeout(function(){
        //        if (menuImagesAnimation.animating) {
        //          
        //        }
        //        else {
        //        }
        //        menuImagesAnimation.startAnimation();
        //      }, 1000);
        }
    
        this.animateTo = function(mlid){
            images = $('#navigation-images-wrapper .'+menuImagesAnimation.animationType+' img.mlid-'+mlid).sort(function(){ 
                return Math.round(Math.random())-0.5
            });
            menuImagesAnimation.queue = [];
            if (menuImagesAnimation.animationType == 'secondary') {
                menuImagesAnimation.animationType = 'primary';
            } else {
                menuImagesAnimation.animationType = 'secondary';
            }
            for (var index = 0; index < images.length; index++) {
                menuImagesAnimation.queue.push({
                    image: images[index], 
                    mlid: mlid
                });
            }
      
            menuImagesAnimation.nextMlid = mlid;
        //      if (!menuImagesAnimation.animating) {
        //        menuImagesAnimation.animating = true;
        //        menuImagesAnimation.processAnimation();
        //      }
        };

        this.processAnimation = function() {
            //рекурсивная функция - анимирует первую картинку из очереди и при завершении анимации вызывает сама себя
            if(menuImagesAnimation.queue.length == 0) {
                //выход из рекурсии
                menuImagesAnimation.animating = false;
            //        menuImagesAnimation.restartAnimation();
            //        return;
            } else {
                image_info = menuImagesAnimation.queue.shift();
                if((image_info.mlid == menuImagesAnimation.nextMlid) && (!$(image_info.image).hasClass('active-trail')) ) {
                    menuImagesAnimation.animateImage(image_info.image);
                } else {
                    menuImagesAnimation.processAnimation();
                }
            }
        }
    
    
        this.animateImage = function(image) {
            // собственно анимация картинки
            // !!! метод this.processAnimation() должен вызываться строго после окончания анимации !!!
            //      alert('hello!')
            image_classes = $(image).attr('class');
            start = image_classes.indexOf('weight-')+7;
            end = image_classes.indexOf(' ', start);
            if(end < 0) {
                weight = image_classes.substr(start);
            } else {
                weight = image_classes.slice(start, end);
            }
            $old_image = $('#navigation-images-wrapper img.active-trail.weight-'+weight);
            $new_image = $(image);

            //      $old_image.fadeOut(function(){});
            //      $new_image.fadeIn(function(){
            //        $old_image.removeClass('active-trail');
            //        $new_image.addClass('active-trail');
            //        menuImagesAnimation.processAnimation();
            //      });

            $old_image.effect("fade", {
                mode: "hide"
            //        easing: "easeOutQuart"
            }, 500);
      

            $new_image.effect("fade", {
                mode: "show"
            //        easing: "easeOutQuart"
            }, 2000, function(){
                $old_image.removeClass('active-trail');
                $new_image.addClass('active-trail');
                menuImagesAnimation.processAnimation();
            });

        }
    
    };
  
  
  
})(jQuery);
;

