function validateEnquiryForm() {
	
	validateString(this.name, 'Please provide your name.', 1, 200);
	validateString(this.company, 'Please provide the name of your company/place of work.', 1, 200);
	validateString(this.tel, 'Please provide a telephone number.', 1, 200);
	validateEmail(this.email, 'Please provide a valid email address.', 0);
	
	return false;

}

function toggleElement(e) {

	var target = findTarget(e);
	var anchor = target;
	
	// go back up to enclosing DIV...
	while (target != document.body && target.nodeName.toLowerCase() != 'div') {
		target = target.parentNode;
		//... till we find the enclosing toggleBlock element
		if (target.className == 'toggleBlock') {
			// find any toggleDetails elements
			var toggleDetails = getElementsByClass('toggleDetails', target);
			for (var i = 0; i < toggleDetails.length; i++) {
				var el = toggleDetails[i];
				// toggle visibility and change the background-image of the anchor
				if (el.style.display != 'none' ) {
					// hide
					el.style.display = 'none';
					// remove the class from the anchor
					anchor.className = anchor.className.replace(/\b ?toggled\b/,'');
					//anchor.style.backgroundImage = "url(../images/arrow-right.gif)";
					//anchor.style.color = '';
				} else {
					// show
					el.style.display = '';
					// add class to anchor
					anchor.className += ' toggled';
					//anchor.style.color = 'white';
					//anchor.style.backgroundImage = "url(../images/arrow-down-white.gif)";
				}
			}
		}
	}
	// cancel bubble and href of this anchor
	cancelClick(e);
	// hack for Safari (stops browser following href link)
	anchor.onclick = function() { return false; }

}

function setupToggleBlock() {
	// find all elements with class 'packageButton'
	var toggleButtons = getElementsByClass('toggleButton');
	if (toggleButtons.length > 0) {
		for (var i = 0; i < toggleButtons.length; i++) {
			var tempNode = toggleButtons[i];
			// attached togglePackage to it's child a's
			for (var j = 0; j < tempNode.getElementsByTagName('a').length; j++) {
				var tempAnchor = tempNode.getElementsByTagName('a')[j];
				addEvent(tempAnchor, 'click', toggleElement, false);
			}
		}
	}		
}

function toggle(key) {

	var toggleContentElm = 'toggled_content_' + key;
	var toggleContentButtonElm = 'toggled_button_' + key;
	
	if (document.getElementById(toggleContentElm) && document.getElementById(toggleContentButtonElm)) {
	
		var toggleContent = document.getElementById(toggleContentElm);
		var toggleContentButton = document.getElementById(toggleContentButtonElm);
		
		if (toggleContent.style.display == 'none') {
			toggleContent.style.display = '';
			toggleContentButton.style.backgroundImage = 'url(../images/triangle-open.gif)';
		} else {
			toggleContent.style.display = 'none';
			toggleContentButton.style.backgroundImage = 'url(../images/triangle-close.gif)';
		}
	}
}

