/* global ugliness */
var ScreenadOverlayFx, ScreenadLinks, ScreenadTimer, ScreenadCurrent;
var ScreenadTransition = false;

/* silly function */
var ScreenadShow = function(h1text, h2text, h1el, h2el, imgsrc, imgdiv, current){
	
	/* if not transitioning already */
	if (!ScreenadTransition) {
		
		/* clear timer should it be running (user interrupted) */
		$clear(ScreenadTimer);
		
		/* update index */
		var index = ScreenadLinks.indexOf(current);
		ScreenadCurrent = (index < ScreenadLinks.length-1 ? index+1 : 0);
		
		/* busy doing pretty shit */
		ScreenadTransition = true;
		
		/* create text fx instance */
		var myFx = new Fx.Elements($$(h1el, h2el));
		
		/* create events chain */
		var myChain = new Chain();
		myChain.chain(
			
			/* reveal overlay and hide text */
			function(){
				//console.log('first chained event');
				ScreenadOverlayFx.start('opacity', 0, 1);
				myFx.start({'0': {'opacity': [1,0]}, '1': {'opacity': [1,0]}}).chain(function(){myChain.callChain()});
			},
			
			/* swap text and img src */
			function(){
				//console.log('second chained event');
				$(imgdiv).setStyle('background-image', 'url('+imgsrc+')');
				myFx.subject[0].set('text', h1text);
				myFx.subject[1].set('text', h2text);
				(function(){myChain.callChain()}).delay(300);
			},
			
			/* reveal text in and hide overlay */
			function(){
				//console.log('third chained event');
				ScreenadOverlayFx.start('opacity', 1, 0);
				myFx.start({'0': {'opacity': [0,1]}, '1': {'opacity': [0,1]}}).chain(function(){ScreenadTransition = false; ScreenadLoop()});
			}
			
		).callChain();
	}
}

/* crap ass loop */
function ScreenadLoop(){
	
	/* get target element */
	var target = ScreenadLinks[ScreenadCurrent];
	
	/* setup timer */
	ScreenadTimer = (function(){target.fireEvent('click')}).delay(4000);
}

/* domready event */
document.addEvent('domready', function(){
	
	/* create elements array of screenad thumbs */
	ScreenadLinks = $$('.screenthumb');
	
	/* create overlay fx instance */
	ScreenadOverlayFx = new Fx.Tween('screenad-overlay', {'duration': 'short'});
	ScreenadOverlayFx.start('opacity', 1, 0);
	
	/* add click events to screenad thumbs */
	ScreenadLinks.each(function(el){
		el.addEvent('click', function(){
			var myArg = [
				el.getChildren('h1').get('text'),
				el.getChildren('h2').get('text'),
				$('screenad-desc').getChildren('h1'),
				$('screenad-desc').getChildren('h2'),
				el.getChildren('img').get('title'),
				'screenad-full',
				this
			];
			ScreenadShow.run(myArg);
		});
	});
	
	/* array holding all screenad image sources */
	var images = [];
	
	/* populate array */
	ScreenadLinks.each(function(el){
		images.push(el.getChildren('img').get('title'));
	});
	
	/* preload all images and then start loop */
	var preloader = new Asset.images(images, {
		'onComplete': function(){
			ScreenadCurrent = 1;
			ScreenadLoop();
		}
	});
});
