function VenuesOnLoad(venues)
{
	//if there is a venue URL parameter, show that venue's details
	var venue = VenuesGetVenueFromURL();
	if (venue != null && venue != "")
	{
		venue = venue.toLowerCase();
		if (venue == "adelaide1")
		{
			var cityContainer = VenuesGetElementByClassName(venues, "VenuesAdelaide", 0);
			VenuesCityOnMouseOver(cityContainer);
			VenuesVenueNameOnClick(VenuesGetElementByClassName(cityContainer, "VenuesVenueName", 0));
		}
		else if (venue == "adelaide2")
		{
			var cityContainer = VenuesGetElementByClassName(venues, "VenuesAdelaide", 0);
			VenuesCityOnMouseOver(cityContainer);
			VenuesVenueNameOnClick(VenuesGetElementByClassName(cityContainer, "VenuesVenueName", 1));
		}
		else if (venue == "brisbane1")
		{
			var cityContainer = VenuesGetElementByClassName(venues, "VenuesBrisbane", 0);
			VenuesCityOnMouseOver(cityContainer);
			VenuesVenueNameOnClick(VenuesGetElementByClassName(cityContainer, "VenuesVenueName", 0));
		}
		else if (venue == "brisbane2")
		{
			var cityContainer = VenuesGetElementByClassName(venues, "VenuesBrisbane", 0);
			VenuesCityOnMouseOver(cityContainer);
			VenuesVenueNameOnClick(VenuesGetElementByClassName(cityContainer, "VenuesVenueName", 1));
		}
		else if (venue == "cairns1")
		{
			var cityContainer = VenuesGetElementByClassName(venues, "VenuesCairns", 0);
			VenuesCityOnMouseOver(cityContainer);
			VenuesVenueNameOnClick(VenuesGetElementByClassName(cityContainer, "VenuesVenueName", 0));
		}
		else if (venue == "darwin1")
		{
			var cityContainer = VenuesGetElementByClassName(venues, "VenuesDarwin", 0);
			VenuesCityOnMouseOver(cityContainer);
			VenuesVenueNameOnClick(VenuesGetElementByClassName(cityContainer, "VenuesVenueName", 0));
		}
		else if (venue == "darwin2")
		{
			var cityContainer = VenuesGetElementByClassName(venues, "VenuesDarwin", 0);
			VenuesCityOnMouseOver(cityContainer);
			VenuesVenueNameOnClick(VenuesGetElementByClassName(cityContainer, "VenuesVenueName", 1));
		}
		else if (venue == "goldcoast1")
		{
			var cityContainer = VenuesGetElementByClassName(venues, "VenuesGoldCoast", 0);
			VenuesCityOnMouseOver(cityContainer);
			VenuesVenueNameOnClick(VenuesGetElementByClassName(cityContainer, "VenuesVenueName", 0));
		}
		else if (venue == "melbourne1")
		{
			var cityContainer = VenuesGetElementByClassName(venues, "VenuesMelbourne", 0);
			VenuesCityOnMouseOver(cityContainer);
			VenuesVenueNameOnClick(VenuesGetElementByClassName(cityContainer, "VenuesVenueName", 0));
		}
		else if (venue == "melbourne2")
		{
			var cityContainer = VenuesGetElementByClassName(venues, "VenuesMelbourne", 0);
			VenuesCityOnMouseOver(cityContainer);
			VenuesVenueNameOnClick(VenuesGetElementByClassName(cityContainer, "VenuesVenueName", 1));
		}
		else if (venue == "perth1")
		{
			var cityContainer = VenuesGetElementByClassName(venues, "VenuesPerth", 0);
			VenuesCityOnMouseOver(cityContainer);
			VenuesVenueNameOnClick(VenuesGetElementByClassName(cityContainer, "VenuesVenueName", 0));
		}
		else if (venue == "perth2")
		{
			var cityContainer = VenuesGetElementByClassName(venues, "VenuesPerth", 0);
			VenuesCityOnMouseOver(cityContainer);
			VenuesVenueNameOnClick(VenuesGetElementByClassName(cityContainer, "VenuesVenueName", 1));
		}
		else if (venue == "sydney1")
		{
			var cityContainer = VenuesGetElementByClassName(venues, "VenuesSydney", 0);
			VenuesCityOnMouseOver(cityContainer);
			VenuesVenueNameOnClick(VenuesGetElementByClassName(cityContainer, "VenuesVenueName", 0));
		}
		else if (venue == "sydney2")
		{
			var cityContainer = VenuesGetElementByClassName(venues, "VenuesSydney", 0);
			VenuesCityOnMouseOver(cityContainer);
			VenuesVenueNameOnClick(VenuesGetElementByClassName(cityContainer, "VenuesVenueName", 1));
		}
	}
	else
	{
		//if there is a city URL parameter, show the venues for that city
		var city = VenuesGetCityFromURL();
		if (city != null && city != "")
		{
			city = city.toLowerCase();
			if (city == "adelaide")
			{
				var cityContainer = VenuesGetElementByClassName(venues, "VenuesAdelaide", 0);
				VenuesCityOnMouseOver(cityContainer);
			}
			else if (city == "brisbane")
			{
				var cityContainer = VenuesGetElementByClassName(venues, "VenuesBrisbane", 0);
				VenuesCityOnMouseOver(cityContainer);
			}
			else if (city == "cairns")
			{
				var cityContainer = VenuesGetElementByClassName(venues, "VenuesCairns", 0);
				VenuesCityOnMouseOver(cityContainer);
			}
			else if (city == "darwin")
			{
				var cityContainer = VenuesGetElementByClassName(venues, "VenuesDarwin", 0);
				VenuesCityOnMouseOver(cityContainer);
			}
			else if (city == "goldcoast")
			{
				var cityContainer = VenuesGetElementByClassName(venues, "VenuesGoldCoast", 0);
				VenuesCityOnMouseOver(cityContainer);
			}
			else if (city == "melbourne")
			{
				var cityContainer = VenuesGetElementByClassName(venues, "VenuesMelbourne", 0);
				VenuesCityOnMouseOver(cityContainer);
			}
			else if (city == "perth")
			{
				var cityContainer = VenuesGetElementByClassName(venues, "VenuesPerth", 0);
				VenuesCityOnMouseOver(cityContainer);
			}
			else if (city == "sydney")
			{
				var cityContainer = VenuesGetElementByClassName(venues, "VenuesSydney", 0);
				VenuesCityOnMouseOver(cityContainer);
			}
		}
	}
}

