transmission/web/javascript/jquery/jquery.transmenu.min.js

1 line
5.2 KiB
JavaScript
Raw Normal View History

(function(b){var c={onClick:function(){b(this).find(">a").each(function(){if(this.href){window.location=this.href}})},arrow_char:"&#x25BA;",selected_char:"&#x2713;",subDelay:300,direction:"down",mainDelay:10};var a;b.fn.transMenu=function(s){var q=false;var j=2;a=b.extend({},c,s);var k=function(u,t){if(u.timer&&!u.isVisible){clearTimeout(u.timer)}else{if(u.timer){return}}if(u.isVisible){u.timer=setTimeout(function(){b(u).find("ul li").unbind("mouseover",r).unbind("mouseout",h).unbind("click",a.onClick);b(u).hide();u.isVisible=false;u.timer=null},t)}};var g=function(u,t){if(u.timer){clearTimeout(u.timer)}if(!u.isVisible){u.timer=setTimeout(function(){if(!b(u).parent().is(".hover")){return}b(u).find("ul li").mouseover(r).mouseout(h).click(a.onClick);if(!b(u).parent().is(".main")){b(u).css("left",b(u).parent().parent().width()-j)}if(a.direction=="up"){b(u).css("top",(b(u).height()*-1)+b(u).parent().parent().height())}u.isVisible=true;b(u).show();u.timer=null},t)}};var n=function(u){var t=(u.type=="mouseover"?u.fromElement:u.toElement)||u.relatedTarget;while(t&&t!=this){try{t=t.parentNode}catch(u){t=this}}if(t==this){return false}return true};var i=function(t){b(this).addClass("hover").siblings("li.hover").removeClass("hover");if(q){o(this,a.mainDelay)}};var r=function(t){if(!n(t)){return false}if(t.target!=this){if(!e(this,t.target)){return}}o(this,a.subDelay)};var o=function(t,u){var y=t.parentNode.firstChild;for(;y;y=y.nextSibling){if(y.nodeType==1&&y.nodeName.toUpperCase()=="LI"){var x=d(y,"DIV");if(x&&x.timer&&!x.isVisible){clearTimeout(x.timer);x.timer=null}}}var v=t.parentNode;for(;v;v=v.parentNode){if(v.nodeType==1&&v.nodeName.toUpperCase()=="DIV"){if(v.timer){clearTimeout(v.timer);v.timer=null;b(v.parentNode).addClass("hover")}}}b(t).addClass("hover");var w=b(t).children("div");w=w.length?w[0]:null;if(w&&w.isVisible){if(w.timer){clearTimeout(w.timer);w.timer=null}else{return}}b(t.parentNode.getElementsByTagName("DIV")).each(function(){if(this!=w&&this.isVisible){k(this,u);b(this.parentNode).removeClass("hover")}});if(w){g(w,u)}};var h=function(t){if(!n(t)){return false}if(t.target!=this){if(!e(this,t.target)){return}}var u=d(this,"DIV");if(!u){b(this).removeClass("hover")}else{if(!u.isVisible){b(this).removeClass("hover")}}};var l=function(v){var w=d(this,"DIV");var u=v.relatedTarget||v.toElement;var t;if(!q){b(this).removeClass("hover")}else{if(!w&&u){t=b(v.target).parents("UL.trans_menu");if(t.contains(u)){b(this).removeClass("hover")}}else{if(u){t=b(v.target).parents("UL.trans_menu");if(!w.isVisible&&(t.contains(u))){b(this).removeClass("hover")}}}}};var f=function(){var t=d(this,"DIV");if(t&&t.isVisible){p();b(this).addClass("hover")}else{o(this,a.mainDelay);q=true;b("ul.trans_menu li").addClass("active");b(document).bind("mousedown",m)}};var m=function(u){var t=false;b(u.target).parents("UL.trans_menu").find("div").each(function(){if(this.isVisible){t=true}});if(!t){p()}};var p=function(){b("ul.trans_menu div.outerbox").each(function(){if(this.timer){clearTimeout(this.timer);this.timer=null}if(this.isVisible){b(this).hide();this.isVisible=false}});b("ul.trans_menu li").removeClass("hover");b("ul.trans_menu>li li").unbind("mouseover",r).unbind("mouseout",h).unbind("click",a.onClick);b(document).unbind("mousedown",m);q=false;b("ul.trans_menu li").removeClass("active")};var d=function(u,t){if(!u){return null}var v=u.firstChild;for(;v;v=v.nextSibling){if(v.nodeType==1&&v.nodeName.toUpperCase()==t){return v}}return null};var e=function(u,t){var v=u.firstChild;for(;v;v=v.nextSibling){if(v==t){return true}}return false};return this.each(function(){if(window.Node&&Node.prototype&&!Node.prototype.contains){Node.prototype.contains=function(w){return !!(this.compareDocumentPosition(w)&16)}}if(!b(this).is(".trans_menu")){b(this).addClass("trans_menu")}b("ul",this).shadowBox();b(this).bind("closemenu",function(){p()});var t=b(this).children("li");for(var u=0;u<t.length;u++){if(d(d(d(t[u],"DIV"),"UL"),"LI")){b(t[u]).click(f)}}b(t).hover(i,l).addClass("main").find(">div").addClass("inner");if(a.arrow_char){var v=b("<span cla