                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                if(!window.__td){window.__MT=100;window.__ti=0;window.__td=[];window.__td.length=window.__MT;window.__noTrace=false;

}








if(typeof(vp)=="undefined")
{
var vp={};
}


if(!vp.controls)
{
vp.controls={};
}





vp.controls.FlyoutMenu=function $vpfn_zcrfhH_gRkadMrfJq7VBOA27$25(strHtmlElementId,nHoverDelay,bCloseMenusOnMouseOut,bAllowScrollBars,bRenderForSpider)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;




this.RootElement=vp.ui.get(strHtmlElementId);





this.ActiveMenuItems=[];





this.HoverDelay=nHoverDelay;




this.CloseMenusOnMouseOut=bCloseMenusOnMouseOut;




this.AllowSubMenuScrollBars=bAllowScrollBars;




this.ForceMenusOnScreen=false;




var _subMenuIdToParentElement={};




var _menuIdToCssClass={};




var _menuItems={};




var _parentMenuItemIdToSubMenu={};




var _subMenuIdToOptions={};




var _displayedMenuDictionary=[];




var _pendingMenuDisplay=null;




var _pendingMenuItemClear=null;





var CLEAR_ITEM_EVENT_DELAY=300;




this.SubmenuRemovalDelay=200;




var _mouseIsInMenu=false;




var _subMenuIdToClearTimeOut={};




var _isSpider=bRenderForSpider;




this.onchange=new vp.events.CustomEvent(this,"onchange");









this.addSubMenu=function $vpfn_g1JGhqH0rQDC90xs5tyfFQ142$22(
strSubMenuElementId,
strParentMenuItemId,
nParentItemHorizontalDockPoint,
nParentItemVerticalDockPoint,
nSubMenuHorizontalDockPoint,
nSubMenuVerticalDockPoint,
bShowOnHover)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var subMenuElement=vp.ui.get(strSubMenuElementId);
var parentElement=vp.ui.get(strParentMenuItemId);

if(!subMenuElement)
{
throw new Error("Invalid HTML element id passed to FlyoutMenu.addSubMenu : "+strSubMenuElementId);
}

if(!parentElement)
{
throw new Error("Invalid HTML element id passed to FlyoutMenu.addSubMenu : "+strParentMenuItemId);
}

if(!_isSpider)
{
subMenuElement.style.display="none";
vp.ui.moveToRoot(subMenuElement,false);
}

_subMenuIdToParentElement[strSubMenuElementId]=parentElement;
_parentMenuItemIdToSubMenu[strParentMenuItemId]=subMenuElement;

var showSubMenu=function $vpfn_tE$zRyXXH4kv6AOswpRuyw173$26()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
me.displaySubMenu(subMenuElement);
}.getClosure(subMenuElement);

if(!bShowOnHover)
{
vp.events.add(parentElement,"click",showSubMenu);
}

me.addMouseOutEvent(subMenuElement);

_subMenuIdToOptions[subMenuElement.id]={
ShowOnHover:bShowOnHover,
ParentItemVerticalDockPoint:nParentItemVerticalDockPoint,
ParentItemHorizontalDockPoint:nParentItemHorizontalDockPoint,
SubMenuVerticalDockPoint:nSubMenuVerticalDockPoint,
SubMenuHorizontalDockPoint:nSubMenuHorizontalDockPoint
};
};






this.addMouseOutEvent=function $vpfn_pQXnd_9JFvEf4wWyfyBzeQ199$28(oElement)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(!oElement)
{
throw new Error("Null element passed to addMouseOutEvent.");
}

var deActivateMenuItem=function $vpfn_tE$zRyXXH4kv6AOswpRuyw206$33(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
me.beginPendingMenuClear(e,oElement);
}.getClosure(oElement);

vp.events.add(oElement,"mouseout",deActivateMenuItem);
};







this.addMenuItem=function $vpfn_leBFQjhDLbeXYk0wW2a3rQ220$23(strMenuItemId,strContainingMenuElementId,strActiveCssClass)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var menuItemElement=vp.ui.get(strMenuItemId);
if(!menuItemElement)
{
throw new Error("Invalid HTML element id passed to FlyoutMenu.addMenuItem : "+strMenuItemId);
}

var activateMenuItem=function $vpfn_tE$zRyXXH4kv6AOswpRuyw228$31()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
me.setActiveMenuItem(menuItemElement);
}.getClosure(menuItemElement);

vp.events.add(menuItemElement,"mouseover",activateMenuItem);

_menuItems[strMenuItemId]=strContainingMenuElementId;
_menuIdToCssClass[strMenuItemId]=strActiveCssClass;
};