function VenuesGetElementByClassName(container, className, index)
{
	var elements = VenuesGetElementsByClassNameRecursive(container, className);
	var element = null;
	if (index >= 0 && index < elements.length)
	{
		element = elements[index];
	}
	return element;
}

function VenuesGetElementsByClassNameRecursive(container, className)
{
	var elements = new Array();
	if (container != null)
	{
		if (container.className == className)
		{
			elements[elements.length] = container;
		}

		var numChildNodes = container.childNodes.length;
		for (var i = 0; i < numChildNodes; i++)
		{
			elements = elements.concat(VenuesGetElementsByClassNameRecursive(container.childNodes[i], className));
		}
	}
	return elements;
}

function VenuesGetVenueFromURL()
{
	var venue = VenuesGetURLParameter("venue");
	if (venue == null || venue == "")
	{
		//try to get the venue from the URL path
		var pageName = VenuesGetPageName();
		pageName = pageName.toLowerCase();
		if (pageName == "adelaide-convention-centre")
		{
			venue = "adelaide1";
		}
		else if (pageName == "adelaide-convention-bureau")
		{
			venue = "adelaide2";
		}
		else if (pageName == "brisbane-convention-and-exhibition-centre")
		{
			venue = "brisbane1";
		}
		else if (pageName == "brisbane_marketing_convention_bureau")
		{
			venue = "brisbane2";
		}
		else if (pageName == "cairns-convention-centre")
		{
			venue = "cairns1";
		}
		else if (pageName == "darwin-convention-centre")
		{
			venue = "darwin1";
		}
		else if (pageName == "northern-territory-convention-bureau")
		{
			venue = "darwin2";
		}
		else if (pageName == "gold-coast-convention-and-exhibition-centre")
		{
			venue = "goldCoast1";
		}
		else if (pageName == "melbourne_exhibition_and_convention_centre")
		{
			venue = "melbourne1";
		}
		else if (pageName == "melbourne-convention-and-visitors-bureau")
		{
			venue = "melbourne2";
		}
		else if (pageName == "perth-convention-bureau")
		{
			venue = "perth1";
		}
		else if (pageName == "perth_convention_exhibition_centre")
		{
			venue = "perth2";
		}
		else if (pageName == "sydney-convention-and-exhibition-centre")
		{
			venue = "sydney1";
		}
		else if (pageName == "business_events_sydney")
		{
			venue = "sydney2";
		}
	}
	
	return venue;
}

