/* * Droppy 0.1.2 * (c) 2008 Jason Frame (jason@onehackoranother.com) */(function($) {    $.fn.droppy = function(options) {    options = $.extend({speed: 250, className: 'droppy', trigger: 'hover'}, options || {});    this.each(function() {      var root = this, zIndex = 1000;      $(root).addClass(options.className);			$(root).find('li:has(> ul) > a').addClass('has-subnav');      function getSubnav(ele) {        if (ele.nodeName.toLowerCase() == 'li') {          var subnav = $('> ul', ele);          return subnav.length ? subnav[0] : null;        } else {          return ele;        }      };      function getActuator(ele) {        if (ele.nodeName.toLowerCase() == 'ul') {          return $(ele).parents('li')[0];        } else {          return ele;        }      };      function hide() {        var subnav = getSubnav(this);        if (!subnav) return;        $.data(subnav, 'cancelHide', false);        setTimeout(function() {          if (!$.data(subnav, 'cancelHide')) {            $(subnav).slideUp(options.speed);          }        },50);      };      function show() {        var subnav = getSubnav(this);        if (!subnav) return;        $.data(subnav, 'cancelHide', true);        $(subnav).css({zIndex: zIndex++}).slideDown(options.speed);        if (this.nodeName.toLowerCase() == 'ul') {          var li = getActuator(this);          $(li).addClass('hover');          $('> a', li).addClass('hover');        }        return false;      };            if (options.trigger == 'click') {        $('> li', this).click(show);        $('> li ul, > li li', this).hover(show, function() {});        $('ul, li', this).hover(function() {}, hide);      } else {        if (typeof $.fn.hoverIntent == 'function') {          $('ul, li', this).hoverIntent($.extend({            sensitivity: 2, interval: 50, timeout: 100          }, options.hoverIntent || {}, {over: show, out: hide}));        } else {          $('ul, li', this).hover(show, hide);        }      }            $('li', this).hover(        function() { $(this).addClass('hover'); $('> a', this).addClass('hover'); },        function() { $(this).removeClass('hover'); $('> a', this).removeClass('hover'); }      );    });  };})(jQuery);
