window.addEvent('domready', function() {
	fixNav(); // correct borders, add bullets
	fixOverlays(); // sets height on overlays
	
	hookNav(); //slide lhs navigation
	hookGlobalHome();
	hookWhereNext();
	
	if (window.ie6) fixPNG(); // fixes PNG display - TODO edit path in the .htc

});


/* NAV FIXING */

function fixNav() 
{
	stripBorder($('navbar').getChildren().pop().getChildren()[0]);
	stripBorder($('nav2').getChildren().pop().getChildren()[0]);

	var subChildren = $$('#navbar ul').each(function(el) {
		var kids = el.getChildren();
		if (kids)
			stripBorder(kids.pop().getChildren()[0]);
	});

	if($('lhs'))
	{
		var sideNav = $('lhs').getElement('ul');
		if (sideNav) {
			var actives = sideNav.getElements('.active');
			
			var menuSelected 	= {'color':'#cd1805','font-weight':'normal', 'background':'url('+ incPath +'/images/lhs-arrow.png) 96% 50% no-repeat'},
				mainHeader		= {'background':'#dadecf','font-weight':'bold'},
				subHeader 		= {'background':'#edeee8','font-weight':'bold'};
			
			switch (actives.length) {
				case 1:
					actives[0].getChildren()[0].setStyles(menuSelected).setStyle('font-weight','bold');
					break;
				case 2:
					actives[0].setStyle('background', '#fff');
					actives[0].getChildren()[0].setStyles(mainHeader);
					actives[1].getChildren()[0].setStyles(menuSelected);
					slideNavOpen(actives[0]);
					break;
				case 3:
					actives[0].getChildren()[0].setStyles(mainHeader);
					actives[1].getChildren()[0].setStyles(subHeader);
					actives[1].setStyle('background', '#fff');
					actives[2].getChildren()[0].setStyles(menuSelected);
					slideNavOpen(actives[1]);
					break;
			}
		}
	}
}

function slideNavOpen(o) {
	o.setStyle('overflow', 'hidden');
	var navSlide = new Fx.Tween(o, {duration:1000});
	
	navSlide.start('height', o.getElements('a')[0].clientHeight, o.clientHeight);
}

function stripBorder(el) {
	if (el)
		el.setStyle('border-right', 'none');
}


/* Nav hooking */

function hookNav() {

	var alreadyActive = $('head').getElements('.active');
		allNav = $('navbar').getChildren().extend($('nav2').getChildren()),
		setAllInactive = function() {
			allNav.each(function(el){
				el.removeClass('active');
				el.getElements('li').removeClass('active');
			});
		};
	
	allNav.each(function(el) {
		el.child = el.getElement('ul');
		el.showChildren = function() {
			
			if (el.hasClass('active')) return;
			setAllInactive();
			if (el.child)
				el.child.getElements('li').each(function(li){
					var fx = new Fx.Tween(li, 
					{
						duration:500
					});
					
					fx.start('margin-top', -23,0);
				});
			el.addClass('active');
		};
		
		el.addEvent('mouseover', el.showChildren);
		
		el.getElements('li').each(function(li){
			li.addEvent('mouseover', function() {
				li.getParent().getChildren().removeClass('active');
				li.addClass('active');
			});
		});
	});
	
	// mouseoutage
	if ($('banner'))
		$('banner').addEvent('mouseover', function() 
		{
			if (alreadyActive.hasClass('active')) return;
			setAllInactive();
			alreadyActive.each(function(li, i) {
				if (i==0) li.showChildren(); 
				else li.addClass('active');
			});
		});
}


// reverts = array of events to trigger before doing something else (eg switching focus)
var reverts = new Array();

function revert() {
	reverts.each(function(func) { // revert any current boxes to hidden
		func();
	});
	reverts = new Array(); // empty
}

function fixOverlays() {
	$$('.overlay').each(function(overlay){
		overlay.setStyle('height', overlay.getParent().clientHeight);
	});
}



