﻿<!--

	var isIE = navigator.appName.indexOf("Microsoft") != -1;
	var ieVersion = getIEVersion();

// Return the exactl version of Internet Explorer

	function getIEVersion() {
		var myVersion = -1;
		if (isIE) {
			var userAgent = navigator.userAgent;
			var re = new RegExp("MSIE ([0-9]+[\.0-9]*)");
			if (re.exec(userAgent) != null) myVersion = parseFloat(RegExp.$1);
		}
		return myVersion;
	}
	
// 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;
	
	// General mobile/tablet detection
	function isMobile() {
		var ua = navigator.userAgent || navigator.vendor || window.opera;
		if (/android|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(ua)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i.test(ua.substr(0,4))) return true; else return false;
	}
	
// image preload settings

	var preloadArray = new Array();
	var preloadCount = 0;
	function addPreloadImage(imgSrc) {
		preloadArray[preloadCount] = imgSrc;
		preloadCount +=1;
	}
	addPreloadImage("/images/common/menu/mega-menu-bottom-sprite.png");
	addPreloadImage("/images/common/menu/mega-menu-tile-sprite.png");
	addPreloadImage("/images/common/menu/menu-on-indicator.png");

// onload triggers

	function pageTrigger() {
		if(graphicVersion) {
			menuSystemActive = true;
			// fix for submit forms by hitting 'return'
			inputSubmitByReturn();
			// tabbed content
			if (!window.isCmsPageEditorPreview) buildTabs();
			// clickable panels
			initClickablePanels();
			// scrollers
			initScrollers();
			// preload images
			var cache = [];
			for (i=0;i<preloadArray.length;i++) {
				var cacheImage = document.createElement('img');
				cacheImage.src = preloadArray[i];
				cache.push(cacheImage);
			}
			// jquery setup
			setupModals();
			// expandable areas setup
			buildExpanders();
		}
	}
	
// jquery modal behaviours

	var buyModalActive = true;
	
	function setupModals() {
		if (buyModalActive) {
			$(function() {
				$(".buyModal").click(function() {
					var wizardQuery = getAreaCode(this.href);
					if (!isMobile()) {
						$.fancybox({
							'href'				: '/wizard/default.aspx' + wizardQuery,
							'overlayOpacity'	: 0.9,
							'overlayColor'		: '#2e2e68',
							'width'				: 800,
							'height'			: 600,
							'padding'			: 2,
							'autoScale'			: false,
							'hideOnOverlayClick': false,
							'type'				: 'iframe',
							'scrolling'			: 'no',
							'onStart'			: function() { setFancyboxClass("roundedModal"); return true; },
							'onClosed'			: function() { setFancyboxClass(); return true; },
							'onCancel'			: function() { setFancyboxClass(); return true; }
						});
					} else {
						window.open("/wizard/default.aspx" + wizardQuery + (/^\?/.test(wizardQuery) ? "&" : "?") + "mb=1", "buyModal"); // Use basic pop-up method instead
					}
					return false;
				});
			});
			
			$(function() {
				$(".checkModal").click(function() {
					var wizardQuery = getAreaCode(this.href);
					if (!isMobile()) {
						$.fancybox({
							'href'				: '/wizard/default.aspx' + wizardQuery + (/^\?/.test(wizardQuery) ? "&" : "?") + "check=1",
							'overlayOpacity'	: 0.9,
							'overlayColor'		: '#2e2e68',
							'width'				: 800,
							'height'			: 600,
							'padding'			: 2,
							'autoScale'			: false,
							'hideOnOverlayClick': false,
							'type'				: 'iframe',
							'scrolling'			: 'no',
							'onStart'			: function() { setFancyboxClass("roundedModal"); return true; },
							'onClosed'			: function() { setFancyboxClass(); return true; },
							'onCancel'			: function() { setFancyboxClass(); return true; }
						});
					} else {
						window.open("/wizard/default.aspx" + wizardQuery + (/^\?/.test(wizardQuery) ? "&" : "?") + "mb=1&check=1", "buyModal"); // Use basic pop-up method instead
					}
					return false;
				});
			});
			
			$(function() {
				$(".infoModal").click(function() {
					$.fancybox({
						'href'				: this.href,
						'overlayOpacity'	: 0.9,
						'overlayColor'		: '#2e2e68',
						'width'				: 500,
						'padding'			: 2,
						'autoScale'			: false,
						'hideOnOverlayClick': false,
						'type'				: 'iframe',
						'scrolling'			: 'yes',
						'onStart'			: function() { setFancyboxClass("roundedModal"); return true; },
						'onClosed'			: function() { setFancyboxClass(); return true; },
						'onCancel'			: function() { setFancyboxClass(); return true; }
					});
					return false;
				});
			});
			
			$(function() {
				$(".infoTimeModal").click(function() {
					$.fancybox({
						'href'				: this.href,
						'overlayOpacity'	: 0.9,
						'overlayColor'		: '#2e2e68',
						'width'				: 600,
						'padding'			: 2,
						'autoScale'			: false,
						'hideOnOverlayClick': false,
						'type'				: 'iframe',
						'scrolling'			: 'yes',
						'onStart'			: function() { setFancyboxClass("roundedModal"); return true; },
						'onClosed'			: function() { setFancyboxClass(); return true; },
						'onCancel'			: function() { setFancyboxClass(); return true; }
					});
					return false;
				});
			});
		}
	}
	
