<!--

// Set dropdown menus to inactive - onload makes them active

	var menuSystemActive = false;
	
// detection of platforms

	// iphone + ipod safari
	iphoneMode = false;
	if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) iphoneMode = true;
	

// Set the window name

	window.name = "main";


// onload triggers

	function pageTrigger() {
		if(graphicVersion) {
			menuSystemActive = true;
			initExpanders();
			// tabbed content
			buildTabs();
			initScrollers();
			// fix for submit forms by hitting 'return'
			inputSubmitByReturn();
			// jquery setup
			$(function() {
				// galleries
				$(".imageGallery a").fancybox({
					'cyclic'			: true,
					'transitionIn'		: 'elastic',
					'transitionOut'		: 'elastic',
					'overlayOpacity'	: 0.8,
					'overlayColor'		: '#000000',
					'titlePosition'		: 'over',
					'titleFormat': function(title, currentArray, currentIndex, currentOpts) {
						return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' &nbsp; ' + title : '') + '</span>';
					}
				});
			});
			$(function() {
			//contact modal
				$(".contactModal").click(function() {
					$.fancybox({
						'href'				: '/misc/inpage-tools/inpage-contact-us.aspx?currURL=<%=GetURL%>',
						'overlayOpacity'	: 0.8,
						'overlayColor'		: '#000',
						'width'				: 580,
						'height'			: 580,
						'autoScale'			: false,
						'hideOnOverlayClick': false,
						'type'				: 'iframe',
						'scrolling'			: 'no'
					});
					return false;
				});
				
				$(".eventRegisterModal").click(function() {
					$.fancybox({
						'href'				: this.href,
						'overlayOpacity'	: 0.8,
						'overlayColor'		: '#000',
						'width'				: 560,
						'height'			: 680,
						'autoScale'			: false,
						'hideOnOverlayClick': false,
						'type'				: 'iframe',
						'scrolling'			: 'no'
					});
					return false;
				});
			});
			$(".ltaVideoOne").click(function() {
					$.fancybox({
						'href'				: '/misc/inpage-tools/inpage-lta-video-1.aspx',
						'overlayOpacity'	: 0.8,
						'overlayColor'		: '#000',
						'width'				: 480,
						'height'			: 360,
						'autoScale'			: false,
						'hideOnOverlayClick': false,
						'type'				: 'iframe',
						'scrolling'			: 'no'
					});
					return false;
			});
			
			$(".ltaVideoTwo").click(function() {
					$.fancybox({
						'href'				: '/misc/inpage-tools/inpage-lta-video-2.aspx',
						'overlayOpacity'	: 0.8,
						'overlayColor'		: '#000',
						'width'				: 560,
						'height'			: 315,
						'autoScale'			: false,
						'hideOnOverlayClick': false,
						'type'				: 'iframe',
						'scrolling'			: 'no'
					});
					return false;
			});
			$(".jimEastwoodVideoOne").click(function() {
					$.fancybox({
						'href'				: '/misc/inpage-tools/inpage-jim-eastwood-video-1.aspx',
						'overlayOpacity'	: 0.8,
						'overlayColor'		: '#000',
						'width'				: 360,
						'height'			: 480,
						'autoScale'			: false,
						'hideOnOverlayClick': false,
						'type'				: 'iframe',
						'scrolling'			: 'no'
					});
					return false;
			});
			$(".jimEastwoodVideoTwo").click(function() {
					$.fancybox({
						'href'				: '/misc/inpage-tools/inpage-jim-eastwood-video-2.aspx',
						'overlayOpacity'	: 0.8,
						'overlayColor'		: '#000',
						'width'				: 360,
						'height'			: 480,
						'autoScale'			: false,
						'hideOnOverlayClick': false,
						'type'				: 'iframe',
						'scrolling'			: 'no'
					});
					return false;
			});
			
			$(".downtonAbbeyVideo").click(function() {
					$.fancybox({
						'href'				: '/misc/inpage-tools/inpage-downton-abbey-video.aspx',
						'overlayOpacity'	: 0.8,
						'overlayColor'		: '#000',
						'width'				: 560,
						'height'			: 315,
						'autoScale'			: false,
						'hideOnOverlayClick': false,
						'type'				: 'iframe',
						'scrolling'			: 'no'
					});
					return false;
			});
		}
	}
	
