jQuery(function(){
    jQuery.fn.bannerSlider = function(options) {
        return this.each(function () {
            var slider = jQuery(this);
            var container = slider.find('.container');
            var next = slider.find('.next');
            var prev = slider.find('.previous');
            var visible_slides;

            var calculateVisibleSlides = function() {
                var w = container.width();
                var sw = container.find('.slide').eq(0).width();
                return w/sw;
            };
 
            var autoHeight = function() {
                container.height(container.find('.slide').eq(0).height());
            };

            var doPrev = function() {
                unbindControls();
                var w = container.find('.slide').eq(visible_slides).width();
                container.find('.slide').stop(true, true);
                container.find('.slide').each(function(index, item) {
                    var slide=jQuery(item);
                    slide.animate({left: '+=' + w}, 1000, function() {
                        if (index!=container.find('.slide').length-1) return;
                        var last = container.find('.slide').eq(container.find('.slide').length-1);
                        last.remove();
                        last = container.find('.slide').eq(container.find('.slide').length-2);
                        var first = container.find('.slide').eq(0);
                        first.before(last.clone().css('left', first.position().left - first.width()));
                        bindControls();
                    });
                });
                return false;
            };

            var doNext = function() {
                unbindControls();
                var w = container.find('.slide').eq(1).width();
                container.find('.slide').stop(true, true);
                container.find('.slide').each(function(index, item) {
                    var slide=jQuery(item);
                    slide.animate({left: '-=' + w}, 1000, function() {
                        if (index!=container.find('.slide').length-1) return;
                        var last = container.find('.slide').eq(container.find('.slide').length-1);
                        var first = container.find('.slide').eq(0);
                        first.remove();
                        first = container.find('.slide').eq(1);
                        last.after(first.clone().css('left', last.position().left + last.width()));
                        bindControls();
                    });
                });
                return false;
            };

            var dupFirstLast = function() {
                var first = container.find('.slide').eq(0);
                var last = container.find('.slide').eq(container.find('.slide').length-1);
                last.after(first.clone().css('left', last.position().left + last.width()));
                first.before(last.clone().css('left', first.position().left - first.width()));
            }

            var unbindControls = function() {
                next.unbind('click').bind('click', function() { return false; });
                prev.unbind('click').bind('click', function() { return false; });
            };

            var bindControls = function() {
                next.unbind('click').bind('click', doNext);
                prev.unbind('click').bind('click', doPrev);
            };

            var initControls = function() {
                next.show();
                prev.show();
                bindControls();
            };

            var initSlides = function() {
                var position = 0;
                container.find('.slide').each(function(index, item) {
                    var slide=jQuery(item);
                    slide.css('display', 'block');
                    slide.css('left', position);
                    position += slide.width();
                });
            };

            var initSlider = function() {
                next.hide();
                prev.hide();
                autoHeight();
                visible_slides = calculateVisibleSlides();    
                initSlides();
                if (visible_slides < container.find('.slide').length) {
                    dupFirstLast();
                    initControls();
                }
            };

            initSlider();
        });
    }

// navegation menu
    jQuery('ul#portal-globalnav').superfish({
        delay: 500,
        autoArrows: false,
        animation:  {height: 'show'},
        speed: 'slow',
        hoverClass: 'sfhover'
    });
// header menu
    if (!($.browser.msie && $.browser.version < 7)){
        jQuery('ul#header-menu').superfish({
            delay: 500,
            submenuEl: 'table',
            autoArrows: false,
            animation:  {height: 'show'},
            speed: 'slow',
            hoverClass: 'sfhover'
        });

// for header looped slider
        jQuery('#loopedSlider').loopedSlider({
          autoStart: 8000,
          containerClick: true,
          slidespeed: 1200 //Speed of slide animation, 1000 = 1second.
        });
    }
    jQuery('#bannerSlider').bannerSlider();
    jQuery('#portal-personaltools').fitted({
      'status' : true,
      'title'  : false
    });
    jQuery('body.template-folder_summary_boxes .tileItem').fitted({
    });
    jQuery('body.template-folder_summary_images .tileItem').fitted({
    });
    $('.slide-caption-overlay').hoverIntent(
      function () {
        $(this).children('p').animate({opacity: 1, height:'toggle'},800,function (){});
      },
      function () {
        $(this).children('p').animate({opacity: 0, height:'toggle'},800,function (){});
      }
    );
});

