var current;
var mask;
var previous;
var queue = new Chain();

soundManager.url = webroot+'swf/';
soundManager.flashVersion = 9; // optional: shiny features (default = 8)
soundManager.useFlashBlock = false; // optionally, enable when you're ready to dive in

soundManager.onready(function() {
  if (Browser.Engine.trident4) { return; }
  if (soundManager.supported()) {
	soundManager.createSound({
	  id: 'ambience_street',
	  url: webroot+'audio/ambience_street.mp3',
	  autoLoad: true,
	  autoPlay: false,
	  loops: 99,
	  volume: 50
	});
	soundManager.createSound({
	  id: 'ambience_pub',
	  url: webroot+'audio/ambience_pub.mp3',
	  autoLoad: true,
	  autoPlay: false,
	  loops: 99,
	  volume: 50
	});
	soundManager.createSound({
	  id: 'sign_sound',
	  url: webroot+'audio/chains_short.mp3',
	  autoLoad: true,
	  autoPlay: false,
	  volume: 30
	});
  } else {
    // unsupported/error case
  }
	if(Cookie.read('disableaudio')) {
		$('audio-toggle').set('text', 'Turn Audio On');
    }
	state();
});

function toggleaudio() {
	if(Cookie.read('disableaudio')) {
		Cookie.dispose('disableaudio');
		var hash = location.hash.substr(1);
		var p = [ 'bar', 'booth', 'home' ];
		var s = ['splash1', 'splash2'];
		if(p.indexOf(hash) !== -1) { if(!Cookie.read('disableaudio')) { soundManager.play('ambience_pub'); } soundManager.stop('ambience_street'); }
		else if(hash === '') { if(!Cookie.read('disableaudio')) { soundManager.play('ambience_street'); } soundManager.stop('ambience_pub'); }
		$('audio-toggle').set('text', 'Turn Audio Off');
	} else {
        if(soundManager.getSoundById('activesound')){ soundManager.destroySound('activesound'); }
        soundManager.stop('ambience_street');
        soundManager.stop('ambience_pub');
        Cookie.write('disableaudio', 1);
		$('audio-toggle').set('text', 'Turn Audio On');
    }
}

function playaudio(character) {
	if(Cookie.read('disableaudio')) {
		if(confirm("Would you like to enable audio?")) {
			Cookie.dispose('disableaudio')
		} else {
			return false; 
		}
	}
	if(soundManager.getSoundById('activesound')){
		soundManager.destroySound('activesound');
        if(character == previous) {
            return false;
        }
	}
    var clip = eval('audio.' +character);
    var a = null;
    if($type(clip) == 'array') { var a = clip.shift(); clip.push(a); }
    else { var a = clip; }
	soundManager.createSound({
		id: 'activesound',
		url: webroot+'audio/'+a+'.mp3',
		autoLoad: true,
		autoPlay: true,
		volume: 60,
		onfinish: function() {
			soundManager.destroySound('activesound');
            previous = null;
		}
	});
    previous = character;
}

var audio = {
    'morty_and_sherman': ['morty_and_sherman_icecream', 'morty_and_sherman_what'],
    'irishman_at_bar': 'barkeep_and_irishman',
    'edward': 'bert_and_wife',
    'bobby': ['bobby_peripheral_vision', 'bobby_ready_and_able'],
    'firkin_guy': 'clive_cat_dragged_in',
    'hustler': 'hustler',
    'irishman_on_street': ['irishman_bonehead', 'irishman_red'],
    'lamppost_guy': 'lamppost_guy',
    'reg': 'reg',
    'harrisons1': 'the_harrisons_lucky',
    'harrisons2': ['the_harrisons_bidet', 'the_harrisons_lucky'],
    'cat': ['cat_meow', 'the_harrisons_cat', 'cat_angry', 'cat_roar'],
    'vera': ['vera', 'vera_aliens', 'vera_sheep'],
    'stewart_and_randi': ['umbrella_guys_dirty_shirt', 'umbrella_guys_prime_minister'],
    'wendy_and_bernice': ['wendy_and_bernice_best_friend', 'wendy_and_bernice_bruce'],
	'pickup_artist': ['pickup_artist_aquarius', 'pickup_artist_kidder', 'pickup_artist_tooth']
}