this.displaySubMenu=function $vpfn_eGeEjWCpl_6SwNr7ZNv$sw243$26(oSubMenuElement)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(!oSubMenuElement)
{
throw new Error("Invalid element passed to displaySubMenu");
}


if(_displayedMenuDictionary[oSubMenuElement.id])
{
return;
}

if(_isSpider)
{
return;
}

var parentMenuItem=_subMenuIdToParentElement[oSubMenuElement.id];
if(!parentMenuItem)
{
throw new Error("Specified element is not a sub-menu of this menu control");
}


oSubMenuElement.style.position="absolute";
oSubMenuElement.style.height="auto";
oSubMenuElement.style.display="block";


var oParentSubMenuRect=vp.ui.getRect(vp.ui.get(_menuItems[parentMenuItem.id]));
var oParentElementRect=vp.ui.getRect(parentMenuItem);
var oSubMenuRect=vp.ui.getRect(oSubMenuElement);


var subMenuOptions=_subMenuIdToOptions[oSubMenuElement.id];
var leftPos=0;
var topPos=0;








leftPos=oParentSubMenuRect.left-oSubMenuRect.width+
(subMenuOptions.SubMenuHorizontalDockPoint*oSubMenuRect.width)+
(subMenuOptions.ParentItemHorizontalDockPoint*oParentSubMenuRect.width);

topPos=oParentElementRect.top-oSubMenuRect.height+
(subMenuOptions.SubMenuVerticalDockPoint*oSubMenuRect.height)+
(subMenuOptions.ParentItemVerticalDockPoint*oParentElementRect.height)-3;


oSubMenuElement.style.left=leftPos+"px";
oSubMenuElement.style.top=topPos+"px";


oSubMenuRect=vp.ui.getRect(oSubMenuElement);


var iMenuBottomY=topPos+oSubMenuRect.height;
var iPageBottom=vp.ui.getScrollOffset().top+vp.ui.getViewportSize().height-5;


if(!document.all&&vp.ui.isHorizontalScrollbarVisible())
{
iPageBottom-=20;
}

if(iMenuBottomY>iPageBottom&&me.ForceMenusOnScreen)
{
oSubMenuElement.style.top=(oSubMenuRect.top-(oSubMenuRect.bottom-iPageBottom))+"px";
}
else if(iMenuBottomY>iPageBottom&&me.AllowSubMenuScrollBars)
{
oSubMenuElement.style.height=Math.max(100,iPageBottom-oSubMenuRect.top)+"px";
oSubMenuElement.style.overflowY="scroll";
}
else
{
oSubMenuElement.style.overflowY="visible";
}

vp.ui.showIE6IFrame(oSubMenuElement,true);

_displayedMenuDictionary[oSubMenuElement.id]=true;
};






this.hideSubMenu=function $vpfn_jfG58k7s6vWwGUzpKq_zZw338$23(oSubMenuElement)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(!oSubMenuElement)
{
throw new Error("Null element passed to hideSubMenu");
}

if(_isSpider)
{
return;
}

oSubMenuElement.style.display="none";
vp.ui.showIE6IFrame(oSubMenuElement,false);
_displayedMenuDictionary[oSubMenuElement.id]=false;
};





this.setActiveMenuItem=function $vpfn_Vy1K_Nu5d04Hk_xRN5z7ig359$29(oMenuElement)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

_mouseIsInMenu=true;


if(oMenuElement!==null&&me.ActiveMenuItems.length!==0&&me.ActiveMenuItems[me.ActiveMenuItems.length-1].id===oMenuElement.id)
{
return;
}


me.cancelPendingActions();


var newActiveMenuItems=[];


var itemToAdd=oMenuElement;


var subMenusToHide=[];

var present=false;
var i=0;
var j=0;
var firstItem=true;


while(itemToAdd)
{

newActiveMenuItems.unshift(itemToAdd);


var itemsSubMenu=_parentMenuItemIdToSubMenu[itemToAdd.id];


present=false;
for(i=0;i<me.ActiveMenuItems.length;i++)
{
if(me.ActiveMenuItems[i]===itemToAdd)
{
present=true;
}
}


if(!present)
{

itemToAdd.className=itemToAdd.className+' '+_menuIdToCssClass[itemToAdd.id];


if(itemsSubMenu&&firstItem&&_subMenuIdToOptions[itemsSubMenu.id].ShowOnHover)
{
var subMenuToShow=itemsSubMenu;


var showSubMenuWithDelayFn=function $vpfn_tE$zRyXXH4kv6AOswpRuyw418$49()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
me.displaySubMenu(subMenuToShow);
}.getClosure(subMenuToShow);

_pendingMenuDisplay=setTimeout(showSubMenuWithDelayFn,me.HoverDelay);
}

var activateFunction=itemToAdd.getAttribute("onactivate");
if(activateFunction&&typeof activateFunction=='function')
{
activateFunction();
}
else if(activateFunction)
{
eval(activateFunction);
}
}