// function to return a area code that is relevant to the 'buy now' modal box

	function getAreaCode(myHref) {
		var hrefCode = myHref.match(/[\?#]{1}area\=([\w\d\-]+)/);
		var hrefTab = myHref.match(/&tab\=([\w\d\-]+)/);
		var returnCode = "";
		if (hrefCode instanceof Array) {
			returnCode = hrefCode[1];
			if (hrefTab instanceof Array) returnCode += "&tab=" + hrefTab[1];
		}
		if (returnCode.length > 0) return "?area=" + returnCode;
		else return "";
	}
	
// function to override Fancybox styles

	function setFancyboxClass(className) {
		if (className === undefined) $("#fancybox-outer").removeClass();
		else $("#fancybox-outer").removeClass().addClass(className);
	}
	
// 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;
			
			case "dropdown":
				if(getField.selectedIndex == 0) 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 dynamicMenuContent;
	var dynamicMenuIndicator;
	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 replaceMenuClass(src,className) {
		if (src.className) return src.className.replace(/(menu[^\s]+)?/, className);
		else return className;
	}
	
	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 = replaceMenuClass(storeThisElement, getMenuClass(storeThisElement,false));
				} else {
					doHideMenu();
				}
			}
			if(!menuActive) {
				// get elements
				menuAreaWidth = parseFloat(document.getElementById("menuArea").offsetWidth) -4;
				menuBaseX = parseFloat(document.getElementById("menuArea").offsetLeft) + 2;
				dynamicMenuHolder = document.getElementById("dynamicMenuHolder");
				dynamicMenu = document.getElementById("dynamicMenu");
				dynamicMenuIndicator = document.getElementById("dynamicMenuIndicator");
				dynamicMenuContent = document.getElementById("dynamicMenuContent");
				onIndicator = document.getElementById("menuOnIndicator");
				// set menu active
				menuActive = true;
			}
			// dim current active menu
			if(menuOnIndex >= 0  && menuIndex != menuOnIndex) {
				document.getElementById("menu" + menuOnIndex).className = replaceMenuClass(document.getElementById("menu" + menuOnIndex), "menuDim");
			}
			//activation
			if(onIndicator) onIndicator.style.display = "none";
			storeMenuIndex = menuIndex;
			storeButtonState = buttonState;
			storeThisElement = thisElement;
			thisElement.className = replaceMenuClass(thisElement, 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);
				// Set horizontal position
				// xOffset = (parseFloat(dynamicMenuHolder.offsetWidth) - parseFloat(dynamicMenu.offsetWidth)) * ((menuIndex)/(menuTotal-1));
				xOffset = menuBaseX + buttonLeft - 2;
				if((xOffset + menuWidth) > parseFloat(dynamicMenuHolder.offsetWidth)) {
					xOffset = menuAreaWidth - menuWidth; //buttonLeft - (parseFloat(dynamicMenu.offsetWidth) - buttonWidth);
					//document.getElementById("submenu" + menuIndex).className = "displayNone alignRight";
				}
				setPos(dynamicMenu,xOffset,155);
				// gap position
				setPos(dynamicMenuIndicator,(buttonLeft - xOffset) + Math.floor((buttonWidth)/2) - 9,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 = 250 + "px";
					break;
					case 2:
					document.getElementById("submenu" + menuIndex).style.width = 480 + "px";
					break;
					case 3:
					document.getElementById("submenu" + menuIndex).style.width = 710 + "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);
					}
				}
				// stop homepage video being clickable on touch devices
				updateHomeVideoTouch(false);
			} 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 = replaceMenuClass(storeThisElement, getMenuClass(storeThisElement,false));
			// un-dim active menu
			if(menuOnIndex >= 0) {
				document.getElementById("menu" + menuOnIndex).className = replaceMenuClass(document.getElementById("menu" + menuOnIndex), "menuOn");
			}
			// 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;
			//show on indicator again
			if(onIndicator) onIndicator.style.display = "block";
			// stop homepage video being clickable on touch devices
			updateHomeVideoTouch(true);
		}
	}
	
	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 updateHomeVideoTouch(getMode) {
		if(iosMode) {
			if(document.getElementById("videoPlayer")) {
				if(document.getElementById("videoPlayer").getElementsByTagName("VIDEO")) {
					if(getMode) {
						document.getElementById("videoPlayer").getElementsByTagName("VIDEO")[0].style.display = "block";
					} else {
						document.getElementById("videoPlayer").getElementsByTagName("VIDEO")[0].style.display = "none"
					}
				}
			}
		}
	}
	
	