function VenuesGetCityFromURL()
{
	var city = VenuesGetURLParameter("city");
	if (city == null || city == "")
	{
		var pageName = VenuesGetPageName();
		pageName = pageName.toLowerCase();
		if (pageName == "adelaide")
		{
			city = "adelaide";
		}
		else if (pageName == "brisbane")
		{
			city = "brisbane";
		}
		else if (pageName == "cairns")
		{
			city = "cairns";
		}
		else if (pageName == "darwin")
		{
			city = "darwin";
		}
		else if (pageName == "gold-coast")
		{
			city = "goldCoast";
		}
		else if (pageName == "melbourne")
		{
			city = "melbourne";
		}
		else if (pageName == "perth")
		{
			city = "perth";
		}
		else if (pageName == "sydney")
		{
			city = "sydney";
		}
	}
	
	return city;
}

function VenuesOnClick(venuesContainer)
{
	var iMax = venuesContainer.childNodes.length;
	for (var i = 0; i < iMax; i++)
	{
		if (venuesContainer.childNodes[i].className == "VenuesAdelaide"
				|| venuesContainer.childNodes[i].className == "VenuesBrisbane"
				|| venuesContainer.childNodes[i].className == "VenuesCairns"
				|| venuesContainer.childNodes[i].className == "VenuesDarwin"
				|| venuesContainer.childNodes[i].className == "VenuesGoldCoast"
				|| venuesContainer.childNodes[i].className == "VenuesMelbourne"
				|| venuesContainer.childNodes[i].className == "VenuesPerth"
				|| venuesContainer.childNodes[i].className == "VenuesSydney")
		{
			VenuesHideVenuesList(venuesContainer.childNodes[i]);
		}
	}
}

function VenuesCityOnMouseOver(cityContainer)
{
	//hide all other city lists
	var parentNode = cityContainer.parentNode;
	while (parentNode != null)
	{
		if (parentNode.className == "Venues")
		{
			break;
		}
	}

	if (parentNode != null)
	{
		var iMax = parentNode.childNodes.length;
		for (var i = 0; i < iMax; i++)
		{
			if (parentNode.childNodes[i] != cityContainer &&
				(parentNode.childNodes[i].className == "VenuesAdelaide"
					|| parentNode.childNodes[i].className == "VenuesBrisbane"
					|| parentNode.childNodes[i].className == "VenuesCairns"
					|| parentNode.childNodes[i].className == "VenuesDarwin"
					|| parentNode.childNodes[i].className == "VenuesGoldCoast"
					|| parentNode.childNodes[i].className == "VenuesMelbourne"
					|| parentNode.childNodes[i].className == "VenuesPerth"
					|| parentNode.childNodes[i].className == "VenuesSydney"))
			{
				VenuesHideVenuesList(parentNode.childNodes[i]);
			}
		}
	}

	//show the current city list
	VenuesShowVenuesList(cityContainer);
}

function VenuesShowVenuesList(cityContainer)
{
	//change the city text class
	var iMax = cityContainer.childNodes.length;
	for (var i = 0; i < iMax; i++)
	{
		var node = cityContainer.childNodes[i];
		var jMax = node.childNodes.length;
		for (var j = 0; j < jMax; j++)
		{
			if (node.childNodes[j].className == "VenuesCityText")
			{
				node.childNodes[j].className = "VenuesCityTextHover";
				i = iMax;
				break;
			}
		}
	}

	//show the city list
	for (var i = 0; i < iMax; i++)
	{
		if (cityContainer.childNodes[i].className == "VenuesCityList")
		{
			if (cityContainer.childNodes[i].style.display != "block")
			{
				cityContainer.childNodes[i].style.display = "block";
			}
			break;
		}
	}
}

function VenuesHideVenuesList(cityContainer)
{
	//hide the city list
	var iMax = cityContainer.childNodes.length;
	for (var i = 0; i < iMax; i++)
	{
		if (cityContainer.childNodes[i].className == "VenuesCityList")
		{
			if (cityContainer.childNodes[i].style.display != "none")
			{
				cityContainer.childNodes[i].style.display = "none";
			}
			break;
		}
	}

	//change the city text class
	for (var i = 0; i < iMax; i++)
	{
		var node = cityContainer.childNodes[i];
		var jMax = node.childNodes.length;
		for (var j = 0; j < jMax; j++)
		{
			if (node.childNodes[j].className == "VenuesCityTextHover")
			{
				node.childNodes[j].className = "VenuesCityText";
				i = iMax;
				break;
			}
		}
	}
}

function VenuesVenueNameOnClick(venueNameContainer)
{
	var venueDetailsContainer = document.getElementById(venueNameContainer.getAttribute("venueDetailsContainerId"));
	VenuesShowVenueDetails(venueDetailsContainer);
}

