(function($) {

  $.fn.leftnav = function(options)
  {
    var opts = $.extend({}, $.fn.leftnav.defaults, options);

    return this.each(function()
    {
      var $menu = $(this);
      var $container = $('div.container');

      $menu.wrap('<div id="left-nav-dom"><div class="wrapper"></div></div>');

      var $nav = $('div#left-nav-dom');

      $menu.find('> form:first').remove().clone().prependTo($nav);
      $menu.find('> a:first').remove().clone().addClass('logo').prependTo($nav);

      $nav.find('form#search-form').submit(function(e)
      {
        $.fn.leftnav.search(e,this);
      });

      $nav.find('input#search-query').keyup(function()
      {
        $.fn.leftnav.psearch();
      });

      $('input.prefill').prefill();

      $nav.find('form#search-form,a.logo').add($container.find('> div').not('#left-nav-dom')).mouseover(function()
      {
        $nav.find('ul.trail > li:last > a:first').trigger('mouseover');
      });

      $container.before('<img src="/images/logo-lg-watermark.png" class="watermark" alt="LG" />');

      $container.before('<div class="shutter"><span class="close"></span></div>');
      $('body').append('<span class="shutter-buffer"></span>');

      $('.shutter span.close,.shutter-buffer').click(function()
      {
        $nav.trigger('leftnav:toggle');
      });

      $('.shutter span.close').hover(
        function()
        {
          $(this).css({backgroundColor:'#f9f9f9'});
        },
        function()
        {
          $(this).css({backgroundColor:''});
        }
      );

      if($.browser.msie && ($.browser.version < 7))
      {
        $('.shutter').addClass('shutter-ie6');
        $('.shutter-buffer').addClass('shutter-buffer-ie6');
      }
      else
      {
        $('.shutter').addClass('shutter-all');
        $('.shutter-buffer').addClass('shutter-buffer-all');
      }

      pruneAboutLGNav();

      var _trail = '';

      $menu.find('> a:first,> form:first').remove().end().find('ul.breadcrumbs > li').each(function(i)
      {
        var _li = $(this);
        _trail += '<li breadcrumbid="'+parseInt(i+1)+'"><a href="'+_li.find('> a').attr('href')+'"></a></li>';
        _li.attr('breadcrumbid',parseInt(i+1)).css({float:'left',width:204}).find('ul:first').css({border:'none'});
      });

      $menu.css({display:'block'}).prepend('<ul class="trail">'+_trail+'</ul>');
      $menu.find('ul.breadcrumbs').css({width:(224*$menu.find('ul.breadcrumbs > li').length)});
      $menu.find('ul.trail li:last > a').css({backgroundImage:'url(/images/icon-left-nav-active.gif)'});

      $menu.find('ul.trail a').mouseover(function()
      {
        var _a = $(this);
        var _left = parseInt((_a.parent('li').attr('breadcrumbid')-1));

        $menu.find('ul.breadcrumbs').stop().animate({left:(_left != 0) ? -(_left*204) : 0},opts.slideTiming,opts.slideEasing);
        _a.css({backgroundPosition:'0px 15px'}).parent('li').siblings('li').children('a').css({backgroundPosition:'0px 0px'});
      });

      $menu.find('a[target=_blank]').each(function()
      {
        if($(this).parents('.carrier').length == 0)
        {
          $(this).hover(
            function()
            {
              $(this).addClass('linkoff');
            },
            function()
            {
              $(this).removeClass('linkoff');
            }
          );
        }
      });

      $menu.find('ul.trail a:last').trigger('mouseover');

      $nav.find('div.product').each(function()
      {
        var _div = $(this);

        _div.find('ul.color').after('<div class="clear"></div>');

        _div.find('ul.color li').each(function()
        {
          if($(this).children('a').length == 0)
          {
            $(this).attr('title',$(this).text()).css({border:"2px solid #b01351",width:12,height:12}).text('');
          }
          else
          {
            $(this).attr('title',$(this).children('a').text()).click(function() {$(this).children('a').click();}).children('a').text('');
          }
        });

        _div.find('ul.depth').css({border:'none'}).find('li').each(function()
        {
          if($(this).children('a').length == 0)
          {
            $(this).css({backgroundImage:'url(/images/icon-radio-on.jpg)',cursor:'default'})
          }
          else
          {
            $(this).click(function() {$(this).children('a').click();});
          }
        });

        _div.find('select').change(function()
        {
          if($(this).val() != 'null')
          {
            document.location = $(this).val();
          }
        });
      });

      $nav.find('ul.breadcrumbs > li > ul > li[isflyout!=true]').attr('isflyout','true').each(function()
      {
        var _li = $(this);

        if(_li.children('ul').length > 0)
        {
          _li.children('ul').append('<span class="bottom"></span>');

          _breadcrumbid = parseInt(_li.parent('ul').parent('li').attr('breadcrumbid'));
          _li.css({background:'url(/images/bg-submenu-item.gif) 0px 0px no-repeat'});

          _li.hover(
            function()
            {
              _li.css({backgroundPosition:'0 -23px'}).children('ul').show();

              _li.children('ul').find('> li > a').each(function()
              {
                ($(this).height() > 23) ? $(this).css({lineHeight:'14px',paddingBottom:6,paddingTop:3}) : null;
              });

              _li.children('ul').css({height:_li.children('ul').height()});

              $('div.wrapper').css({overflow:'visible'});

              if($.browser.msie && $.browser.version < 7)
              {
                $('select').css({visibility:'hidden'});
              }

              _breadcrumbid = parseInt(_li.parent('ul').parent('li').attr('breadcrumbid'));
              $('ul.breadcrumbs > li:gt('+(_breadcrumbid-1)+')').css({display:'none'});
            },
            function()
            {
              _li.css({backgroundPosition:'0 0'}).children('ul').hide();
              $('div.wrapper').css({overflow:'hidden'});

              if($.browser.msie && $.browser.version < 7)
              {
                $('select').css({visibility:'visible'});
              }

              _breadcrumbid = parseInt(_li.parent('ul').parent('li').attr('breadcrumbid'));
              $('ul.breadcrumbs > li:gt('+(_breadcrumbid-1)+')').css({display:'block'});
            }
          );
        }
      });

      $menu.css({display:'block'});

      $nav.bind('leftnav:toggle', function()
      {
        if($nav.css("left") == "0px")
        {
          $nav.add('div.shutter').stop().animate({left:-205},opts.toggleTiming,opts.toggleEasing,function()
          {
            $('div.shutter span.close').css({backgroundPosition:"-11px center"});
            $('.shutter-buffer').css({width:20});
          });
        }
        else
        {
          $nav.add('div.shutter').stop().animate({left:0},opts.toggleTiming,opts.toggleEasing,function()
          {
            $('div.shutter span.close').css({backgroundPosition:"0px center"});
            $('.shutter-buffer').css({width:0});
          });
        }
      });

      $nav.bind('leftnav:mouseapproach', function(event,pageX,pageY)
      {
        if(pageX < 40)
        {
          if($nav.css("left") == "-205px")
          {
            $nav.add('div.shutter').stop().animate({left:-185},opts.toggleTiming,opts.toggleEasing);
          }
        }
        else
        {
          if($nav.css("left") == "-185px")
          {
            $nav.add('div.shutter').stop().animate({left:-205},opts.toggleTiming,opts.toggleEasing);
          }
        }
      });
    });
  };

  function pruneAboutLGNav()
  {
    var _url = document.location.pathname;

    if(_url.indexOf('/us/about-lg/') != -1)
    {
      _url = _url.replace('.html','').replace('/us/about-lg/','');
      var _frags = _url.split('/');
      var _search = new Array();

      _search[2] = "|||";
      _search[3] = "|||";

      (_frags[0] != 'about-lg') ? _search[2] = _frags[0] : _search[2] = "|||";
      (_frags.length > 1) ? _search[3] = _frags[1] : _search[3] = "|||";

      $('ul.breadcrumbs > li:eq(2) > a').each(function()
      {
        if(this.href.indexOf(_search[2]) == -1)
        {
          $(this).addClass('prune');
        }
      });

      $('ul.breadcrumbs > li:eq(3) > a').each(function()
      {
        if(this.href.indexOf(_search[3]) == -1)
        {
          $(this).addClass('prune');
        }
      });

      $('.prune').next('ul').remove();
      $('.prune').remove();

      $('ul.breadcrumbs > li').each(function()
      {
        if($(this).children().length == 0)
        {
          $(this).remove();
        }
      });
    }
  };

  $.fn.leftnav.search = function(event,form)
  {
    event.preventDefault();

    //start modified by endeca
    PageManager.load(form.action+"?N="+$(form).find('#Nval').val()+"&Ntx="+$(form).find('#search-mode').val()+"&Ntk="+$(form).find('#search-prop').val()+"&Ntt="+escape($(form).find('#search-query').val())+"&RecordType=Product");
    //end modified by endeca

    return false;
  };

  $.fn.leftnav.psearch = function()
  {
    PageManager.psearch();
  };

  $.fn.leftnav.defaults =
  {
    toggleTiming: 500,
    toggleEasing: "easeOutQuint",
    slideTiming: 500,
    slideEasing: "easeInSine"
  };

})(jQuery);