// Function to track links with Google Analytics
	
	function trackLink(linkSrc) {
		try { _gaq.push(['_trackPageview', linkSrc]); } // New 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;
		}
	}
	
// expander functions

	var expanders = new Array();
	var expanderOpenLabels = new Array();
	var expanderCloseLabels = new Array();

	function buildExpanders() {
		var expanderElements, expanderIndex, expanderOpenText, expanderCloseText;
		
		if (!window.isCmsPageEditorPreview) { 
			if(document.getElementsByClassName) expanderElements = document.getElementsByClassName("expanderControlArea");
			else expanderElements = getElementsByClass("expanderControlArea",document,"div");
			for (var expander = 0; expander < expanderElements.length; expander++) {
				if (expanderElements[expander].id !== undefined) {
					if (expanderElements[expander].id.indexOf("xControl") >= 0) {
						expanderIndex = parseInt(expanderElements[expander].id.match(/xControl(\d+)/)[1]);
						expanderOpenText = expanderElements[expander].getAttribute("data-openText");
						expanderCloseText = expanderElements[expander].getAttribute("data-closeText");
						expanderOpenLabels[expanderIndex] = expanderOpenText;
						expanderCloseLabels[expanderIndex] = expanderCloseText;
						expanderElements[expander].innerHTML = "<a class=\"expanderOpen\" href=\"javascript:toggleExpander(" + expanderIndex.toString() + ");\"><span></span><strong>" + expanderOpenText + "</strong></a></div><div class=\"expanderContent\" id=\"xContent" + expanderIndex.toString() + "\">" + expanderElements[expander].innerHTML;
						expanderElements[expander].className += " expanderControl";
					}
				}
			}
		}
	}
	
	function toggleExpander(expanderIndex) {
		if(!expanders[expanderIndex]) {
			expanders[expanderIndex] = true;
			document.getElementById("xControl" + expanderIndex).getElementsByTagName("A")[0].className = "expanderClose";
			document.getElementById("xControl" + expanderIndex).getElementsByTagName("A")[0].getElementsByTagName("STRONG")[0].innerHTML = expanderCloseLabels[expanderIndex];
			if($) {
				$(("#xContent" + expanderIndex)).stop(false,false);
				$(("#xContent" + expanderIndex)).slideUp(0);
				$(("#xContent" + expanderIndex)).slideDown(1000);
			} else {
				document.getElementById("xContent" + expanderIndex).style.display = "block";
			}
		} else {
			expanders[expanderIndex] = false;
			document.getElementById("xControl" + expanderIndex).getElementsByTagName("A")[0].className = "expanderOpen";
			document.getElementById("xControl" + expanderIndex).getElementsByTagName("A")[0].getElementsByTagName("STRONG")[0].innerHTML = expanderOpenLabels[expanderIndex];
			if($) {
				$(("#xContent" + expanderIndex)).stop(false,false);
				$(("#xOpen" + expanderIndex)).slideDown(0);
				$(("#xContent" + expanderIndex)).slideUp(0);
			} else {
				document.getElementById("xContent" + expanderIndex).style.display = "none";
			}
		}
	}
	
	
	
	
	
	

// -->
