function inno_fadeEffect(max_slide, width, height) {
	var current_slide = 1;
	var current_multiplier = 1;
	var current_timeout;
	var max_slide = max_slide; //echo INNO_PBOX_NUMBER_OF_PRODUCTS ?>;
	var inno_fEffect = 'inno_fEffect_';
	var lowerLayer = 'inno_fEffect_lowerLayer';
	var higherLayer = 'inno_fEffect_higherLayer';
	var style = 'inno_fEffect_style_';
	var flag = true;
	var box, box2, fx, fx2;
		
	this.initialize = function(){
		//setting for box
		$('innoFE').setStyle('width', width);
		$('innoFE').setStyle('height', height);
		
		box = $(lowerLayer);
		box2 = $(higherLayer);
		fx = box.effects({duration: 500, transition: Fx.Transitions.Cubic.easeIn});
		fx2 = box2.effects({duration: 700, transition: Fx.Transitions.Cubic.easeOut});
		
		box.innerHTML = $(style + 1).innerHTML;
		box2.setStyle('opacity', 0);
		box2.setStyle('display', '');
	
		//---------------------------
		this.start_slide();
	}
	
	this.start_slide = function(){
		// Start running Slides
		var next_slide = current_slide + current_multiplier;
		if(next_slide > max_slide){
			current_multiplier = -1;
			next_slide -= 2;
		}
		
		if(next_slide <= 0){
			current_multiplier = 1;
			next_slide = 2;
		}
		current_timeout = setTimeout(function(){innoFEObj.update_current_slide(next_slide);}, 3000);
	}
	
	this.update_current_slide = function(id){
		clearTimeout(current_timeout);
		// Update current slide after a Slide Jump
		if(current_slide == id || flag == false)
			return;
	
		// Update content
		$(lowerLayer).innerHTML = $(style + current_slide).innerHTML;
		$(higherLayer).innerHTML = $(style + id).innerHTML;
		$(lowerLayer).setStyle('opacity', 1);
	
		box2.setStyle('opacity', 0);
		box2.setStyle('display', '');
		flag = false;
		
		fx.start({
			'opacity': 0
		}).chain(function(){
			flag = true;
		});
		
		fx2.start({
			'opacity': 1
		});
		current_slide = id;
		
		// Run next slide
		this.start_slide();
	}
}

innoFEObj = new inno_fadeEffect(3, 350, 136);
window.addEvent('domready', function() {
	innoFEObj.initialize();
});
