﻿<!--

	var isIE = navigator.appName.indexOf("Microsoft") != -1;

// Set dropdown menus to inactive - onload makes them active

	var menuSystemActive = false;
	
// detection of platforms

	// iphone + ipod safari
	var iosMode = false;
	if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) iosMode = true;
	

// onload triggers

	function pageTrigger() {
		if(graphicVersion) {
			menuSystemActive = true;
			// fix for submit forms by hitting 'return'
			inputSubmitByReturn();
			// tabbed content
			buildTabs();
			// clickable panels
			initClickablePanels();
			// cj tab
			initCJ();
			// Foxhills family tab
			initFoxhillsTab();
			// ios hide url bar
			if(iosMode) setTimeout("window.scrollTo(0,1);",100);
			//hide specified content
			hideContent();
			// header messages
			initHeaderMessages();
			// 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',
						'overlayOpacity'	: 0.8,
						'overlayColor'		: '#000',
						'width'				: 685,
						'height'			: 480,
						'autoScale'			: false,
						'hideOnOverlayClick': false,
						'type'				: 'iframe',
						'scrolling'			: 'no'
					});
					return false;
				});
				$(".videoOne").click(function() {
					$.fancybox({
						'href'				: '/misc/inpage-tools/video-phase-2.aspx',
						'overlayOpacity'	: 0.8,
						'overlayColor'		: '#000',
						'width'				: 640,
						'height'			: 360,
						'autoScale'			: false,
						'hideOnOverlayClick': false,
						'type'				: 'iframe',
						'scrolling'			: 'no'
					});
					return false;
				});
				$(".videoTwo").click(function() {
					$.fancybox({
						'href'				: '/misc/inpage-tools/video-phase-2.aspx',
						'overlayOpacity'	: 0.8,
						'overlayColor'		: '#000',
						'width'				: 640,
						'height'			: 360,
						'autoScale'			: false,
						'hideOnOverlayClick': false,
						'type'				: 'iframe',
						'scrolling'			: 'no'
					});
					return false;
				});
				$(".videoThree").click(function() {
					$.fancybox({
						'href'				: '/misc/inpage-tools/video-interview-1.aspx',
						'overlayOpacity'	: 0.8,
						'overlayColor'		: '#000',
						'width'				: 640,
						'height'			: 360,
						'autoScale'			: false,
						'hideOnOverlayClick': false,
						'type'				: 'iframe',
						'scrolling'			: 'no'
					});
					return false;
				});
				$(".videoFour").click(function() {
					$.fancybox({
						'href'				: '/misc/inpage-tools/video-interview-2.aspx',
						'overlayOpacity'	: 0.8,
						'overlayColor'		: '#000',
						'width'				: 640,
						'height'			: 360,
						'autoScale'			: false,
						'hideOnOverlayClick': false,
						'type'				: 'iframe',
						'scrolling'			: 'no'
					});
					return false;
				});
				$(".functionVideoOne").click(function() {
					$.fancybox({
						'href'				: '/misc/inpage-tools/function-room-1.aspx',
						'overlayOpacity'	: 0.8,
						'overlayColor'		: '#000',
						'width'				: 640,
						'height'			: 480,
						'autoScale'			: false,
						'hideOnOverlayClick': false,
						'type'				: 'iframe',
						'scrolling'			: 'no'
					});
					return false;
				});
				$(".functionVideoTwo").click(function() {
					$.fancybox({
						'href'				: '/misc/inpage-tools/function-room-2.aspx',
						'overlayOpacity'	: 0.8,
						'overlayColor'		: '#000',
						'width'				: 640,
						'height'			: 480,
						'autoScale'			: false,
						'hideOnOverlayClick': false,
						'type'				: 'iframe',
						'scrolling'			: 'no'
					});
					return false;
				});
				$(".functionVideoThree").click(function() {
					$.fancybox({
						'href'				: '/misc/inpage-tools/function-room-3.aspx',
						'overlayOpacity'	: 0.8,
						'overlayColor'		: '#000',
						'width'				: 640,
						'height'			: 480,
						'autoScale'			: false,
						'hideOnOverlayClick': false,
						'type'				: 'iframe',
						'scrolling'			: 'no'
					});
					return false;
				});
				$(".functionVideoFour").click(function() {
					$.fancybox({
						'href'				: '/misc/inpage-tools/function-room-4.aspx',
						'overlayOpacity'	: 0.8,
						'overlayColor'		: '#000',
						'width'				: 640,
						'height'			: 480,
						'autoScale'			: false,
						'hideOnOverlayClick': false,
						'type'				: 'iframe',
						'scrolling'			: 'no'
					});
					return false;
				});
				$(".conferenceOrganisers").click(function() {
					$.fancybox({
						'href'				: '/misc/inpage-tools/conferences-organisers-benefits.aspx',
						'overlayOpacity'	: 0.8,
						'overlayColor'		: '#000',
						'width'				: 640,
						'height'			: 300,
						'autoScale'			: false,
						'hideOnOverlayClick': false,
						'type'				: 'iframe',
						'scrolling'			: 'no'
					});
					return false;
				});
				$(".eventRegisterModal").click(function() {
					$.fancybox({
						'href'				: this.href,
						'overlayOpacity'	: 0.8,
						'overlayColor'		: '#000',
						'width'				: 720,
						'height'			: 650,
						'autoScale'			: false,
						'hideOnOverlayClick': false,
						'type'				: 'iframe',
						'scrolling'			: 'no',
						'padding'			: 0
					});
					return false;
				});
			});
			
			// set up counter
			if(clockLive) {
				updateCounter();
			}
		}
	}
	
