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=document.createElement("div");a.className="fg-menu-container ui-widget ui-widget-content ui-corner-all";if(c.node){c.node.parentNode.removeChild(c.node);a.appendChild(c.node)}d[0].parentNode.appendChild(a);a=$(a);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:"ui-state-loading",linkHover:"ui-state-hover",linkHoverSecondary:"li-hover",crossSpeed:200,crumbDefaultText:"Choose an option:",backLink:true,backLinkText:"Back",flyOut:false,flyOutOnState:"ui-state-default",nextMenuLink:"ui-icon-triangle-1-e",topLinkText:"All",nextCrumbLink:"ui-icon-carat-1-e"},c);this.options=c;var b=function(){$.each(allUIMenus,function(g){if(allUIMenus[g].menuOpen){allUIMenus[g].kill()}})};var f=function(i){var g=$(i.target).parents("div.fg-menu-container");var h=false;if(g.length==0||$(i.target).hasClass("fg-menu-container")){b()}};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-ipod")){e.resetDrilldownMenu()}if(a.is(".fg-menu-flyout")){e.resetFlyoutMenu()}a.parent().hide();e.menuOpen=false;$(document).unbind("click",f);$(document).unbind("keydown");$(this.positionHelper).hide()};this.showLoading=function(){d.addClass(c.loadingState)};this.showMenu=function(){if(this.options.onOpen){this.options.onOpen(a)}b();if(!e.menuExists){e.create()}d.addClass("fg-menu-open").addClass(c.callerOnState);a.parent().show();a.hide().slideDown(c.showSpeed).find(".fg-menu:eq(0)");e.menuOpen=true;d.removeClass(c.loadingState);$(document).click(f);e.setPosition(a,d,c);$(document).keydown(function(j){var k;if(j.which!=""){k=j.which}else{if(j.charCode!=""){k=j.charCode}else{if(j.keyCode!=""){k=j.keyCode}}}var i=($(j.target).parents("div").is(".fg-menu-flyout"))?"flyout":"ipod";switch(k){case 37:if(i=="flyout"){$(j.target).trigger("mouseout");if($("."+c.flyOutOnState).size()>0){$("."+c.flyOutOnState).trigger("mouseover")}}if(i=="ipod"){$(j.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($(j.target).is("."+c.linkHover)){var h=$(j.target).parent().prev().find("a:eq(0)");if(h.size()>0){$(j.target).trigger("mouseout");h.trigger("mouseover")}}else{a.find("a:eq(0)").trigger("mouseover")}return false;break;case 39:if($(j.target).is(".fg-menu-indicator")){if(i=="flyout"){$(j.target).next().find("a:eq(0)").trigger("mouseover")}else{if(i=="ipod"){$(j.target).trigger("click");setTimeout(function(){$(j.target).next().find("a:eq(0)").trigger("mouseover")},c.crossSpeed)}}}return false;break;case 40:if($(j.target).is("."+c.linkHover)){var g=$(j.target).parent().next().find("a:eq(0)");if(g.size()>0){$(j.target).trigger("mouseout");g.trigger("mouseover")}}else{a.find("a:eq(0)").trigger("mouseover")}return false;break;case 27:b();break;case 13:if($(j.target).is(".fg-menu-indicator")&&i=="ipod"){$(j.target).trigger("click");setTimeout(function(){$(j.target).next().find("a:eq(0)").trigger("mouseover")},c.crossSpeed)}break}})};this.create=function(){d[0]._ddbContainer=a[0];a.css({width:c.width}).find("ul:first").not(".fg-menu-breadcrumb").addClass("fg-menu");a.find("ul, li a").addClass("ui-corner-all");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 g=a.find(".fg-menu li a");g.hover(function(){var h=$(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.menuExists=true};this.chooseItem=function(g){e.kill();$("#menuSelection").text($(g).text())}}Menu.prototype.flyout=function(a,b){var c=this;this.resetFlyoutMenu=function(){var d=a.find("ul ul");d.removeClass("ui-widget-content").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-icon '+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-content").show(b.showSpeed).attr("aria-expanded","true")},300)},function(){clearTimeout(g);var h=$(this).next();d=setTimeout(function(){h.removeClass("ui-widget-content").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-all 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-default ui-corner-all":"";var g=(l.backLink)?'<span class="ui-icon ui-icon-triangle-1-w"></span>':"";var f=$('<li class="'+c+'"><a href="#" class="'+k+'">'+g+i+"</a></li>");a.addClass("fg-menu-ipod");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-content ui-helper-clearfix").css({width:a.width()}).find("ul").css({width:a.width(),left:a.width()}).addClass("ui-widget-content").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-icon '+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-icon ui-icon-triangle-1-w"></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-icon '+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=null;if(this.positionHelper){c=this.positionHelper;c.css({position:"absolute",left:g.refX,top:g.refY,width:g.refW,height:g.refH})}else{c=document.createElement("div");c.className="positionHelper";a[0].parentNode.appendChild(c);c=$(c);c.css({position:"absolute",left:g.refX,top:g.refY,width:g.refW,height:g.refH});c.append(a);this.positionHelper=c}c.show();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};