
var ACCORDION=function(){var accordions=[];var defaults={duration:6,framerate:40,eventType:"click",titleClass:"title",sectionClass:"section",containerClass:"container",activeClass:"active",tween:TWEEN.easeOutSine};var interval;var sectionNumber;function addEvent(element,type,callback){function handler(){callback(this);}
if(type==="click"){element.onclick=handler;}else if(type==="hover"){element.onmouseover=handler;}}
function removeEvents(element){element.onclick=null;element.onmouseover=null;}
function getSectionNumber(accordion,title){for(var i=0;i<accordion.titles.length;i+=1){if(title===accordion.titles[i]){return i;}}}
function initAccordion(accordion){accordion.frame=0;for(var i=0;i<accordion.titles.length;i+=1){addEvent(accordion.titles[i],accordion.eventType,activate);}
accordion.active=false;}
function getAccordion(titleElement){var accordion;for(var i=0;i<accordions.length;i+=1){accordion=accordions[i];for(var n=0;n<accordion.titles.length;n+=1){if(titleElement===accordion.titles[n]){return accordion;}}}}
function activate(titleElement){var title;var section;var container;var activeClass;var accordion=getAccordion(titleElement);sectionNumber=getSectionNumber(accordion,titleElement);accordion.heights=[];accordion.deltas=[];for(var i=0;i<accordion.containers.length;i+=1){title=accordion.titles[i];section=accordion.sections[i];container=accordion.containers[i];activeClass=accordion.activeClass;accordion.heights.push(container.offsetHeight);removeEvents(title);if(i===sectionNumber){if(section.offsetHeight===container.offsetHeight){DOM.removeClass(title,activeClass);accordion.deltas.push(-container.offsetHeight);}else{DOM.addClass(title,activeClass);accordion.deltas.push(section.offsetHeight-container.offsetHeight);}}else{DOM.removeClass(title,activeClass);accordion.deltas.push(-container.offsetHeight);}}
accordion.active=true;}
function update(){var accordion;for(var i=0;i<accordions.length;i+=1){accordion=accordions[i];if(accordion.active){if(accordion.frame<=accordion.duration){for(var n=0;n<accordion.containers.length;n+=1){accordion.containers[n].style.height=accordion.tween(accordion.frame,accordion.heights[n],accordion.deltas[n],accordion.duration)+"px";}
accordion.frame+=1;}else{initAccordion(accordion);if(accordion.callback){accordion.callback(sectionNumber);}}}}}
return{init:function(framerate){interval=setInterval(update,framerate||defaults.framerate);},make:function(opts){var accordion={};accordion.titles=DOM.getElementsByClass(opts.titleClass||defaults.titleClass,opts.element);accordion.sections=DOM.getElementsByClass(opts.sectionClass||defaults.sectionClass,opts.element);accordion.containers=DOM.getElementsByClass(opts.containerClass||defaults.containerClass,opts.element);accordion.duration=opts.duration||defaults.duration;accordion.eventType=opts.eventType||defaults.eventType;accordion.tween=opts.tween||defaults.tween;accordion.activeClass=opts.activeClass||defaults.activeClass;accordion.callback=opts.callback;accordions.push(accordion);initAccordion(accordion);}};}();