window.addEvent('domready', function() {
	if (Browser.Engine.trident4) { createIE6UpdateBanner(); return; }
	mask = new Spinner(document.body, {'id': 'page-mask', 'style': { 'background': 'black', 'opacity': 1, 'z-index': 8000 }, 'img': new Element('div', {'html': '<img style="width:276px;height:129px;" src="'+webroot+'img/load-sign.gif" />"'})}).show();
	mask.element.set('tween', { onComplete: function(){ queue.callChain(); } });
	window.addEvent('hashchange', function(hash){ 
		state(hash);
	});
	$('audio-toggle').addEvent('click', function() { toggleaudio(); return false; });
	$$('img.sign-2').setStyle('top', '-240px');
});

function dropsign() {
	if(!Cookie.read('disableaudio')) { (function(){soundManager.play('sign_sound');}).delay(100) }
	var item = $$('img.sign-2');
	item.set('tween', {'transition': Fx.Transitions.Bounce.easeOut, 'duration': 800, 'link': 'cancel' });
	item.tween('top', 0);
}
function pullsign() {
	soundManager.stop('sign_sound');
	var item = $$('img.sign-2');
	item.set('tween', {'transition': Fx.Transitions.Expo.easeIn, 'duration': 200, 'link': 'cancel' });
	item.tween('top', -240);
}

var scenes = {
	'splash1': [
		{
			'image': 'splash1-1.jpg',
			'hover': [],
			'click': $empty
		},
		{
			'image': 'splash1-2.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['morty'],
			'click': function() { playaudio('morty_and_sherman'); }
		},
		{
			'image': 'splash1-3.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['edward'],
			'click': function() { playaudio('edward'); }
		},
		{
			'image': 'splash1-4.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['irish-man', 'irish-man-middle', 'irish-man-bottom'],
			'click': function() { playaudio('irishman_on_street'); }
		},
		{
			'image': 'splash1-5.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['lampost-guy'],
			'click': function() { playaudio('lamppost_guy'); }
		},
		{
			'image': 'splash1-7.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['harrisons'],
			'click': function() { playaudio('harrisons1'); }
		},
		{
			'image': 'splash1-8.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['cat'],
			'click': function() { playaudio('cat'); }
		},
		{
			'image': 'splash1-9.jpg',
			'hover': ['enter', 'enter-top', 'enter-right'],
			'click': function () { 
                location.href = '/index.php#home'; }
		}
	],
	'splash2': [
		{
			'image': 'splash2-1.jpg',
			'hover': [],
			'click': $empty
		},
		{
			'image': 'splash2-2.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['cat2'],
			'click': function() { playaudio('cat'); }
		},
		{
			'image': 'splash2-3.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['the-bobby', 'the-bobby-top'],
			'click': function() { playaudio('bobby'); }
		},
		{
			'image': 'splash2-4.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['stewart'],
			'click': function() { playaudio('stewart_and_randi'); }
		},
		{
			'image': 'splash2-5.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['wendy'],
			'click': function() { playaudio('wendy_and_bernice'); }
		},
		{
			'image': 'splash2-6.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['harrisons'],
			'click': function() { playaudio('harrisons2'); }
		},
		{
			'image': 'splash2-7.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['enter', 'enter-top', 'enter-right'],
			'click': function() { location.href = '/index.php#home'; }
		}
	],
	'home': [
		{
			'image': 'home-1.jpg',
			'hover': [],
			'click': $empty
		},
		{
			'image': 'home-2.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['bar-rollover'],
			'click': function() { location.hash = '#bar'; }
		},
		{
			'image': 'home-3.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['booth-rollover'],
			'click': function() { location.hash = '#booth'; }
		}
	],
	'bar': [
		{
			'image': 'bar-1.jpg',
			'hover': [],
			'click': $empty
		},
		{
			'image': 'bar-2.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['anthem', 'anthem-bottom'],
			'click': function() { window.location = webroot+'pages/anthem' ; }
		},
		{
			'image': 'bar-3.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['franchise-info'],
			'click': function() { window.location = webroot+'pages/franchise/firkin-concept' ; }
		},
		{
			'image': 'bar-4.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['brews'],
			'click': function() { window.location = webroot+'pages/brews' ; }
		},
		{
			'image': 'bar-5.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['irish', 'irish-top'],
			'click': function() { playaudio('irishman_at_bar'); }
		},
		{
			'image': 'bar-6.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['gallery', 'gallery-left'],
			'click': function() { playaudio('pickup_artist'); }
		},
		{
			'image': 'bar-7.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['hustler', 'hustler-top'],
			'click': function() { playaudio('hustler'); }
		}
	],
	'booth': [
		{
			'image': 'booth-1.jpg',
			'hover': [],
			'click': $empty
		},
		{
			'image': 'booth-2.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['firkin-guy'],
			'click': function() { playaudio('firkin_guy'); }
		},
		{
			'image': 'booth-3.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['menu'],
			'click': function() { window.location = webroot+'pages/menu' ; }
		},
		{
			'image': 'booth-4.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['vera', 'vera-left'],
			'click': function() { playaudio('vera'); }
		},
		{
			'image': 'booth-5.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['reg', 'reg-right'],
			'click': function() { playaudio('reg'); }
		},
		{
			'image': 'booth-6.'+(Browser.Engine.trident ? 'jpg' : 'png'),
			'hover': ['locations', 'locations-left'],
			'click': function() { window.location = webroot+'locations' ; }
		}
	]
};

