var kamFader=new Class({Implements:[Options,Events],options:{transitionPeriod:1000,autoFadePeriod:false},pointer:0,prevPointer:0,relativePointer:0,prevRelativePointer:0,introLis:0,rootElement:null,fxRunning:false,items:new Array(),fadeTimer:null,autoFadeDelay:0,initialize:function(a,c){this.rootElement=$(a);if(this.rootElement){this.setOptions(c);var b=this;b.items=new Array();b.fxRunning=false;var d=null;this.rootElement.getElements("li").each(function(e){if(!e.getParent("li")){var g=false;if(e.hasClass("intro")){g=true;b.introLis++}var f=new Hash({liEl:e,intro:g,displayed:false});b.items[b.items.length]=f;e.setStyle("position","absolute");if(b.items.length==1){if(b.items[0].get("liEl").getElement("img")){d=b.items[0].get("liEl").getElement("img").getSize()}else{if(b.items[0].get("liEl").getElement("div")){d=b.items[0].get("liEl").getElement("div").getSize()}}}else{if(b.items.length>1){var h=$(e.getElement("img"));if(h){h.setStyles({height:d.y+"px",width:d.x+"px"})}e.setStyles({opacity:"0","margin-left":"0px","margin-top":"0px"})}}}});this.rootElement.getElement("ul").setStyles({height:d.y+"px",width:d.x+"px"});if(this.options.autoFadePeriod){this.autoFade(this.options.autoFadePeriod)}}},fadeTo:function(c){var d=false;var b=false;var a=this;if(a.fxRunning==false&&c!=this.prevPointer){this.pointer=c;this.relativePointer=c-this.introLis;this.items[this.prevPointer].set("displayed",true);var f=new Fx.Morph(this.items[this.prevPointer].get("liEl"),{duration:this.options.transitionPeriod,transition:"quad:in",onStart:function(){d=true;a.fxRunning=true;a.fireEvent("fadeStart",a)},onComplete:function(){d=false;if(!b){a.fxRunning=false;a.fireEvent("fadeComplete",a)}}});var e=new Fx.Morph(this.items[this.pointer].get("liEl"),{duration:this.options.transitionPeriod,transition:"quad:in",onStart:function(){b=true;a.fxRunning=true},onComplete:function(){b=false;if(!d){a.fxRunning=false;a.fireEvent("fadeComplete",a)}}});f.start({opacity:[1,0]});e.start({opacity:[0,1]});this.prevPointer=this.pointer;this.prevRelativePointer=this.relativePointer}},next:function(a){if(!this.fxRunning){this.pointer++;if(this.pointer>this.items.length-1){(a)?this.pointer=0:this.pointer--}this.resetAutoFade();this.introHandler();this.fadeTo(this.pointer)}},prev:function(a){if(!this.fxRunning){this.pointer--;if(this.pointer<0){(a)?this.pointer=this.items.length-1:this.pointer++}this.resetAutoFade();this.introHandler(true);this.fadeTo(this.pointer)}},resetAutoFade:function(){if(this.fadeTimer){this.fadeTimer=$clear(this.fadeTimer);this.autoFade(this.autoFadeDelay)}},pauseFade:function(){if(this.fadeTimer){this.fadeTimer=$clear(this.fadeTimer)}},resumeFade:function(){this.next(true);this.autoFade(this.autoFadeDelay)},introHandler:function(a){if(this.items[this.pointer].get("intro")==true&&this.items[this.pointer].get("displayed")==true){if(!a){this.pointer++;(this.pointer>this.items.length-1)?this.pointer=0:this.pointer==this.pointer}else{this.pointer=this.items.length-1}}},autoFade:function(b){this.autoFadeDelay=b;var a=this;var c=function(){if(!a.fxRunning){a.pointer++;(a.pointer>a.items.length-1)?a.pointer=0:a.pointer==a.pointer;a.introHandler();a.fadeTo(a.pointer)}};this.fadeTimer=c.periodical(b)}});