// cj tab

	var cjActive = false;

	function initCJ() {
		if(document.location.toString().indexOf("\/about-farleigh\/our-story.aspx") < 0) {
			if($) {
				if($(window).width() >= 1060) {
					// add element
					$("<div/>", {  
						id: "cjHolder",  
						html: "<div id=\"cj\"><a href=\"\/about-farleigh\/our-story.aspx\"><span><em>Our story<\/em><\/span><\/a><\/div>" 
					}).appendTo("body");
					// animate in
					$("#cj").animate({left: '57px'},0);
					$("#cj").animate({left: '0px'},500);
					cjActive = true;
				}
				$(window).resize(function() {
					if($(window).width() >= 1060 && !cjActive) {
						$("#cj").animate({left: '0px'},500);
						cjActive = true;
					} else if($(window).width() < 1060 && cjActive) {
						$("#cj").animate({left: '57px'},200);
						cjActive = false;
					}
				});
			}
		}
	}
	
// family tab

	function initFoxhillsTab() {
		if($) {
			$("#foxhillsFamily a").animate({left: '0px', top: '0px'},500);
		} else {
			setPos(document.getElementById("foxhillsFamily").getElementsByTagName("A")[0],0,0);
		}
	}
	
// header messages

	var headerMessageObj;
	var headerMessageIndex = 0;
	var headerMessageDelay = 5000;

	function initHeaderMessages() {
		if(document.getElementById("headerMessage")) {
			headerMessageObj = document.getElementById("headerMessage");
			if(headerMessages.length > 1) {
				setTimeout("fadeOutHeaderMessage();", headerMessageDelay);
			}
		}
	}
	
	function fadeOutHeaderMessage() {
		if($) {
			$(headerMessageObj).fadeOut(1000, function() {			 
				// fade in new message
				setTimeout("fadeInHeaderMessage();", 500);
			});
		} else {
			headerMessageObj.style.display = "none";
			setTimeout("fadeInHeaderMessage();", 1000);
		}
	}
	
	function fadeInHeaderMessage() {
		headerMessageIndex += 1;
		if(headerMessageIndex >= headerMessages.length) headerMessageIndex = 0;
		headerMessageObj.innerHTML = headerMessages[headerMessageIndex];
		if($) {
			$(headerMessageObj).fadeIn(1000, function() {			 
				// delay fade out message
				setTimeout("fadeOutHeaderMessage();", headerMessageDelay);
			});
		} else {
			headerMessageObj.style.display = "block";
			setTimeout("fadeOutHeaderMessage();", headerMessageDelay);
		}
	}
	
	
