
var allUIMenus=[];jQuery.fn.dropdownmenu=function(options){var rnd=Math.floor(Math.random()*100001);var positionOpts=jQuery.extend({posX:'left',posY:'bottom',offsetX:0,offsetY:0,directionH:'left',directionV:'down',detectH:false,detectV:false,linkToFront:false},options.positionOpts);var options=jQuery.extend({idShowSpan:'menuSelection'+rnd,idHiddenInput:'hiddenfield'+rnd,idButton:'dropdownbutton'+rnd,idList:'list'+rnd,cssClass:'',buttonText:'Choose',appendToButton:false,autoOpen:false,autoLineBreak:true,sortItems:true,killOnMenuClick:true,selectionCallback:null,multipleChoice:false,multiColumn:false,columnCount:1,columnWidthOffset:0,addMenuIndicator:true,changeBtnTextOnChoose:true,content:this,width:null,maxHeight:400,showSpeed:0,callerOnState:'ui-state-active',loadingState:'ui-state-loading',linkHover:'ui-state-hover',linkHoverSecondary:'li-hover',crossSpeed:0,crumbDefaultText:'Choose an option:',backLink:false,backLinkText:'Back',flyOut:true,flyOutOnState:'ui-state-default',nextMenuLink:'ui-icon-triangle-1-e',topLinkText:'All',nextCrumbLink:'ui-icon-carat-1-e'},options);options.positionOpts=positionOpts;var ddButton=jQuery("<button type='button' class='button ui-corner-all ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon' id='"+options.idButton+"'><span id='"+options.idShowSpan+"'>"+options.buttonText+"</span></button>");var options=options;var m=new Menu(ddButton,options);allUIMenus.push(m);ddButton.prepend("<input id='"+options.idHiddenInput+"' type='hidden' value='' />");ddButton.insertBefore(jQuery(this)).mousedown(function(){if(!m.menuOpen){m.showLoading();};}).click(function(){if(m.menuOpen==false){m.showMenu();}
else{m.kill();};return false;});ddButton.button({icons:{primary:"ui-icon-triangle-1-s"},text:true}).removeClass("ui-corner-all");if(options.width==null)
options.width=ddButton.width();if(options.autoOpen){m.showMenu();}
return m;};function Menu(caller,options){var menu=this;var caller=jQuery(caller);var container=jQuery(options.content);container.addClass('fg-menu-container ui-widget ui-widget-content ui-corner-all'+options.cssClass);this.menuOpen=false;this.menuExists=false;var killAllMenus=function(){jQuery.each(allUIMenus,function(i){if(allUIMenus[i].menuOpen){allUIMenus[i].kill();};});};this.kill=function(){caller.removeClass(options.loadingState).removeClass('fg-menu-open').removeClass(options.callerOnState);container.find('li').removeClass(options.linkHoverSecondary).find('a').removeClass(options.linkHover);if(options.flyOutOnState){container.find('li a').removeClass(options.flyOutOnState);};if(options.callerOnState){caller.removeClass(options.callerOnState);};if(container.is('.fg-menu-ipod')){menu.resetDrilldownMenu();};if(container.is('.fg-menu-flyout')){menu.resetFlyoutMenu();};container.parent().hide();menu.menuOpen=false;jQuery(document).unbind('click',killAllMenus);jQuery(document).unbind('keydown');};this.showLoading=function(){caller.addClass(options.loadingState);};this.showMenu=function(){killAllMenus();if(!menu.menuExists){menu.create()};caller.addClass('fg-menu-open').addClass(options.callerOnState);container.parent().show().click(function(){return false;});container.hide().slideDown(options.showSpeed).find('.fg-menu:eq(0)');menu.menuOpen=true;caller.removeClass(options.loadingState);jQuery(document).click(killAllMenus);jQuery(document).keydown(function(event){var e;if(event.which!=""){e=event.which;}
else if(event.charCode!=""){e=event.charCode;}
else if(event.keyCode!=""){e=event.keyCode;}
var menuType=(jQuery(event.target).parents('div').is('.fg-menu-flyout'))?'flyout':'ipod';switch(e){case 37:if(menuType=='flyout'){jQuery(event.target).trigger('mouseout');if(jQuery('.'+options.flyOutOnState).size()>0){jQuery('.'+options.flyOutOnState).trigger('mouseover');};};if(menuType=='ipod'){jQuery(event.target).trigger('mouseout');if(jQuery('.fg-menu-footer').find('a').size()>0){jQuery('.fg-menu-footer').find('a').trigger('click');};if(jQuery('.fg-menu-header').find('a').size()>0){jQuery('.fg-menu-current-crumb').prev().find('a').trigger('click');};if(jQuery('.fg-menu-current').prev().is('.fg-menu-indicator')){jQuery('.fg-menu-current').prev().trigger('mouseover');};};return false;break;case 38:if(jQuery(event.target).is('.'+options.linkHover)){var prevLink=jQuery(event.target).parent().prev().find('a:eq(0)');if(prevLink.size()>0){jQuery(event.target).trigger('mouseout');prevLink.trigger('mouseover');};}
else{container.find('a:eq(0)').trigger('mouseover');}
return false;break;case 39:if(jQuery(event.target).is('.fg-menu-indicator')){if(menuType=='flyout'){jQuery(event.target).next().find('a:eq(0)').trigger('mouseover');}
else if(menuType=='ipod'){jQuery(event.target).trigger('click');setTimeout(function(){jQuery(event.target).next().find('a:eq(0)').trigger('mouseover');},options.crossSpeed);};};return false;break;case 40:if(jQuery(event.target).is('.'+options.linkHover)){var nextLink=jQuery(event.target).parent().next().find('a:eq(0)');if(nextLink.size()>0){jQuery(event.target).trigger('mouseout');nextLink.trigger('mouseover');};}
else{container.find('a:eq(0)').trigger('mouseover');}
return false;break;case 27:killAllMenus();break;case 13:if(jQuery(event.target).is('.fg-menu-indicator')&&menuType=='ipod'){jQuery(event.target).trigger('click');setTimeout(function(){jQuery(event.target).next().find('a:eq(0)').trigger('mouseover');},options.crossSpeed);};break;};});};this.create=function(){if(options.appendToButton)
container.css({width:options.width}).appendTo(options.content.parent()).find('ul:first').not('.fg-menu-breadcrumb').addClass('fg-menu');else
container.css({width:options.width}).appendTo(jQuery('form:first')).find('ul:first').not('.fg-menu-breadcrumb').addClass('fg-menu');if(options.sortItems){var rootlists=container.find('ul');jQuery.each(rootlists,function(i){var rootlistitems=jQuery(rootlists[i]).children('li');rootlistitems.sort(function(a,b){var compA=jQuery(a).children('a').children('.text').html().toUpperCase();var compB=jQuery(b).children('a').children('.text').html().toUpperCase();return(compA<compB)?-1:(compA>compB)?1:0;})
jQuery.each(rootlistitems,function(idx,itm){jQuery(rootlists[i]).append(itm);});});}
if(options.addMenuIndicator)
container.find("ul > li a").not("ul li ul a").addClass('fg-menu-indicator');var rootlist=container.find('ul').not("ul li ul");container.find('ul, li a').addClass('ui-corner-all');if(options.multiColumn){if(options.autoLineBreak){container.find('ul li').css("width",(options.width-options.columnWidthOffset)/options.columnCount+"px").appendTo(rootlist);var colsAdded=0;var icnt=Math.round(container.find('ul li').not("ul li ul li").not(".empty").size()/options.columnCount);if(options.columnCount*icnt<container.find('ul li').not("ul li ul li").not(".empty").size())
icnt++;container.find('ul li:nth-child('+icnt+'n)').not('ul li ul li').not(".empty").each(function(){var $this=jQuery(this);for(var i=1;i<icnt;i++)
$this=$this.add($this.prev());$this.wrapAll("<div class='fg-menu-list-item-left'></div>");colsAdded++;});if(colsAdded>=options.columnCount)
container.find('ul li').not('ul li ul li').not(".empty").not('ul div li').appendTo(jQuery(".fg-menu-list-item-left:last"));else
container.find('ul li').not('ul li ul li').not(".empty").not('ul div li').wrapAll("<div class='fg-menu-list-item-left'></div>");}else{container.find('ul li').not("ul li ul li").css("width",(options.width-options.columnWidthOffset)/options.columnCount+"px");container.find('ul li').not("ul li ul li").css("float","left");}}
container.find('ul').attr('role','menu').eq(0).attr('aria-activedescendant','active-menuitem').attr('aria-labelledby',caller.attr('id'));container.find('li').attr('role','menuitem');container.find('li:has(ul)').attr('aria-haspopup','true').find('ul').attr('aria-expanded','false');container.find('a').attr('tabindex','-1');if(options.multiColumn){container.addClass("fg-menu-multi-column");}else{container.removeClass("fg-menu-multi-column");}
if(container.find('ul').size()>1&&!options.multiColumn){if(options.flyOut){menu.flyout(container,options);}
else{menu.drilldown(container,options);}}
else{container.find('a').click(function(event){menu.chooseItem(this);return false;});container.find('button').click(function(event){menu.chooseItem(this);return true;});};if(options.linkHover){var allLinks=container.find('.fg-menu li a');allLinks.hover(function(){var menuitem=jQuery(this);jQuery('.'+options.linkHover).removeClass(options.linkHover).blur().parent().removeAttr('id');jQuery(this).addClass(options.linkHover).focus().parent().attr('id','active-menuitem');},function(){jQuery(this).removeClass(options.linkHover).blur().parent().removeAttr('id');});};if(options.linkHoverSecondary){container.find('.fg-menu li').hover(function(){jQuery(this).siblings('li').removeClass(options.linkHoverSecondary);if(options.flyOutOnState){jQuery(this).siblings('li').find('a').removeClass(options.flyOutOnState);}
jQuery(this).addClass(options.linkHoverSecondary);},function(){jQuery(this).removeClass(options.linkHoverSecondary);});};menu.setPosition(container,caller,options);menu.menuExists=true;};this.chooseItem=function(item){var $item=jQuery(item);var text=$item.find(".text").text();var key=$item.find(".key").text();var value=$item.find(".value").text();var checkBoxId='input[name="'+value+'"]';if(jQuery(checkBoxId).attr('type')!="checkbox"&&!options.multipleChoice&&options.killOnMenuClick)
menu.kill();if(!options.multipleChoice){if(options.changeBtnTextOnChoose)
caller.find(".ui-button-text > span").text($item.find(".text").text());var value={key:key,value:value,text:text};caller.find(".ui-button-text > input").data("items",value);caller.find(".ui-button-text > input").val(JSON.stringify(value));}else{var $hiddenInput=caller.find(".ui-button-text > input");var currentValues=$hiddenInput.data("items");if(currentValues==null){currentValues=new Array();}
var value={key:key,value:value,text:text};var foundIndex=-1;jQuery.each(currentValues,function(index){if(this.value==value.value){foundIndex=index;return;};});if(foundIndex!=-1){currentValues.splice(foundIndex,foundIndex);}else{currentValues.push(value);}
$hiddenInput.data("items",currentValues);$hiddenInput.val(JSON.stringify(currentValues));}
if(options.selectionCallback!=null){options.selectionCallback(value);}else{document.location.href=$item.attr("href");}
if(jQuery(checkBoxId).attr('type')=="checkbox")
jQuery(checkBoxId).attr('checked')?jQuery(checkBoxId).attr('checked',false):jQuery(checkBoxId).attr('checked',true);return false;};};Menu.prototype.flyout=function(container,options){var menu=this;this.resetFlyoutMenu=function(){var allLists=container.find('ul ul');allLists.removeClass('ui-widget-content').hide();};container.addClass('fg-menu-flyout').find('li:has(ul)').each(function(){var linkWidth=container.width();var showTimer,hideTimer;var allSubLists=jQuery(this).find('ul');allSubLists.css({left:linkWidth,width:linkWidth}).hide();jQuery(this).find('a:eq(0)').addClass('fg-menu-indicator').html('<span>'+jQuery(this).find('a:eq(0) .text').text()+'</span><span class="ui-icon '+options.nextMenuLink+'"></span>').hover(function(){clearTimeout(hideTimer);var subList=jQuery(this).next();showTimer=setTimeout(function(){subList.addClass('ui-widget-content').show(options.showSpeed).attr('aria-expanded','true');},300);},function(){clearTimeout(showTimer);var subList=jQuery(this).next();hideTimer=setTimeout(function(){subList.removeClass('ui-widget-content').hide(options.showSpeed).attr('aria-expanded','false');},400);});jQuery(this).find('ul a').hover(function(){clearTimeout(hideTimer);if(jQuery(this).parents('ul').prev().is('a.fg-menu-indicator')){jQuery(this).parents('ul').prev().addClass(options.flyOutOnState);}},function(){hideTimer=setTimeout(function(){allSubLists.hide(options.showSpeed);container.find(options.flyOutOnState).removeClass(options.flyOutOnState);},500);});});container.find('a').click(function(){menu.chooseItem(this);return false;});};Menu.prototype.drilldown=function(container,options){var menu=this;var topList=container.find('.fg-menu');var breadcrumb=jQuery('<ul class="fg-menu-breadcrumb ui-widget-header ui-corner-all ui-helper-clearfix"></ul>');var crumbDefaultHeader=jQuery('<li class="fg-menu-breadcrumb-text">'+options.crumbDefaultText+'</li>');var firstCrumbText=(options.backLink)?options.backLinkText:options.topLinkText;var firstCrumbClass=(options.backLink)?'fg-menu-prev-list':'fg-menu-all-lists';var firstCrumbLinkClass=(options.backLink)?'ui-state-default ui-corner-all':'';var firstCrumbIcon=(options.backLink)?'<span class="ui-icon ui-icon-triangle-1-w"></span>':'';var firstCrumb=jQuery('<li class="'+firstCrumbClass+'"><a href="#" class="'+firstCrumbLinkClass+'">'+firstCrumbIcon+firstCrumbText+'</a></li>');container.addClass('fg-menu-ipod');if(options.backLink){breadcrumb.addClass('fg-menu-footer').appendTo(container).hide();}
else{breadcrumb.addClass('fg-menu-header').prependTo(container);};breadcrumb.append(crumbDefaultHeader);var checkMenuHeight=function(el){if(el.height()>options.maxHeight){el.addClass('fg-menu-scroll')};el.css({height:options.maxHeight});};var resetChildMenu=function(el){el.removeClass('fg-menu-scroll').removeClass('fg-menu-current').height('auto');};this.resetDrilldownMenu=function(){jQuery('.fg-menu-current').removeClass('fg-menu-current');topList.animate({left:0},options.crossSpeed,function(){jQuery(this).find('ul').each(function(){jQuery(this).hide();resetChildMenu(jQuery(this));});topList.addClass('fg-menu-current');});jQuery('.fg-menu-all-lists').find('span').remove();breadcrumb.empty().append(crumbDefaultHeader);jQuery('.fg-menu-footer').empty().hide();checkMenuHeight(topList);};topList.addClass('fg-menu-content fg-menu-current ui-widget-content ui-helper-clearfix').css({width:container.width()}).find('ul').css({width:container.width(),left:container.width()}).addClass('ui-widget-content').hide();checkMenuHeight(topList);topList.find('a').each(function(){if(jQuery(this).next().is('ul')){jQuery(this).addClass('fg-menu-indicator').each(function(){jQuery(this).html('<span>'+jQuery(this).find('span:eq(0) .text').text()+'</span><span class="ui-icon '+options.nextMenuLink+'"></span>');}).click(function(){var nextList=jQuery(this).next();var parentUl=jQuery(this).parents('ul:eq(0)');var parentLeft=(parentUl.is('.fg-menu-content'))?0:parseFloat(topList.css('left'));var nextLeftVal=Math.round(parentLeft-parseFloat(container.width()));var footer=jQuery('.fg-menu-footer');resetChildMenu(parentUl);checkMenuHeight(nextList);topList.animate({left:nextLeftVal},options.crossSpeed);nextList.show().addClass('fg-menu-current').attr('aria-expanded','true');var setPrevMenu=function(backlink){var b=backlink;var c=jQuery('.fg-menu-current');var prevList=c.parents('ul:eq(0)');c.hide().attr('aria-expanded','false');resetChildMenu(c);checkMenuHeight(prevList);prevList.addClass('fg-menu-current').attr('aria-expanded','true');if(prevList.hasClass('fg-menu-content')){b.remove();footer.hide();};};if(options.backLink){if(footer.find('a').size()==0){footer.show();jQuery('<a href="#"><span class="ui-icon ui-icon-triangle-1-w"></span> <span>Back</span></a>').appendTo(footer).click(function(){var b=jQuery(this);var prevLeftVal=parseFloat(topList.css('left'))+container.width();topList.animate({left:prevLeftVal},options.crossSpeed,function(){setPrevMenu(b);});return false;});}}
else{if(breadcrumb.find('li').size()==1){breadcrumb.empty().append(firstCrumb);firstCrumb.find('a').click(function(){menu.resetDrilldownMenu();return false;});}
jQuery('.fg-menu-current-crumb').removeClass('fg-menu-current-crumb');var crumbText=jQuery(this).find('span:eq(0) .text').text();var newCrumb=jQuery('<li class="fg-menu-current-crumb"><a href="javascript://" class="fg-menu-crumb">'+crumbText+'</a></li>');newCrumb.appendTo(breadcrumb).find('a').click(function(){if(jQuery(this).parent().is('.fg-menu-current-crumb')){menu.chooseItem(this);}
else{var newLeftVal=-(jQuery('.fg-menu-current').parents('ul').size()-1)*180;topList.animate({left:newLeftVal},options.crossSpeed,function(){setPrevMenu();});jQuery(this).parent().addClass('fg-menu-current-crumb').find('span').remove();jQuery(this).parent().nextAll().remove();};return false;});newCrumb.prev().append(' <span class="ui-icon '+options.nextCrumbLink+'"></span>');};return false;});}
else{jQuery(this).click(function(){menu.chooseItem(this);return false;});};});};Menu.prototype.setPosition=function(widget,caller,options){var el=widget;var referrer=caller;var dims={refX:referrer.offset().left,refY:referrer.offset().top,refW:referrer.getTotalWidth(),refH:referrer.getTotalHeight()};if(options.appendToButton&&options.content.parent().css('position')=='relative'){dims.refX=0;dims.refY=0;}
var options=options;var xVal,yVal;var helper=jQuery('<div class="positionHelper"></div>');helper.css({position:'absolute',left:dims.refX,top:dims.refY,width:dims.refW,height:dims.refH});el.wrap(helper);switch(options.positionOpts.posX){case'left':xVal=0;break;case'center':xVal=dims.refW/2;break;case'right':xVal=dims.refW;break;};switch(options.positionOpts.posY){case'top':yVal=0;break;case'center':yVal=dims.refH/2;break;case'bottom':yVal=dims.refH;break;};xVal+=options.positionOpts.offsetX;yVal+=options.positionOpts.offsetY;if(options.positionOpts.directionV=='up'){el.css({top:'auto',bottom:yVal});if(options.positionOpts.detectV&&!fitVertical(el)){el.css({bottom:'auto',top:yVal});}}
else{el.css({bottom:'auto',top:yVal});if(options.positionOpts.detectV&&!fitVertical(el)){el.css({top:'auto',bottom:yVal});}};if(options.positionOpts.directionH=='left'){el.css({left:'auto',right:xVal});if(options.positionOpts.detectH&&!fitHorizontal(el)){el.css({right:'auto',left:xVal});}}
else{el.css({right:'auto',left:xVal});if(options.positionOpts.detectH&&!fitHorizontal(el)){el.css({left:'auto',right:xVal});}};if(options.positionOpts.linkToFront){referrer.clone().addClass('linkClone').css({position:'absolute',top:0,right:'auto',bottom:'auto',left:0,width:referrer.width(),height:referrer.height()}).insertAfter(el);};};function sortBigToSmall(a,b){return b-a;};jQuery.fn.getTotalWidth=function(){return jQuery(this).width()+parseInt(jQuery(this).css('paddingRight'))+parseInt(jQuery(this).css('paddingLeft'))+parseInt(jQuery(this).css('borderRightWidth'))+parseInt(jQuery(this).css('borderLeftWidth'));};jQuery.fn.getTotalHeight=function(){return jQuery(this).height()+parseInt(jQuery(this).css('paddingTop'))+parseInt(jQuery(this).css('paddingBottom'))+parseInt(jQuery(this).css('borderTopWidth'))+parseInt(jQuery(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 de=document.documentElement;return self.innerHeight||(de&&de.clientHeight)||document.body.clientHeight;};function getWindowWidth(){var de=document.documentElement;return self.innerWidth||(de&&de.clientWidth)||document.body.clientWidth;};function fitHorizontal(el,leftOffset){var leftVal=parseInt(leftOffset)||jQuery(el).offset().left;return(leftVal+jQuery(el).width()<=getWindowWidth()+getScrollLeft()&&leftVal-getScrollLeft()>=0);};function fitVertical(el,topOffset){var topVal=parseInt(topOffset)||jQuery(el).offset().top;return(topVal+jQuery(el).height()<=getWindowHeight()+getScrollTop()&&topVal-getScrollTop()>=0);};Number.prototype.pxToEm=String.prototype.pxToEm=function(settings){settings=jQuery.extend({scope:'body',reverse:false},settings);var pxVal=(this=='')?0:parseFloat(this);var scopeVal;var getWindowWidth=function(){var de=document.documentElement;return self.innerWidth||(de&&de.clientWidth)||document.body.clientWidth;};if(settings.scope=='body'&&jQuery.browser.msie&&(parseFloat(jQuery('body').css('font-size'))/getWindowWidth()).toFixed(1)>0.0){var calcFontSize=function(){return(parseFloat(jQuery('body').css('font-size'))/getWindowWidth()).toFixed(3)*16;};scopeVal=calcFontSize();}
else{scopeVal=parseFloat(jQuery(settings.scope).css("font-size"));};var result=(settings.reverse==true)?(pxVal*scopeVal).toFixed(2)+'px':(pxVal/scopeVal).toFixed(2)+'em';return result;};