/* Where Next pop-up contact-me page */

function hookWhereNext() {
	$('nav2').getElement('a').addEvent('click', openOverlay);
	
	$('wnform').addEvent('submit', function(e) {
		
		new Event(e).stop();
		
		var log = $('wn-callback');
	
		this.send({
			update: log,
			onComplete: showWNCallback()
		});	
		
	});
}

function showWNCallback()
{
	$('wn-callback').style.display = "block";	
}

function hideWNCallback()
{
	$('wn-callback').style.display = "none";	
}

function openOverlay (ev) {
	
	$('wn-container').style.display = 'block';
	
	stopEvent(ev);
}

function closeOverlay() {
	$('wn-container').style.display = 'none';
}

/* SHARED */
function stopEvent(ev) { // Kills all known events... Dead.
	if (!ev) return false;
	if (ev.stopPropagation) {
		ev.stopPropagation();
		ev.preventDefault();
	} else {
		ev.returnValue = false;
		ev.cancelBubble = true;
	}
	return false;
}

function fixPNG() {
	$$('a').setStyle('behavior', 'url(../iepngfix.htc)');
	$$('div').setStyle('behavior', 'url(../iepngfix.htc)');
	$$('span').setStyle('behavior', 'url(../iepngfix.htc)');
}

function getObjectID(object)
{
	var objectID = (object).split('_');
	objectID = objectID[1];
	return objectID;
}

function hookGlobalHome() 
{
	// inject the home banner if flash is available
	$('banner').innerHTML = '';
	$('banner').adopt(new Element('div', {id:'homeflashbanner'}));
	swfobject.createSWF({data:incPath+"/flash/home.swf", width:"960", height:"254", wmode:'opaque'},
						{wmode:'opaque'},
						"homeflashbanner");
}

