var bannerslide=function(container,ImageOptions,TextOptions){var images=new ImageSlide(container,ImageOptions);var info=new TextSlide(images.getCurInfo(),TextOptions);images.container.grab(info.container);images.addEvent('start',function(slideshow){info.play();info.setInfo(images.getCurInfo());});}
var ImageSlide=new Class({Implements:[Options,Events],options:{autoplay:true,effect:'fade',duration:1000,imagesClass:'images',frameClass:'frame',interval:5000,width:883,height:360},initialize:function(container,options){this.container=$(container);this.setOptions(options);this.imagesContainer=new Element('div',{'class':this.options.imagesClass});this.frameContainer=new Element('div',{'class':this.options.frameClass});this.images=new Array();this.currentImage=0;this.previousImage=0;this.start();this.prepareNav();},start:function(){this.container.getChildren().each(function(e){this.imagesContainer.grab(this.prepareImage(e));},this);this.transitioning=false;this.container.grab(this.frameContainer);this.container.grab(this.imagesContainer);this.images[0].setStyles({opacity:1});this.addEvent('complete',function(){if(this.options.autoplay){this.transition=this.startEffect.delay(this.options.interval,this);};this.transitioning=false;}.bind(this));this.addEvent('start',function(){this.transitioning=true;$clear(this.transition);}.bind(this));if(this.options.autoplay){this.startEffect.delay(this.options.interval,this);};},prepareImage:function(e){var info={};if(e.tagName=='A'){var image=$(e).getFirst('img');info.url=$(e).get('href');}else{var image=$(e);info.url=$empty;};info.title=image.get('alt'),info.description=image.get('title');image.store('info',info);this.prepareEffect(image);this.images.push(image);return image;},prepareEffect:function(e){var options={duration:this.options.duration,onComplete:function(){this.fireEvent('complete');}.bind(this)};switch(this.options.effect){default:e.setStyles({opacity:0,position:'absolute',left:0,top:0});options.property='opacity';e.fx=new Fx.Tween(e,options);break;}},startEffect:function(){if(this.transitioning){return false;};this.currentImage++;if(this.currentImage>=this.images.length){this.currentImage=0;}
var current=this.images[this.currentImage];var previous=this.images[this.previousImage];this.endEffect(previous);switch(this.options.effect){default:current.fx.start(1);this.fireEvent('start');break;}
this.previousImage=this.currentImage;this.fireEvent('next',this);},endEffect:function(e){switch(this.options.effect){default:e.get('tween',{property:'opacity',duration:this.options.duration}).start(0);break;}},getCurImage:function(){return this.images[this.currentImage];},getNextImage:function(){var next=this.currentImage+ 1;if(next>=this.images.length){next=0;}
return this.images[next];},getPrevImage:function(){var prev=this.currentImage- 1;if(prev<=0){prev=this.images.length- 1;}
return this.images[prev];},getCurInfo:function(){return this.getCurImage().retrieve('info');},prepareNav:function(){var next=new Element('a',{'class':'next','text':this.getNextImage().retrieve('info').title,'href':'#','styles':{'z-index':Number(this.frameContainer.getStyle('z-index'))+ 1},'events':{'click':function(e){if(this.transitioning){return false;};this.startEffect();return false;}.bind(this)}});var prev=new Element('a',{'class':'prev','text':this.getPrevImage().retrieve('info').title,'href':'#','styles':{'z-index':Number(this.frameContainer.getStyle('z-index'))+ 1},'events':{'click':function(e){if(this.transitioning){return false;};if(this.currentImage==0){this.currentImage=this.images.length- 2;this.startEffect();return false;};this.currentImage=this.currentImage- 2;this.startEffect();return false;}.bind(this)}});this.container.adopt(next,prev);}});var TextSlide=new Class({Implements:[Options,Events],options:{effect:'vslide',duration:500,transition:'linear',interval:'trigger',width:883,height:360,titleTag:'h5',descriptionTag:'div',containerClass:'info',containerID:$empty()},initialize:function(initialInfo,options){this.container=new Element('div',{'class':this.options.containerClass,'id':this.options.containerID});this.setOptions(options);this.info=initialInfo;this.setHTML();this.setInfo(initialInfo);this.displayInfo();this.prepareEffect();this.addEvent('start',function(){this.activateLink();}.bind(this));this.addEvent('display',function(){this.activateLink();}.bind(this));},play:function(){this.resetPosition();if(this.options.interval=='trigger'){this.endEffect(this.startEffect);}else{this.endEffect.periodical(this.options.interval,this,this.startEffect);}},resetPosition:function(){this.originalPosition=this.container.getPosition(this.container.getParent());this.originalSize=this.container.getSize();},prepareEffect:function(){var options={transition:this.options.transition,duration:this.options.duration,};switch(this.options.effect){case'hslide':options.property='left';this.fx=new Fx.Tween(this.container,options);break;default:options.property='top';this.fx=new Fx.Tween(this.container,options);break;}},startEffect:function(onComplete){this.displayInfo();switch(this.options.effect){case'hslide':break;default:this.fx.set('top',this.originalPosition.y+ this.originalSize.y);if($type(onComplete)=='function'){this.fx.onComplete=function(){this.fireEvent('display');eval(onComplete);}.bind(this);}else{this.fx.onComplete=function(){this.fireEvent('display');}.bind(this);}
this.fx.start(this.originalPosition.y);break;}},endEffect:function(onComplete){switch(this.options.effect){case'hslide':break;default:this.fx.set('top',this.originalPosition.y);if($type(onComplete)=='function'){this.fx.onComplete=onComplete.bind(this);}else{this.fx.onComplete=$empty;}
this.fx.start(this.originalPosition.y+ this.originalSize.y);break;}},changeContents:function(contents){},setHTML:function(html){if($chk(html)){}else{this.html={};this.html.title=new Element(this.options.titleTag,{'class':'title'});this.html.description=new Element(this.options.descriptionTag,{'class':'description'});this.container.grab(this.html.title);this.container.grab(this.html.description);}},setInfo:function(info){if(!$defined(info)){var info=this.info;}else{this.info=info;}},displayInfo:function(){var info=this.info;this.html.title.empty();this.html.description.empty();if($chk(info.url)){var title=new Element('a',{'href':info.url,'text':info.title});this.html.title.grab(title);this.html.title.store('url',info.url);}else{var title=info.title;this.html.title.set('text',info.title);}
this.html.description.set('text',info.description);this.verticalCenter.delay(1,this);},verticalCenter:function(){var tCoordinates=this.html.title.getCoordinates(this.container);var dCoordinates=this.html.description.getCoordinates(this.container);var containerSize=this.container.getSize();var tCenterMargin=(containerSize.y/2)-(tCoordinates.height/2);var dCenterMargin=(containerSize.y/2)-(dCoordinates.height/2);this.html.title.setStyle('margin-top',tCenterMargin);this.html.description.setStyle('margin-top',dCenterMargin- 1);this.fireEvent('start');},activateLink:function(){var cPosition=this.container.getPosition(this.container.getParent());var cParent=this.container.getParent();var tCoordinates=this.html.title.getCoordinates(cParent);if($defined(this.html.currentLink)){this.html.currentLink.dispose();}
this.html.currentLink=new Element('a',{'href':this.html.title.retrieve('url'),'text':' ','target':'_blank','styles':{'display':'block','position':'absolute','z-index':Number(this.container.getStyle('z-index'))+ 1000,'height':this.html.title.getSize().y,'width':this.html.title.getSize().x,'top':tCoordinates.top,'left':tCoordinates.left,}});cParent.grab(this.html.currentLink);}});
