Abl.UI.BaseMenu=function(b,a){return(function(d,c){var e={};e.$menu=((d instanceof jQuery)?d:$(d)).eq(0);e.$rootGroup=e.$menu.children("ul.rootGroup");e.$parentItems=e.$menu.find("li.menuItem.hasChildren");e.params=$.extend(true,{},Abl.UI.BaseMenu.defaults,c);e.mapLocation=function(){var j=new Abl.Uri(),i=new Abl.Uri(),h=j.getPath(),g,f;$("a.link",e.$menu).each(function(){g=$(this);f=g.attr("href");if((f)&&(f.length>0)){i.setUri(f);if((i.getFolder())&&(i.compare(j,"folder",true))){if((j.getFolder().length>1)&&(i.getFolder().length>1)){g.parent("li.menuItem").andSelf().addClass("folderMatch");}if(((h.substr(h.length-1,1)==="/")&&(i.getFile().toLowerCase()==="default.aspx")&&(i.compare(j,"folder",false)))||(i.compare(j,"path"))){g.parent("li.menuItem").andSelf().addClass("exactMatch");g.parent("li.menuItem").parents("li.menuItem").each(function(){$(this).children("a.link").andSelf().addClass("targetTrail");});}}}});};e.wireEvents=function(){throw"Do not inherit from Abl.UI.BaseMenu.wireEvents()!";};e.init=function(){if(e.params.mapLocation){e.mapLocation();}e.wireEvents();};e.dispose=function(){e.$parentItems=null;e.$rootGroup=null;e.$menu=null;};return e;}(b,a));};Abl.UI.BaseMenu.defaults={mapLocation:true};Abl.UI.Menu=function(b,a){return(function(g,d){var f={},h=Abl.UI.BaseMenu(g,$.extend(true,{},Abl.UI.Menu.defaults,d));function e(i){if(i.timerId){clearTimeout(i.timerId);i.timerId=null;}}function c(l,n){var k=l.children("ul.subGroup"),j=0,m=0,o=0,i=0;l.css({display:"block",position:"absolute",left:"-5000px",top:"-5000px",width:"1000px",height:"1000px",margin:"0",padding:"0"}).show();k.css({display:"block",position:"absolute",left:"0",top:"0",width:"auto",height:"auto"}).show();j=k.width();m=k.height();o=k.outerWidth(true);i=k.outerHeight(true);k.children("li.menuItem").each(function(){var s=$(this),p=s.width(),q=s.outerWidth(true),r=j-q;s.width(p+r);});k.css({display:(n.hide)?"none":"block"});l.css({display:(n.hide)?"none":"block",width:o+"px",height:i+"px",left:n.x+"px",top:n.y+"px"}).data("ablMenu",{hasLayout:true});}h.wireEvents=function(){h.$menu.find("a.link").hover(function(){$(this).parent().addClass("hover");},function(){$(this).parent().removeClass("hover");});if(!h.params.disableAction){h.$parentItems.mouseenter(function(){var k=$(this),j=k.children("a.link"),m=k.children("div.subGroupCanvass"),i=m.data("ablMenu"),l=m.children("ul.subGroup");e(this);this.timerId=setTimeout(function(){if(l.is(":visible")){return;}if((!i)||(!i.hasLayout)){if((h.$menu.is(".horizontal"))&&(l.is(".level1"))){c(m,{x:h.params.xOffset,y:(k.outerHeight()-h.params.yOffset),hide:true});}else{c(m,{x:(k.outerWidth()-h.params.xOffset),y:h.params.yOffset,hide:true});}}k.addClass("expanded").css({"z-index":"1"});j.addClass("expanded");m.css({"z-index":"2"}).show();if(typeof jQuery.fn.bgiframe==="function"){m.bgiframe();}l.css({"z-index":"3"}).show(h.params.expandSpeed);},h.params.expandDelay);});h.$parentItems.mouseleave(function(){var j=$(this),i=j.children("a.link"),l=j.children("div.subGroupCanvass"),k=l.children("ul.subGroup");e(this);this.timerId=setTimeout(function(){if(!k.is(":visible")){return;}k.hide(h.params.collapseSpeed+1,function(){$(this).css({"z-index":"0"});l.hide().css({"z-index":"0"}).prev("iframe").remove();i.removeClass("expanded");j.removeClass("expanded").css({"z-index":"0"});});},h.params.collapseDelay);});}};f.dispose=h.dispose;h.dispose=function(){$("a.link",h.$menu).unbind();$("div.subGroupCanvass",h.$menu).removeData("ablMenu");h.$parentItems.unbind().each(function(){e(this);});f.dispose();};return h;}(b,a));};Abl.UI.Menu.defaults={expandSpeed:200,collapseSpeed:300,expandDelay:150,collapseDelay:250,xOffset:5,yOffset:3};Abl.UI.Clamshell=function(b,a){return(function(f,d){var e={},g=Abl.UI.BaseMenu(f,$.extend(true,{},Abl.UI.Clamshell.defaults,d));g.collapseAll=function(){g.$menu.find("ul.subGroup.expanded").removeClass("expanded").parent("li.menuItem").removeClass("expanded").end().animate({height:0},g.params.collapseSpeed,function(){$(this).hide();});};g.wireEvents=function(){g.$parentItems.click(function(i){var j=$(this),h=$(i.target),k=j.children("ul.subGroup");if(h.parents("li.menuItem:first").hasClass("hasChildren")){i.preventDefault();if(k.is(":visible")){j.removeClass("expanded").find("ul.subGroup").removeClass("expanded").animate({height:0},g.params.expandSpeed,function(){$(this).hide();});}else{if(g.params.autoClose){g.collapseAll();}j.addClass("expanded");k.addClass("expanded").height(k.data("dims").height).slideDown(g.params.expandSpeed);}}});g.$menu.find("a.link").hover(function(){$(this).parent().addClass("hover");},function(){$(this).parent().removeClass("hover");});};function c(){var h;g.$parentItems.find("ul.subGroup").each(function(){h=$(this);h.data("dims",{height:h.height()}).height(0);});}e.init=g.init;g.init=function(){c();e.init();};e.dispose=g.dispose;g.dispose=function(){$("a.link",g.$menu).unbind();g.$parentItems.unbind().find("ul.subGroup").removeData();e.dispose();};return g;}(b,a));};Abl.UI.Clamshell.defaults={expandSpeed:600,collapseSpeed:600,autoClose:true};Abl.UI.MenuManager=function(b,a){return(function(e,d){var f={},c=[];if((arguments.length===1)&&(!(arguments[0] instanceof jQuery))){d=arguments[0];e=null;}f.params=$.extend(true,{},Abl.UI.MenuManager.defaults,d);f.add=function(i,g){var h=(i instanceof jQuery)?i:$(i);h.filter(f.params.menuIdentifier).each(function(){var j=$(this),k=null;if(j.is(f.params.clamshellClass)){k=Abl.UI.Clamshell(j,$.extend(true,{},f.params.clamshell,(g)?g.clamshell||g:null));}else{if(j.is(f.params.horizontalMenuClass)){k=Abl.UI.Menu(j,$.extend(true,{},f.params.horizontalMenu,(g)?g.horizontalMenu||g:null));}else{if(j.is(f.params.verticalMenuClass)){k=Abl.UI.Menu(j,$.extend(true,{},f.params.verticalMenu,(g)?g.verticalMenu||g:null));}else{throw"Unidentified menu type '"+j.attr("class")+"'!";}}}c.push(k);k.init();});};f.dispose=function(){var h,g;for(g=0;g<c.length;g++){c[g].dispose();}};if(e){f.add(e);}return f;}(b,a));};Abl.UI.MenuManager.defaults={menuIdentifier:"div.ablMenu",clamshellClass:"div.clamshell",verticalMenuClass:"div.vertical",horizontalMenuClass:"div.horizontal",clamshell:{},horizontalMenu:{disableAction:false},verticalMenu:{disableAction:false}};
