<!--

// Set dropdown menus to inactive - onload makes them active

	var menuSystemActive = false;
	
// detection of platforms

	// iphone + ipod safari
	var 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 homepageTrigger() {
		if(graphicVersion) {
			menuSystemActive = true;
			fixTabs();
			setupSearchPanel();
			
			// If an image flow area exists, enable it
			if(document.getElementById("imageflow")) {
				hide(conf_loading);
				refresh(true);
				show(conf_images);
			}
			
			// add xmas theming
			// if (xmasTheme) xmasSetup();
		}
	}
	
	function subpageTrigger() {
		if(graphicVersion) {
			menuSystemActive = true;
			fixTabs();
			setupSearchPanel();
			
			// add xmas theming
			if (xmasTheme) xmasSetup();
		}
	}
	

// Fix tabs (png rendering) for IE

	function fixTabs() {
		tabCount = document.getElementById("topTabs").getElementsByTagName("DD").length;
		for(i=0; i<tabCount; i++) {
			thisTab = document.getElementById("topTabs").getElementsByTagName("DD")[i].getElementsByTagName("A")[0];
			thisLength = thisTab.offsetWidth;
			if((thisLength/2) > Math.floor(thisLength/2)) thisTab.style.width = (thisLength + 1) + "px";
		}
	}


// 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;
	}
	
	
// 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;
			}
		}
	}


// Search form stuff

	var initSearchText = "Enter search text...";

	function setupSearchPanel() {
		if(graphicVersion) {
			if(document.getElementById("searchText")) document.getElementById("searchText").className = "inactive";
		}
	}
	
	function enterPanelSearchText() {
		if(graphicVersion) {
			document.getElementById("searchText").className = "";
			if(document.getElementById("searchText").value == initSearchText) document.getElementById("searchText").value = "";
		}
	}
	
	function exitPanelSearchText() {
		if(graphicVersion) {
			if(isEmptyField(document.getElementById("searchText"))) {
				document.getElementById("searchText").className = "inactive";
				document.getElementById("searchText").value = initSearchText;
			}
		}
	}

	function validateSearchPanel() {
		if((isEmptyField(document.getElementById("searchText")) || document.getElementById("searchText").value == initSearchText) && document.getElementById("searchSubject").selectedIndex == 0 && document.getElementById("searchGrade").selectedIndex == 0 && document.getElementById("searchRange").selectedIndex == 0) {
			alert("You have not entered anything to search for!");
			return false;
		} else return true;
	}


// 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;
	}


// 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(src.className.indexOf("first") > -1) {
			if(hoverState) return "firstMenuOver"
			else {
				if(storeButtonState) return "firstMenuOn"
				else return "firstMenuOff";
			}
		} else if(src.className.indexOf("last") > -1) {
			if(hoverState) return "lastMenuOver"
			else {
				if(storeButtonState) return "lastMenuOn"
				else return "lastMenuOff";
			}
		} else {
			if(hoverState) return "MenuOver"
			else {
				if(storeButtonState) return "MenuOn"
				else return "MenuOff";
			}
		}
	}
	
	function setPos(getObject,getX,getY) {
		getX = Math.floor(getX);
		getY = Math.floor(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('menuArea').offsetLeft);
				MenuOffsetTop = parseFloat(document.getElementById('menuArea').offsetTop);
				menuMinX = MenuOffsetLeft + 5;
				menuMaxX = MenuOffsetLeft + MenuAreaWidth - 5;
				// 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 = (SubMenuCols[menuIndex] * 200) + 10; //dynamicMenu.offsetWidth;
					// Work out menu position
					yPos = MenuOffsetTop + 25;
					xPos = buttonOffset + MenuOffsetLeft - 5;
					// 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='topShadow'><\/div>";
					buildMenu += "<div class='midSection'>";
					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 + 5 + Math.floor(buttonOffset + (parseFloat(thisElement.offsetWidth)/2)) - xPos;
					//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;
		}
	}

	// 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) { }
		}
	}


// -->