function VenuesVenueDetailsBackgroundOnClick(venueDetailsBackground)
{
	//hide all venue details
	var venuesContainer = venueDetailsBackground.parentNode;
	while (venuesContainer != null)
	{
		if (venuesContainer.className == "Venues")
		{
			break;
		}
	}
	if (venuesContainer != null)
	{
		var iMax = venuesContainer.childNodes.length;
		for (var i = 0; i < iMax; i++)
		{
			if (venuesContainer.childNodes[i].className == "VenuesVenueDetails")
			{
				VenuesHideVenueDetails(venuesContainer.childNodes[i]);
			}
		}
	}
}

function VenuesVenueDetailsCloseOnClick(venueDetailsCloseContainer)
{
	var venueDetailsContainer = venueDetailsCloseContainer.parentNode;
	while (venueDetailsContainer != null)
	{
		if (venueDetailsContainer.className == "VenuesVenueDetails")
		{
			VenuesHideVenueDetails(venueDetailsContainer);
			break;
		}
	}
}

function VenuesShowVenueDetails(venueDetailsContainer)
{
	if (venueDetailsContainer != null)
	{
		//show the shadow frame and background frame
		var venuesContainer = venueDetailsContainer.parentNode;
		while (venuesContainer != null)
		{
			if (venuesContainer.className == "Venues")
			{
				break;
			}
		}
		if (venuesContainer != null)
		{
			VenuesShowVenueDetailsBackground(venuesContainer);
			VenuesShowVenueDetailsFrame(venuesContainer);
		}

		if (venueDetailsContainer.style.display != "block")
		{
			var contentPaneCell = VenuesGetElementByClassName(window.document, "ContentPaneCellVenues", 0);
			if (contentPaneCell != null)
			{
				contentPaneCell.style.backgroundColor = "#CCCCCC";
			}

			venueDetailsContainer.style.display = "block";
		}
	}
}

function VenuesHideVenueDetails(venueDetailsContainer)
{
	if (venueDetailsContainer != null)
	{
		if (venueDetailsContainer.style.display != "none")
		{
			var contentPaneCell = VenuesGetElementByClassName(window.document, "ContentPaneCellVenues", 0);
			if (contentPaneCell != null)
			{
				contentPaneCell.style.backgroundColor = "white";
			}

			venueDetailsContainer.style.display = "none";
		}

		//hide the shadow frame and background frame
		var venuesContainer = venueDetailsContainer.parentNode;
		while (venuesContainer != null)
		{
			if (venuesContainer.className == "Venues")
			{
				break;
			}
		}
		if (venuesContainer != null)
		{
			VenuesHideVenueDetailsFrame(venuesContainer);
			VenuesHideVenueDetailsBackground(venuesContainer);
		}
	}
}

function VenuesShowVenueDetailsBackground(venuesContainer)
{
	var iMax = venuesContainer.childNodes.length;
	for (var i = 0; i < iMax; i++)
	{
		if (venuesContainer.childNodes[i].className == "VenuesVenueDetailsBackground")
		{
			if (venuesContainer.childNodes[i].style.display != "block")
			{
				venuesContainer.childNodes[i].style.display = "block";
			}
			break;
		}
	}
}

function VenuesHideVenueDetailsBackground(venuesContainer)
{
	var iMax = venuesContainer.childNodes.length;
	for (var i = 0; i < iMax; i++)
	{
		if (venuesContainer.childNodes[i].className == "VenuesVenueDetailsBackground")
		{
			if (venuesContainer.childNodes[i].style.display != "none")
			{
				venuesContainer.childNodes[i].style.display = "none";
			}
			break;
		}
	}
}

function VenuesShowVenueDetailsFrame(venuesContainer)
{
	var iMax = venuesContainer.childNodes.length;
	for (var i = 0; i < iMax; i++)
	{
		if (venuesContainer.childNodes[i].className == "VenuesVenueDetailsFrame")
		{
			if (venuesContainer.childNodes[i].style.display != "block")
			{
				venuesContainer.childNodes[i].style.display = "block";
			}
			break;
		}
	}
}

function VenuesHideVenueDetailsFrame(venuesContainer)
{
	var iMax = venuesContainer.childNodes.length;
	for (var i = 0; i < iMax; i++)
	{
		if (venuesContainer.childNodes[i].className == "VenuesVenueDetailsFrame")
		{
			if (venuesContainer.childNodes[i].style.display != "none")
			{
				venuesContainer.childNodes[i].style.display = "none";
			}
			break;
		}
	}
}

function VenuesGetURLParameter(name)
{
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp(regexS);
	var tmpURL = window.location.href;
	var results = regex.exec(tmpURL);
	if (results == null)
		return "";
	else
		return results[1];
}

function VenuesGetPageName()
{
	var regexS = "([^\\/\.]*).aspx";
	var regex = new RegExp(regexS);
	var tmpURL = window.location.href;
	var results = regex.exec(tmpURL);
	if (results == null)
		return "";
	else
		return results[1];
}
