(function(a){a.fn.toParent=function(c,e){var f=a(this),d=0,b=200;while(d<b){if(a(f).is(c)){return d}if(a(f).length==0){return null}if(e){while(true){f=a(f).parent();if(a(f).is(e)||a(f).is(c)||!a(f).length){break}}}else{f=a(f).parent()}d++}return null};a.fn.dropdownify=function(b){b=a.extend({delay:100,items:"li",menus:"ul",onhide:null,onshow:null,position:{1:"bottom","default":"right"},timeout:750,zIndex:200},b||{});b.selector=this.selector;a(this).addClass("dropdownify-root");a(this).find(b.items).each(function(d,e){if(a(e).find(b.menus).length){a(e).addClass("submenu dropdownify-submenu")}});var c=function(f){var h=a(f).toParent(".dropdownify-root",b.menus);if(typeof b.position=="object"){if(h in b.position){var g=b.position[h]}else{var g=b.position["default"]}}else{var g=b.position}if(typeof g=="object"){var d=("v" in g)?g.v:0;var e=("h" in g)?g.h:0;g=("p" in g)?g.p:"bottom"}else{var d=0;var e=0}return(function(i){switch(i){case"bottom":return{top:(a(f).height()+d)+"px",left:(0+e)+"px"};break;case"top":return{bottom:(a(f).height()+d)+"px",left:(0+e)+"px"};break;case"left":return{top:(0+d)+"px",right:(a(f).width()+e)+"px"};break;case"right":return{top:(0+d)+"px",left:(a(f).width()+e)+"px"};break}})(g)};a(this).find(b.items).each(function(d,e){a(e).css({position:"relative",overflow:"visible"}).children(b.menus).css({display:"none",position:"absolute"});a(e).data("dropdownify",b);a(e).mouseenter(function(){var g=a(".dropdownify-root").find(b.menus);for(var f=a(this).toParent(".dropdownify-root",b.menus)-1;f>0;f--){g=g.find(b.menus)}g.css({display:"none",visibility:"hidden"});window.clearTimeout(a(this).data("dropdownify").timeoutClose);a(this).data("dropdownify").timeoutOpen=window.setTimeout(function(){var h=this;return function(){return function(){a(this).children(a(this).data("dropdownify").menus).addClass("dropdownify-current").css({"z-index":(b.zIndex+a(this).toParent(".dropdownify-root",b.menus)),display:"block",visibility:"visible",width:a(this).width()}).css(c(this));if(b.onshow){try{b.onshow.apply(this)}catch(i){}}}.apply(h)}}.apply(this),b.delay)});a(e).mouseleave(function(){window.clearTimeout(a(this).data("dropdownify").timeoutOpen);a(this).data("dropdownify").timeoutClose=window.setTimeout(function(){var f=this;return function(){return function(){a(this).children(a(this).data("dropdownify").menus).css({visibility:"hidden",display:"none"});if(b.onhide){try{b.onhide.apply(this)}catch(g){}}}.apply(f)}}.apply(this),a(this).data("dropdownify").timeout)})});return this}})(jQuery);
