var allUIMenus=[];$.fn.menu=function(c){var b=this;var c=c;var a=new Menu(b,c);allUIMenus.push(a);$(this).mousedown(function(){if(!a.menuOpen){a.showLoading()}}).click(function(){if(a.menuOpen==false){a.showMenu()}else{a.kill()}return false})};function Menu(d,c){var e=this;var d=$(d);var a=$('<div class="fg-menu-container ui-widget1 ui-widget-content1 ui-corner-all1">'+c.content+"</div>");this.menuOpen=false;this.menuExists=false;var c=jQuery.extend({content:null,width:180,maxHeight:180,positionOpts:{posX:"left",posY:"bottom",offsetX:0,offsetY:0,directionH:"right",directionV:"down",detectH:true,detectV:true,linkToFront:false},showSpeed:200,callerOnState:"ui-state-active",loadingState:"",linkHover:"ui-state-hover",linkHoverSecondary:"li-hover",crossSpeed:200,crumbDefaultText:"Choose an option:",backLink:true,backLinkText:"Back",flyOut:false,flyOutOnState:"ui-state-default1",nextMenuLink:"ui-icon-triangle-1-e",topLinkText:"All",nextCrumbLink:"ui-icon-carat-1-e"},c);var b=function(){$.each(allUIMenus,function(f){if(allUIMenus[f].menuOpen){allUIMenus[f].kill()}})};this.kill=function(){d.removeClass(c.loadingState).removeClass("fg-menu-open").removeClass(c.callerOnState);a.find("li").removeClass(c.linkHoverSecondary).find("a").removeClass(c.linkHover);if(c.flyOutOnState){a.find("li a").removeClass(c.flyOutOnState)}if(c.callerOnState){d.removeClass(c.callerOnState)}if(a.is(".fg-menu-ipod1")){e.resetDrilldownMenu()}if(a.is(".fg-menu-flyout")){e.resetFlyoutMenu()}a.parent().hide();e.menuOpen=false;$(document).unbind("click",b);$(document).unbind("keydown")};this.showLoading=function(){d.addClass(c.loadingState)};this.showMenu=function(){b();if(!e.menuExists){e.create()}d.addClass("fg-menu-open").addClass(c.callerOnState);a.parent().show().click(function(){e.kill();return false});a.hide().slideDown(c.showSpeed).find(".fg-menu:eq(0)");e.menuOpen=true;d.removeClass(c.loadingState);$(document).click(b);$(document).keydown(function(i){var j;if(i.which!=""){j=i.which}else{if(i.charCode!=""){j=i.charCode}else{if(i.keyCode!=""){j=i.keyCode}}}var h=($(i.target).parents("div").is(".fg-menu-flyout"))?"flyout":"ipod";switch(j){case 37:if(h=="flyout"){$(i.target).trigger("mouseout");if($("."+c.flyOutOnState).size()>0){$("."+c.flyOutOnState).trigger("mouseover")}}if(h=="ipod"){$(i.target).trigger("mouseout");if($(".fg-menu-footer").find("a").size()>0){$(".fg-menu-footer").find("a").trigger("click")}if($(".fg-menu-header").find("a").size()>0){$(".fg-menu-current-crumb").prev().find("a").trigger("click")}if($(".fg-menu-current").prev().is(".fg-menu-indicator")){$(".fg-menu-current").prev().trigger("mouseover")}}return false;break;case 38:if($(i.target).is("."+c.linkHover)){var g=$(i.target).parent().prev().find("a:eq(0)");if(g.size()>0){$(i.target).trigger("mouseout");g.trigger("mouseover")}}else{a.find("a:eq(0)").trigger("mouseover")}return false;break;case 39:if($(i.target).is(".fg-menu-indicator")){if(h=="flyout"){$(i.target).next().find("a:eq(0)").trigger("mouseover")}else{if(h=="ipod"){$(i.target).trigger("click");setTimeout(function(){$(i.target).next().find("a:eq(0)").trigger("mouseover")},c.crossSpeed)}}}return false;break;case 40:if($(i.target).is("."+c.linkHover)){var f=$(i.target).parent().next().find("a:eq(0)");if(f.size()>0){$(i.target).trigger("mouseout");f.trigger("mouseover")}}else{a.find("a:eq(0)").trigger("mouseover")}return false;break;case 27:b();break;case 13:if($(i.target).is(".fg-menu-indicator")&&h=="ipod"){$(i.target).trigger("click");setTimeout(function(){$(i.target).next().find("a:eq(0)").trigger("mouseover")},c.crossSpeed)}break}})};this.create=function(){a.css({width:c.width}).appendTo("body").find("ul:first").not(".fg-menu-breadcrumb").addClass("fg-menu");a.find("ul, li a").addClass("ui-corner-all1");a.find("ul").attr("role","menu").eq(0).attr("aria-activedescendant","active-menuitem").attr("aria-labelledby",d.attr("id"));a.find("li").attr("role","menuitem");a.find("li:has(ul)").attr("aria-haspopup","true").find("ul").attr("aria-expanded","false");a.find("a").attr("tabindex","-1");if(a.find("ul").size()>1){if(c.flyOut){e.flyout(a,c)}else{e.drilldown(a,c)}}else{a.find("a").click(function(){e.chooseItem(this);return false})}if(c.linkHover){var f=a.find(".fg-menu li a");f.hover(function(){var g=$(this);$("."+c.linkHover).removeClass(c.linkHover).blur().parent().removeAttr("id");$(this).addClass(c.linkHover).focus().parent().attr("id","active-menuitem")},function(){$(this).removeClass(c.linkHover).blur().parent().removeAttr("id")})}if(c.linkHoverSecondary){a.find(".fg-menu li").hover(function(){$(this).siblings("li").removeClass(c.linkHoverSecondary);if(c.flyOutOnState){$(this).siblings("li").find("a").removeClass(c.flyOutOnState)}$(this).addClass(c.linkHoverSecondary)},function(){$(this).removeClass(c.linkHoverSecondary)})}e.setPosition(a,d,c);e.menuExists=true};this.chooseItem=function(f){e.kill();$("#menuSelection").text($(f).text())}}Menu.prototype.flyout=function(a,b){var c=this;this.resetFlyoutMenu=function(){var d=a.find("ul ul");d.removeClass("ui-widget-content1").hide()};a.addClass("fg-menu-flyout").find("li:has(ul)").each(function(){var e=a.width();var g,d;var f=$(this).find("ul");f.css({left:e,width:e}).hide();$(this).find("a:eq(0)").addClass("fg-menu-indicator").html("<span>"+$(this).find("a:eq(0)").text()+'</span><span class="ui-icon1 '+b.nextMenuLink+'"></span>').hover(function(){clearTimeout(d);var h=$(this).next();if(!fitVertical(h,$(this).offset().top)){h.css({top:"auto",bottom:0})}if(!fitHorizontal(h,$(this).offset().left+100)){h.css({left:"auto",right:e,"z-index":999})}g=setTimeout(function(){h.addClass("ui-widget-content1").show(b.showSpeed).attr("aria-expanded","true")},300)},function(){clearTimeout(g);var h=$(this).next();d=setTimeout(function(){h.removeClass("ui-widget-content1").hide(b.showSpeed).attr("aria-expanded","false")},400)});$(this).find("ul a").hover(function(){clearTimeout(d);if($(this).parents("ul").prev().is("a.fg-menu-indicator")){$(this).parents("ul").prev().addClass(b.flyOutOnState)}},function(){d=setTimeout(function(){f.hide(b.showSpeed);a.find(b.flyOutOnState).removeClass(b.flyOutOnState)},500)})});a.find("a").click(function(){c.chooseItem(this);return false})};Menu.prototype.drilldown=function(a,l){var b=this;var d=a.find(".fg-menu");var h=$('<ul class="fg-menu-breadcrumb ui-widget-header ui-corner-all1 ui-helper-clearfix"></ul>');var m=$('<li class="fg-menu-breadcrumb-text">'+l.crumbDefaultText+"</li>");var i=(l.backLink)?l.backLinkText:l.topLinkText;var c=(l.backLink)?"fg-menu-prev-list":"fg-menu-all-lists";var k=(l.backLink)?"ui-state-default1 ui-corner-all1":"";var g=(l.backLink)?'<span class="ui-icon1 ui-icon1-triangle-1-w"></span>':"";var f=$('<li class="'+c+'"><a href="#" class="'+k+'">'+g+i+"</a></li>");a.addClass("fg-menu-ipod1");if(l.backLink){h.addClass("fg-menu-footer").appendTo(a).hide()}else{h.addClass("fg-menu-header").prependTo(a)}h.append(m);var j=function(n){if(n.height()>l.maxHeight){n.addClass("fg-menu-scroll")}n.css({height:l.maxHeight})};var e=function(n){n.removeClass("fg-menu-scroll").removeClass("fg-menu-current").height("auto")};this.resetDrilldownMenu=function(){$(".fg-menu-current").removeClass("fg-menu-current");d.animate({left:0},l.crossSpeed,function(){$(this).find("ul").each(function(){$(this).hide();e($(this))});d.addClass("fg-menu-current")});$(".fg-menu-all-lists").find("span").remove();h.empty().append(m);$(".fg-menu-footer").empty().hide();j(d)};d.addClass("fg-menu-content fg-menu-current ui-widget-content1 ui-helper-clearfix").css({width:a.width()}).find("ul").css({width:a.width(),left:a.width()}).addClass("ui-widget-content1").hide();j(d);d.find("a").each(function(){if($(this).next().is("ul")){$(this).addClass("fg-menu-indicator").each(function(){$(this).html("<span>"+$(this).text()+'</span><span class="ui-icon1 '+l.nextMenuLink+'"></span>')}).click(function(){var n=$(this).next();var s=$(this).parents("ul:eq(0)");var o=(s.is(".fg-menu-content"))?0:parseFloat(d.css("left"));var q=Math.round(o-parseFloat(a.width()));var u=$(".fg-menu-footer");e(s);j(n);d.animate({left:q},l.crossSpeed);n.show().addClass("fg-menu-current").attr("aria-expanded","true");var t=function(x){var v=x;var y=$(".fg-menu-current");var w=y.parents("ul:eq(0)");y.hide().attr("aria-expanded","false");e(y);j(w);w.addClass("fg-menu-current").attr("aria-expanded","true");if(w.hasClass("fg-menu-content")){v.remove();u.hide()}};if(l.backLink){if(u.find("a").size()==0){u.show();$('<a href="#"><span class="ui-icon1"></span> <span>Back</span></a>').appendTo(u).click(function(){var w=$(this);var v=parseFloat(d.css("left"))+a.width();d.animate({left:v},l.crossSpeed,function(){t(w)});return false})}}else{if(h.find("li").size()==1){h.empty().append(f);f.find("a").click(function(){b.resetDrilldownMenu();return false})}$(".fg-menu-current-crumb").removeClass("fg-menu-current-crumb");var r=$(this).find("span:eq(0)").text();var p=$('<li class="fg-menu-current-crumb"><a href="javascript://" class="fg-menu-crumb">'+r+"</a></li>");p.appendTo(h).find("a").click(function(){if($(this).parent().is(".fg-menu-current-crumb")){b.chooseItem(this)}else{var v=-($(".fg-menu-current").parents("ul").size()-1)*180;d.animate({left:v},l.crossSpeed,function(){t()});$(this).parent().addClass("fg-menu-current-crumb").find("span").remove();$(this).parent().nextAll().remove()}return false});p.prev().append(' <span class="ui-icon1 '+l.nextCrumbLink+'"></span>')}return false})}else{$(this).click(function(){b.chooseItem(this);return false})}})};Menu.prototype.setPosition=function(d,b,i){var a=d;var f=b;var g={refX:f.offset().left,refY:f.offset().top,refW:f.getTotalWidth(),refH:f.getTotalHeight()};var i=i;var h,e;var c=$('<div class="positionHelper"></div>');c.css({position:"absolute",left:g.refX,top:g.refY,width:g.refW,height:g.refH});a.wrap(c);switch(i.positionOpts.posX){case"left":h=0;break;case"center":h=g.refW/2;break;case"right":h=g.refW;break}switch(i.positionOpts.posY){case"top":e=0;break;case"center":e=g.refH/2;break;case"bottom":e=g.refH;break}h+=i.positionOpts.offsetX;e+=i.positionOpts.offsetY;if(i.positionOpts.directionV=="up"){a.css({top:"auto",bottom:e});if(i.positionOpts.detectV&&!fitVertical(a)){a.css({bottom:"auto",top:e})}}else{a.css({bottom:"auto",top:e});if(i.positionOpts.detectV&&!fitVertical(a)){a.css({top:"auto",bottom:e})}}if(i.positionOpts.directionH=="left"){a.css({left:"auto",right:h});if(i.positionOpts.detectH&&!fitHorizontal(a)){a.css({right:"auto",left:h})}}else{a.css({right:"auto",left:h});if(i.positionOpts.detectH&&!fitHorizontal(a)){a.css({left:"auto",right:h})}}if(i.positionOpts.linkToFront){f.clone().addClass("linkClone").css({position:"absolute",top:0,right:"auto",bottom:"auto",left:0,width:f.width(),height:f.height()}).insertAfter(a)}};function sortBigToSmall(d,c){return c-d}jQuery.fn.getTotalWidth=function(){return $(this).width()+parseInt($(this).css("paddingRight"))+parseInt($(this).css("paddingLeft"))+parseInt($(this).css("borderRightWidth"))+parseInt($(this).css("borderLeftWidth"))};jQuery.fn.getTotalHeight=function(){return $(this).height()+parseInt($(this).css("paddingTop"))+parseInt($(this).css("paddingBottom"))+parseInt($(this).css("borderTopWidth"))+parseInt($(this).css("borderBottomWidth"))};function getScrollTop(){return self.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop}function getScrollLeft(){return self.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft}function getWindowHeight(){var a=document.documentElement;return self.innerHeight||(a&&a.clientHeight)||document.body.clientHeight}function getWindowWidth(){var a=document.documentElement;return self.innerWidth||(a&&a.clientWidth)||document.body.clientWidth}function fitHorizontal(b,c){var a=parseInt(c)||$(b).offset().left;return(a+$(b).width()<=getWindowWidth()+getScrollLeft()&&a-getScrollLeft()>=0)}function fitVertical(c,b){var a=parseInt(b)||$(c).offset().top;return(a+$(c).height()<=getWindowHeight()+getScrollTop()&&a-getScrollTop()>=0)}Number.prototype.pxToEm=String.prototype.pxToEm=function(b){b=jQuery.extend({scope:"body",reverse:false},b);var e=(this=="")?0:parseFloat(this);var d;var c=function(){var g=document.documentElement;return self.innerWidth||(g&&g.clientWidth)||document.body.clientWidth};if(b.scope=="body"&&$.browser.msie&&(parseFloat($("body").css("font-size"))/c()).toFixed(1)>0){var f=function(){return(parseFloat($("body").css("font-size"))/c()).toFixed(3)*16};d=f()}else{d=parseFloat(jQuery(b.scope).css("font-size"))}var a=(b.reverse==true)?(e*d).toFixed(2)+"px":(e/d).toFixed(2)+"em";return a};