var lightbox = null
document.addEvent('domready', function() {

	$$('.page').hide();
	
	document.addEvent('click:relay(.close)', function(event,a) {
		event.preventDefault();
		var parent = a.getParent('.page');
		var scrollTo = (parent.getPrevious('.page') && parent.getPrevious('.page').isVisible()) ? parent.getPrevious('.page') : $('banner');
		parent.hide();
		location.hash = "#!close"
		new Fx.Scroll(window).toElement(scrollTo);
	});
	
	// Lightbox
	
	var overlay = new Popup.Overlay({injectWhere:'top', styles: {backgroundColor: '#000'}, showStyle: {opacity: .3}});
	lightbox = new Popup.Lightbox({ holder: overlay });
	document.addEvent('click:relay(a.lightbox)', function(event,a){ event.preventDefault(); lightbox.show(a.href, a.title); });
	
});

// Set up hash listener

var url = '';

function dp_check_hash() {

	var target = ''
	if( url !== location.hash ) {
		url = location.hash;
		if(url.indexOf('#!start') != -1) {
			$$('.page').hide();
			target = $('banner');
		}
		else {
			var hashRef = url.split(':');
			target_url = hashRef[1];
			target = $(hashRef[0].substring(2,hashRef[0].length));
			target.set('load', {
				onSuccess: function(){
					
					// Init lightbox
					
					lightbox.clear();
					$$('a.lightbox').each( function(a) {
						lightbox.add(a.href, a.title);
					});
					
					// Init Facebook

					FB.init({
						appId  : '174628519235111',
						status : true,
						cookie : true,
						xfbml  : true
					});

					// Set up accordions

					var Accordion = new Fx.Accordion( $$('.event'), $$('.event-description'), {
						alwaysHide: true,
						display: -1,
						//display: (location.hash) ? location.hash.replace('#','').toInt() : -1,
						onActive: function(toggler) { toggler.addClass('active'); }, 
						onBackground: function(toggler) { toggler.removeClass('active'); }
					});
					
				}
			})
			target.load(target_url);
			target.show();
			fireEvent('load');
		}
		
		var navigationMatch = $$('#navigation a[href="' + url + '"]');
		if(navigationMatch.length > 0) {
			$$('#navigation li').removeClass('active');
			navigationMatch.getParent('li').addClass('active');
		}
		
		new Fx.Scroll(window).toElement(target);
    }
}

setInterval( dp_check_hash, 100 );
