//	Controlled Slideshow
//	Copyright 2011 - Adnet Communications
//	Author: James Clarke
//	Requires: Mootools 1.3.2 library
//	Rev 1.0


//		function Slideshow("Slideshow element id", "Navigation ul id"){

		function Slideshow(class1){

			this.init(class1,arguments[1]);
			return this;	
		}
		
		Slideshow.prototype.init = function(class1,params){
			
				this.anim = true;
				this.index = 0;
				this.lastIndex = -1;
				this.interval = 0;
				
			
				this.params = {};
				this.params.slide = false;
				if(params['slide']){
					this.params.slide = params['slide'];
				}

				
				this.nav;
				if(params['nav']){
					this.nav = $(params['nav']);
				}
				
				
				this.slides = $$(class1);
				this.slides2 = [];
				
				if(params['panel2']){
					this.slides2 = $$(params['panel2']);
				}
				
				this.slideFx = new Array;
				this.slide2Fx = new Array;
				this.controls = new Array;
				
				var li;
				for(var i=0, il=this.slides.length; i<il; i++){
					if(this.params.slide){				
						this.slideFx.push(new Fx.Morph(this.slides[i],{duration:500,wait:false}).set({'opacity':0, 'margin-left':1000}));	
					}else{
						this.slideFx.push(new Fx.Morph(this.slides[i],{duration:500,wait:false}).set({'opacity':0}));	
					}
					if(this.slides2.length>0){
						this.slide2Fx.push(new Fx.Morph(this.slides2[i],{duration:500,wait:false}).set({'opacity':0}));	
					}
					
					if(params['nav']){
						li = new Element('li');
						li.set('text',i+1);
						li.inject(params['nav']);
						this.controls.push(li);
					}
				}
				
				
				
				for(var i=0, il=this.controls.length; i<il; i++){
						
						var pThis = this;
						with({i:i}){
							this.controls[i].addEvent('click',function(e){		
																   
								var ev = new Event(e).stop();
								pThis.setFrame(i);	
						
							});	
						}
				
				}
				
				this.nextFrame();	
		}

		Slideshow.prototype.setFrame = function(i){
			this.anim = false;
		 	this.index = i;
			this.nextFrame();
		}
		Slideshow.prototype.checkAnim = function(){
			if(this.anim == true){//is the animation flag still set or has user taken control?
				this.nextFrame();
			}
		}
		Slideshow.prototype.nextFrame = function(){
		//navigation
				this.controls.each(function(item){
					item.removeClass('activeTab');
				});
				this.controls[this.index].addClass('activeTab');
		
		//animation
				if(this.params.slide){
					this.slideFx[this.index].start({'opacity':1, 'margin-left':0,'z-index':999});	
				}else{
					this.slideFx[this.index].start({'opacity':1,'z-index':999});
				}
			
				if(this.slides2.length>0){
					this.slide2Fx[this.index].start({'opacity':1,'z-index':999});
				}
			
				if(this.lastIndex>-1){
				
					if(this.params.slide){
						this.slideFx[this.lastIndex].start(
								{'opacity':0, 'margin-left':-1000}).chain(function(){
										this.set({'margin-left':1000});
								}
						);
					}else{
						this.slideFx[this.lastIndex].start({'opacity':0});
					}
					
					if(this.slides2.length>0){
						this.slide2Fx[this.lastIndex].start({'opacity':0});
					}
				
				}
								
				this.lastIndex = this.index;
				this.index++;
	
		//reset loop		
				if(this.index>this.slideFx.length-1){
						this.index = 0;
				}
		
		//setup next frame		
				if(this.anim){
					this.checkAnim.delay(5000,this);
				}
		
		//navigation stays on top
				if(this.nav){
					this.nav.setStyle('z-index',99999);
				}
				
		}