function state(hash){
	if(!$chk(hash)) {
		var hash = location.hash.substr(1);
	}
	var p = [ 'bar', 'booth', 'home' ];
	var s = ['splash1', 'splash2'];
	if(p.indexOf(hash) !== -1) { transition(hash); if(!Cookie.read('disableaudio')) { soundManager.play('ambience_pub'); } soundManager.stop('ambience_street'); }
	else if(hash === '') { transition(s[$random(0, 1)]); if(!Cookie.read('disableaudio')) { soundManager.play('ambience_street'); } soundManager.stop('ambience_pub'); }
}

function transition(page) {
    soundManager.destroySound('activesound');
	var scene = eval('scenes.' +page);
	queue.chain(
		function(){ mask.element.fade(1); },
		function(){ load(scene, page); },
		function(){ mask.element.fade(0); }		
	);
	queue.callChain();
}

function load(scene, page) {
	if(page === 'home') {
        $$('.advertisement').setStyle('display', '');
        $$('.meal-board').setStyle('display', '');
		$$('img.sign-2').setStyle('top', '-240px');
    } else {
        $$('.advertisement').setStyle('display', 'none');
        $$('.meal-board').setStyle('display', 'none');
    }
	if(page === 'splash1' || page === 'splash2') {
        $('footer-content').setStyle('display', '');
	} else {
        $('footer-content').setStyle('display', 'none');
	}
	var images = [];
	$each(scene, function(value, key) {
		images.push(webroot+'img/'+value.image);		
	});
	var myImages = new Asset.images(images, {
		'onProgress': function(counter, index) {
		},
		'onComplete': function() {
			$('background').set('class', page);
			var nav = $('nav-box');
			nav.getAllNext().destroy();
			if(page == 'splash1' || page == 'splash2') {
				nav.setStyle('display', 'none');
			} else {
				nav.setStyle('display', '');
			}
			$each(scene, function(value, key) {
				var bg = $('background');
				value.mask = new Mask(bg, {'style': { 'background': 'url("'+webroot+'img/'+value.image+'") no-repeat scroll center top', 'opacity': 0}}).show();
				$each(value.hover, function(id) {
					new Element('div', {
						'class': 'rollover',
						'id': id,
						'events': {
							'mouseover': function(e){
								if(this.id.contains('enter')) { dropsign(); }
								value.mask.element.fade(1);
							},
							'mouseout': function(e){
								if(this.id.contains('enter')) { pullsign(); }
								value.mask.element.fade(0);
							},
							'click': value.click
						}
					}).inject(nav.getParent());
				});
			});
			if($defined(current)) {
				var old = eval('scenes.' +current);
				$each(old, function(value, key) {
					value.mask.destroy();
				});
			}
			current = page;
			queue.callChain();
		}
	});
}
