// ************* MAIN MENU ITEMS *************
var oNavItems = {
	// RESORTS MENU
	resorts: [
		{text: 'Overview',url: 'http://www.voyages.com.au/resorts/'},
		{text: 'Alice Springs Resort',url: 'http://www.alicespringsresort.com.au/'},
		{text: 'Ayers Rock Resort',url: 'http://www.ayersrockresort.com.au/'},
		{text: 'Bedarra Island',url: 'http://www.bedarraisland.com/'},
		{text: 'Brampton Island',url: '../default.htm'},
		{text: 'Coconut Beach Rainforest Lodge',url: 'http://www.coconutbeach.com.au/'},
		{text: 'Cradle Mountain Lodge',url: 'http://www.cradlemountainlodge.com.au/'},
		{text: 'Dunk Island',url: 'http://www.dunk-island.com/'},
		{text: 'Ferntree Rainforest Lodge',url: 'http://www.ferntreelodge.com.au/'},
		{text: 'Heron Island',url: 'http://www.heronisland.com/'},
		{text: 'Kings Canyon Resort',url: 'http://www.kingscanyonresort.com.au/'},
		{text: 'Lizard Island',url: 'http://www.lizardisland.com.au/'},
		{text: 'Longitude 131&deg;',url: 'http://www.longitude131.com.au/'},
		{text: 'Odyssey Tours &amp; Safaris',url: 'http://www.odysaf.com.au/'},
		{text: 'Silky Oaks Lodge',url: 'http://www.silkyoakslodge.com.au/'},
		{text: 'Wilson Island',url: 'http://www.wilsonisland.com/'},
		{text: 'Wrotham Park Lodge',url: 'http://www.wrothampark.com.au/'}
	],
	// EXPERIENCES MENU
	experiences: [
		{text: 'Overview',url: 'http://www.voyages.com.au/experiences/'},
		{text: 'Australia\'s Red Centre',url: 'http://www.voyages.com.au/experiences/red-centre/'},
		{text: 'Great Barrier Reef Islands',url: 'http://www.voyages.com.au/experiences/great-barrier-reef/'},
		{text: 'Daintree Rainforest',url: 'http://www.voyages.com.au/experiences/daintree-rainforest/'},
		{text: 'Cape Tribulation',url: 'http://www.voyages.com.au/experiences/cape-tribulation/'},
		{text: 'Scuba Diving &amp; Snorkelling',url: 'http://www.voyages.com.au/experiences/diving/'},
		{text: 'Outback Queensland',url: 'http://www.voyages.com.au/experiences/outback-queensland/'},
		{text: 'Tasmanian Wilderness',url: 'http://www.voyages.com.au/experiences/tasmanian-wilderness/'},
		{text: 'Australia\'s Top End',url: 'http://www.voyages.com.au/experiences/top-end/'},
		{text: 'Camping',url: 'http://www.voyages.com.au/experiences/camping/'},
		{text: 'Luxury Resorts',url: 'http://www.voyages.com.au/experiences/luxury-resorts/'},
		{text: 'Holidays with a Difference',url: 'http://www.voyages.com.au/hwad/'}
	],
	// SPAS MENU
	spas: [
		{text: 'Overview',url: 'http://www.voyages.com.au/spas/'},
		{text: 'The Sea Spa - <br />Brampton Island',url: '../sea-spa/default.htm'},
		{text: 'Waldheim Alpine Spa - Cradle Mountain Lodge',url: 'http://www.cradlemountainlodge.com.au/waldheim-alpine-spa/'},
		{text: 'Spa of Peace and Plenty - Dunk Island',url: 'http://www.dunk-island.com/spa-of-peace-and-plenty/'},
		{text: 'Aqua Soul Spa - <br/>Heron Island',url: 'http://www.heronisland.com/aqua-soul-spa/'},
		{text: 'Azure Spa - <br />Lizard Island',url: 'http://www.lizardisland.com.au/azure-spa/'},
		{text: 'Healing Waters Spa - <br />Silky Oaks Lodge',url: 'http://www.silkyoakslodge.com.au/healing-waters-spa/'}
	],
	// WEDDINGS MENU
	weddings: [
		{text: 'Overview',url: 'http://www.voyages.com.au/weddings/'},
		{text: 'Wedding Packages',url: 'http://www.voyages.com.au/weddings/australian-wedding-packages/'},
		{text: 'Honeymoon Packages',url: 'http://www.voyages.com.au/weddings/honeymoon-packages/'}
	],
	// CONFERENCES AND INCENTIVES MENU
	conferences: [
		{text: 'Overview',url: 'http://www.voyages.com.au/conferences/'},
		{text: 'Amazing Locations',url: 'http://www.voyages.com.au/conferences/locations/'},
		{text: 'Conference Packages',url: 'http://www.voyages.com.au/conferences/conference-packages/'}
	],

	// ABOUT US MENU
	about: [
		{text: 'Contact Us',url: 'http://www.voyages.com.au/corporate/contact/'},
		{text: 'Make a Booking',url: 'http://www.voyages.com.au/bookings/'},
		{text: 'Guest Feedback',url: 'http://www.voyages.com.au/corporate/contact/'},
		{text: 'Corporate Information',url: 'http://www.voyages.com.au/corporate/'},
		{text: 'Career Opportunities',url: 'http://www.voyages.com.au/corporate/careers/'}
		/**{text: 'Downloadable Info',url: 'http://www.voyages.com.au/downloadable_info/'}**/
	]

};
// ************* THE FOLLOWING CODE DISPLAYS THE DROPDOWN MENU *************
// Constants
var ELEMENT_NODE = 1;
var TEXT_NODE = 3;

// Variables
var oCurrentMenuItem;
var oCurrentSubMenu;
var oBuiltSubMenus = {};

