
var Slideshow;
var ready = false;
var readycheck;

window.addEvent('load', function(){
	ready = true;
});

window.addEvent('domready', function(){

	//////////////////////////////////////////////
	//	FIRST CHECK FOR CSS SUPPORT
	//////////////////////////////////////////////
	function checkCSS()
	{
		var newDiv = document.createElement('div');
		document.body.appendChild(newDiv);
		newDiv.style.visibility = 'hidden';
		newDiv.style.width = '20px';
		newDiv.style.padding = '10px';
		var divWidth = newDiv.offsetWidth;
		if (divWidth != 40) {
			document.body.removeChild(newDiv);
			return false;
		}
		else {
			document.body.removeChild(newDiv);
			return true;
		}
	}

	//////////////////////////////////////////////
	//	REPLACE FONTS
	//////////////////////////////////////////////
	if (checkCSS()) {
		Cufon.replace('ul#infobar li h2', { fontFamily: 'DINProLight' });
		Cufon.replace('ul#animatedtabs li h1, ul#animatedtabs li p', { hover: true, fontFamily: 'DINProMedium' });
		Cufon.replace('ul#animatedtabs li h2', { hover: true, fontFamily: 'DINProBold' });
		Cufon.replace('ul#infobar li h1, ul#infobar li.menu a, ul#infobar li.newsletter form fieldset button#newslettersubmit, fieldset#newsletter label', { hover:true, fontFamily: 'DINProBlack' });
	}

	//////////////////////////////////////////////
	//	FADE IN
	//////////////////////////////////////////////
	var mainmenuFX = [];
	var faders = $$('ul#mainmenu-home li, ul#animatedtabs li, ul#infobar li');
	var faderscount = faders.length;
	faders.each(function(li,i)
	{
		mainmenuFX[i] = new Fx.Morph(li, {
			duration : 500,
			onComplete : function()
			{
				if (i == faderscount-1) {
					// START CHECKING TO SEE IF FUll PAGE LOAD IS COMPLETED
					readycheck = setInterval(function(){
						if (ready) {
							Slideshow.setup();
							clearInterval(readycheck);
						}
					}, 100);
				}
			}
		}).set({ 'opacity' : 0 });
		var fadein = setTimeout(function(){
			mainmenuFX[i].start({ 'opacity' : 1 });
		}, 100*i);
	});

	//////////////////////////////////////////////
	//	SLIDESHOW FOR ANIMATED TABS
	//////////////////////////////////////////////
	var animatedtabs = $$('ul#animatedtabs li');
	var animatedpics = $$('ul#homepagebanner li');
	var picFX = [];
	var switchdelay;
	Slideshow = {
		running : 0,
		currenttab : 0,
		prevtab : 0,
		tabcount : animatedtabs.length,
		timelapse : 5000,
		duration : 1200,
		setup : function()
		{
			// SET UP ANIMATION FOR PICTURES
			animatedpics.each(function(pic,i) {
				picFX[i] = new Fx.Morph(pic, {
					duration: Slideshow.duration,
					transition: Fx.Transitions.Circ.easeOut,
					onComplete : function(){
						// HIDE IMAGE WHEN FADED OUT SINCE LEAVING MULTIPLE
						// ELEMENTS WITH OPACITY=0 SLOWS THINGS DOWN
						if (pic.getStyle('opacity') == 0) pic.setStyle('display','none');
					}
				});
			});

			// ROLLOVERS FOR ANIMATED TABS
			animatedtabs.each(function(tab,i) {
				// SET UP TAB ROLLOVERS
				tab.addEvent('mouseenter', function(){
					Cufon.replace.delay(10, null, [ 'ul#animatedtabsli h1', {}, false ]); 
					// IF TAB NOT CURRENT TAB
					if (i != Slideshow.currenttab)
						Slideshow.switchtabs(i);
					// STOP AUTO MODE
					Slideshow.pause(i);
				});
				// SET UP TAB ROLLOUTS
				tab.addEvent('mouseleave', function(){
					Slideshow.play();
				});
			});
			// START THE BALL ROLLING
			Slideshow.switchtabs(0, true);
//			picFX[0].set({ 'display' : 'block', 'opacity' : 0 }).start({ 'opacity' : 1 });
			Slideshow.play();
		},
		// AUTO MODE
		play : function()
		{
			timer = setInterval(function(){
				Slideshow.switchtabs();
			}, Slideshow.timelapse);
		},
		// PAUSE AUTO MODE
		pause : function(id)
		{
			clearInterval(timer);
		},
		switchtabs : function(id, first)
		{
			// STOP THE PREVIOUS ANIMATION
			picFX[Slideshow.currenttab].cancel();

			// CLEAR IMAGE ANIMATION TIMER
			clearTimeout(switchdelay);

			// SET THE PREVIOUS TAB
			Slideshow.prevtab = (Slideshow.currenttab == id) ? null : Slideshow.currenttab;

			// IF WE'RE IN AUTO MODE
			if (id == null) {
				Slideshow.currenttab++;
				if (Slideshow.currenttab == Slideshow.tabcount) Slideshow.currenttab = 0;
			}
			// ELSE IF WE'RE MANUAL MODE
			else Slideshow.currenttab = id;

			// EXPAND TABS
			if (Slideshow.prevtab != null) animatedtabs[Slideshow.prevtab].removeClass('open');
			animatedtabs[Slideshow.currenttab].addClass('open');
			var h1 = animatedtabs[Slideshow.currenttab].getFirst('h1');
			h1.addClass('red');

			// SWITCH THE IMAGE
			Slideshow.switchimage(Slideshow.prevtab, Slideshow.currenttab, first);

			Cufon.refresh();
		},
		switchimage : function(fadeout, fadein, first)
		{
			// IF FADEOUT IS NOT NULL, FADE IMAGE OUT
			if (fadeout != null) {
				picFX[fadeout].set({ 'display' : 'none' });
			}
			// IF FADEIN IS NOT NULL, FADE IMAGE IN
//			if (fadein != null) {
//				if (first) {
//					picFX[fadein].set({ 'display' : 'block', 'opacity' : 0 });
//					picFX[fadein].start({ 'opacity' : 1 });
//				}
//				else {
					picFX[fadein].set({ 'display' : 'block', 'opacity' : 0 });
					picFX[fadein].start({ 'opacity' : 1 });
//				}
//			}
		}
	};

});