// 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]);
			}
		}
	}
	
// form field validation function

	function validateField(getField,getMode,getFormAreaID) {
		isValid = true;
		switch(getMode) {
			case "req":
				if(isEmptyField(getField)) isValid = false;
				break;
			case "email": {
				if(!isValidEmail(getField.value)) isValid = false;
				break;
			}
			case "reqEmail": {
				if(!isValidEmail(getField.value)) isValid = false;
				if(isEmptyField(getField)) isValid = false;
				break;
			}
			case "postcode": {
				if(!/^[A-Za-z]{1,2}[0-9]{1,2}[A-Za-z]?\s*[0-9][A-Za-z]{2}$/.test(getField.value)) isValid = false;
				break;
			}
		}
		if(isValid) {
			document.getElementById(getFormAreaID).className = "formArea okay";
		} else {
			document.getElementById(getFormAreaID).className = "formArea error";
		}
	}
	
// menu search field function

	var initSearchText = "Enter your email...";
	
	function enterSearchText(getField,getMode) {
		if(getMode) {
			// focus
			if(getField.value == initSearchText) getField.value = "";
		} else {
			// blur
			if(isEmptyField(getField)) {
				getField.value = initSearchText;
			}
		}
	}
	
// panel link clicker

	var allClickPanels = new Array();

	function initClickablePanels() {
		if(document.getElementsByClassName) {
			findClickPanels = document.getElementsByClassName("clickablePanel");
		} else {
			findClickPanels = getElementsByClass("clickablePanel",document,"div");
		}
		if(findClickPanels.length > 0) {
			for(i=0;i<findClickPanels.length;i++) {
				allClickPanels[i] = new clickPanel(findClickPanels[i],i);
			}
		}
	}
	
	function clickPanel(getPanel, getIndex) {
		this.panel = getPanel;
		this.index = getIndex;
		if(this.panel.getElementsByTagName('A')[0]) {
			// get link details
			this.panel.newLocation = this.panel.getElementsByTagName('A')[0].href;
			this.panel.newTarget = this.panel.getElementsByTagName('A')[0].target;
			// set behaviour
			this.panel.onclick = function() {
				if(this.newTarget == "_blank") {
					window.open(this.newLocation);
				} else {
					window.location = this.newLocation;
				}
			}
			// cancel link action
			this.panel.getElementsByTagName('A')[0].onclick = function() {return false};
			// set cursor style
			this.panel.style.cursor = "pointer";
		}
	}

// Function to retun the length of an object (number of keys/value pairs)

	function oCount(myObject) { var counter = 0; for(keys in myObject) counter++; return counter; }


// 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 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;
	  }
	};
	
	
// 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;
			}
		}
	}

