/*--------------------------------------------------------------------------*
 * 
 * Copyright (C) 2008-2010 Brand Labs LLC
 * 
 * Sequential Banner
 * 
 * Version 1.4.1
 * 
 *--------------------------------------------------------------------------*/
var EmptyBanner=Class.create({getElement:function(){return new Element('div');}});var PlainBanner=Class.create({DEFAULT_OPTIONS:{preLoadImage:true},initialize:function(aa){this.imageSrc=aa;this.imageElement=null;this.options=$H(this.DEFAULT_OPTIONS).merge($H(arguments[1]||{}));if(this.options.get('preLoadImage')){this.createImageElement();}},createImageElement:function(){this.imageElement=new Element('img',{src:this.imageSrc, 'class': 'alphafix'});},getElement:function(){if(this.imageElement==null){this.createImageElement();}
return this.imageElement;}});var Banner=Class.create(PlainBanner,{initialize:function($super,ca,da){$super(da,arguments[3]||{});this.link=ca;},getElement:function($super){var fa=null;fa=new Element('a',{href:this.link});fa.insert($super());return fa;}});var ImageMapBanner=Class.create(PlainBanner,{initialize:function($super,ha,ia){$super(ha,arguments[3]||{});this.useMap=ia;},getElement:function($super){var ka=null;ka=$super();ka.writeAttribute('usemap',this.useMap);return ka;}});var SingleEventBanner=Class.create(PlainBanner,{initialize:function($super,ma,na,oa){$super(ma,arguments[4]||{});this.eventName=na;this.handler=oa;},getElement:function($super){var qa=null;qa=$super();qa.observe(this.eventName,this.handler.bind(this));return qa;}});var AnchorBanner=Class.create(EmptyBanner,{initialize:function(ra,id,sa,ta){this.link=ra;this.id=id;this.className=sa;this.content=ta;this.element=new Element('a',{href:this.link,id:this.id});this.element.addClassName(this.className);this.element.insert(this.content);},getElement:function(){return this.element;}});var SequentialBanner=Class.create({DEFAULT_OPTIONS:{immediatelyExecute:false},initialize:function(ua,va,wa){this.listeners=new Array();this.element=null;this.options=$H(this.DEFAULT_OPTIONS).merge($H(arguments[3]||{}));this.banners=ua;this.delay=wa;if(this.options.get('immediatelyExecute')){this.currentPosition=-1;}
else{this.currentPosition=0;}
Event.observe(window,'load',this.load.bind(this,va));},addListener:function(xa){if(Object.isFunction(xa)){this.listeners.push(xa);}},load:function(ya){try{this.element=$(ya);this.start();if(this.options.get('immediatelyExecute')){this.execute();}}
catch(e){}},start:function(){if(this.pe!=null){this.stop();}
this.pe=new PeriodicalExecuter(this.execute.bind(this),this.delay);},stop:function(){if(this.pe!=null){this.pe.stop();this.pe=null;}},execute:function(){var za=null;var Aa=null;try{Aa=$A(arguments);if(Aa.size()>0&&Object.isNumber(Aa.first())){za=Aa.first();this.currentPosition=za;this.stop();this.start();}
else{this.currentPosition++;this.currentPosition=this.currentPosition%this.banners.size();}
this.updateElement();this.listeners.each(function(Ba){try{Ba(this.currentPosition);}
catch(e){}},this);}
catch(e){}},updateElement:function(){this.element.update(this.banners[this.currentPosition].getElement());}});var RandomBanner=Class.create(SequentialBanner,{initialize:function(Ca,Da){this.listeners=new Array();this.currentPosition=0;this.element=null;this.banners=Ca;Event.observe(window,'load',this.load.bind(this,Da));},load:function(Ea){this.element=$(Ea);this.currentPosition=Math.floor(Math.random()*this.banners.size());this.execute();}});var RandomSingleBanner=RandomBanner;var RandomMultipleBanner=Class.create(SequentialBanner,{initialize:function($super,Ga,Ha,Ia){$super(Ga,Ha,Ia,arguments[4]||{});},updateToRandomPosition:function(){var Ja=this.currentPosition;var Ka=0;if(this.banners.size()<2){this.currentPosition=-1;return;}
while(true){this.currentPosition=Math.floor(Math.random()*this.banners.size());if(this.currentPosition!=Ja||Ka>=10){break;}
Ka++;}
this.currentPosition=this.currentPosition-1;},load:function($super,Ka){this.updateToRandomPosition();this.currentPosition++;$super(Ka);},execute:function($super){this.updateToRandomPosition();$super();}});var MethodsTransitionBanner={TOP_Z_INDEX:1001,BOTTOM_Z_INDEX:1000,initialize:function($super,Na,Oa,Pa){$super(Na,Oa,Pa,arguments[4]||{});this.lastTransitionElement=null;},updateElement:function(){var Qa=false;var Ra=null;var Sa=null;try{Qa=this.element.empty();Ra=new Element('div');Ra.setStyle({'position':'absolute','display':'none','zIndex':this.TOP_Z_INDEX,'overflow':'hidden'});Ra.insert(this.banners[this.currentPosition].getElement());this.element.insert(Ra);Ra.clonePosition(this.element,{setTop:false,setLeft:false});if(this.lastTransitionElement==null){if(Qa){this.lastTransitionElement=new Element('div');this.element.insert(this.lastTransitionElement);}
else{this.lastTransitionElement=this.element.down();}
if(this.lastTransitionElement!=null){var Ta=new Element('div');Ta.setStyle({'position':'absolute','zIndex':this.BOTTOM_Z_INDEX,'overflow':'hidden','width':Ra.getWidth()+'px','height':Ra.getHeight()+'px'});this.lastTransitionElement.wrap(Ta);this.lastTransitionElement=Ta;}}
else{this.lastTransitionElement.setStyle({'zIndex':this.BOTTOM_Z_INDEX});}
Sa=this.lastTransitionElement;this.lastTransitionElement=Ra;this.show(Ra,Sa);}
catch(e){}},show:function(Ua,Va){Ua.show();if(Va!=null){Va.hide();Va.remove();}}};var TransitionSequentialBanner=Class.create(SequentialBanner,MethodsTransitionBanner);var TransitionRandomMultipleBanner=Class.create(RandomMultipleBanner,MethodsTransitionBanner);var MethodsFadeTransitionSequentialBanner={DELAY:1.5,show:function(Wa,Xa){Effect.Appear(Wa,{duration:this.DELAY,queue:'end',afterFinish:function(){if(Xa!=null){Xa.hide();Xa.remove();}}});}};var FadeTransitionSequentialBanner=Class.create(TransitionSequentialBanner,MethodsFadeTransitionSequentialBanner);var FadeSequentialBanner=FadeTransitionSequentialBanner;var FadeTransitionRandomMultipleBanner=Class.create(TransitionRandomMultipleBanner,MethodsFadeTransitionSequentialBanner);
