
var allUIMenus=[];$.fn.dropdownmenu=function(options){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',idHiddenInput:'hiddenfield',idButton:'dropdownbutton',idList:'list',cssClass:'',buttonText:'Choose',autoOpen:false,sortItems:true,killOnMenuClick:true,selectionCallback:null,multipleChoice:false,multiColumn:false,columnCount:1,columnWidthOffset:0,addMenuIndicator:true,changeBtnTextOnChoose:true,content:this,width:180,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=$("<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($(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.autoOpen){m.showMenu();}};function Menu(caller,options){var menu=this;var caller=$(caller);var container=$(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(){$.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;$(document).unbind('click',killAllMenus);$(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(){menu.kill();return false;});container.hide().slideDown(options.showSpeed).find('.fg-menu:eq(0)');menu.menuOpen=true;caller.removeClass(options.loadingState);$(document).click(killAllMenus);$(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=($(event.target).parents('div').is('.fg-menu-flyout'))?'flyout':'ipod';switch(e){case 37:if(menuType=='flyout'){$(event.target).trigger('mouseout');if($('.'+options.flyOutOnState).size()>0){$('.'+options.flyOutOnState).trigger('mouseover');};};if(menuType=='ipod'){$(event.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($(event.target).is('.'+options.linkHover)){var prevLink=$(event.target).parent().prev().find('a:eq(0)');if(prevLink.size()>0){$(event.target).trigger('mouseout');prevLink.trigger('mouseover');};}
else{container.find('a:eq(0)').trigger('mouseover');}
return false;break;case 39:if($(event.target).is('.fg-menu-indicator')){if(menuType=='flyout'){$(event.target).next().find('a:eq(0)').trigger('mouseover');}
else if(menuType=='ipod'){$(event.target).trigger('click');setTimeout(function(){$(event.target).next().find('a:eq(0)').trigger('mouseover');},options.crossSpeed);};};return false;break;case 40:if($(event.target).is('.'+options.linkHover)){var nextLink=$(event.target).parent().next().find('a:eq(0)');if(nextLink.size()>0){$(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($(event.target).is('.fg-menu-indicator')&&menuType=='ipod'){$(event.target).trigger('click');setTimeout(function(){$(event.target).next().find('a:eq(0)').trigger('mouseover');},options.crossSpeed);};break;};});};this.create=function(){container.css({width:options.width}).appendTo('body').find('ul:first').not('.fg-menu-breadcrumb').addClass('fg-menu');if(options.sortItems){var rootlists=container.find('ul');$.each(rootlists,function(i){var rootlistitems=$(rootlists[i]).children('li');rootlistitems.sort(function(a,b){var compA=$(a).children('a').children('.text').html().toUpperCase();var compB=$(b).children('a').children('.text').html().toUpperCase();return(compA<compB)?-1:(compA>compB)?1:0;})
$.each(rootlistitems,function(idx,itm){$(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){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=$(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($(".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>");}
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=$(this);$('.'+options.linkHover).removeClass(options.linkHover).blur().parent().removeAttr('id');$(this).addClass(options.linkHover).focus().parent().attr('id','active-menuitem');},function(){$(this).removeClass(options.linkHover).blur().parent().removeAttr('id');});};if(options.linkHoverSecondary){container.find('.fg-menu li').hover(function(){$(this).siblings('li').removeClass(options.linkHoverSecondary);if(options.flyOutOnState){$(this).siblings('li').find('a').removeClass(options.flyOutOnState);}
$(this).addClass(options.linkHoverSecondary);},function(){$(this).removeClass(options.linkHoverSecondary);});};menu.setPosition(container,caller,options);menu.menuExists=true;};this.chooseItem=function(item){var $item=$(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($(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;$.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($(checkBoxId).attr('type')=="checkbox")
$(checkBoxId).attr('checked')?$(checkBoxId).attr('checked',false):$(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=$(this).find('ul');allSubLists.css({left:linkWidth,width:linkWidth}).hide();$(this).find('a:eq(0)').addClass('fg-menu-indicator').html('<span>'+$(this).find('a:eq(0) .text').text()+'</span><span class="ui-icon '+options.nextMenuLink+'"></span>').hover(function(){clearTimeout(hideTimer);var subList=$(this).next();showTimer=setTimeout(function(){subList.addClass('ui-widget-content').show(options.showSpeed).attr('aria-expanded','true');},300);},function(){clearTimeout(showTimer);var subList=$(this).next();hideTimer=setTimeout(function(){subList.removeClass('ui-widget-content').hide(options.showSpeed).attr('aria-expanded','false');},400);});$(this).find('ul a').hover(function(){clearTimeout(hideTimer);if($(this).parents('ul').prev().is('a.fg-menu-indicator')){$(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=$('<ul class="fg-menu-breadcrumb ui-widget-header ui-corner-all ui-helper-clearfix"></ul>');var crumbDefaultHeader=$('<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=$('<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(){$('.fg-menu-current').removeClass('fg-menu-current');topList.animate({left:0},options.crossSpeed,function(){$(this).find('ul').each(function(){$(this).hide();resetChildMenu($(this));});topList.addClass('fg-menu-current');});$('.fg-menu-all-lists').find('span').remove();breadcrumb.empty().append(crumbDefaultHeader);$('.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($(this).next().is('ul')){$(this).addClass('fg-menu-indicator').each(function(){$(this).html('<span>'+$(this).find('span:eq(0) .text').text()+'</span><span class="ui-icon '+options.nextMenuLink+'"></span>');}).click(function(){var nextList=$(this).next();var parentUl=$(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=$('.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=$('.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();$('<a href="#"><span class="ui-icon ui-icon-triangle-1-w"></span> <span>Back</span></a>').appendTo(footer).click(function(){var b=$(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;});}
$('.fg-menu-current-crumb').removeClass('fg-menu-current-crumb');var crumbText=$(this).find('span:eq(0) .text').text();var newCrumb=$('<li class="fg-menu-current-crumb"><a href="javascript://" class="fg-menu-crumb">'+crumbText+'</a></li>');newCrumb.appendTo(breadcrumb).find('a').click(function(){if($(this).parent().is('.fg-menu-current-crumb')){menu.chooseItem(this);}
else{var newLeftVal=-($('.fg-menu-current').parents('ul').size()-1)*180;topList.animate({left:newLeftVal},options.crossSpeed,function(){setPrevMenu();});$(this).parent().addClass('fg-menu-current-crumb').find('span').remove();$(this).parent().nextAll().remove();};return false;});newCrumb.prev().append(' <span class="ui-icon '+options.nextCrumbLink+'"></span>');};return false;});}
else{$(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()};var options=options;var xVal,yVal;var helper=$('<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 $(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 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)||$(el).offset().left;return(leftVal+$(el).width()<=getWindowWidth()+getScrollLeft()&&leftVal-getScrollLeft()>=0);};function fitVertical(el,topOffset){var topVal=parseInt(topOffset)||$(el).offset().top;return(topVal+$(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'&&$.browser.msie&&(parseFloat($('body').css('font-size'))/getWindowWidth()).toFixed(1)>0.0){var calcFontSize=function(){return(parseFloat($('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;};