function showToggledContent() {
	var hash = document.location.hash;
	if (hash.length > 0) {
		hash = hash.replace(/#/i, ''); // remove the # from the hash
		toggle(hash);
	}
}

function slideSwap(e) {
	
	var element;
	
	// cross browser method of finding out who is calling this function
	// this is the IE way
	if (window.event && window.event.srcElement) {
		element = window.event.srcElement;
	}
	if (e && e.target) {
		element = e.target;
	}
	
	// make sure we get an anchor tag
	while (element != document.body && element.nodeName.toLowerCase() != 'a') {
		element = element.parentNode;
	}
	
	// get the value of the element
	//var src = element.src;
	// change the src of the main image
	//var mainImage = document.getElementById("imagePlaceholder");
	//mainImage.src = src;
	
	// get the id of the div to toggle (found in the rel attribute of the anchor)
	var toggleDiv = element.getAttribute("rel");
	//alert(toggleDiv);
	
	var toggleDivs = new Array('slide_0', 'slide_1', 'slide_2', 'slide_3');
	for (var i = 0; i < toggleDivs.length; i++) {
		
		var tempToggleDiv = toggleDivs[i];
		if (document.getElementById(tempToggleDiv)) {
			//alert(element);
			if (tempToggleDiv == toggleDiv) {
				document.getElementById(tempToggleDiv).style.display = '';
			} else {
				document.getElementById(tempToggleDiv).style.display = 'none';
			}
		}
	}
	
	// turn off all borders first
	var image_anchors = document.getElementById("slide_selector").getElementsByTagName("a");
	for (var i = 0; i < image_anchors.length; i++) {
		var anchor = image_anchors[i];
		// unhighlight all other anchors
		anchor.className = anchor.className.replace(/\b ?selected\b/,'');
	}
	
	// highlight clicked anchor
	element.className += 'selected';
	
	// cancel default anchor link
	if (window.event) {
		window.event.returnValue = false;
	} else {
		e.preventDefault();
	}
}

function ini_slideSwap() {	
	if (document.getElementById) {
		if (document.getElementById("slide_selector")) {
			var anchors = document.getElementById("slide_selector").getElementsByTagName("a");
			for (var i = 0; i < anchors.length; i++) {
				var element = anchors[i];
				addEvent(element, 'click', slideSwap, false);
				element.onclick = cancelClick; // for the benefit of Safari
			}
		}
	}	
}

function toggleItem(targetID, target2ID) {
	if (document.getElementById) {
		target = document.getElementById(targetID);
		target2 = document.getElementById(target2ID);
		if (target.style.display == "none") {
			target.style.display = "";
			target2.style.backgroundImage = "url('../images/triangle-open.gif')";
		} else {
			target.style.display = "none";
			target2.style.backgroundImage = "url('../images/triangle-close.gif')";
		}
	}
}

function setupURLJumperSelect() {
	// get all select elements with the class 'url_jump_select'
	var selects = getElementsByClass('url_jump_select', document, 'SELECT');
	// loop through, add event on change
	for (var i = 0; i < selects.length; i++) {
		selectElement = selects[i];
		// attach onclick function
		addEvent(selectElement, 'change', urlJumpSelect, false);
	}	
}

function urlJumpSelect(e) {
	// find the target
	var target = findTarget(e);
	var path = target.value;
	if (path.length > 0) {
		document.location.href = path;
	}
}

function setUpRadiosAndCheckboxes() {
	// get all select elements with the class 'url_jump_select'
	var inputs = document.getElementsByTagName('INPUT');
	// loop through, add class 'radio' if they are a radio or checkbox
	for (var i = 0; i < inputs.length; i++) {
		inputElement = inputs[i];
		if (inputElement.getAttribute('type') == 'checkbox' || inputElement.getAttribute('type') == 'radio') {
			// add class
			inputElement.className += ' radio';
		}
	}	
}

function toggleList(e) {
	
	// get a reference to the anchor and it's parentNode (the <li> element)
	if (window.event) {
		// IE does it differently... stores the event in a window.event object
		var thisA = window.event.srcElement;
		//alert(thisA);
		var thisLI = thisA.parentNode;
	} else {
		var thisA = this;
		var thisLI = this.parentNode;
	}
	// if this li has nested ul elements...
	if (thisLI.getElementsByTagName('ul').length > 0) {
		
		var toggleListTarget = thisLI.getElementsByTagName('ul')[0];
		//...toggle visibility of first ul
		if (toggleListTarget.style.display != 'none' ) {
			toggleListTarget.style.display = 'none';
			//thisA.style.color = '';
			thisA.style.backgroundImage = 'url(../images/arrowright.gif)';
			//closeListArrow();
		} else {
			toggleListTarget.style.display = '';
			//thisA.style.color = 'white';
			thisA.style.backgroundImage = 'url(../images/arrowdown.gif)';
			//expandListArrow();
		}
		// cancel bubble and href of this anchor
		cancelClick(e);
		// hack for Safari (stops browser following href link)
		thisA.onclick = function() { return false; }
	}
}

function setUpCollapsingList() {

	// find the toggle list
	var lists = getElementsByClass('collapsible_list', document, 'ul');
	
	for (var x = 0; x < lists.length; x++) {
		//list = document.getElementById('collapsingList');
		list = lists[x];
		// find all it's child UL elements
		var childLists = list.getElementsByTagName('ul');
		// hide them all
		for (var i = 0; i < childLists.length; i++) {
			var childList = childLists[i];
			childList.style.display = 'none';
		}
		
		// attach toggleList function to onclick of each anchor
		var childAnchors = list.getElementsByTagName('a');
		// hide them all
		for (var i = 0; i < childAnchors.length; i++) {
			var childAnchor = childAnchors[i];
			// attach toggleList function to onclick of each anchor
			addEvent(childAnchor, 'click', toggleList, false);
		}
	}
}

function load_ticker() {
	if (document.getElementById('ticker')) {
		var ticker = document.getElementById('ticker');

		// remove all chidren inside ticker
		while (ticker.hasChildNodes()) {
			ticker.removeChild(ticker.firstChild);
		}
		
		var iframe_src = getPathToRoot() + 'inc/ticker.php';
		
		// create the iframe element
		var iframe = document.createElement('iframe');
		iframe.setAttribute('height', 16);
		iframe.setAttribute('width', 650);
		iframe.setAttribute('marginwidth', 0);
		iframe.setAttribute('marginheight', 0);
		iframe.setAttribute('frameBorder', 0); // note the case-sensitivity for IE6
		iframe.setAttribute('scrolling', 'no');
		iframe.setAttribute('src', iframe_src);
		
		// add to the ticker DIV
		ticker.appendChild(iframe);
	}
}

function showRoomInfo(e) {
	var target = findTarget(e);
	//alert(target);
	// show the div matching the targets id (with '-info' added)
	if (target.getAttribute('id') != '') {
		var infoID = target.getAttribute('id') + '-info';
		if (document.getElementById(infoID)) {
			// show the DIV
			document.getElementById(infoID).style.display = '';
		}
	}
}

function hideRoomInfo() {
	// hide all sub divs inside the roomInfo div
	if (document.getElementById('roomInfo')) {
		var roomInfo = document.getElementById('roomInfo');
		for (var i = 0; i < roomInfo.getElementsByTagName('div').length; i++) {
			roomInfo.getElementsByTagName('div')[i].style.display = 'none';
		}
	}
}

function setUpRoomsInfo() {
	// find all anchors inside 'roomLists'
	if (document.getElementById('roomLists')) {
		var tempNode = document.getElementById('roomLists');
		for (var i = 0; i < tempNode.getElementsByTagName('a').length; i++) {
			var tempAnchor = tempNode.getElementsByTagName('a')[i];
			addEvent(tempAnchor, 'mouseover', showRoomInfo, false);
			addEvent(tempAnchor, 'mouseout', hideRoomInfo, false);
		}
	}
}

//addLoadEvent(load_ticker);
addLoadEvent(setupToggleBlock);
addLoadEvent(setUpRoomsInfo);