
if(!perpetuacms){var perpetuacms={};}
perpetuacms.eventbox=Class.create({initialize:function(element,settings){var elementIsID=1;this.isPaused=false;this.isTransitioning=false;if(Object.isElement(element)){elementIsID=0;}
element=$(element);var DefaultSettings={delay:3000,order:"sequential",type:"fade",duration:0.50,showEmptyDescriptions:false,pauseOnMouseOver:true,effectDelay:0,setAsBackground:false,transitionDescriptions:false,startPaused:false,firstSlide:1};if(!settings){settings={};}
this.settings=Object.extend(Object.extend({},DefaultSettings),settings);this.onBeforeLoaded=this.settings.onBeforeLoaded||function(){};this.onLoaded=this.settings.onLoaded||function(){};this.onBeforePause=this.settings.onBeforePause||function(){};this.onPause=this.settings.onPause||function(){};this.onBeforeResume=this.settings.onBeforeResume||function(){};this.onResume=this.settings.onResume||function(){};this.onBeforeTransition=this.settings.onBeforeTransition||function(){};this.onTransition=this.settings.onTransition||function(){};this.onBeforeLoaded();if(this.settings.delay<100){this.settings.delay=this.settings.delay/0.001;}
if(elementIsID==1){this.objWindow=$(element.identify()+"Window").select("div");this.objNavigation=$(element.identify()+"Navigation").select("li");this.objDescriptions=$(element.identify()+"Descriptions").select("div");if($(element.identify()+"Container")){this.objContainer=$(element.identify()+"Container");}
if($(element.identify()+"Anchor")){this.objAnchor=$(element.identify()+"Anchor");}
this.windowDimensions=$(element.identify()+"Window").getDimensions();}else{this.base_class=element.className;this.objWindow=element.down("."+this.base_class+"Window").select("div");this.objNavigation=element.down("."+this.base_class+"Navigation").select("li");this.objDescriptions=element.down("."+this.base_class+"Descriptions").select("div");if(element.down("."+this.base_class+"Container")){this.objContainer=element.down("."+this.base_class+"Container");}
if(element.down("."+this.base_class+"Anchor")){this.objAnchor=element.down("."+this.base_class+"Anchor");}
if(element.down("."+this.base_class+"Play")){this.objPlay=element.down("."+this.base_class+"Play");}
if(element.down("."+this.base_class+"Stop")){this.objStop=element.down("."+this.base_class+"Stop");}
this.windowDimensions=element.down("."+this.base_class+"Window").getDimensions();}
this.previous_content=0;this.active_content=-1;this.active_content=this.getNextImage(!isNaN(this.settings.firstSlide)?parseInt(this.settings.firstSlide)-1:this.objWindow.size());this.objWindow.invoke("hide").invoke("absolutize").invoke("setStyle",{top:0,left:0,width:this.windowDimensions.width+"px",height:this.windowDimensions.height+"px"});this.objDescriptions.invoke("hide").invoke("setStyle",{top:0,left:0});if(this.settings.transitionDescriptions){var description_container=this.objDescriptions.first().up("div");var description_width=description_container.getWidth()-parseInt(this.objDescriptions.first().getStyle("padding-left"))-parseInt(this.objDescriptions.first().getStyle("padding-right"))+"px";var description_height=description_container.getHeight()-parseInt(this.objDescriptions.first().getStyle("padding-top"))-parseInt(this.objDescriptions.first().getStyle("padding-bottom"))+"px";this.objDescriptions.invoke("absolutize").invoke("setStyle",{width:description_width,height:description_height});}
this.objNavigation.each(function(n,index){n.removeClassName("on");this.toggleNavigation(index,'on');}.bind(this));this.objWindow[this.active_content].show();this.objNavigation[this.active_content].addClassName("on");if(!this.objDescriptions[this.active_content].empty()||this.settings['showEmptyDescriptions']){this.objDescriptions[this.active_content].show();}
if(this.objAnchor){if(this.objWindow[this.active_content].down("a")){this.objAnchor.show().writeAttribute("href",this.objWindow[this.active_content].down("a").readAttribute("href"));}else{this.objAnchor.hide().writeAttribute("href","");}}
if(this.settings['setAsBackground']){this.objWindow[this.active_content].setStyle({backgroundImage:"url("+this.objWindow[this.active_content].down("img").hide().readAttribute("src")+")"});if(this.objAnchor){this.objAnchor.setStyle({width:this.windowDimensions.width+"px",height:this.windowDimensions.height+"px"});}
Event.observe(window,"resize",function(event){this.windowDimensions=element.down("."+this.base_class+"Window").getDimensions();this.objWindow.invoke("setStyle",{width:this.windowDimensions.width+"px",height:this.windowDimensions.height+"px"});if(this.objAnchor){this.objAnchor.setStyle({width:this.windowDimensions.width+"px",height:this.windowDimensions.height+"px"});}}.bind(this));}
this.toggleNavigation(this.active_content,'off');if(this.settings['type']!=''&&this.settings['type']!='static'&&!this.isPaused&&!this.isTransitioning){this.interval=setTimeout(this.doTransition.bind(this,-1),this.settings['delay']);}
if(this.settings.pauseOnMouseOver&&this.interval){this.addObservers();}
if(this.settings.startPaused){this.pause();}
if(this.objPlay){this.objPlay.observe("click",function(event){event.stop();this.resume();}.bind(this));}
if(this.objStop){this.objStop.observe("click",function(event){event.stop();this.pause();}.bind(this));}
this.onLoaded();},addObservers:function(){var mouse_event_element=this.objContainer||element;this.boundPause=this._pause.bind(this);this.boundResume=this._resume.bind(this);mouse_event_element.observe("mouseover",this.boundPause);mouse_event_element.observe("mouseout",this.boundResume);},cancelObservers:function(){var mouse_event_element=this.objContainer||element;mouse_event_element.stopObserving("mouseover",this.boundPause);mouse_event_element.stopObserving("mouseout",this.boundResume);},afterTransition:function(){this.isTransitioning=false;this.toggleNavigation('all','on');if(this.settings['type']!=''&&this.settings['type']!='static'&&!this.isPaused){this.interval=setTimeout(this.doTransition.bind(this,-1),this.settings['delay']);}
this.onTransition();},doTransition:function(nextImage){this.onBeforeTransition();clearTimeout(this.interval);this.isTransitioning=true;this.toggleNavigation('all','off');nextImage=this.getNextImage(nextImage);if(this.previous_content!=this.active_content&&this.previous_content!=nextImage){this.objWindow[this.previous_content].hide();this.objWindow[this.previous_content].setStyle({left:0});this.objDescriptions[this.previous_content].hide();}
this.objWindow[nextImage].show();if(!this.objDescriptions[nextImage].empty()||this.settings['showEmptyDescriptions']){this.objDescriptions[nextImage].show();}
if(!this.settings.transitionDescriptions){this.objDescriptions[this.active_content].hide();}
if(this.objAnchor){if(this.objWindow[nextImage].down("a")){this.objAnchor.show().writeAttribute("href",this.objWindow[nextImage].down("a").readAttribute("href"));}else{this.objAnchor.hide().writeAttribute("href","");}}
if(this.settings['setAsBackground']){this.objWindow[nextImage].setStyle({backgroundImage:"url("+this.objWindow[nextImage].down("img").hide().readAttribute("src")+")"});}
switch(this.settings['type']){case'slide_horizontal':this.doTransition_slideHorizontal(nextImage);break;case'slide_vertical':this.doTransition_slideVertical(nextImage);break;case'fade':this.doTransition_fade(nextImage);break;case'fade_delay':this.doTransition_fadeDelay(nextImage);break;default:this.objWindow[this.active_content].hide();this.objDescriptions[this.active_content].hide();this.afterTransition();break;}
this.objNavigation[this.active_content].removeClassName("on");this.objNavigation[nextImage].addClassName("on");this.previous_content=this.active_content
this.active_content=nextImage;},doTransition_slideHorizontal:function(nextImage){if(nextImage>this.active_content){this.objWindow[nextImage].setStyle({left:(this.windowDimensions.width-2)+"px"});new Effect.Move(this.objWindow[nextImage],{x:0,y:0,duration:this.settings['duration'],mode:'absolute',afterFinish:this.afterTransition.bind(this)});new Effect.Move(this.objWindow[this.active_content],{x:-this.windowDimensions.width,y:0,duration:this.settings['duration'],mode:"absolute"});if(this.settings.transitionDescriptions){if(!this.objDescriptions[this.active_content].empty()||this.settings['showEmptyDescriptions']){new Effect.Move(this.objDescriptions[this.active_content],{x:-this.windowDimensions.width,y:0,duration:this.settings['duration'],mode:"absolute"});}
if(!this.objDescriptions[nextImage].empty()||this.settings['showEmptyDescriptions']){this.objDescriptions[nextImage].setStyle({left:(this.windowDimensions.width-2)+"px"});new Effect.Move(this.objDescriptions[nextImage],{x:0,y:0,duration:this.settings['duration'],mode:'absolute'});}}}else{this.objWindow[nextImage].setStyle({left:(-this.windowDimensions.width)+'px'});new Effect.Move(this.objWindow[nextImage],{x:0,y:0,duration:this.settings['duration'],mode:"absolute",afterFinish:this.afterTransition.bind(this)});new Effect.Move(this.objWindow[this.active_content],{x:this.windowDimensions.width,y:0,duration:this.settings['duration'],mode:"absolute"});if(this.settings.transitionDescriptions){if(!this.objDescriptions[this.active_content].empty()||this.settings['showEmptyDescriptions']){new Effect.Move(this.objDescriptions[this.active_content],{x:this.windowDimensions.width,y:0,duration:this.settings['duration'],mode:"absolute"});}
if(!this.objDescriptions[nextImage].empty()||this.settings['showEmptyDescriptions']){this.objDescriptions[nextImage].setStyle({left:(-this.windowDimensions.width)+'px'});new Effect.Move(this.objDescriptions[nextImage],{x:0,y:0,duration:this.settings['duration'],mode:"absolute"});}}}},doTransition_slideVertical:function(nextImage){if(nextImage>this.active_content){this.objWindow[nextImage].setStyle({top:(this.windowDimensions.height)+"px"});new Effect.Move(this.objWindow[nextImage],{x:0,y:0,duration:this.settings['duration'],mode:"absolute",afterFinish:this.afterTransition.bind(this)});new Effect.Move(this.objWindow[this.active_content],{x:0,y:-this.windowDimensions.height,duration:this.settings['duration'],mode:"absolute"});if(this.settings.transitionDescriptions){if(!this.objDescriptions[this.active_content].empty()||this.settings['showEmptyDescriptions']){new Effect.Move(this.objDescriptions[this.active_content],{x:0,y:-this.windowDimensions.height,duration:this.settings['duration'],mode:"absolute"});}
if(!this.objDescriptions[nextImage].empty()||this.settings['showEmptyDescriptions']){this.objDescriptions[nextImage].setStyle({top:(this.windowDimensions.height)+"px"});new Effect.Move(this.objDescriptions[nextImage],{x:0,y:0,duration:this.settings['duration'],mode:"absolute"});}}}else{this.objWindow[nextImage].setStyle({top:-(this.windowDimensions.height)+'px'});new Effect.Move(this.objWindow[nextImage],{x:0,y:0,duration:this.settings['duration'],mode:"absolute",afterFinish:this.afterTransition.bind(this)});new Effect.Move(this.objWindow[this.active_content],{x:0,y:this.windowDimensions.height,duration:this.settings['duration'],mode:"absolute"});if(this.settings.transitionDescriptions){if(!this.objDescriptions[this.active_content].empty()||this.settings['showEmptyDescriptions']){new Effect.Move(this.objDescriptions[this.active_content],{x:0,y:this.windowDimensions.height,duration:this.settings['duration'],mode:"absolute"});}
if(!this.objDescriptions[nextImage].empty()||this.settings['showEmptyDescriptions']){this.objDescriptions[nextImage].setStyle({top:-(this.windowDimensions.height)+'px'});new Effect.Move(this.objDescriptions[nextImage],{x:0,y:0,duration:this.settings['duration'],mode:"absolute"});}}}},doTransition_fade:function(nextImage){this.objWindow[nextImage].style.zIndex=1;this.objWindow[this.active_content].style.zIndex=0;this.objWindow[nextImage].hide();this.objWindow[nextImage].appear({duration:this.settings['duration'],afterFinish:this.afterTransition.bind(this)});if(this.settings.transitionDescriptions){if(!this.objDescriptions[this.active_content].empty()||this.settings['showEmptyDescriptions']){var description_opacity=this.objDescriptions[this.active_content].getStyle("opacity");this.objDescriptions[this.active_content].style.zIndex=0;this.objDescriptions[this.active_content].fade({duration:this.settings['duration'],from:description_opacity});}
if(!this.objDescriptions[nextImage].empty()||this.settings['showEmptyDescriptions']){var description_opacity=this.objDescriptions[nextImage].getStyle("opacity");this.objDescriptions[nextImage].style.zIndex=1;this.objDescriptions[nextImage].hide();this.objDescriptions[nextImage].appear({duration:this.settings['duration'],to:description_opacity});}}},doTransition_fadeDelay:function(nextImage){this.objWindow[nextImage].style.zIndex=1;this.objWindow[this.active_content].style.zIndex=0;this.objWindow[nextImage].hide();this.objWindow[this.active_content].fade({duration:this.settings['duration'],afterFinish:function(){if(!this.isPaused){this.cancelObservers();}
new PeriodicalExecuter(function(pe){this.objWindow[nextImage].appear({duration:this.settings['duration'],afterFinish:function(){this.afterTransition();if(!this.isPaused){this.addObservers();}}.bind(this)});pe.stop();}.bind(this),this.settings['effectDelay']);}.bind(this)});if(this.settings.transitionDescriptions){var description_opacity=0.8;if(!this.objDescriptions[this.active_content].empty()||this.settings['showEmptyDescriptions']){description_opacity=this.objDescriptions[this.active_content].getStyle("opacity");this.objDescriptions[this.active_content].fade({duration:this.settings['duration'],from:description_opacity,to:0,afterFinish:function(){this.objDescriptions[this.active_content].hide().setStyle({opacity:description_opacity});}.bind(this)});}
if(!this.objDescriptions[nextImage].empty()||this.settings['showEmptyDescriptions']){description_opacity=this.objDescriptions[nextImage].getStyle("opacity");this.objDescriptions[nextImage].hide();new PeriodicalExecuter(function(pe){this.objDescriptions[nextImage].appear({duration:this.settings['duration'],from:0,to:description_opacity});pe.stop();}.bind(this),this.settings['effectDelay']+this.settings['duration']);}}},getNextImage:function(nextImage){switch(this.settings['order']){case'sequential':if(nextImage<0){nextImage=this.active_content+1;}
if((nextImage+1)>this.objWindow.size()){nextImage=0;}
break;case'random':nextImage=this.getRandom();break;};return nextImage;},getRandom:function(){var random_number=Math.floor(Math.random()*this.objWindow.size());if(random_number==this.active_content){return this.getRandom();}else{return random_number;}},_pause:function(){clearTimeout(this.interval);this.isPaused=true;},_resume:function(){clearTimeout(this.interval);if(!this.isTransitioning){this.interval=setTimeout(this.doTransition.bind(this,-1),this.settings['delay']);}
this.isPaused=false;},pause:function(){this.onBeforePause();this._pause();this.cancelObservers();this.onPause();},resume:function(){this.onBeforeResume();this._resume();this.addObservers();this.onResume();},toggleNavigation:function(buttonNumber,state){if(state==undefined){state='on';}
if(buttonNumber==undefined){buttonNumber='all';}
if(buttonNumber=='all'){this.objWindow.each(function(w,index){if(index!=this.active_content){this.toggleNavigation(index,state);}}.bind(this));}else{if(state=='off'){this.objNavigation[buttonNumber].setStyle({cursor:"default"}).stopObserving("click");}else{this.objNavigation[buttonNumber].setStyle({cursor:"pointer"}).stopObserving("click").observe('click',function(event){this.doTransition(buttonNumber);}.bind(this));}}}});