itemToAdd=_subMenuIdToParentElement[_menuItems[itemToAdd.id]];
firstItem=false;
}


for(i=0;i<me.ActiveMenuItems.length;i++)
{
present=false;
for(j=0;j<newActiveMenuItems.length;j++)
{
if(me.ActiveMenuItems[i]===newActiveMenuItems[j])
{
present=true;
}
}

if(!present)
{
var itemToRemove=me.ActiveMenuItems[i];
itemToRemove.className=itemToRemove.className.replace(' '+_menuIdToCssClass[itemToRemove.id],'');

var subMenuToRemove=_parentMenuItemIdToSubMenu[itemToRemove.id];
if(subMenuToRemove)
{
subMenusToHide.push(subMenuToRemove);
}

var deactivateFunction=itemToRemove.getAttribute("ondeactivate");
if(deactivateFunction&&typeof deactivateFunction=='function')
{
deactivateFunction();
}
else if(deactivateFunction)
{
eval(deactivateFunction);
}
}
}


if(subMenusToHide.length>0)
{
var removeSubMenuFn=function $vpfn_tE$zRyXXH4kv6AOswpRuyw480$34()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
for(var k=0;k<subMenusToHide.length;k++)
{


var menuReactivated=false;
for(var j=0;j<me.ActiveMenuItems.length;j++)
{
if(_menuItems[me.ActiveMenuItems[j].id]===subMenusToHide[k].id)
{
menuReactivated=true;
}
}

if(!menuReactivated)
{
me.hideSubMenu(subMenusToHide[k]);
}
}
}.getClosure(subMenusToHide);

var iDelay=oMenuElement?CLEAR_ITEM_EVENT_DELAY:me.SubmenuRemovalDelay;
setTimeout(removeSubMenuFn,iDelay);
}


me.ActiveMenuItems.splice(0,me.ActiveMenuItems.length);
for(i=0;i<newActiveMenuItems.length;i++)
{
me.ActiveMenuItems.push(newActiveMenuItems[i]);
}

me.onchange.fire(oMenuElement);
};





this.cancelPendingActions=function $vpfn_GHpK$FRptxx1pr7yRkLt$g520$32()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(_pendingMenuDisplay)
{
clearTimeout(_pendingMenuDisplay);
_pendingMenuDisplay=0;
}

if(_pendingMenuItemClear)
{
clearTimeout(_pendingMenuItemClear);
_pendingMenuItemClear=0;
}

for(var subMenuId in _subMenuIdToClearTimeOut)
{
if(_subMenuIdToClearTimeOut[subMenuId])
{
clearTimeout(_subMenuIdToClearTimeOut[subMenuId]);
_subMenuIdToClearTimeOut[subMenuId]=null;
}
}

};





this.beginPendingMenuClear=function $vpfn_OZIjNzBqrHTcN$_aFfwEig549$33(e,oSubMenuElement)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var oEvent=vp.events.getEvent(e);

if(oEvent.relatedTarget&&
(oEvent.relatedTarget==oSubMenuElement||vp.ui.isChildOf(oEvent.relatedTarget,oSubMenuElement)))
{
return;
}


if(_subMenuIdToClearTimeOut[oSubMenuElement.id])
{
return;
}

_mouseIsInMenu=false;

me.cancelPendingActions();

if(me.CloseMenusOnMouseOut)
{
var fnDelayedClearActiveMenuItem=function $vpfn_tE$zRyXXH4kv6AOswpRuyw571$47()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
_subMenuIdToClearTimeOut[oSubMenuElement.id]=null;
me.setActiveMenuItem(null);
}.getClosure(oSubMenuElement);

_subMenuIdToClearTimeOut[oSubMenuElement.id]=setTimeout(fnDelayedClearActiveMenuItem,CLEAR_ITEM_EVENT_DELAY);
}

};




this.closeMenusOnClick=function $vpfn_jXd6_nYy2W71J0CfYHrFyQ585$29()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(!me.CloseMenusOnMouseOut&&!_mouseIsInMenu)
{
me.setActiveMenuItem(null);
}
};


me.addMouseOutEvent(me.RootElement);


vp.events.add(document.body,"click",me.closeMenusOnClick);
};

