(function ($) {

  var bancroftWines = {

    init: function () {
      bancroftWines.ieHeightFix();
      bancroftWines.mainNav();
      bancroftWines.increaseDecrease();
      bancroftWines.newsletterDropdown();
      bancroftWines.showFullListOnHover('.header-right ul li ul');
      bancroftWines.showCartHeaderDropdownOnHover();

      $('.tooltip-trigger').each(function () {
        bancroftWines.initTooltip(this);
      });

      $('#tabs-js').tabs();
      $('.tabs').tabs();

      var wineListingCarousel = $('.carousel ul.listings').jcarousel({
        auto: 0,
        wrap: 'circular',
        scroll: 5,
        buttonPrevHTML: '<div class="slider-left"> <span> arrow left </span> </div>',
        buttonNextHTML: '<div class="slider-right"> <span> arrow right </span> </div>',
        animation: 2000,
        easing: 'swing'
      });
			
      $('.promo-wrapper').each(function(){
        var speed = $($('.promo-wrapper').attr('class').match(/speed\-(\d+)/));

        var promoCarousel = $('.promo-wrapper ul').jcarousel({
          auto: speed.size() == 2? speed.get(1) : false,
          wrap: 'circular',
          scroll: 4,
          animation: 2000,
          easing: 'swing'
        });
          
      });
	      
    },

    ieHeightFix: function () {
      var lists = $('.wine-search-results').find('li');
      var i = 0;
      var heightList = [];

      for (i = 0; i < lists.length; i++) {
        heightList[i] = $(lists[i]).height();
      }

      function sortNumber(a, b) {
        return a - b;
      }

      var heightListFinal = heightList.sort(sortNumber);
      var heightListHighestValue = heightListFinal[heightListFinal.length - 1] + "px !important";
      $('.wine-search-results').find('li').css('cssText', 'height:' + heightListHighestValue + '');
    },

    showFullListOnHover: function (ulSelector) {
      var $ul = $(ulSelector);
      $ul.each(function () {
        var $list = $(this);
        var hiddenLis = $list.find('.invisible');
        $list.bind('mouseover focusin', function () {
          $list.addClass('block');
        });
        $list.bind('mouseout focusout', function () {
          $list.removeClass('block');
        });
      });
    },

    showCartHeaderDropdownOnHover: function () {
      $('.top-cart a.first, .top-cart .dropdown').bind('mouseout focusout', function () {
        $('.dropdown').removeClass('displayed');
      });
      $('.top-cart a.first, .top-cart .dropdown').bind('mouseover focusin', function () {
        $('.dropdown').addClass('displayed');
      });
    },

    newsletterDropdown: function () {
    
      var $trigger = $('a#newsletter-dropdown-trigger');
      var $dropdown = $('#newsletter-dropdown');
      var $form = $('#newsletter-dropdown form');
      var $both = $('a#newsletter-dropdown-trigger, #newsletter-dropdown');
      var i = 0;
      
      $both.hover(function(){
					$dropdown.addClass('displayed');
					$trigger.addClass('selected');
      });
      $('body, #newsletter-dropdown').hover(function(){}, function(){
					$dropdown.removeClass('displayed');
					$trigger.removeClass('selected');
      });
      
      
    },

    mainNav: function () {

      var $mainNav = $('.nav-main');
      var $li = $mainNav.find('> ul:first > li');

      $li.each(function () {

        var $parent = $(this);
        var $dropWrap = $parent.find('.drop-wrap');

        if ($dropWrap.length) {

          $parent.bind('mouseover focusin', function () {
            $mainNav.addClass('nav-dropdown-displayed');
            $parent.addClass('selected');
          });

          $parent.bind('mouseleave focusout', function () {
            $mainNav.removeClass('nav-dropdown-displayed');
            $parent.removeClass('selected');
          });

        }

      });

    },

    initTooltip: function (tooltip_string) {

      var $tooltipTrigger = $(tooltip_string);

      $tooltipTrigger.tooltip({
        bodyHandler: function () {
          return $tooltipTrigger.attr("rel");
        },
        fixPNG: true,
        fade: 250,
        top: 20,
        left: 0,
        showURL: false
      });
    },

    increaseDecrease: function () {

      $('#shopping-cart-table tr').each(function () {

        function init($this) {
          var o = {};
          o.$parent = $this.parents('tr');
          o.$input = o.$parent.find('input.qty');
          o.unitPrice = parseFloat(o.$parent.find('.item-price .price').text().match(/[0-9]*\.[0-9]*/gi));
          o.$subTotal = o.$parent.find('.cart-price .price');
          o.origVal = parseInt(o.$input.val());
          //o.htmlEntity = o.$parent.find('.item-price .price').text()[0]; TODO
          o.htmlEntity = "";
          return o;
        }

        $(this).find('.increase').click(function () {
          var o = init($(this));
          o.$input.attr('value', o.origVal + 1);
//          o.$subTotal.text(o.htmlEntity + ((o.origVal + 1) * o.unitPrice).toFixed(2));
        });

        $(this).find('.decrease').click(function () {
          var o = init($(this));
          if (o.$input.attr('value') > 0) {
            o.$input.attr('value', o.origVal - 1);
//            o.$subTotal.text(o.htmlEntity + ((o.origVal - 1) * o.unitPrice).toFixed(2));
          }
        });

      });

    }

  };

  $(document).ready(function () {
      
    bancroftWines.init();

    $('#shopping-cart-table tr td a').each(function(i){
        var entireStr = $(this).text();
        if (entireStr.match(/\(Under Bond\)/gi)) {
            var replaced = entireStr.replace(/\(Under Bond\)/gi, '<span style="color: #F02800; font-weight:bold;">(Under Bond)</span>');
            $(this).html(replaced);
        }
    });


  });

})(jQuery);


