

var siFx = new Class({
	
	initialize: function(effect, options){

		this.options = options;
		this.target = $$('.' + this.options.target);
		
		switch(effect){
		
			case 'fade': this.fade(); break;
			case 'popin': this.popin(); break;
			case 'bounce': this.bounce(); break;
			case 'zoomOut': this.zoomOut(); break;
		
		}
		
	},
	
	fade: function(){
		
		var duration = this.options.duration;
		var opacity = this.options.opaclevel;

		this.target.each(function(el){

			el.set('tween', { duration: duration });
			el.addEvent('mouseover', function(){ el.fade(opacity) });
			el.addEvent('mouseout', function(){ el.fade(1.0) });
			
		});
		
	},
	
	popin: function(){
	
		var duration = this.options.duration;
		var opacity = this.options.opaclevel;
	
		this.target.each(function(el){
			
			el.set('morph', { duration: duration });
			el.getLast().set('opacity', opacity);
			el.addEvent('mouseover', function(){ el.getLast().morph( {'top': '-70px' }) });
			el.addEvent('mouseout', function(){ el.getLast().morph( {'top': '0px' }) });
		
		});
										   
	},
	
	bounce: function(){
	
		var duration = this.options.duration;
		
		this.target.each(function(el){
			
			var imgSize = el.getFirst().getSize();
			var containerSize = el.getSize()		
			
			

			el.set('morph', { duration: duration, transition: 'bounce:out' });
			
			el.addEvent('mouseover', function(){ el.morph({ width: imgSize.x + 'px', height: imgSize.y + 'px'}) });
			el.addEvent('mouseout', function(){ el.morph({ width: containerSize.x + 'px', height: containerSize.y + 'px'}) });
			
		});
			
	},
	
	zoomOut: function(){
	
		var duration = this.options.duration;
		var enlarge = this.options.enlarge;
		
		this.target.each(function(el){
			
			
			var imgSize = el.getSize();
			var imgPosition = el.getPosition();		

			el.set('morph', { duration: duration, transition: 'elastic:out' });			
			el.addEvent('mouseover', function(){ el.morph({ width: imgSize.x + enlarge + 'px', height: imgSize.y + enlarge + 'px' }) });
			el.addEvent('mouseout', function(){ el.morph({ width: imgSize.x + 'px', height: imgSize.y + 'px' }) });
			
		});

	}
	
});
