$(document).ready(function(){
	Engine.Initialize();
});

var Engine = {
	Animating: false,
	Timeout: 0,
	Current: 1,
	Pause: 12000,
	
	Initialize: function() {
		Engine.Preload();
		Engine.Prepare_Nav();
	},
	
	Preload: function() {
		for (var j = 1; j <= 4; j++) 
        {
	 		$('<img />', {
              'alt': '',
              'src': '/assets/img/home/message_' + j + '.jpg'
			}).appendTo('#image_' + j);
		}
		
		$('#mainImageWrap').waitForImages(function() {
			Engine.First_Scene();
        	});
		
		
	},
	
	Prepare_Nav: function() {
		$('#lead_nav a').click( function() {
			var Target = $(this).attr('rel');
			if( !Engine.Animating && Engine.Current != Target) {
				Engine.Load_Scene( Target );
			}
			return false;
		});
	},
	
	Load_Scene: function( Target ) {
		clearTimeout( Engine.Timeout );
		Engine.Animating = true;
		$('#mainImageWrap div:animated').stop(true, false);
		
		$('.lead_text:visible').pngFadeOut(500);
		$('.lead_image:visible').delay(250).fadeOut(500);
		
		Engine.Current = Target;
		
		$('#text_' + Target).delay(750).pngFadeIn(500, function() {
			$('#image_' + Target).fadeIn(500, function() {
				Engine.Animating = false;
				Engine.Timeout = setTimeout( Engine.Next_Scene, Engine.Pause );
			});
		});
		
	},
	
	Next_Scene: function() {
		var Next = Engine.Current + 1;
		
		if( Next > $('#lead_nav a').length ) {
			Next = 1;
		}
		
		Engine.Load_Scene( Next );
	},
	
	First_Scene: function() {
		Engine.Animating = true;
		Target = 1;
		
		$('#text_' + Target).delay(750).pngFadeIn(500, function() {
			$('#image_' + Target).fadeIn(500, function() {
				Engine.Animating = false;
				Engine.Timeout = setTimeout( Engine.Next_Scene, Engine.Pause );
			});
		});
	}
};


/* ===== Homemade Plugins to Help with IE black halo problem ===== */
jQuery.fn.pngFadeIn = function(speed, callback) {
	if( !jQuery.support.opacity ) {
		return this.show(0, function() {
			if (jQuery.isFunction(callback)) 
				callback();
		});
		
	} else {
		return this.animate({opacity: 'show'}, speed, function() { 
			if (jQuery.isFunction(callback)) 
				callback();
		}); 
	}
}; 
 
jQuery.fn.pngFadeOut = function(speed, callback) { 
    if( !jQuery.support.opacity ) {
		return this.hide(0, function() {
			if (jQuery.isFunction(callback)) 
				callback();
		});
		
	} else {
		return this.animate({opacity: 'hide'}, speed, function() { 
			if (jQuery.isFunction(callback)) 
				callback();
		}); 
	}
};


