var navMenu=new Object();
navMenu.init=function(){
var _1=Element.getElementsByClass(document,"navMenu");
navMenu.menus=new Array();
for(var i=0;i<_1.length;i++){
navMenu.menus[i]=new navMenu.menu(_1[i]);
}
navMenu.menuCache=new Array();
};
navMenu.addLoadEvent=function(_3){
navMenu.menu.prototype.addEvent(window,"load",_3);
};
navMenu.menu=function(_4){
this.table=_4;
this.ajaxTimestamp=new Date().getTime();
this.isOrig=true;
this.origInnerHTML=Element.getParent(_4).innerHTML;
this.setupListeners(_4);
};
navMenu.menu.prototype.setupListeners=function(_5){
this.table=_5;
var _6=Element.getElementsByClass(_5,"menu","td");
for(var i=0;i<_6.length;i++){
var _8=new Array();
var _9=_6[i].getElementsByTagName("a");
for(var j=0;j<_9.length;j++){
_8.push(_9[j]);
}
if(navMenuOpts.selectedID!=navMenuOpts.currentID){
var _b=Element.getElementsByClass(_6[i],"active","span");
for(var j=0;j<_b.length;j++){
_8.push(_b[j]);
}
}
for(var j=0;j<_8.length;j++){
_8[j].menu=_5;
_8[j].level=i+1;
this.addEvent(_8[j],"mouseover",this.linkHover.bind(this));
}
}
this.addEvent(_5,"mouseout",this.restoreMenu.bind(this));
this.addEvent(_5,"mouseover",this.cancelRestoreMenu.bind(this));
};
navMenu.menu.prototype.linkHover=function(e){
var _d=this.getEventTarget(e);
clearTimeout(navMenu.menus[0].hoverTID);
var _e=document.getElementById(navMenuOpts.selectedID);
if(_d.level==_e.level+1&&!Element.hasClass(_d,"hasChildren")){
return;
}else{
if(_d.level==_e.level&&(!Element.hasClass(_d,"hasChildren")&&!Element.hasClass(_e,"hasChildren"))){
return;
}
}
navMenu.menus[0].hoverTID=setTimeout(function(){
if(navMenu.menuCache[_d.id]==null){
Element.addClass(_d.menu,"wait");
http("POST","/shared/cfm/navMenuProxy.cfm?method=generate&selectedID="+_d.id,this.updateMenu,navMenuOpts);
}else{
var _f={content:navMenu.menuCache[_d.id],timestamp:new Date().getTime()};
this.updateMenu(_f);
}
}.bind(this),500);
};
navMenu.menu.prototype.updateMenu=function(_10){
var _11=Element.getElementsByClass(document,"navMenuWrapper");
if(_10==null){
Element.removeClass(navMenu.menus[0].table,"wait");
return;
}
if(_10.timestamp>navMenu.menus[0].ajaxTimestamp){
navMenu.menus[0].ajaxTimestamp=_10.timestamp;
_11[0].innerHTML=_10.content;
setTimeout(function(){
navMenu.menus[0].setupListeners(Element.getElementsByClass(_11[0],"navMenu","table")[0]);
navMenu.menuCache[navMenuOpts.selectedID]=_10.content;
},1);
navMenu.menus[0].isOrig=false;
}
};
navMenu.menu.prototype.restoreMenu=function(e){
if(!navMenu.menus[0].isOrig){
var _13=this.getRelatedTarget(e);
if(!Element.contains(navMenu.menus[0].table,_13)){
navMenu.menus[0].restoreTID=setTimeout(function(){
var _14={content:navMenu.menus[0].origInnerHTML,timestamp:new Date().getTime()};
this.updateMenu(_14);
navMenu.menus[0].isOrig=true;
navMenuOpts.selectedID=navMenuOpts.currentID;
}.bind(this),500);
}
}
};
navMenu.menu.prototype.cancelRestoreMenu=function(e){
clearTimeout(navMenu.menus[0].restoreTID);
};
navMenu.menu.prototype.addEvent=function(obj,_17,fn){
if(obj.addEventListener){
obj.addEventListener(_17,fn,false);
}else{
if(obj.attachEvent){
obj["e"+_17+fn]=fn;
obj[_17+fn]=function(){
obj["e"+_17+fn](window.event);
};
obj.attachEvent("on"+_17,obj[_17+fn]);
}
}
};
navMenu.menu.prototype.removeEvent=function(obj,_1a,fn){
if(obj.removeEventListener){
obj.removeEventListener(_1a,fn,false);
}else{
if(obj.detachEvent){
obj.detachEvent("on"+_1a,obj[_1a+fn]);
obj[_1a+fn]=null;
obj["e"+_1a+fn]=null;
}
}
};
navMenu.menu.prototype.getEventTarget=function(e){
if(e.target){
if(e.target.nodeType==3){
return e.target.parentNode;
}else{
return e.target;
}
}
if(e.srcElement){
return e.srcElement;
}
return e;
};
navMenu.menu.prototype.cancelDefault=function(e){
if(e&&e.preventDefault){
e.preventDefault();
}else{
if(window.event){
window.event.returnValue=false;
}
}
};
navMenu.menu.prototype.cancelDefaultSafari=function(){
return false;
};
navMenu.menu.prototype.stopPropagation=function(e){
if(e&&e.stopPropagation){
e.stopPropagation();
}else{
if(window.event){
window.event.cancelBubble=true;
}
}
};
navMenu.menu.prototype.getRelatedTarget=function(e){
if(e&&e.relatedTarget){
return e.relatedTarget;
}else{
if(window.event){
return window.event.toElement;
}
}
return null;
};
function copyPrototype(_20,_21){
var _22=_21.toString();
var _23=_22.match(/\s*function (.*)\(/);
if(_23!=null){
_20.prototype[_23[1]]=_21;
}
for(var m in _21.prototype){
_20.prototype[m]=_21.prototype[m];
}
}
Function.prototype.bind=function(_25){
var _26=this;
var _27=entries(arguments).slice(1);
return function(){
var _28=entries(arguments);
return _26.apply(_25,_27.concat(_28));
};
};
Function.prototype.bindEventListener=function(_29){
var _2a=this;
var _2b=entries(arguments).slice(1);
return function(_2c){
return _2a.apply(_29,_2c||window.event,_2b);
};
};
function entries(_2d){
var _2e=[];
for(var i=0;i<_2d.length;i++){
_2e.push(_2d[i]);
}
return _2e;
}
if(!window.Element){
var Element=new Object();
}
Element.getParent=function(obj){
if(obj.parentNode){
return obj.parentNode;
}
if(obj.parentElement){
return obj.parentElement;
}
return null;
};
Element.getElementsByClass=function(obj,_32,tag){
var _34=new Array();
if(obj==null){
obj=document;
}
if(tag==null){
tag="*";
}
var els=obj.getElementsByTagName(tag);
var _36=els.length;
var _37=new RegExp("(^|\\s)"+_32+"(\\s|$)");
for(var i=0,j=0;i<_36;i++){
if(_37.test(els[i].className)){
_34[j]=els[i];
j++;
}
}
return _34;
};
Element.hasClass=function(obj,_3a){
return new RegExp("\\b"+_3a+"\\b").test(obj.className);
};
Element.addClass=function(obj,_3c){
if(!Element.hasClass(obj,_3c)){
obj.className+=obj.className?" "+_3c:_3c;
}
};
Element.removeClass=function(obj,_3e){
if(Element.hasClass(obj,_3e)){
var _3f=obj.className.match(" "+_3e)?" "+_3e:_3e;
obj.className=obj.className.replace(_3f,"");
}
};
Element.contains=function(_40,_41){
var _42=_41;
while(_42){
if(_42==_40){
return true;
}
_42=Element.getParent(_42);
}
return false;
};
function $(){
var _43=new Array();
for(var i=0;i<arguments.length;i++){
var _45=arguments[i];
if(typeof _45=="string"){
_45=document.getElementById(_45);
}
if(arguments.length==1){
return _45;
}
_43.push(_45);
}
return _43;
}
navMenu.addLoadEvent(navMenu.init);