document.onmouseover = function(e){

	Event = (e == null) ? event : e;
	Event.sourceElement = (Event.target == null) ? Event.srcElement : Event.target;

	// Capture mouseover events on the main navigation buttons

	oSubMenu = null;


	if(Event.sourceElement.parentNode.parentNode != null){
		blnIsButtonTextNode = (Event.sourceElement.parentNode.parentNode.id == 'mainNav' && Event.sourceElement.nodeType == TEXT_NODE);
	}else{
		blnIsButtonTextNode = false;
	}

	if(Event.sourceElement.parentNode.id == 'mainNav' || blnIsButtonTextNode){

		oMenuItem = (blnIsButtonTextNode) ? Event.sourceElement.parentNode : Event.sourceElement;

		strNavID = oMenuItem.id.split('_')[1];

		if(oNavItems[strNavID] != null){
		
			if(oBuiltSubMenus[strNavID] != null){
				oSubMenu = document.getElementById('sub_' + strNavID);
			}else{
				oNewSubMenu = document.createElement('div');
				oNewSubMenu.id = 'sub_' + strNavID;
				oNewSubMenu.className = 'submenu';

				for(i = 0; i < oNavItems[strNavID].length; i++){
					oNewSubMenuItem = document.createElement('a');
					oNewSubMenuItem.innerHTML = oNavItems[strNavID][i].text;
					oNewSubMenuItem.href = oNavItems[strNavID][i].url;
					oNewSubMenu.appendChild(oNewSubMenuItem);
				}

				oMainNav = document.getElementById('mainNav');
				
				oMainNav.insertBefore(oNewSubMenu, oMenuItem.nextSibling);

				oBuiltSubMenus[strNavID] = true;
				oSubMenu = oNewSubMenu;
			}
		}

		if(oSubMenu != null && oSubMenu.nodeType == ELEMENT_NODE){

			if(oCurrentMenuItem == oMenuItem){
				return false;
			}

			if(oCurrentMenuItem != null && oCurrentMenuItem != oMenuItem){
				oCurrentMenuItem.className = '';
			}

			if(oCurrentSubMenu != null && oCurrentSubMenu != oSubMenu){
				oCurrentSubMenu.style.visibility = 'hidden';
			}

			iSubMenuWidth = parseInt(oMenuItem.offsetWidth);
			if(iSubMenuWidth < 170){
					switch (strNavID)
						{
							case "experiences":
								iSubMenuWidth = 170;
								break;
							case "spas":
								iSubMenuWidth = 170;
								break;
							case "weddings":
								iSubMenuWidth = 150;
								break;
							case "conferences":
								iSubMenuWidth = 150;
								break;
							case "about":
								iSubMenuWidth = 133;
								break;
							default:
								iSubMenuWidth = 194;
						}
			}

			oSubMenu.style.width = iSubMenuWidth + 'px';
			oSubMenu.style.left = oMenuItem.offsetLeft + 'px';

			if(oMenuItem.className != 'current'){
				oMenuItem.className = 'active';
			}else{
				oMenuItem.style.borderTopColor = '#7BD3EC';
			}

			/*
				Changing the display property aswell as the visibility 
				prevents NS6+ from flashing the submenu before it is 
				positioned
			*/
			oSubMenu.style.display = 'none';
			oSubMenu.style.visibility = 'visible';
			oSubMenu.style.display = 'block';
			oCurrentMenuItem = oMenuItem;
			oCurrentSubMenu = oSubMenu;
		}
	}

}

document.onmouseout = function(e){

	Event = (e == null) ? event : e;
	Event.sourceElement = (Event.target == null) ? Event.srcElement : Event.target;
	Event.relatedElement = (Event.relatedTarget == null) ? Event.toElement : Event.relatedTarget;

	// mouseout event fired by the top-level menu item
	if(
		(Event.sourceElement != null && Event.sourceElement.id != null && Event.sourceElement.id.split('_')[0] == 'nav')
		&& Event.sourceElement.nodeType == ELEMENT_NODE
		&& Event.sourceElement.className != 'submenu'
		&& Event.sourceElement.parentNode.className != 'submenu'
		&& Event.relatedElement != null	
		&& Event.relatedElement.className != 'submenu'
		&& Event.relatedElement.parentNode.className != 'submenu'
	){

		if(oCurrentSubMenu != null){
			oCurrentSubMenu.style.visibility = 'hidden';
			oCurrentSubMenu = null;
		}

		if(oCurrentMenuItem != null && oCurrentMenuItem.className != 'current'){
			oCurrentMenuItem.className = '';
		}else if(oCurrentMenuItem.className == 'current'){
			oMenuItem.style.borderTopColor = '#3ABDE4';
		}
		oCurrentMenuItem = null;
	}

	// mouseout event fired by the sub-menu
	if(
		Event.sourceElement != null
		&& Event.relatedElement != null
		&& (Event.sourceElement.parentNode.className == 'submenu' || Event.sourceElement.className == 'submenu')
		&& Event.relatedElement.nodeType != TEXT_NODE
		&& Event.relatedElement.className != 'submenu'
		&& Event.relatedElement.parentNode.className != 'submenu'
		&& Event.sourceElement.parentNode.id != 'mainNav'
		&& Event.relatedElement.parentNode.id != 'mainNav'
	){

		if(oCurrentSubMenu != null){
			oCurrentSubMenu.style.visibility = 'hidden';
			oCurrentSubMenu = null;
		}

		if(oCurrentMenuItem != null && oCurrentMenuItem.className != 'current'){
			oCurrentMenuItem.className = '';
		}else if(oCurrentMenuItem.className == 'current'){
			oMenuItem.style.borderTopColor = '#3ABDE4';
		}
		oCurrentMenuItem = null;
	}

}
