
var imgFader = new Class({	
	Implements: Options,
	options: {
		list : '',			//list of imgs
		transition: 'opacity',
		delay: 1000
	},	
	
	initialize: function(options){
		this.setOptions(options);
		var list = this.options.list;
		var imgs = $$("#" + list + " img");
		imgs.setStyles({"position":"absolute","opacity":0});
		new Asset.images([imgs[0].src], {
			onComplete: function(){
				var fx = new Fx.Morph(imgs[0],{wait:false,duration:2000})
				fx.start({'opacity':1});
			}
		});
		
		(function(){	this.ping(0)		}.bind(this)).delay(this.options.delay);
		
	},
	
	ping: function(x){
		var list = this.options.list;
		var type = this.options.transition;
		var imgs = $$("#" + list + " img");
		switch(type){
			case "opacity":
				if (x == -1){
					//fade out
					var fx = new Fx.Morph(imgs[imgs.length-1],{wait:false,duration:2000})
					fx.start({'opacity':0})
					
					var fx = new Fx.Morph(imgs[0],{wait:false,duration:2000})
					fx.start({'opacity':1});
					
				}else{
					//fade out
					var fx = new Fx.Morph(imgs[x],{wait:false,duration:2000})
					fx.start({'opacity':0})
					
					//fade in
					var fx = new Fx.Morph(imgs[x+1],{wait:false,duration:2000})
					fx.start({'opacity':1});
					
				}
			break;
			
			
		}
		this.pong(x+1)
	},
	
	
	pong:function(y){
		var list = this.options.list;
		var imgs = $$("#" + list + " img");
		if (y == imgs.length-1){
			(function(){	this.ping(-1)		}.bind(this)).delay(this.options.delay);
		}else{
			(function(){	this.ping(y)		}.bind(this)).delay(this.options.delay);
		}
	}
	
	
});