// fix for submit forms by hitting 'return'

	function addInputSubmitEvent(form, input) {
		input.onkeydown = function(e) {
			e = e || window.event;
			if (e.keyCode == 13) {
				form.submit();
				return false;
			}
		};
	}

	function inputSubmitByReturn() {
		var forms = document.getElementsByTagName('form');
		for (var i=0;i < forms.length;i++) {
			var inputs = forms[i].getElementsByTagName('input');
			for (var j=0;j < inputs.length;j++) {
				addInputSubmitEvent(forms[i], inputs[j]);
			}
		}
	}
	
// back to top function
	
	function toTop() {
		window.scroll(0,0);
		return false;
	}

// Image Loader functions

	// Cross-browser implementation of element.addEventListener()
	function addListener(element, type, expression, bubbling)
	{
	  bubbling = bubbling || false;
	  if(window.addEventListener)	{ // Standard
		element.addEventListener(type, expression, bubbling);
		return true;
	  } else if(window.attachEvent) { // IE
		element.attachEvent('on' + type, expression);
		return true;
	  } else return false;
	}
	
	var ImageLoader = function(url){
	  this.url = url;
	  this.image = null;
	  this.loadEvent = null;
	};
	
	ImageLoader.prototype = {
	  load:function(){
		this.image = document.createElement('img');
		var url = this.url;
		var image = this.image;
		var loadEvent = this.loadEvent;
		addListener(this.image, 'load', function(e){
		  if(loadEvent != null){
			loadEvent(url, image);
		  }
		}, false);
		this.image.src = this.url;
	  },
	  getImage:function(){
		return this.image;
	  }
	};


// Function to check if a field string is empty
	
	function isEmptyField(srcField) {
		srcText = srcField.value;
		srcText = srcText.replace(/^\s+/g, '').replace(/\s+$/g, '');
		if(srcText == "") {
			srcField.value = "";
			return true;
		} else return false;
	}
	
	
// Email address validation
	
	function isValidEmail(src) {
		var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
		var regex = new RegExp(emailReg);
		return regex.test(src);
	}
	
	
// Image size checking + resizing

	function checkImageSize(srcImage,maxWidth,maxHeight) {
		if(document.images) {
			getWidth = srcImage.width;
			getHeight = srcImage.height;
			if(getWidth>maxWidth || getHeight>maxHeight) {
				widthVariance = maxWidth/getWidth;
				heightVariance = maxHeight/getHeight;
				if(widthVariance<=heightVariance) scalePercentage = getWidth/maxWidth;
				else scalePercentage = getHeight/maxHeight;
				srcImage.width = getWidth/scalePercentage;
				srcImage.height = getHeight/scalePercentage;
			}
		}
	}


// Header log-in form stuff

	var headerInitLoginText = "Membership number...";
	
	function checkLoginField(fieldMode) {
		searchField = document.getElementById("headerLoginNumber");
		if(fieldMode) {
			// enters field
			searchField.className = "active";
			if(searchField.value == headerInitLoginText) searchField.value = "";
		} else {
			// exits field
			searchField.className = "";
			if(isEmptyField(searchField)) searchField.value = headerInitLoginText;
		}
	}

	function checkMemberLogin() {
		searchField = document.getElementById("headerLoginNumber");
		if(isEmptyField(searchField) || searchField.value == headerInitLoginText) {
			alert("You have not entered a number!");
			return false;
		} else return true;
	}
	
	function submitHeaderLoginForm() {
		if(checkMemberLogin()) document.getElementById("headerLoginForm").submit();
	}


// Print function

	function printPage() {
		if(window.print) {
			window.print();
		} else {
			alert("Your browser does not support the javascript 'print' function.\nPlease use your operating system's print menu to print this page.")
		}
		return false;
	}
	
	
// Function to track links with Google Analytics
	
	function trackLink(linkSrc) {
		try { pageTracker._trackPageview(linkSrc); } // New Google tracking code
		catch(e) {
			try { urchinTracker(linkSrc); } // Legacy Google tracking code
			catch(e) { }
		}
	}
	
	
