


var headerSlideshow = new Class({
	Implements: [Options, Events],
	options: {
	},
	initialize: function(options) {
		this.setOptions(options);
		this.imagesList = Array();
		
		this.options.images.each(function(imageprops){
			this.imagesList.include(imageprops[0]);	
		}.bind(this));
				
		
		var headerImages = new Asset.images(this.imagesList,{
			onComplete: function () {
				this.hideLoader();
			}.bind(this)
		});
	},
	hideLoader: function() {
		$(this.options.wrapper).getElement('#loadingWrapper').fade('out');
		
		//startAnimation
		this.injectImageObject();
		this.itsEffect = new Fx.Morph(this.imageObject, {duration: 2000});
		this.itsEffect.addEvent('complete',this.hideImageAndDoNext.bind(this));
		this.curImageNumber = -1;
		this.animateNext();	
	},
	
	injectImageObject: function() {
		this.imageObject = new Element('img');
		this.imageObject.fade('hide');
		this.imageObject.inject(this.options.wrapper.getElement('#imageContainer'));
		
	},
	hideImageAndDoNext: function() {
		this.imageObject.get('tween').start('opacity',0).chain(function(){this.animateNext()}.bind(this));
	},
	
	animateNext: function() {
		this.curImageNumber++;
		if(this.curImageNumber >= this.options.images.length) { this.curImageNumber = 0; }
		
		this.imageObject.set({'src':this.options.images[this.curImageNumber][0],'style':'visibility:hidden','class':this.options.images[this.curImageNumber][1]});

		//this.imageObject.fade('hide');
		this.itsEffect.options.duration = this.options.images[this.curImageNumber][3];
		
		//this.imageObject.fade('in');
		this.imageObject.get('tween').wait(200).start('opacity',1).chain(function(){this.itsEffect.start('.'+this.options.images[this.curImageNumber][2]);}.bind(this));
		//this.imageObject.get('tween').start('opacity',1);
		//this.itsEffect.start('.'+this.options.images[this.curImageNumber][2]);
		
	}
	
	
	
	
	
	
	
});