// Menu Stuff
	var dynamicMenuHolder;
	var dynamicMenu;
	var dynamicMenuIndicator;
	var dynamicMenuContent;
	var onIndicator;
	var menuFocus = "button";
	var storeMenuIndex = null;
	var storeButtonState = null;
	var storeThisElement = null;
	var menuActive = false;
	var menuTimeout = null;
	var submenuTimeout = null;
	
	function getMenuClass(src,hoverState) {
		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,buttonLeft,buttonWidth,thisElement) {
		if(menuSystemActive) {
			clearTimeout(submenuTimeout);
			cancelHideMenu();
			if(menuActive && menuIndex != storeMenuIndex) {
				if(document.getElementById("submenu" + menuIndex)) {
					// switch submenu content off
					if(document.getElementById("submenu" + storeMenuIndex)) document.getElementById("submenu" + storeMenuIndex).style.display = "none";
					// turn off old button
					storeThisElement.className = getMenuClass(storeThisElement,false);
				} else {
					doHideMenu();
				}
			}
			if(!menuActive) {
				// get elements
				menuAreaWidth = parseFloat(document.getElementById("menuArea").offsetWidth);
				menuBaseX = parseFloat(document.getElementById("menuArea").offsetLeft);
				dynamicMenuHolder = document.getElementById("dynamicMenuHolder");
				dynamicMenu = document.getElementById("dynamicMenu");
				dynamicMenuIndicator = document.getElementById("dynamicMenuIndicator");
				dynamicMenuContent = document.getElementById("dynamicMenuContent");
				// set menu active
				menuActive = true;
			}
			//activation
			storeMenuIndex = menuIndex;
			storeButtonState = buttonState;
			storeThisElement = thisElement;
			thisElement.className = getMenuClass(thisElement,true);
			if(document.getElementById("submenu" + menuIndex)) {
				// Set menu class based on number of columns
				dynamicMenu.className = "menu" + menuCols[menuIndex] + "col";
				// Set zIndex + make visible
				dynamicMenu.style.zIndex = 1000;
				dynamicMenu.style.display = "block";
				// Set horizontal position
				menuWidth = parseFloat(dynamicMenuContent.offsetWidth);
				xOffset = menuBaseX + buttonLeft;
				dynamicMenuIndicatorX = (buttonWidth/2) - 5;
				if((xOffset + menuWidth) > parseFloat(dynamicMenuHolder.offsetWidth)) {
					xOffset = buttonLeft - (parseFloat(dynamicMenu.offsetWidth) - buttonWidth) + 2;
					document.getElementById("submenu" + menuIndex).className = "noDisplay alignRight";
					dynamicMenuIndicatorX = menuWidth - (buttonWidth/2) - 5;
				}
				setPos(dynamicMenu,xOffset,143);
				setPos(dynamicMenuIndicator,dynamicMenuIndicatorX,0);
				// switch submenu content on
				document.getElementById("submenu" + menuIndex).style.display = "block";
				document.getElementById("submenu" + menuIndex).style.position = "relative";
				switch(menuCols[menuIndex]) {
					case 1:
					document.getElementById("submenu" + menuIndex).style.width = 230 + "px";
					break;
					case 2:
					document.getElementById("submenu" + menuIndex).style.width = 440 + "px";
					break;
					case 3:
					document.getElementById("submenu" + menuIndex).style.width = 650 + "px";
					break;
				}
				// rollover behaviour
				dynamicMenu.onmouseover = function() {
					menuFocus = "menu";
					showMenu(menuIndex,buttonState,buttonLeft,buttonWidth,thisElement);
				}
				dynamicMenu.onmouseout = function() {
					if(menuFocus == "menu") {
						menuFocus = 'button';
						submenuTimeout = setTimeout("hideMenu('button');",50);
					}
				}
			} else {
				dynamicMenu.style.display = "none";
			}
	}
}
	
	function hideMenu(getTrigger) {
		if(menuSystemActive) {
			if(getTrigger=="button" && menuFocus=="button") menuTimeout = setTimeout("doHideMenu();",100);
		}
	}
	
	function doHideMenu() {
		if(menuSystemActive && storeThisElement != null) {
			// hide menu
			storeThisElement.className = getMenuClass(storeThisElement,false);
			// switch submenu content off
			if(document.getElementById("submenu" + storeMenuIndex)) document.getElementById("submenu" + storeMenuIndex).style.display = "none";
			dynamicMenu.style.display = "none";
			storeMenuIndex = null;
			storeButtonState = null;
			storeThisElement = null;
			menuActive = false;
			// cancel behaviours
			dynamicMenu.onmouseover = null;
			dynamicMenu.onmouseout = null;
		}
	}
	
	function cancelHideMenu() {
		if(menuSystemActive) {
			clearTimeout(menuTimeout);
			clearTimeout(submenuTimeout);
			menuTimeout = null;
		}
	}
	
	function menuAreaClick(menuIndex,buttonState,buttonLeft,buttonWidth,thisElement) {
		if(menuSystemActive) {
			if(iosMode && menuActive && storeMenuIndex == menuIndex) {
				// hide menu
				doHideMenu();
				return false;
			} else if(menuActive && storeMenuIndex == menuIndex) {
				// close menu
				doHideMenu();
				return true;
			} else {
				// show menu
				showMenu(menuIndex,buttonState,buttonLeft,buttonWidth,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) { }
		}
	}
	
// 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 (ii = 0, j = 0; ii < elsLen; ii++) {
			if ( pattern.test(els[ii].className) ) {
				classElements[j] = els[ii];
				j++;
			}
		}
		return classElements;
	}
	