// add a getElementByClass function for browsers that don't support getElementsByClassName
		
	// getElementsByClass(class string, optional DOM node, optional html tag)
	function getElementsByClass(searchClass,node,tag) {
		var classElements = new Array();
		if ( node == null )
			node = document;
		if ( tag == null )
			tag = '*';
		var els = node.getElementsByTagName(tag);
		var elsLen = els.length;
		var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
		for (i = 0, j = 0; i < elsLen; i++) {
			if ( pattern.test(els[i].className) ) {
				classElements[j] = els[i];
				j++;
			}
		}
		return classElements;
	}
	
// Menu Stuff
	
	var dynamicMenu;
	var menuOffsetLeft;
	var menuOffsetTop;
	var MenuAreaWidth;
	var menuMinX;
	var menuMaxX;
	var storeMenuIndex = null;
	var storeButtonState = null;
	var storeThisElement = null;
	var menuActive = false;
	var menuTimeout = null;
	
	function getMenuClass(src,hoverState) {
		if(hoverState) return "menuOver"
		else {
			if(storeButtonState) return "menuOn"
			else return "menuOff";
		}
	}
	
	function setPos(getObject,getX,getY) {
		if(getObject.style.posTop) {
			getObject.style.posLeft = getX;
			getObject.style.posTop = getY;
		} else {
			getObject.style.left = getX + "px";
			getObject.style.top = getY + "px";
		}
	}
	
	function showMenu(menuIndex,buttonState,buttonOffset,thisElement) {
		if(menuSystemActive) {
			cancelHideMenu();
			// build dynamicMenu if it doesn't already exist
			if(!document.getElementById("dynamicMenu")) {
				var newdiv = document.createElement('div');
   				newdiv.setAttribute('id', 'dynamicMenu');
				document.body.appendChild(newdiv);
				dynamicMenu = document.getElementById("dynamicMenu");
				// also read some initial values
				MenuAreaWidth = parseFloat(document.getElementById('menuArea').offsetWidth);
			}
			if(menuActive && menuIndex!= storeMenuIndex) doHideMenu();
			if(!menuActive) {
				// get offsets
				MenuOffsetLeft = parseFloat(document.getElementById('centredPage').offsetLeft) + parseFloat(document.getElementById('pageArea').offsetLeft) + parseFloat(document.getElementById('menuArea').offsetLeft);
				MenuOffsetTop = parseFloat(document.getElementById('centredPage').offsetTop) + parseFloat(document.getElementById('pageArea').offsetTop) + parseFloat(document.getElementById('menuArea').offsetTop);
				menuMinX = MenuOffsetLeft + 5;
				menuMaxX = MenuOffsetLeft + MenuAreaWidth;
				// create dropdown
				storeMenuIndex = menuIndex;
				storeButtonState = buttonState;
				storeThisElement = thisElement;
				thisElement.className = getMenuClass(thisElement,true);
				if(SubMenuStrings[menuIndex]) {
					// Set column width class for menu
					dynamicMenu.className = ("cols" + SubMenuCols[menuIndex]);
					SubMenuWidth = dynamicMenu.offsetWidth;
					// Work out menu position
					yPos = MenuOffsetTop + 41;
					xPos = parseFloat(thisElement.getElementsByTagName("SPAN")[0].offsetLeft) + buttonOffset + MenuOffsetLeft + 10;
					// check limits
					if(xPos < menuMinX) xPos = menuMinX;
					if((xPos + SubMenuWidth) > menuMaxX) xPos = (menuMaxX - SubMenuWidth);
					// build menu content
					buildMenu = "<div class='dynamicMenuElements'>";
					buildMenu += "<div class='topShadow'><div id='dynamicMenuArrow' class='dynamicMenuArrow'><\/div><\/div>";
					buildMenu += "<div class='midSection'><div class='whiteBlank'><\/div>";
					buildMenu += "<div class='menuBody'>";
					buildMenu += SubMenuStrings[menuIndex];
					buildMenu += "<\/div>";
					buildMenu += "<\/div>";
					buildMenu += "<div class='bottomShadow'><\/div>";
					buildMenu += "<\/div>";
					dynamicMenu.innerHTML = buildMenu;
					// arrow position
					arrowX = MenuOffsetLeft + Math.floor(buttonOffset + (parseFloat(thisElement.offsetWidth)/2)) - xPos + 8;
					setPos(document.getElementById('dynamicMenuArrow'),arrowX,0);
					// Set position of menu + make visible
					setPos(dynamicMenu,xPos,yPos);
					dynamicMenu.style.zIndex = 200;
					dynamicMenu.style.visibility = "visible";
					// rollover behaviour
					dynamicMenu.onmouseover = function() {
						showMenu(menuIndex,buttonState,buttonOffset,thisElement);
					}
					dynamicMenu.onmouseout = function() {
						hideMenu();
					}
					
				}
				menuActive = true;
			}
		}
	}
	
	function hideMenu() {
		if(menuSystemActive) {
			menuTimeout = setTimeout("doHideMenu();",200);
		}
	}
	
	function doHideMenu() {
		if(menuSystemActive && storeThisElement != null) {
			// hide menu
			storeThisElement.className = getMenuClass(storeThisElement,false);
			dynamicMenu.style.visibility = "hidden";
			storeMenuIndex = null;
			storeButtonState = null;
			storeThisElement = null;
			menuActive = false;
			// cancel behaviours
			dynamicMenu.onmouseover = null;
			dynamicMenu.onmouseout = null;
		}
	}
	
	function cancelHideMenu() {
		if(menuSystemActive) {
			clearTimeout(menuTimeout);
			menuTimeout = null;
		}
	}
	
	function menuAreaClick(menuIndex,buttonState,buttonOffset,thisElement) {
		if(menuSystemActive) {
			if(menuActive && storeMenuIndex == menuIndex) {
				// go to first url in submenu
				firstLink = dynamicMenu.getElementsByTagName("A")[0];
				firstLinkURL = firstLink.href.toString();
				firstLinkTarget = firstLink.target.toString();
				firstLinkTracking = firstLink.getAttribute("onclick").toString();
				// do tracking if required
				if (firstLinkTracking.indexOf("trackLink") > -1) {
					// get tracking code
					var regex = new RegExp(".*trackLink\\('([^']*)'.*");
					trackingCode = regex.exec(firstLinkTracking)[1];
					trackLink(trackingCode);
				}
				// page load
				if(firstLinkTarget == "_blank") {
					window.open(firstLinkURL);
				} else {
					window.location = firstLinkURL;
				}
				// close menu
				doHideMenu();
				return false;
			} else  {
				// show menu
				showMenu(menuIndex,buttonState,buttonOffset,thisElement);
				return false;
			}
		} else {
			return true;
		}
	}
	
	// tabbed content functions

	var tabOn = 0;
	var tabTextOn = "";
	var allTabDivs = new Array;
	var allTabTitles = new Array;
	var allTabContent = new Array;
	var allVRcontent = new Array();
	
	function buildTabs() {
		if(document.getElementById("tabArea")) {
			// Get location query (to check for turning tabs on and off)
			var queryArray = new Array;
			queryArray = document.location.search.substring(1).split("&");
			if (queryArray.length > 0) {
				for (var i in queryArray) {
					// Look for tab numbers
					if (queryArray[i].toLowerCase().indexOf("tabnum") >= 0) {
						var querySplit = new Array;
						querySplit = queryArray[i].split("=");
						if (querySplit.length > 0) { tabOn = parseInt(querySplit[1]) - 1; break; }
					}
					// Look for tab names
					if (queryArray[i].toLowerCase().indexOf("tabname") >= 0) {
						var querySplit = new Array;
						querySplit = queryArray[i].split("=");
						if (querySplit.length > 0) { tabTextOn = unescape(querySplit[1].toLowerCase()); break; }
					}
				}
			}
			// find tabbedContent
			if(document.getElementsByClassName) {
				allTabDivs = document.getElementsByClassName("tabbedContent");
			} else {
				allTabDivs = getElementsByClass("tabbedContent",document,"div");
			}
			if(allTabDivs.length > 0) {
				// See if a tab name is specified and find the tab number associated with it
				if(tabTextOn != "") {
					for(i=0;i<allTabDivs.length;i++) {
						if(document.all) allTabTitles[i] = allTabDivs[i].getElementsByTagName("H2")[0].innerText.toString();
						else allTabTitles[i] = allTabDivs[i].getElementsByTagName("H2")[0].textContent.toString();
						if(tabTextOn == allTabTitles[i].toLowerCase()) { tabOn = i; break; }
					}
				}
				// loop through, get data, and hide all but chosen tab (first tab is default)
				for(i=0;i<allTabDivs.length;i++) {
					// tab title
					if(document.all) {
						allTabTitles[i] = allTabDivs[i].getElementsByTagName("H2")[0].innerText.toString();
					} else {
						allTabTitles[i] = allTabDivs[i].getElementsByTagName("H2")[0].textContent.toString();
					}
					// hide content?
					if(i == tabOn) {
						allTabDivs[i].className = "tabbedContent contentVisible";
					} else {
						allTabDivs[i].className = "tabbedContent contentHidden";
					}
				}
			}
			// Build tabs
			var myTabs = "<dl id='tabButtons'>";
			for (i=0; i<allTabDivs.length; i++) {
				if (i == tabOn) {
					myTabs += "<dd id='tab" + i + "' class='tab tabOn'>";
				} else {
					myTabs += "<dd id='tab" + i + "' class='tab tabOff'>";
				}
				myTabs += "<a href='javascript:doTab(" + i + ");'><span class='tabContent'>" + allTabTitles[i] + "<\/span><\/a><\/dd>";
			}
			myTabs += "</dl>";
			document.getElementById("tabArea").innerHTML += myTabs;
		}
	}
	
	function doTab(getTab) {
		// check tab is different from current active tab
		if(getTab != tabOn) {
			// get elements again for IE
			if(document.getElementsByClassName) {
				allTabDivs = document.getElementsByClassName("tabbedContent");
			} else {
				allTabDivs = getElementsByClass("tabbedContent",document,"div");
			}
			// hide old content and change old tab class
			allTabDivs[tabOn].className = "tabbedContent contentHidden";
			document.getElementById("tab"+tabOn).className = "tab tabOff";
			// show new content and change new tab class
			allTabDivs[getTab].className = "tabbedContent contentVisible";
			document.getElementById("tab"+getTab).className = "tab tabOn";
			// store new tab
			tabOn = getTab;
		}
	}
	
	// Hide a div and write a link to show/hide it

	 var hiddenContent = new Array();
	 var hiddenIndex = 0;
	 
	 function hideContent(getElement, getShowMessage, getHideMessage) {
		  if(document.getElementById(getElement)) {
			   // store element
			   hiddenContent[hiddenIndex] = new Object();
			   hiddenContent[hiddenIndex].element = getElement;
			   // build show link
			   hiddenContent[hiddenIndex].showLink = "<p><a href='javascript:toggleHiddenContent(" + hiddenIndex + ",true)'>" + getShowMessage + "<\/a><\/p>";
			   // build hide link
			   hiddenContent[hiddenIndex].hideLink = "<p><a href='javascript:toggleHiddenContent(" + hiddenIndex + ",false)'>" + getHideMessage + "<\/a><\/p>";
			   // store content in array
			   hiddenContent[hiddenIndex].content = hiddenContent[hiddenIndex].hideLink + document.getElementById(getElement).innerHTML;
			   // call toggle function
			   toggleHiddenContent(hiddenIndex,false);
			   // increment
			   hiddenIndex += 1;
		  }
	 }
	 
	 function toggleHiddenContent(getIndex, getDisplayMode) {
		  if(getDisplayMode) {
			   // show content
			   document.getElementById(hiddenContent[getIndex].element).innerHTML = hiddenContent[getIndex].content;
		  } else {
		   // hide content
		   	document.getElementById(hiddenContent[getIndex].element).innerHTML = hiddenContent[getIndex].showLink;
		  }
	 }


// -->

// -->
