var stopCountdown = null;
var ageVerify = null;

window.addEvent('domready', function(){	
	var ageGates = [null, 'age2w'];
	var states = [1,1]; 
	var players = [window.document.player2, window.document.player1];
	var size = document.html.offsetWidth;
	var navActive = 1;
	var slideActive = 0;
	var slideNext = 1;
	var countDown = new Fx.Morph('timerBar', {
		duration: 10000,
		onComplete: function() { goNext(); }
	});
	$('reelRight').addEvent('click', function(){
		if(navActive == 1){
			requestStop(slideActive);
			stopCountdown();
			size = document.html.offsetWidth;
			if (size < $('controlsContainer').getSize().x) {
				size = $('controlsContainer').getSize().x;
			}
			$('reel').setStyle('width', size);
			var found = false;
			var i = 1;
			while (!found) {
				if (slideLeft[slideActive + i] != null) {
					slideNext = slideActive + i;
					found = true;
				}
				else if (slideActive+i > slideLeft.length) {
					if(slideLeft[slideActive + i - slideLeft.length - 1] != null) {
						slideNext = slideActive + i - slideLeft.length - 1; 
						found = true;
					}
					else { i++; }
				}
				else { i++; }
			}
			states[slideActive] = 1;
			states[slideNext] = 0;
			slideLeft[slideActive].start({
				'left': [0, -size]
			});
			slideLeft[slideNext].start({
				'left': [size, 0]
			});
			slideActive = slideNext;
			navActive = 0;
		}
	});
	$('reelLeft').addEvent('click', function(){
		if(navActive == 1){
			requestStop(slideActive);
			stopCountdown();
			size = document.html.offsetWidth;
			if (size < $('controlsContainer').getSize().x) {
				size = $('controlsContainer').getSize().x;
			}
			$('reel').setStyle('width', size);
			var found = false;
			var i = 1;
			while (!found) {
				if (slideLeft[slideActive - i] != null) {
					slideNext = slideActive - i;
					found = true;
				}
				else if (slideActive-i < 0) {
					if(slideLeft[slideActive - i + slideLeft.length] != null) {
						slideNext = slideActive - i + slideLeft.length; 
						found = true;
					}
					else { i++; }
				}
				else { i++; }
			}
			states[slideActive] = 1;
			states[slideNext] = 0;
			slideLeft[slideActive].start({
				'left': [0, size]
			});
			slideLeft[slideNext].start({
				'left': [-size, 0]
			});
			slideActive = slideNext;
			navActive = 0;
		}
	});
	var goNext = function() {
		size = document.html.offsetWidth;
		if (size < $('controlsContainer').getSize().x) {
			size = $('controlsContainer').getSize().x;
		}
		$('reel').setStyle('width', size);
		var found = false;
		var i = 1;
		while (!found) {
			if (slideLeft[slideActive + i] != null) {
				slideNext = slideActive + i;
				found = true;
			}
			else if (slideActive+i > slideLeft.length) {
				if(slideLeft[slideActive + i - slideLeft.length - 1] != null) {
					slideNext = slideActive + i - slideLeft.length - 1; 
					found = true;
				}
				else { i++; }
			}
			else { i++; }
		}
		states[slideActive] = 1;
		states[slideNext] = 0;
		slideLeft[slideActive].start({
			'left': [0, -size]
		});
		slideLeft[slideNext].start({
			'left': [size, 0]
		});
		slideActive = slideNext;
		navActive = 0;
	};
	var fadeBar = new Fx.Morph('timerBar', {
		duration: 2500,
		onComplete: function() {
			countDown.start({
				'width': [100, 0]
			});
		}
	});
	stopCountdown = function() {
		fadeBar.cancel();
		$('timerBar').setStyles({
			width: 100,
			opacity: 0
		});
		countDown.cancel();
	};
	var slideLeft = new Array();
	slideLeft[0] = new Fx.Morph('reelStronghold', {
		duration: 800,
		onStart: function() {
			requestStop(slideActive);
			$('reelStronghold').setStyle('width', '100%');
		},
		onComplete: function() { 
			if (states[0] == 0) {
				$('reelStronghold').setStyle('width', '100%');
				$('timerBar').setStyles({
					width: 100,
					opacity: 0
				});
				fadeBar.start({
					'opacity': 100
				});
			}
			else { 
				$('reelStronghold').setStyles({
					left: -9999,
					width: 0
				});
			}
			$('reel').setStyle('width', '100%');
			navActive = 1;
		}
	});
	slideLeft[1] = new Fx.Morph('reelTwoworlds', {
		duration: 800,
		onStart: function() {
			requestStop(slideActive);
			$('reelTwoworlds').setStyle('width', '100%');
		},
		onComplete: function() { 
			if (states[1] == 0) {
				$('reelTwoworlds').setStyle('width', '100%');
				$('timerBar').setStyles({
					width: 100,
					opacity: 0
				});
				fadeBar.start({
					'opacity': 100
				});
			}
			else { 
				$('reelTwoworlds').setStyles({
					left: -9999,
					width: 0
				});
			}
			$('reel').setStyle('width', '100%');
			navActive = 1;
		}
	});
	function requestStop(i) { if (players[i]) { players[i].stopRequest(0); } }
	function requestStart(i) { if (players[i]) { players[i].startRequest(0); } }
	var getAge = function(Y,M,D) {
		var now=new Date(),m=now.getMonth()+1,d=now.getDate();
		return now.getFullYear()-Y+(M>m?-1:M==m&&D>d?-1:0);
	};
	ageVerify = function(Y,M,D,n) {
		if (Y && M && D) {
			var ageInt = getAge(Y,M,D);
			if (ageInt > 16) {
				for (var i=0; i<ageGates.length; i++) {
					if (ageGates[i]) {
						if (!n) { requestStart(slideActive); }
						$(ageGates[i]).fade('out');
					}
				}
			}
			else {
				if (!n) { goNext(); }
				for (var j=0; j<ageGates.length; j++) {
					if (ageGates[j]) {
						if (j==slideActive) { goNext(); }
						slideLeft[j] = null;
					}
				}
			}
			if (!n) { var ageCookie  = Cookie.write('visitors_age', Y + '-' + M + '-' + D, {path: '/', duration: 365}); }
		}
	};
	if (Cookie.read('visitors_age')) {
		var readAge = Cookie.read('visitors_age').split("-");
		ageVerify(readAge[0],readAge[1],readAge[2],true);
	}
	countDown.start({
		'width': [100, 0]
	});
		
	// News accordion and connect pop-ups (home only)
	var newsAccordion = new Accordion($('news'), 'div.news-title', 'div.news-story', {
		opacity: true,
		onActive: function(toggler, element){
			toggler.setStyle('background-position', '0 0');
			toggler.setStyle('display', 'block');
		},
		onBackground: function(toggler, element){
			toggler.setStyle('background-position', '0 -40px');
			toggler.setStyle('display', 'block');
		}
	});
	
	// Calculate offest for fade-in tip
	function leftPos(x){ return ($(x).offsetLeft + $(x).offsetWidth/2 - 75.5); }
	// Tip events
	var fb = $('fb-tip').setStyles({ display:'block', opacity:0 });
	$('fb-ico').addEvents({ 'mouseenter': function(e) { e.stop(); fb.setStyles({left: leftPos('fb-ico')}); fb.fade(1); } });
	$('fb-ico').addEvents({ 'mouseleave': function(e) { e.stop(); fb.fade(0); } });
	var twit = $('twit-tip').setStyles({ display:'block', opacity:0 });
	$('twit-ico').addEvents({ 'mouseenter': function(e) { e.stop(); twit.setStyles({left: leftPos('twit-ico')}); twit.fade(1); } });
	$('twit-ico').addEvents({ 'mouseleave': function(e) { e.stop(); twit.fade(0); } });
	var forum = $('forum-tip').setStyles({ display:'block', opacity:0 });
	$('forum-ico').addEvents({ 'mouseenter': function(e) { e.stop(); forum.setStyles({left: leftPos('forum-ico')}); forum.fade(1); } });
	$('forum-ico').addEvents({ 'mouseleave': function(e) { e.stop(); forum.fade(0); } });
	var news = $('newsletter-tip').setStyles({ display:'block', opacity:0 });
	$('newsletter-ico').addEvents({ 'mouseenter': function(e) { e.stop(); news.setStyles({left: leftPos('newsletter-ico')}); news.fade(1); } });
	$('newsletter-ico').addEvents({ 'mouseleave': function(e) { e.stop(); news.fade(0); } });
	var yt = $('yt-tip').setStyles({ display:'block', opacity:0 });
	$('yt-ico').addEvents({ 'mouseenter': function(e) { e.stop(); yt.setStyles({left: leftPos('yt-ico')}); yt.fade(1); } });
	$('yt-ico').addEvents({ 'mouseleave': function(e) { e.stop(); yt.fade(0); } });
});
