var a;FoldLinkNavigator=function(){this.initialiseNode(document.firstChild,undefined);foldLinkNav=this};FoldLinkNavigator.lastLink_=undefined;a=FoldLinkNavigator.prototype;
a.initialiseNode=function(b,c){for(;b;){var d,e=b.tagName=="DIV"&&b.className=="fold_long";if(e){d=c;c=this.lastLink_}if(b.tagName=="A"||b.tagName=="DIV"&&b.className=="fold_link_label"){if(this.lastLink_!=undefined){this.lastLink_.linkNext=b;b.linkUp=c;b.linkPrevious=this.lastLink_}b.onclick=this.linkClickedEvent;this.lastLink_=b}this.initialiseNode(b.firstChild,c);if(e)c=d;b=b.nextSibling}};
a.getEventTarget=function(b,c){var d;if(!b)b=c.event;if(b.target)d=b.target;else if(b.srcElement)d=b.srcElement;if(d.nodeType==3)d=d.parentNode;return d};a.setAnchor=function(b,c){if(b)if(b.navlink=c){b.setAttribute("href",c.getAttribute("href"));b.setAttribute("target",c.getAttribute("target"));b.className="active"}else{b.removeAttribute("href");b.className="disabled"}};a.openFolds=function(b){for(;b;){if(b.tagName=="DIV"&&b.className=="fold")b.className="fold_open";b=b.parentNode}};
a.createBreadcrumbTrail=function(b,c){for(b=b.linkUp;b;){c.firstChild&&c.insertBefore(document.createTextNode(" > "),c.firstChild);if(b.className=="fold_link_label")c.insertBefore(document.createTextNode(b.firstChild.data),c.firstChild);else{var d=document.createElement("A");d.setAttribute("href",b.getAttribute("href"));d.setAttribute("target",b.getAttribute("target"));d.navlink=b;d.appendChild(document.createTextNode(b.firstChild.data));c.insertBefore(d,c.firstChild)}b=b.linkUp}};
a.setCurrentLink=function(b,c){if(this.currentLink_)this.currentLink_.id="";b.id="current_link";this.currentLink_=b;if(c){this.openFolds(b);b.scrollIntoView?b.scrollIntoView():window.scrollTo(b.offsetLeft,b.offsetTop)}this.titleNode_.data=b.firstChild.data;for(c=b.linkUp;c&&c.className=="fold_link_label";)c=c.linkUp;this.setAnchor(this.upAnchor,c);for(c=b.linkPrevious;c&&c.className=="fold_link_label";)c=c.linkPrevious;this.setAnchor(this.previousAnchor,c);for(c=b.linkNext;c&&c.className=="fold_link_label";)c=
c.linkNext;for(this.setAnchor(this.nextAnchor,c);this.breadcrumbNode_.firstChild;)this.breadcrumbNode_.removeChild(this.breadcrumbNode_.firstChild);this.createBreadcrumbTrail(b,this.breadcrumbNode_)};a.linkClickedEvent=function(b){for(target=foldLinkNav.getEventTarget(b,window);target&&target.tagName!="A";)target=target.parentNode;foldLinkNav.nextLink_=target;foldLinkNav.nextLinkFocus_=false};
a.navigationAnchorClickedEvent=function(b){for(target=foldLinkNav.getEventTarget(b,foldLinkNav.navigationWindow_);target&&target.tagName!="A";)target=target.parentNode;foldLinkNav.nextLink_=target.navlink;foldLinkNav.nextLinkFocus_=true};a.pathsMatch=function(b,c){for(var d=b.length,e=c.length;d--&&e--;)if(b[d]!="."&&c[e]!="."&&b[d]!=c[e])return false;return true};
a.linksMatch=function(b,c,d){href=b.getAttribute("href");if(d)href=href.split("#")[0];if(href){path2=href.split("/");if(this.pathsMatch(c,path2))return true}return false};a.findLink=function(b){var c=document.getElementsByTagName("A");b=b.split("/");for(var d=0;d<c.length;++d)if(this.linksMatch(c[d],b,false))return c[d];for(d=0;d<c.length;++d)if(this.linksMatch(c[d],b,true))return c[d];return null};
a.setPageLoaded=function(b){if(this.nextLink_!=undefined){this.setCurrentLink(this.nextLink_,this.nextLinkFocus_);this.nextLink_=undefined}else{var c=document.getElementsByTagName("A");b=b.split("/");if(!(this.currentLink_&&this.linksMatch(this.currentLink_,b,false))){for(var d=0;d<c.length;++d)if(this.linksMatch(c[d],b,false)){this.setCurrentLink(c[d],true);return}for(d=0;d<c.length;++d)if(this.linksMatch(c[d],b,true)){this.setCurrentLink(c[d],true);return}}}};
a.initialiseNavigationWindowNode=function(b){for(;b;){if(b.tagName=="A")if(b.id=="nav_prev"){this.previousAnchor=b;b.onclick=this.navigationAnchorClickedEvent}else if(b.id=="nav_up"){this.upAnchor=b;b.onclick=this.navigationAnchorClickedEvent}else{if(b.id=="nav_next"){this.nextAnchor=b;b.onclick=this.navigationAnchorClickedEvent}}else if(b.tagName=="DIV")if(b.id=="nav_breadcrumb"){this.breadcrumbNode_=b;b.onclick=this.navigationAnchorClickedEvent}else if(b.id=="nav_title"){this.titleNode_=document.createTextNode("");
b.appendChild(this.titleNode_)}this.initialiseNavigationWindowNode(b.firstChild);b=b.nextSibling}};a.setNavigationWindow=function(b){this.navigationWindow_=b;this.initialiseNavigationWindowNode(b.document.firstChild)};