function hookFloorPlans(floorplanlocation)
{
	if(floorplanlocation == 'london-spitalfields')
	{
		var path = incPath + '/images/floor-plans-images/spitalfields/';

		//get the first nav item and set it to active
		var activeNavItem1 = $('floor-plan-scroll-container-1').getElement('a');
		var activeNavItem2 = $('floor-plan-scroll-container-2').getElement('a');
		var activeNavItem3 = $('floor-plan-scroll-container-3').getElement('a');
		var activeFloorNav = $('floor-plan-levels').getElement('a');
		
		//initialise the first image to be active
		activeNavItem1.getElement('img').src = (path + getObjectID(activeNavItem1.name) + "-on.gif");
		activeNavItem2.getElement('img').src = (path + getObjectID(activeNavItem2.name) + "-on.gif");
		activeNavItem3.getElement('img').src = (path + getObjectID(activeNavItem3.name) + "-on.gif");
		activeFloorNav.getElement('img').src =(path + activeFloorNav.name + "-on.gif");
		
		var container1 = $('floor-plan-scroll-container-1');
		
		var container2 = $('floor-plan-scroll-container-2');
		container2.addClass('hide');
		
		var container3 = $('floor-plan-scroll-container-3');
		container3.addClass('hide');
		
		
		
		//removes the noscript tag
		$('floor-plan-scroll-container-1').removeClass('noscript');
		$('floor-plan-scroll-container-2').removeClass('noscript');
		$('floor-plan-scroll-container-3').removeClass('noscript');
		
		var scroll1 = new Fx.Scroll('floor-plan-scroller-1', 
		{
			wait: false,
			duration: 1,
			offset: {'x': 0, 'y': 0},
			transition: Fx.Transitions.Sine.easeInOut
		});
		
		var scroll2 = new Fx.Scroll('floor-plan-scroller-2', 
		{
			wait: false,
			duration: 1,
			offset: {'x': 0, 'y': 0},
			transition: Fx.Transitions.Sine.easeInOut
		});
		var scroll3 = new Fx.Scroll('floor-plan-scroller-3', 
		{
			wait: false,
			duration: 1,
			offset: {'x': 0, 'y': 0},
			transition: Fx.Transitions.Sine.easeInOut
		});
			
		$('floor-plan-scroll-container-1').getElements('a').addEvent('click', function(event){
			event = new Event(event).stop();
			
			if(this != activeNavItem1)
			{					
				var objectID = getObjectID(this.name);
				
				scroll1.toElement(objectID);
						
				var activeImg1 = this.getElement('img');
				activeImg1.src = (path + objectID + "-on.gif");
				
				activeNavItem1.getElement('img').src = (path + getObjectID(activeNavItem1.name) + "-off.gif");
				
				activeNavItem1 = this;
			}
			else
			{
				//do nothing, you clicked on the same item again
			}
	
		});
		
		$('floor-plan-scroll-container-2').getElements('a').addEvent('click', function(event){
			
			event = new Event(event).stop();
			
			if(this != activeNavItem2)
			{	
				var objectID = getObjectID(this.name);
				
				scroll2.toElement(objectID);
						
				var activeImg2 = this.getElement('img');
				activeImg2.src = (path + objectID + "-on.gif");
				
				activeNavItem2.getElement('img').src = (path + getObjectID(activeNavItem2.name) + "-off.gif");
				
				activeNavItem2 = this;
			}
			else
			{
				//do nothing, you clicked on the same item again
			}
	
		});
		
		$('floor-plan-scroll-container-3').getElements('a').addEvent('click', function(event){
			
			event = new Event(event).stop();
			
			if(this != activeNavItem3)
			{
				var objectID = getObjectID(this.name);
				
				scroll3.toElement(objectID);
						
				var activeImg3 = this.getElement('img');
				activeImg3.src = (path + objectID + "-on.gif");
				
				activeNavItem3.getElement('img').src = (path + getObjectID(activeNavItem3.name) + "-off.gif");
				
				activeNavItem3 = this;
			}
			else
			{
				//do nothing, you clicked on the same item again
			}
	
		});
		$('floor-plan-levels').getElements('a').addEvent('click', function(event){
			
			event = new Event(event).stop();
	
			if(this != activeFloorNav)
			{
				
				var activeFloorImg = this.getElement('img');
				activeFloorImg.src = (path + this.name + "-on.gif");
				
				activeFloorNav.getElement('img').src = (path + activeFloorNav.name + "-off.gif");
				
				activeFloorNav = this;
				
				var allLevels = $('floor-plan-levels').getElements('a');
				
				var levelSize = allLevels.length;
				for(var i=0; i<levelSize; i++)
				{
					$('floor-plan-scroll-container-'+(i+1)).addClass('hide');
				}
				
				if(this.id == 'floor-link-1')
				{
					container1.removeClass('hide');
				}
				if(this.id == 'floor-link-2')
				{
					container2.removeClass('hide');
				}
				if(this.id == 'floor-link-3')
				{
					container3.removeClass('hide');
				}
				
			}
			else
			{
				//do nothing, you clicked on the same item again
			}
	
		});
	}
	if(floorplanlocation == 'barcelona-22district')
	{
		var path = incPath + '/images/floor-plans-images/barcelona/';
	
		//get the first nav item and set it to active
		var activeNavItem1 = $('floor-plan-scroll-container-1').getElement('a');
		var activeNavItem2 = $('floor-plan-scroll-container-2').getElement('a');
		var activeNavItem3 = $('floor-plan-scroll-container-3').getElement('a');
		var activeFloorNav = $('floor-plan-levels').getElement('a');
		
		//initialise the first image to be active
		activeNavItem1.getElement('img').src = (path + getObjectID(activeNavItem1.name) + "-on.gif");
		activeNavItem2.getElement('img').src = (path + getObjectID(activeNavItem2.name) + "-on.gif");
		activeNavItem3.getElement('img').src = (path + getObjectID(activeNavItem3.name) + "-on.gif");
		activeFloorNav.getElement('img').src = (path + activeFloorNav.name + "-on.gif");
		
		var container2 = $('floor-plan-scroll-container-2');
		container2.addClass('hide');
		var container3 = $('floor-plan-scroll-container-3');
		container3.addClass('hide');
		var container1 = $('floor-plan-scroll-container-1');
		
		//removes the noscript tag
		$('floor-plan-scroll-container-1').removeClass('noscript');
		$('floor-plan-scroll-container-2').removeClass('noscript');
		$('floor-plan-scroll-container-3').removeClass('noscript');
		
		var scroll1 = new Fx.Scroll('floor-plan-scroller-1', 
		{
			wait: false,
			duration: 1,
			offset: {'x': 0, 'y': 0},
			transition: Fx.Transitions.Sine.easeInOut
		});
		
		var scroll2 = new Fx.Scroll('floor-plan-scroller-2', 
		{
			wait: false,
			duration: 1,
			offset: {'x': 0, 'y': 0},
			transition: Fx.Transitions.Sine.easeInOut
		});
		var scroll3 = new Fx.Scroll('floor-plan-scroller-3', 
		{
			wait: false,
			duration: 1,
			offset: {'x': 0, 'y': 0},
			transition: Fx.Transitions.Sine.easeInOut
		});
			
		$('floor-plan-scroll-container-1').getElements('a').addEvent('click', function(event){
			event = new Event(event).stop();
			
			if(this != activeNavItem1)
			{
				var objectID = getObjectID(this.name);
				
				scroll1.toElement(objectID);
						
				var activeImg1 = this.getElement('img');
				activeImg1.src = (path + objectID + "-on.gif");
				
				activeNavItem1.getElement('img').src = (path + getObjectID(activeNavItem1.name) + "-off.gif");
				
				activeNavItem1 = this;
			}
			else
			{
				//do nothing, you clicked on the same item again
			}
	
		});
		
		$('floor-plan-scroll-container-2').getElements('a').addEvent('click', function(event){
			
			event = new Event(event).stop();
			
			if(this != activeNavItem2)
			{
				var objectID = getObjectID(this.name);
				
				scroll2.toElement(objectID);
						
				var activeImg2 = this.getElement('img');
				activeImg2.src = (path + objectID + "-on.gif");
				
				activeNavItem2.getElement('img').src = (path + getObjectID(activeNavItem2.name) + "-off.gif");
				
				activeNavItem2 = this;
			}
			else
			{
				//do nothing, you clicked on the same item again
			}
	
		});
		
		$('floor-plan-scroll-container-3').getElements('a').addEvent('click', function(event){
			
			event = new Event(event).stop();
			
			if(this != activeNavItem3)
			{
				var objectID = getObjectID(this.name);
				
				scroll3.toElement(objectID);
						
				var activeImg3 = this.getElement('img');
				activeImg3.src = (path + objectID + "-on.gif");
				
				activeNavItem3.getElement('img').src = (path + getObjectID(activeNavItem3.name) + "-off.gif");
				
				activeNavItem3 = this;
			}
			else
			{
				//do nothing, you clicked on the same item again
			}
	
		});
		$('floor-plan-levels').getElements('a').addEvent('click', function(event){
			
			event = new Event(event).stop();
	
			if(this != activeFloorNav)
			{
				var activeFloorImg = this.getElement('img');
				activeFloorImg.src = (path + this.name + "-on.gif");
				
				activeFloorNav.getElement('img').src = (path + activeFloorNav.name + "-off.gif");
				
				activeFloorNav = this;
				
				var allLevels = $('floor-plan-levels').getElements('a');
				
				var levelSize = allLevels.length;
				for(var i=0; i<levelSize; i++)
				{
					$('floor-plan-scroll-container-'+(i+1)).addClass('hide');
				}
				
				if(this.id == 'floor-link-1')
				{
					container1.removeClass('hide');
				}
				if(this.id == 'floor-link-2')
				{
					container2.removeClass('hide');
				}
				if(this.id == 'floor-link-3')
				{
					container3.removeClass('hide');
				}
				
			}
			else
			{
				//do nothing, you clicked on the same item again
			}
	
		});
	}
	if(floorplanlocation == 'london-kings-cross')
	{
		var path = incPath + '/images/floor-plans-images/kings-cross/';

		//get the first nav item and set it to active
		var activeNavItem1 = $('floor-plan-scroll-container-1').getElement('a');
		var activeNavItem2 = $('floor-plan-scroll-container-2').getElement('a');
		var activeFloorNav = $('floor-plan-levels').getElement('a');
		
		//initialise the first image to be active
		activeNavItem1.getElement('img').src = (path + getObjectID(activeNavItem1.name) + "-on.gif");
		activeNavItem2.getElement('img').src = (path + getObjectID(activeNavItem1.name) + "-on.gif");
		activeFloorNav.getElement('img').src =(path + activeFloorNav.name + "-on.gif");
		
		var container2 = $('floor-plan-scroll-container-2');
		container2.addClass('hide');
		var container1 = $('floor-plan-scroll-container-1');
		
		//removes the noscript tag
		$('floor-plan-scroll-container-1').removeClass('noscript');
		$('floor-plan-scroll-container-2').removeClass('noscript');
		
		var scroll1 = new Fx.Scroll('floor-plan-scroller-1', 
		{
			wait: false,
			duration: 1,
			offset: {'x': 0, 'y': 0},
			transition: Fx.Transitions.Sine.easeInOut
		});
		
		var scroll2 = new Fx.Scroll('floor-plan-scroller-2', 
		{
			wait: false,
			duration: 1,
			offset: {'x': 0, 'y': 0},
			transition: Fx.Transitions.Sine.easeInOut
		});
		
		$('floor-plan-scroll-container-1').getElements('a').addEvent('click', function(event){
			event = new Event(event).stop();
			
			if(this != activeNavItem1)
			{
				var objectID = getObjectID(this.name);
				
				scroll1.toElement(objectID);
						
				var activeImg1 = this.getElement('img');
				activeImg1.src = (path + objectID + "-on.gif");
				
				activeNavItem1.getElement('img').src = (path + getObjectID(activeNavItem1.name) + "-off.gif");
				
				activeNavItem1 = this;
			}
			else
			{
				//do nothing, you clicked on the same item again
			}
	
		});
		$('floor-plan-scroll-container-2').getElements('a').addEvent('click', function(event){
			
			event = new Event(event).stop();
			
			if(this != activeNavItem2)
			{
				var objectID = getObjectID(this.name);
				
				scroll2.toElement(objectID);
						
				var activeImg2 = this.getElement('img');
				activeImg2.src = (path + objectID + "-on.gif");
				
				activeNavItem2.getElement('img').src = (path + getObjectID(activeNavItem2.name) + "-off.gif");
				
				activeNavItem2 = this;
			}
			else
			{
				//do nothing, you clicked on the same item again
			}
	
		});
		
		$('floor-plan-levels').getElements('a').addEvent('click', function(event){
			
			event = new Event(event).stop();
	
			if(this != activeFloorNav)
			{
				
				var activeFloorImg = this.getElement('img');
				activeFloorImg.src = (path + this.name + "-on.gif");
				
				activeFloorNav.getElement('img').src = (path + activeFloorNav.name + "-off.gif");
				
				activeFloorNav = this;
				if (container1.hasClass('hide'))
				{
					container1.removeClass('hide');
					container2.addClass('hide');
				}
				else
				{
					container2.removeClass('hide');
					container1.addClass('hide');	
				}
			}
			else
			{
				//do nothing, you clicked on the same item again
			}
	
		});	
	}
}