// 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 allHiddenContent = new Array();
	var hiddenIndex = 0;
	
	function hideContent(divToHide,divShowText,divHideText) {
		if (divToHide === undefined) divToHide = "termsConditions";
		if (divShowText === undefined) divShowText = "Show Terms &amp; Conditions";
		if (divHideText === undefined) divHideText = "Hide Terms &amp; Conditions";
		
		if(document.getElementsByClassName) {
			findObjects = document.getElementsByClassName(divToHide);
		} else {
			findObjects = getElementsByClass(divToHide,document,"div");
		}
		if(findObjects.length > 0) {
			for(i=0;i<findObjects.length;i++) {
				allHiddenContent[hiddenIndex] = new hiddenContent(findObjects[i], divShowText, divHideText);
			}
		}
	}
	
	function hiddenContent(getDiv, getShowText, getHideText) {
		this.oDiv = getDiv;
		this.index = hiddenIndex;
		this.showText = getShowText;
		this.hideText = getHideText;
		hiddenIndex +=1;
		this.oDiv.innerHTML = "<p><a href='javascript:toggleHiddenContent(" + this.index + ",true)'>" + this.showText + "<\/a><\/p><div class='hiddenContentMask'>" + this.oDiv.innerHTML + "<\/div>";
		this.contentMask = this.oDiv.getElementsByTagName("DIV")[0];
		if($) {
			$(this.contentMask).slideUp(0);
		} else {
			this.contentMask.style.display = "none";
		}
	}
	
	function toggleHiddenContent(getIndex, getDisplayMode) {
		thisHiddenContent = allHiddenContent[getIndex];
		if(getDisplayMode) {
			// show content
			if($) {
				$(thisHiddenContent.contentMask).stop(false,true);
				$(thisHiddenContent.contentMask).slideDown(500);
			} else {
				thisHiddenContent.contentMask.style.display = "block";
			}
			thisHiddenContent.oDiv.getElementsByTagName("P")[0].innerHTML = "<a href='javascript:toggleHiddenContent(" + thisHiddenContent.index + ",false)'>" + thisHiddenContent.hideText + "<\/a>";
		} else {
			// hide content
			if($) {
				$(thisHiddenContent.contentMask).stop(false,true);
				$(thisHiddenContent.contentMask).slideUp(500);
			} else {
				thisHiddenContent.contentMask.style.display = "none";
			}
			thisHiddenContent.oDiv.getElementsByTagName("P")[0].innerHTML = "<a href='javascript:toggleHiddenContent(" + thisHiddenContent.index + ",true)'>" + thisHiddenContent.showText + "<\/a>";
		}
	}
	
	// ************** Fading Image Panel Code **************

	var activePanel = "A";
	var totalImages;
	var topPanel;

	function setupImagePanel(imageDelayTime) {
		totalImages = qImages.length;
		// setup CSS
		document.getElementById("panelA").style.width = qImageWidth + "px";
		document.getElementById("panelA").style.height = qImageHeight + "px";
		document.getElementById("panelB").style.width = qImageWidth + "px";
		document.getElementById("panelB").style.height = qImageHeight + "px";
		// set top panel
		topPanel = document.getElementById("panelA");
		// populate panel B
		document.getElementById("panelB").innerHTML = "<div id=\"panelImageB\" class=\"panelImage\"><\/div>";
		buildPanel("B", imageDelayTime);
	}
		
	function buildPanel(panelLetter, imageDelayTime) {
		qIndex += 1;
		if(qIndex >= totalImages) qIndex = 0;
		writeImageCode = "";
		//link if specified
		if(qURLs[qIndex] != "") {
			writeImageCode = "<a href=\"" + qURLs[qIndex] + "\" target=\"_" + qTargets[qIndex] + "\">";
		}
		// image
		writeImageCode += "<img src=\"" + qImages[qIndex] + "\" alt=\"" + qAlts[qIndex] + "\" width=\"" + qImageWidth + "\" height=\"" + qImageHeight + "\" onload=\"imageDelay(" + imageDelayTime + ");\" \/>";
		if(qURLs[qIndex] != "") writeImageCode += "<\/a>";
		// populate
		document.getElementById("panelImage" + panelLetter).innerHTML = writeImageCode;
	}
	
	function imageDelay(imageDelayTime) {
		// set timeout
		setTimeout(function(){swapImagePanels(imageDelayTime)},imageDelayTime);
	}
	
	function swapImagePanels(imageDelayTime) {
		if(activePanel=="A") {
			if($) {
  				$(topPanel).fadeOut(1200, function() {
    				// Animation complete.
					setTopPanelDisplay(false);
					// update alt string
					writeMainImageAlt(qAlts[qIndex]);
					// build next panel
					buildPanel("A", imageDelayTime);
  				});
			} else {
				setTopPanelDisplay(false);
				buildPanel("A", imageDelayTime);
			}
			activePanel = "B";
		} else {
			setTopPanelDisplay(true);
			if($) {
  				$(topPanel).fadeOut(0);
  				$(topPanel).fadeIn(1200, function() {
    				// Animation complete.
					// update alt string
					writeMainImageAlt(qAlts[qIndex]);
					// build next panel
					buildPanel("B", imageDelayTime);
  				});
			} else {
				buildPanel("B", imageDelayTime);
			}
			activePanel = "A";
		}
	}
	
	function setTopPanelDisplay(getMode) {
		if(getMode) topPanel.style.display = "block"
		else topPanel.style.display = "none";
	}
	
	// main image alt tag animated text

	var mainImageContainer;
	var mainImageAltString;
	var mainImageAltContainer;

	function setupMainImageAlt() {
		mainImageContainer = document.getElementById("mainImage");
		mainImageAltString = mainImageContainer.getElementsByTagName("IMG")[0].getAttribute("alt");
		var newdiv = document.createElement("div");
   		newdiv.setAttribute("id", "mainImageAlt");
		mainImageContainer.appendChild(newdiv);
		mainImageAltContainer = document.getElementById("mainImageAlt");
		writeMainImageAlt(mainImageAltString);
		mainImageContainer.onmouseover = function() {
			// move up
			if($) {
				$(mainImageAltContainer).stop(true,false);
				$(mainImageAltContainer).animate({top:'255px'}, 150);
			} else {
				setPos(mainImageAltContainer,0,255);
			}
		}
		mainImageContainer.onmouseout = function() {
			// move down
			if($) {
				$(mainImageAltContainer).stop(true,false);
				$(mainImageAltContainer).animate({top:'280px'}, 150);
			} else {
				setPos(mainImageAltContainer,0,280);
			}
		}
	}
	
	function writeMainImageAlt(rawString) {
		if(document.getElementById("mainImageAlt")) {
			if(rawString.indexOf("&copy;") > 0) {
				mainImageAltContainer.innerHTML = "<span><strong>" + rawString.split("&copy;")[0] + "<\/strong>&nbsp;&copy;" + rawString.split("&copy;")[1] + "<\/span>";
			} else if(rawString.indexOf("©") > 0) {
				mainImageAltContainer.innerHTML = "<span><strong>" + rawString.split("©")[0] + "<\/strong>&nbsp;&copy;" + rawString.split("©")[1] + "<\/span>";
			} else {
				mainImageAltContainer.innerHTML = "<span><strong>" + rawString + "<\/strong><\/span>";
			}
		}
	}

// -->
