var NAV={titleClass:"title",sectionClass:"section",containerClass:"container",activeClass:"active",loadingClass:"loading",previewUrlPrefix:"",previewUrlSuffix:"-preview.html",duration:8,frame:0,frameRate:1000/24,tween:TWEEN.easeOutSine,init:function(options){for(var option in options)if(options.hasOwnProperty(option)){NAV[option]=options[option];}
NAV.titles=DOM.getElementsByClass(NAV.titleClass);NAV.sections=DOM.getElementsByClass(NAV.sectionClass);NAV.containers=DOM.getElementsByClass(NAV.containerClass);for(var i=0;i<NAV.titles.length;i+=1){NAV.addClick(NAV.titles[i]);}},addClick:function(element){element.onclick=function(){NAV.fetch(this);};},removeClick:function(element){element.onclick=null;},activate:function(sectionNumber){var title;var section;var container;NAV.heights=[];NAV.deltas=[];for(var i=0;i<NAV.containers.length;i+=1){title=NAV.titles[i];section=NAV.sections[i];container=NAV.containers[i];NAV.heights.push(container.offsetHeight);if(i===sectionNumber){if(section.offsetHeight===container.offsetHeight){DOM.removeClass(title,NAV.activeClass);NAV.deltas.push(-container.offsetHeight);}else{DOM.addClass(title,NAV.activeClass);NAV.deltas.push(section.offsetHeight-container.offsetHeight);}}else{DOM.removeClass(title,NAV.activeClass);NAV.deltas.push(-container.offsetHeight);}}
NAV.interval=setInterval(NAV.update,NAV.frameRate);},update:function(){if(NAV.frame<=NAV.duration){for(var i=0;i<NAV.containers.length;i+=1){NAV.containers[i].style.height=NAV.tween(NAV.frame,NAV.heights[i],NAV.deltas[i],NAV.duration)+"px";}}else{NAV.frame=0;for(var i=0;i<NAV.containers.length;i+=1){NAV.addClick(NAV.titles[i]);}
clearInterval(NAV.interval);}
NAV.frame+=1;},fetch:function(title){var url=NAV.previewUrlPrefix+title.parentNode.className+NAV.previewUrlSuffix;var sectionNumber=NAV.getSectionNumber(title);for(var i=0;i<NAV.containers.length;i+=1){NAV.removeClick(NAV.titles[i]);}
function sectionLoaded(sectionHTML){NAV.sections[sectionNumber].innerHTML=sectionHTML;if(NAV.callback){NAV.callback();}
NAV.activate(sectionNumber);DOM.removeClass(title,NAV.loadingClass);}
if(NAV.sections[sectionNumber].innerHTML===""){DOM.addClass(title,NAV.loadingClass);HTTP.getText(url,sectionLoaded);}else{NAV.activate(sectionNumber);}},getSectionNumber:function(title){for(var i=0;i<NAV.titles.length;i+=1){if(title===NAV.titles[i]){return i;}}}};