var Fader = {
	init: function() {
		$('image_appearance').setOpacity(100);
		$('image_color').setOpacity(100);
		$('image_physical').setOpacity(100);
	},
	start: function() {
		var appearanceFx = new Fx.Style('image_appearance', 'opacity', { 
			duration: 1200,
			transition: Fx.Transitions.Quart.easeInOut
		});
		var colorFx = new Fx.Style('image_color', 'opacity', { 
			duration: 1200,
			transition: Fx.Transitions.Quart.easeInOut
		});
		var physicalFx = new Fx.Style('image_physical', 'opacity', { 
			duration: 1200,
			transition: Fx.Transitions.Quart.easeInOut
		});

		var appearanceChain = Fader.createChain('appearance', appearanceFx);
		var colorChain = Fader.createChain('color', colorFx);
		var physicalChain = Fader.createChain('physical', physicalFx);
		
		var appearanceCounter = 0, colorCounter = 0, physicalCounter = 0;
		var timer;
		$('appearance').addEvent('mouseenter', function(e) {
			//appearanceChain[(appearanceCounter % 5)](appearanceCounter++);
			var runChain = function() { 
				appearanceChain[(appearanceCounter % 5)](appearanceCounter++);
			}
			timer = runChain.periodical(2000);
		});
		$('appearance').addEvent('mouseleave', function(e) {
			runChain = $clear(timer);
		});
		$('color').addEvent('mouseenter', function(e) {
			//colorChain[(colorCounter % 5)](colorCounter++);
			var runChain = function() { 
				colorChain[(colorCounter % 5)](colorCounter++);
			}
			timer = runChain.periodical(2000);
		});
		$('color').addEvent('mouseleave', function(e) {
			runChain = $clear(timer);
		});
		$('physical').addEvent('mouseenter', function(e) {
			//physicalChain[(physicalCounter % 5)](physicalCounter++);
			var runChain = function() { 
				physicalChain[(physicalCounter % 5)](physicalCounter++);
			}
			timer = runChain.periodical(2000);
		});
		$('physical').addEvent('mouseleave', function(e) {
			runChain = $clear(timer);
		});
	},
	addImage: function(imageFx, name, index) {
		$(name).setStyle('background-image', 'url(../images/applications/home/' + name + (index % 5).toString() + '.jpg)');
		$('image_' + name).setOpacity(0);
		(function(){
			$('image_' + name).setProperty('src', '../images/applications/home/' + name + ((index+1) % 5).toString() + '.jpg');
			imageFx.start(0, 1);
		}).delay(100);
	},
	createChain: function(name, imageFx) {
		var theChain = new Array();
		for (i=0; i<5; i++) {
			theChain[i] = function(index) {
				Fader.addImage(imageFx, name, index); 
			}; 
		};
		return theChain;
	}
};
window.addEvent('domready', Fader.init);
window.addEvent('load', Fader.start);
