// Standard JavaScript Document - Volvo AB

// ========================  ======================== 
// ------------------------  ------------------------ 
// ........................  ........................


/* 
........................ STRUCTURE ........................

- general
- window.onload
- TEST

*/


// ======================== general ========================

// ------------------------ find position of objects (courtesy of Peter-Paul Koch) ------------------------ 

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}



// ------------------------ Get the scrolled distance (in an array) ------------------------ 

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}


// ------------------------ Rounded corner code for images ------------------------ 

var imgRcStart = '<span class="imgRc"><span class="imgRc_top"><span class="imgRc_topLeft"></span><span class="imgRc_topRight"></span></span>';
var imgRcEnd = '<span class="imgRc_bottom"><span class="imgRc_bottomLeft"></span><span class="imgRc_bottomRight"></span></span></span>';


// ------------------------ flash check ------------------------ 

// This script will test up to the following version.
flash_versions = 20;

// Initialize variables and arrays
var flash = new Object();
flash.installed=false;
flash.version='0.0';

// Dig through Netscape-compatible plug-ins first.
if (navigator.plugins && navigator.plugins.length) {
	for (x=0; x < navigator.plugins.length; x++) {
		if (navigator.plugins[x].name.indexOf('Shockwave Flash') != -1) {
			flash.version = navigator.plugins[x].description.split('Shockwave Flash ')[1];
			flash.installed = true;
			break;
		}
	}
}

// Then, dig through ActiveX-style plug-ins afterwords
else if (window.ActiveXObject) {
	for (x = 2; x <= flash_versions; x++) {
		try {
			oFlash = eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash." + x + "');");
			if(oFlash) {
				flash.installed = true;
				flash.version = x + '.0';
			}
		}
		catch(e) {}
	}
}

// Create sniffing variables in the following style: flash.ver[x]
// Modified by mjac
flash.ver = Array();
for(i = 4; i <= flash_versions; i++) {
	eval("flash.ver[" + i + "] = (flash.installed && parseInt(flash.version) >= " + i + ") ? true : false;");
}

var flashVersion = parseInt(String(flash.version).substring(0,1));

//very simple IE check
var ua = window.navigator.userAgent
var msie = ua.indexOf ( "MSIE " )
//use syntax if(msie>0) { do something IF msie }  


// ------------------------ "contains" - for checking relations on mouseout of nested objects ------------------------ 

function contains(a, b) { // Return true if node a contains node b.
	if ((a && b)) {
	  while (b.parentNode)
	    if ((b = b.parentNode) == a)
	      return true;
	  return false;
	}
}


// ------------------------ URL query string retriever ------------------------ 

function retrieveQueryStringFromURL(name) {
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var tmpURL = window.location.href;
  var results = regex.exec( tmpURL );
  if( results == null )
    return "";
  else
    return results[1];
}

// ------------------------ clear the value of a text field ------------------------

function clearFieldValue(me) {
	if (me.value == me.title) {
		me.value = '';
	}
}


// ------------------------ restore the value of an empty text field ------------------------

function restoreFieldValue(me) {
	if (me.value == '') {
		me.value = me.title;
	}
}

// ------------------------ flash loader ------------------------

function loadFlash(loadFlash_link,loadFlash_width,loadFlash_height,loadFlash_placeHolder,loadFlash_vars,loadFlash_bgCol,loadFlash_wMode,loadFlash_alt) {
	// loadFlash_vars is reserved for future use
	var placeHolder = document.getElementById(loadFlash_placeHolder);  // find placeholder by ID
	if (!(placeHolder)) {
		placeHolder = document.getElementsByClassName(loadFlash_placeHolder); // if no ID, find the first item with className
		placeHolder = placeHolder[0];
	}
	if ((flashVersion > 7 && loadFlash_link != '')) {
		// write flash	
		if (loadFlash_width == '') {
			loadFlash_width = 350; // default width
		}
		if (loadFlash_height == '') {
			loadFlash_height = 200; // default height
		}
		if (loadFlash_bgCol == '') {
			loadFlash_bgCol = '#FFFFFF'; // default background
		}
		var loadFlash_id = loadFlash_placeHolder + '_flash'; // gives the flash content a unique ID
		var loadFlashObject = new SWFObject(loadFlash_link, loadFlash_id, loadFlash_width, loadFlash_height, "8", loadFlash_bgCol);
		if (loadFlash_wMode == 'alpha') {
			loadFlashObject.addParam("wmode", "transparent"); // if stated, background is transparent
		}
		loadFlashObject.write(placeHolder);
		
		//placeHolder.innerHTML = imgRcStart + placeHolder.innerHTML + imgRcEnd; // TEST
		
	} else {
		if (loadFlash_alt != '') {
			placeHolder.innerHTML = loadFlash_alt; // if no flash link, orn wrong flash version; show alt content, if any
		}
	}
}

/*
example: loadFlash('_flash/promo_dummy02.swf','400','200','main01_contentMain_mediaBlock01','','#FF0000','alpha','This is <em>alternative content</em>');
*/


// ------------------------ rcbItem mouse over / out ------------------------

function rcbMOver(me) {
	var theClicker = me.getElementsByTagName('a');
	if(theClicker[0].rel != 'marked'){
		me.className = 'rcbItem_pad01_marked';
		me.onmouseout = rcbMOut;
	}
}

function rcbMOut(event) {
	var theClicker = this.getElementsByTagName('a');
	var container = this.getElementsByClassName('rcbItem_pad02');
	var containerStripe = this.parentNode;
	var current, related;
	if (window.event) {
		current = this;
		related = window.event.toElement;
	} else {
		current = event.currentTarget;
		related = event.relatedTarget;
	}
	if (current != related && !contains(current, related)) {
		if(theClicker[0].rel != 'marked'){
			this.className = 'rcbItem_pad01';
		}
	}
}


// ------------------------ selectFlipper ------------------------

function selectFlipper(switchMe) { // hides <select> elements, for IE6
	var selects = document.getElementsByTagName('select');
	if (switchMe == 'hide') {
		for (var i = 0; i < selects.length; i++){	
			selects[i].style.visibility = 'hidden';
		}
	} else if (switchMe == 'show') {
		for (var i = 0; i < selects.length; i++){	
			selects[i].style.visibility = 'visible';
		}
	}
}

function flashFlipper(switchMe) { // Should be used to hide Flash from Safari, because of flicker bug
	var appVersion = 0;
	var appVersionChk = navigator.appVersion;
	appVersionChk = appVersionChk.split('/');
	if (appVersionChk.length > 1) {
		for (var i = 0; i < appVersionChk.length; i++){
			var strChk = appVersionChk[i].match('Safari');
			if (strChk != null) {
				var pickThis = i;
				pickThis++;
				appVersion = appVersionChk[pickThis];
			}
		}
	}
	if (appVersion != 0) {
		appVersion = parseFloat(appVersion);
		if (appVersion < 419.3) { // apply flash fix on Safari versions earlier than this number
			var embed = document.getElementsByTagName('embed');
			if ((switchMe == 'hide' && embed.length > 0)) {
				for (var i = 0; i < embed.length; i++){	
					embed[i].style.visibility = 'hidden';
				}
			} else if ((switchMe == 'show' && embed.length > 0)) {
				for (var i = 0; i < embed.length; i++){	
					embed[i].style.visibility = 'visible';
				}
			} else if (switchMe == 'hidePromo') {
				var theBigFlasher = document.getElementById("main01_promoPh");
				theBigFlasher.style.visibility = 'hidden';
			} else if (switchMe == 'showPromo') {
				var theBigFlasher = document.getElementById("main01_promoPh");
				theBigFlasher.style.visibility = 'visible';
			}
		}
	}
}

// ------------------------ voidAllJSLinks ------------------------

function voidAllJSLinks() { // makes sure that swfObject doesn't bug in IE. May not be neccessary on live site.
	var links = document.getElementsByTagName('a');
	for (i = 0; i < links.length; i++) {
       var s = links[i].href;
		if (s.match(/#+$/)) {
			links[i].href = 'javascript:void(0);';
		}
	}
} 


// ------------------------ giveFocus ------------------------

function giveFocus(me_id,me_className) {
	var me;
	if (me_id != '') {
		me = document.getElementById(me_id);
		me.focus();
	} else {
		me = document.getElementsByClassName(me_className);
		me[0].focus();
	}
}

// ------------------------ submitOnEnter ------------------------

function handleSubmitOnEnter(className) {
	var inputs = document.getElementsByClassName(className);
	for (i = 0; i < inputs.length; i++) {
		var currentInput = inputs[i];
		currentInput.onkeypress = submitOnEnter;
	}
}

function submitOnEnter(event) {
	var key;
	if (window.event) {
		key = window.event.keyCode;
	} else {
		key = event.keyCode;
	}
	if (key == 13) {
		var form = document.getElementById("DUMMY0001");
		form.submit();
	}
}

// ------------------------ contact form module handling ------------------------

function contactForm_jsSubmit() {
/*	var forms = document.getElementsByTagName('form');
	if (forms.length > 0) {
		for (var i = 0; i < forms.length; i++){
			if (forms[i].className == 'form_contact') {
				var formSubmits = forms[i].getElementsByTagName('button');
				var submitButton = formSubmits[0];
				submitButton.type = 'button';
			}
		}
	} */
} 

function submitContactMail(me) {
	var form = me.parentNode.parentNode;
	var rec = form.getElementsByClassName('form_contact_rec');
	var snd = form.getElementsByClassName('form_contact_snd');
	var msg = form.getElementsByClassName('form_contact_msg');
	var formError_rec = form.getElementsByClassName('formError_rec');
	var formError_snd = form.getElementsByClassName('formError_snd');
	var formError_msg = form.getElementsByClassName('formError_msg');
	formError_rec[0].style.display = 'none';
	formError_snd[0].style.display = 'none';
	formError_msg[0].style.display = 'none';
	if (rec[0].value == '') {
		formError_rec[0].style.display = 'block';
	} else if (snd[0].value == '') {
		formError_snd[0].style.display = 'block';
	} else if (msg[0].value == '') {
		formError_msg[0].style.display = 'block';
	} else {
		form.submit();
	}
}


// ------------------------ form (template) ------------------------

function form_disableSubmit(button,onclickFunc) {
	var buttons = document.getElementsByClassName(button);
	for (var i = 0; i < buttons.length; i++){	
		var newButtonClassName = button;
		//var newButtonOnclick = buttons[i].onclick;
		var newButtonInnerHTML = buttons[i].innerHTML;
		var newButtonContainer = buttons[i].parentNode;
		newButtonContainer.innerHTML = '<button type="button" class="sButton ' + newButtonClassName + '" onclick="' + onclickFunc + '">' + newButtonInnerHTML + '</button>';
		//newButtonContainer.innerHTML = '<button type="reset" class="sButton ' + newButtonClassName + '">' + newButtonInnerHTML + '</button>';
		//alert(newButtonContainer);
	}
}

function form_submit() {
	/* check if any asterisk fields
		- if, then check value
			- if not completed, set focus and set corresp label to fontStyle = 'italic';
			- show error text in .form_confirm - errorMsg_text / errorMsg_select
				- check for className 2 do this
			- break
		- submit form[0]
	*/
	
	var form = document.getElementsByTagName('form');
	var msgArea = document.getElementsByClassName('form_confirm');
	var errorLevel = 0;
	var asterisks = document.getElementsByClassName('form_req');
	if (asterisks.length > 0) {
		for (var i = 0; i < asterisks.length; i++){
			var inputs = asterisks[i].parentNode.getElementsByTagName('input');
			var label = asterisks[i].parentNode.getElementsByTagName('label');
			label[0].style.fontStyle = 'normal';
			if (inputs.length > 1) {
				var inputsChecked = 0;
				for (var ii = 0; ii < inputs.length; ii++){
					if (inputs[ii].checked != '') {	
						inputsChecked++;
					}
				}
				if (inputsChecked == 0) {
					msgArea[0].innerHTML = errorMsg_select;
					label[0].style.fontStyle = 'italic';
					errorLevel++;
					break;
				}
			} else if (inputs.length == 1) {
				if (inputs[0].value == '') {
					msgArea[0].innerHTML = errorMsg_text;
					label[0].style.fontStyle = 'italic';
					errorLevel++;
					break;
				}
			}
			var selects = asterisks[i].parentNode.getElementsByTagName('select');
			if (selects.length > 0) {
				if (selects[0].value == '') {
					msgArea[0].innerHTML = errorMsg_select;
					label[0].style.fontStyle = 'italic';
					errorLevel++;
					break;
				}
			}
			var textareas = asterisks[i].parentNode.getElementsByTagName('textarea');
			if (textareas.length > 0) {
				if (textareas[0].value == '') {
					msgArea[0].innerHTML = errorMsg_text;
					label[0].style.fontStyle = 'italic';
					errorLevel++;
					break;
				}
			}
			if (errorLevel > 0) {
				i = asterisks.length;
			}
		}
		if (errorLevel == 0) {
			//alert('posting, all required ok - ' + errorLevel);
			form[0].submit();
		}
	} else {
		//alert('posting, no required - ' + errorLevel);
		form[0].submit();
	}
	errorLevel = 0;
}



// ------------------------ accordion flip ------------------------

var flipAtWork = false;
var height_QAscrollRef;

function contractStuff(thisOne) { // contracts the list item
	var wipeThis = thisOne;	
	var myImages = wipeThis.parentNode.getElementsByTagName('img');
	if (myImages.length > 0) {
		for (var i = 0; i < myImages.length; i++){	
			myImages[i].style.display = 'none';
		}
	}
	//change bgcolor and arrow
	var doc = wipeThis.parentNode.parentNode.getElementsByClassName('rcbItem_pad01_marked');
	for (var i = 0; i < doc.length; i++){	
		doc[i].className = 'rcbItem_pad01';
	}
	var doc = wipeThis.parentNode.parentNode.getElementsByTagName('a');
	//for (var i = 0; i < doc.length; i++){
		if (doc[0].className == 'header') {
		   doc[0].style.backgroundImage = "url(_images/layout/rcbItem_sideBar_down.gif)";
		   doc[0].rel = ''; // for mOver
		}
	//}
	var wipeIntervalContr = setInterval(function() { 
		if (wipeThis.offsetHeight > 0) {
			var myHeight = wipeThis.offsetHeight -12;
			if (myHeight <= 1) {
				myHeight = 0;
			}
			myHeight = myHeight.toString();
			wipeThis.style.height = myHeight + 'px'; 
		} else {
			var showThis = wipeThis.getElementsByClassName('rcbItem_pad03');
			showThis[0].style.visibility = 'hidden';
			clearInterval(wipeIntervalContr);
			if (document.getElementById("scrollArea")) {
				var doArrowChk = setTimeout('arrowChk()', 40);
			}
			var theClicker = wipeThis.parentNode.getElementsByTagName('a');
			var theClicker = wipeThis.parentNode;
			theClicker.className = 'rcbItem_pad01'; // fix IE contraction bug
		}
	}, 20);
}


function init_QuickAccess() {
	scrArea = document.getElementById("scrollArea");
	scrContainer = document.getElementById("scrollAreaContainer");
	if (scrArea) {
		var scrollContItem = scrArea.getElementsByClassName('rcbItem_pad01');
		if (scrollContItem.length > 1) {
			height_QAscrollRef = scrollContItem[1].offsetHeight;
		}
	}
}


function expandStuff(thisOne) { // expands the list item
	var wipeThis = thisOne;
	
	var scrollCont = document.getElementById("scrollArea"); // adjusts the scroll position on expansion in Quick Access box
	if (scrollCont && contains(scrollCont, wipeThis)) {
		var itemsAll = thisOne.parentNode.parentNode.parentNode.getElementsByClassName('rcbItem_pad02');
		var itemsPrevious = 0;
		for (var i = 0; i < itemsAll.length; i++){
			if (thisOne == itemsAll[i]) {
				break;
			} else {
				itemsPrevious++;
			}
		}
		var scrollShould = itemsPrevious * height_QAscrollRef;
		var scrollIs = scrollCont.style.marginTop;
		if (scrollIs == '') {
			scrollIs = 0;
		} else {
			scrollIs = scrollIs.replace('px', '');
			scrollIs = scrollIs.replace('-', '');
			scrollIs = parseInt(scrollIs);
		}
		if (scrollShould > 0) {
			scrollCont.style.marginTop = '-' + scrollShould + 'px';
			arrowChk();
		}
	}
	
	var myImages = wipeThis.parentNode.getElementsByTagName('img');
	var showThis = wipeThis.getElementsByClassName('rcbItem_pad03');
	showThis[0].style.visibility = 'visible';
	
	var doc = wipeThis.parentNode.parentNode.getElementsByClassName('rcbItem_pad01');
	for (var i = 0; i < doc.length; i++){	
		doc[i].className = 'rcbItem_pad01_marked';
	}
	if (myImages.length > 0) {
		for (var i = 0; i < myImages.length; i++){	
			myImages[i].style.display = 'inline';
		}
	}
	var doc = wipeThis.parentNode.parentNode.getElementsByTagName('a');
	doc[0].style.backgroundImage = "none";
	
	var wipeContent = document.getElementsByClassName('rcbItem_pad03', $(wipeThis));
	var contentHeight = wipeContent[0].offsetHeight;
	var wipeIntervalExp = setInterval(function() { 
		if (wipeThis.offsetHeight <= contentHeight) {
			var myHeight = wipeThis.offsetHeight + 12;
			if (myHeight > contentHeight) {
				myHeight = contentHeight + 2;
			}
			myHeight = myHeight.toString();
			wipeThis.style.height = myHeight + 'px'; 
		} else {
			clearInterval(wipeIntervalExp);
			flipAtWork = false;
			if (document.getElementById("scrollArea")) {
				var doArrowChk = setTimeout('arrowChk()', 40);
			}
		}
		if (document.getElementById("scrollArea")) {
			arrowChk();
		}
	}, 20);
}


function flip(me) { // handler for expanding/contracting list items
	if (flipAtWork == false) {
		flipAtWork = true;
		var flipsSoFar = 0;
		var itemParent = me.parentNode;
		var itemOuterContent = document.getElementsByClassName('rcbItem_pad02', $(itemParent)); // find the outer content holder of this item
		var itemInnerContent = document.getElementsByClassName('rcbItem_pad03', $(itemParent)); // find the inner content holder of this item
		var itemGrandGrandParent = itemParent.parentNode.parentNode; // find the container for local item group
		var itemOuterList = document.getElementsByClassName('rcbItem_pad02', $(itemGrandGrandParent));
		var itemInnerList = document.getElementsByClassName('rcbItem_pad03', $(itemGrandGrandParent));
		if (itemOuterContent[0].offsetHeight < 1) {
			while (flipsSoFar < itemOuterList.length - 1) {
				for (i = 0; i < itemOuterList.length; i++) {
					if (itemOuterList[i].offsetHeight > 3) {
						contractStuff(itemOuterList[i]);
					}
				}
			flipsSoFar++;
			}
			flipsSoFar = 0;
			expandStuff(itemOuterContent[0]);
			me.rel = 'marked'; // for mOver
		} else {
			flipAtWork = false;
		}
	}	
}

// ------------------------ Open first accordion item ------------------------

function flipTheFirstFlipItems() { // for use on page load, to make the first item of every list expanded.

	scrArea = document.getElementById("scrollArea");
	scrContainer = document.getElementById("scrollAreaContainer");
	var flippers = document.getElementsByClassName('rcbSideBar');
	if (flippers.length > 0) {
		for (i = 0; i < flippers.length; i++) {
			var flipParent = flippers[i].parentNode;
			var firstFlip = flipParent.getElementsByClassName('rcbSideBar');
			if (flippers[i] == firstFlip[0]) {
				var firstFlip_a = firstFlip[0].getElementsByTagName('a');
				if (firstFlip_a[0].className == 'header') { //change bgcolor and arrow
					firstFlip_a[0].style.backgroundImage = "none";
					firstFlip_a[0].rel = 'marked'; // for mOver
				}
				
				var firstflip_pad01 = firstFlip[0].getElementsByClassName('rcbItem_pad01');
				firstflip_pad01[0].className = 'rcbItem_pad01_marked';
				
				var firstflip_pad02 = firstFlip[0].getElementsByClassName('rcbItem_pad02');
				firstflip_pad02[0].style.height = 'auto';
				
				var firstFlip_showThis = firstFlip[0].getElementsByClassName('rcbItem_pad03');
				firstFlip_showThis[0].style.visibility = 'visible';
				
				var myImages = firstflip_pad01[0].getElementsByTagName('img');
				if (myImages.length > 0) {
					for (var iii = 0; iii < myImages.length; iii++){	
						myImages[iii].style.display = 'inline';
					}
				} 
			}
		}
		if (document.getElementById("scrollArea")) {
			arrowChk();
		}
	}
}

// ------------------------ QAcc scroll ------------------------

var qaScroll = null;
var scrAddHeight = 21; // extra height adjustment for the end element in the Quick Access pad.
var scrArea;
var scrContainer;

var topMarginChk;


function hoverScroll_perform(whereTo,howMuch) {
	if (whereTo) {
		if (topMarginChk < 0) {
			arrowChk();
			topMarginChk = topMarginChk + howMuch;
			scrArea.style.marginTop = topMarginChk + 'px';
		} else { 
			scrArea.style.marginTop = '0px';
			arrowChk();
		}
	} else if (!whereTo) {
		if ((scrContainer.offsetHeight - (scrArea.offsetHeight + 21) < topMarginChk)) {
			arrowChk();
			topMarginChk = topMarginChk - howMuch; 
			scrArea.style.marginTop = topMarginChk + 'px'; 
		} else {
			scrArea.style.marginTop = '-' + ((scrArea.offsetHeight + 21) - scrContainer.offsetHeight) + 'px';
			arrowChk();
		}
	} 
}




function hoverScroll(whereTo) {
	topMarginChk = scrArea.style.marginTop;
	if (topMarginChk != '') {
		topMarginChk = topMarginChk.replace('px', '');
		topMarginChk = parseInt(topMarginChk);
	}
	if (whereTo == 'scrollUp') {
		if (qaScroll == null)
			qaScroll = setInterval('hoverScroll_perform(true,10)', 35);
	} else if (whereTo == 'scrollDown') {
		if (qaScroll == null)
			qaScroll = setInterval('hoverScroll_perform(false,10)', 35);
	} else if (whereTo == 'scrollStop') {
		clearInterval(qaScroll);
		qaScroll = null;
	}
}

function arrowChk() {
	var topMargin = scrArea.style.marginTop;

	if (!topMargin) { // check if margin is set
		topMargin = 12;
	} else {
		topMargin = topMargin.replace('px', '');
		topMargin = parseInt(topMargin);
	}
	
	if (topMargin < 0) { // up arrow is needed
		document.getElementById("qa_scrollUp").style.visibility = "visible";
	} else {
		document.getElementById("qa_scrollUp").style.visibility = "hidden";
	}
	
	if (((scrArea.offsetHeight + scrAddHeight) + topMargin) > scrContainer.offsetHeight) { // down arrow is needed
		document.getElementById("qa_scrollDown").style.visibility = "visible";
	} else {
		document.getElementById("qa_scrollDown").style.visibility = "hidden";
	}
}

// ------------------------ Product hover box ------------------------


var exploringBox = false;
var arrowHidden = '999px'; 
var arrowVisible;

var prodListItems;
var prodListItems_exploring = false;

function loseFocus(me) {
	var myParent = 	me.parentNode.parentNode;
	var cells = myParent.getElementsByTagName('td');
	var lastCell = cells.length - 1;
	var lastOne = cells[lastCell].getElementsByTagName('button');
	lastOne[0].focus();
}




function hoverBox_mOver(event) { // show product mouseOver box
	var whichOne = this.id.replace('prodLinkUpper_', '');
	prodListItems[whichOne].hovering = true;
	var listItems = document.getElementById('product01_descriptions').getElementsByClassName('hoverBox01');
	var boxId = 'prodInfo_' + whichOne;
	var boxArrowId = 'prodInfoPointer_' + whichOne;
	var box = document.getElementById(boxId);
	var boxWidth = 350; // set width of standard productbox
	if (box.parentNode.className == 'hoverBox01_wrap01b') {
		boxWidth = 510; // set width of extra wide productbox
	}
	
	var holdPanelShow = setTimeout( function() {
		if (prodListItems[whichOne].hovering == true) {
			var adjustForCenter = boxWidth / 2 - 40;
			var boxArrow = document.getElementById(boxArrowId);
			var halfwayThroughTheList = listItems.length / 2;
			halfwayThroughTheList = parseInt(halfwayThroughTheList);
			box.style.visibility = 'hidden';
			box.style.display = 'block';
			if (whichOne < halfwayThroughTheList) {
				boxArrow.style.bottom = arrowVisible;
			} else if (whichOne == halfwayThroughTheList) {
				box.style.right = '-' + adjustForCenter + 'px';
				boxArrow.style.bottom = arrowVisible;
			} else { 
				box.style.right = '0px';
				boxArrow.style.bottom = arrowVisible;
			}
			if (box.parentNode.className == 'hoverBox01_wrap01b') {
				var boxHeight = parseInt(box.offsetHeight);
				if (boxHeight >= 320) {
					var boxContent = box.getElementsByClassName('hoverBox_content');
					if (boxContent.length > 0) {
						boxContent[0].className = 'hoverBox_content_scroll';
					}
				}
			}
			var holdPanelMakeVisible = setTimeout( function() {
				box.style.visibility = 'visible';
				flashFlipper('hidePromo');
				if ((document.compatMode && document.all) && !(window.XMLHttpRequest)) {
					selectFlipper('hide');
				}
			},10);
		}
	},250);
}


function hoverBox_mOut(event) { // hide product mouseOver box, when mouse leaves the link
	var whichOne = this.id.replace('prodLinkUpper_', '');
	prodListItems[whichOne].hovering = false;
	var boxId = 'prodInfo_' + whichOne;
	var boxArrowId = 'prodInfoPointer_' + whichOne;
	var box = document.getElementById(boxId);
	var boxArrow = document.getElementById(boxArrowId);
	var related;
	if (window.event) {
		related = window.event.toElement;
	} else {
		related = event.relatedTarget;
	}
	var holdPanelHide = setTimeout( function() {
		if (prodListItems_exploring == false) {
			if ((related != box && related != boxArrow)) {
				box.style.display = 'none';
				boxArrow.style.bottom = arrowHidden;
				flashFlipper('showPromo');
				selectFlipper('show');
			}
		}
	},250);
}


function hoverBox_mOverBox(event) {
	prodListItems_exploring = true;
}


function hoverBox_mOutBox(event) { // hide product mouseOver box, when mouse leaves the mouse over box
	prodListItems_exploring = false;
	var whichOne = this.id.replace('prodInfo_', '');
	var boxId = 'prodInfo_' + whichOne;
	var boxArrowId = 'prodInfoPointer_' + whichOne;
	var box = document.getElementById(boxId);
	var boxArrow = document.getElementById(boxArrowId);
	var current, related;
	if (window.event) {
		current = this;
		related = window.event.toElement;
	} else {
		current = event.currentTarget;
		related = event.relatedTarget;
	}
	if (current != related && !contains(current, related)) {
		if (related != boxArrow) {
			box.style.display = 'none';
			boxArrow.style.bottom = arrowHidden;
			flashFlipper('showPromo');
			selectFlipper('show');
		}
	}
}


function hoverBox_assignEvents() { // assigns the mouseover/out events to product bars
	var prodList = document.getElementById('product01_images');
	var prodWrapper = document.getElementById('product_ph01');
	if (prodWrapper.className == 'noHeaders') {
		arrowVisible = '102px';
	} else {
		arrowVisible = '112px';
	}
	prodListItems = prodList.getElementsByTagName('a');
	for (i = 0; i < prodListItems.length; i++) {
		prodListItems[i].hovering = false;
		var thisProdListItem = prodListItems[i];
		thisProdListItem.onmouseover = hoverBox_mOver;
		thisProdListItem.onmouseout = hoverBox_mOut;
		document.getElementById('prodInfo_' + [i]).onmouseover = hoverBox_mOverBox;
		document.getElementById('prodInfo_' + [i]).onmouseout = hoverBox_mOutBox;
	}
	
	var platformChk = navigator.oscpu;
	if (platformChk == null) {
		platformChk = 'other';
	}
	var uACheck = platformChk.match('Mac OS X');
	if ((uACheck != null) && (navigator.product == 'Gecko')) {
		var boxes = prodWrapper.getElementsByClassName('hoverBox01');
		for (i = 0; i < boxes.length; i++) {
			var boxParent = boxes[i].parentNode.parentNode;
			boxParent.className = boxParent.className + 'hoverbox_gif';			
		}
	}
}


// ------------------------ product guide hover box ------------------------


var pg_boxDown = false;
var pg_arrowHidden = '999px'; 
var pg_arrowVisible = '60px';
var pg_arrowVisible_down = '-20px';

function pg_loseFocus(me) {
	var myParent = 	me.parentNode.parentNode;
	var cells = myParent.getElementsByTagName('td');
	var lastCell = cells.length - 1;
	var lastOne = cells[lastCell].getElementsByTagName('button');
	lastOne[0].focus();
}


function productGuide_assignEvents() {
	var prodList = document.getElementById('product01');
	prodListItems = prodList.getElementsByClassName('prodLink');
	
	for (i = 0; i < prodListItems.length; i++) {
		prodListItems[i].hovering = false;
		var thisItem = prodListItems[i];
		thisItem.onmouseover = productGuide_mOver;
		document.getElementById('prodLinkUpper_' + [i]).onmouseout = productGuide_mOut;
		document.getElementById('prodInfo_' + [i]).onmouseover = productGuide_mOverBox;
		document.getElementById('prodInfo_' + [i]).onmouseout = productGuide_mOutBox;
	}
}


function productGuide_mOver(event) {
	var whichOne = this.id.replace('prodLinkUpper_', '');
	prodListItems[whichOne].hovering = true;
	var boxHeight = document.getElementById('prodInfo_' + whichOne);
	boxHeight = boxHeight.parentNode.getElementsByClassName('hoverBox_pad02');

	boxHeight = boxHeight[0];
	
	var boxId = 'prodInfo_' + whichOne;
	var boxArrowId = 'prodInfoPointer_' + whichOne;
	var box = document.getElementById(boxId);
	var boxArrow = document.getElementById(boxArrowId);
	var prodLinks = document.getElementsByClassName('prodLink');
	var boxWidth = 350; // set width of standard productbox
	if (box.parentNode.className == 'hoverBox01_wrap01b') {
		boxWidth = 510; // set width of extra wide productbox
	}
	var adjustForCenter = boxWidth / 2 - 40;
	if (whichOne > 4) {
		var prodRowNr = prodLinks.length / 5;
		prodRowNr = parseInt(prodRowNr);
		var prodRowPlace = prodRowNr * 5;
		prodRowPlace = whichOne - prodRowPlace;
	} else {
		prodRowPlace = whichOne;
	}
	
	var halfwayThroughTheList = 2;
	
	var distanceThumbToTop = parseInt(findPos(this)[1]);
	distanceThumbToTop = distanceThumbToTop - parseInt(getScrollXY()[1]);
	
	var mouse_to, mouse_from;
	if (window.event) {
		mouse_to = this;
		mouse_from = window.event.fromElement;
	} else {
		mouse_to = event.currentTarget;
		mouse_from = event.relatedTarget;
	}
	
	var holdPanelShow = setTimeout( function() {
		if (prodListItems[whichOne].hovering == true) {
			
			box.style.visibility = 'hidden';
			
			box.style.display = 'block';
			if (prodRowPlace < halfwayThroughTheList) {
				box.style.left = '0px';
				if (distanceThumbToTop < box.offsetHeight + 40) {
					boxArrow.className = 'hoverBox_arrow_up';
					box.className = 'hoverBox01_up';
					pg_boxDown = true;
					var holdPanelVisible = setTimeout( function() {
						boxArrow.style.top = pg_arrowVisible_down;
						box.style.visibility = 'visible';
					},50);
				} else {
					box.style.visibility = 'visible';
					boxArrow.style.bottom = pg_arrowVisible;
				}
			} else if (prodRowPlace == halfwayThroughTheList) {
				box.style.right = '-' + adjustForCenter + 'px';
				if (distanceThumbToTop < box.offsetHeight + 40) {
					boxArrow.className = 'hoverBox_arrow_up';
					box.className = 'hoverBox01_up';
					pg_boxDown = true;
				 	var holdPanelVisible = setTimeout( function() {
						boxArrow.style.top = pg_arrowVisible_down;
						box.style.visibility = 'visible';
					},50);
				} else {
					box.style.visibility = 'visible';
					boxArrow.style.bottom = pg_arrowVisible;
				}
			} else { 
				box.style.right = '0px';
				if (distanceThumbToTop < box.offsetHeight + 40) {
					boxArrow.className = 'hoverBox_arrow_up';
					box.className = 'hoverBox01_up';
					pg_boxDown = true;
					var holdPanelVisible = setTimeout( function() {
						boxArrow.style.top = pg_arrowVisible_down;
						box.style.visibility = 'visible';
					},50);
				} else {
					box.style.visibility = 'visible';
					boxArrow.style.bottom = pg_arrowVisible;
				}
			}
			
			if (box.parentNode.className == 'hoverBox01_wrap01b') {
				var boxHeight = parseInt(box.offsetHeight);
				if (boxHeight >= 320) {
					var boxContent = box.getElementsByClassName('hoverBox_content');
					if (boxContent.length > 0) {
						boxContent[0].className = 'hoverBox_content_scroll';
					}
				}
			}
			
		}
	},250);
}



function productGuide_mOut(event) {
	var whichOne = this.id.replace('prodLinkUpper_', '');
	prodListItems[whichOne].hovering = false;
	var boxId = 'prodInfo_' + whichOne;
	var boxArrowId = 'prodInfoPointer_' + whichOne;
	var box = document.getElementById(boxId);
	var boxArrow = document.getElementById(boxArrowId);
	var current, related;
	if (window.event) {
		current = this;
		related = window.event.toElement;
	} else {
		current = event.currentTarget;
		related = event.relatedTarget;
	}
	
	var holdPanelShow = setTimeout( function() {
		if (prodListItems_exploring == false) {
			if (current != related && !contains(current, related)) {
				box.style.display = 'none';
				if (pg_boxDown == true) {
					boxArrow.className = 'hoverBox_arrow';
					box.className = 'hoverBox01';
					boxArrow.style.top = '';
					boxArrow.style.bottom = pg_arrowHidden;
					pg_boxDown = false;
				} else {
					boxArrow.style.bottom = pg_arrowHidden;
				}
				flashFlipper('showPromo');
			}
		}
	},250);
}


function productGuide_mOverBox(event) {
	prodListItems_exploring = true;
}

function productGuide_mOutBox(event) {
	prodListItems_exploring = false;
	var whichOne = this.id.replace('prodInfo_', '');
	var boxId = 'prodInfo_' + whichOne;
	var boxArrowId = 'prodInfoPointer_' + whichOne;
	var box = document.getElementById(boxId);
	var boxArrow = document.getElementById(boxArrowId);
	var current, related;
	if (window.event) {
		current = this;
		related = window.event.toElement;
	} else {
		current = event.currentTarget;
		related = event.relatedTarget;
	}
	if (current != related && !contains(current, related)) {
		if (related != boxArrow) {
			box.style.display = 'none';
			if (pg_boxDown == true) {
				boxArrow.className = 'hoverBox_arrow';
				box.className = 'hoverBox01';	
				boxArrow.style.top = '';
				boxArrow.style.bottom = pg_arrowHidden;
				pg_boxDown = false;
			} else {
				boxArrow.style.bottom = pg_arrowHidden;
			}
			flashFlipper('showPromo');
		}
	}
}

// ------------------------ market selector (general) hover box ------------------------

//var cl_shouldGetFocus = false;

function cl_kickStartOnLoad() { // performs initialization of market selector, when used on splash page
	cl_assignEvents(false);
	var pl_src01 = document.getElementById('pl_src01');
	var pl_applySrc01 = document.getElementById('cl_bgMain');
	var pl_src02 = document.getElementById('pl_src02');
	var pl_applySrc02 = document.getElementById('cl_bgFooter')
	pl_applySrc01.style.backgroundImage = 'url(' + pl_src01.href + ')'; 
}

function cl_assignEvents(giveFocus) { // assigns the mouseover/out events to the market selector
	var clList = document.getElementById('cl_markets');
	clListItems = clList.getElementsByTagName('a');
	for (i = 0; i < clListItems.length; i++) {
		document.getElementById('clMo_' + [i]).onmouseover = clHoverBox_mOver;
		document.getElementById('clMo_' + [i]).onmouseout = clHoverBox_mOut;
		document.getElementById('clPopup_' + [i]).onmouseout = clHoverBox_mOutBox;
	}
}


function clHoverBox_mOver(event) {
	var whichOne = this.id.replace('clMo_', '');
	var listItems = document.getElementById('cl_popups').getElementsByTagName('td');
	var nrOfItems = listItems.length;
	var boxWidth = 350; // set width of productbox here
	var adjustForCenter = boxWidth / 2 - 40;
	var boxId = 'clPopup_' + whichOne;
	var boxArrowId = 'clPopup_pointer_' + whichOne;
	var box = document.getElementById(boxId);
	var boxArrow = document.getElementById(boxArrowId);
	var halfwayThroughTheList = (nrOfItems / 2)-1;
	halfwayThroughTheList = parseInt(halfwayThroughTheList);
	if (whichOne < halfwayThroughTheList) {
		box.style.display = 'block';
		boxArrow.style.display = 'block';
	} else if (whichOne == halfwayThroughTheList) {
		box.style.display = 'block';
		box.style.right = '-' + adjustForCenter + 'px';
		boxArrow.style.display = 'block';
	} else {
		box.style.display = 'block';
		box.style.right = '0px';
		boxArrow.style.display = 'block';
	}
	var MoBoxLinks = box.getElementsByTagName('a');
	var MoBoxInputs = box.getElementsByTagName('input');
	if (MoBoxLinks[0] != null) {
			var theLastInput = MoBoxInputs.length - 1;
			theLastInput = MoBoxInputs[theLastInput];
			theLastInput.onblur = function() {
				box.style.display = 'none';
				boxArrow.style.display = 'none';
				whichOne = parseInt(whichOne);
				var nextOne = whichOne + 1;
				if (!(nextOne >= listItems.length)) {
					nextOne = document.getElementById('clMo_' + nextOne);
				} 
			}
	} else {
	}
	
}

function clHoverBox_mOut(event) {
	var whichOne = this.id.replace('clMo_', '');
	var boxId = 'clPopup_' + whichOne;
	var boxArrowId = 'clPopup_pointer_' + whichOne;
	var box = document.getElementById(boxId);
	var boxArrow = document.getElementById(boxArrowId);
	var related;
	if (window.event) {
		related = window.event.toElement;
	} else {
		related = event.relatedTarget;
	}
	if ((related != box && related != boxArrow)) {
		box.style.display = 'none';
		boxArrow.style.display = 'none';
	}
}

function clHoverBox_mOutBox(event) {
	var whichOne = this.id.replace('clPopup_', '');
	var boxId = 'clPopup_' + whichOne;
	var boxArrowId = 'clPopup_pointer_' + whichOne;
	var box = document.getElementById(boxId);
	var boxArrow = document.getElementById(boxArrowId);
	var current, related;
	if (window.event) {
		current = this;
		related = window.event.toElement;
	} else {
		current = event.currentTarget;
		related = event.relatedTarget;
	} 
	if (current != related && !contains(current, related)) {
		box.style.display = 'none';
		boxArrow.style.display = 'none';
	}
}

// ------------------------ market selector (multi entry) hover box ------------------------

function clLower_kickStartOnLoad() {
	clLower_assignEvents();
	var moImages = document.getElementById('cl_bgMain_pad01').getElementsByTagName('a');
	for (i = 0; i < moImages.length; i++) {
		moImages[i].style.backgroundImage = 'url(' + moImages[i].href + ')';
		moImages[i].href = 'javascript:void(0);';
		moImages[i].innerHTML = '';
	}
	 // default image for the multi entry splash page
	var pl_src01 = document.getElementById('pl_src01');
	var pl_applySrc01 = document.getElementById('cl_bgMain');
	pl_applySrc01.style.backgroundImage = 'url(' + pl_src01.href + ')'; 
}

function clLower_assignEvents() {
	var clList = document.getElementById('cl_marketsLower');
	clListItems = clList.getElementsByTagName('a');
	for (i = 0; i < clListItems.length; i++) {
		document.getElementById('clLwMo_' + [i]).onmouseover = clLowerHoverBox_mOver;
		document.getElementById('clLwMo_' + [i]).onfocus = clLowerHoverBox_mOver;
		document.getElementById('clLwMo_' + [i]).onmouseout = clLowerHoverBox_mOut;
		document.getElementById('clLwMo_' + [i]).onblur = clLowerHoverBox_mOut;
		document.getElementById('cl_popupLower_' + [i]).onmouseout = clLowerHoverBox_mOutBox;
	}
}


function clLowerHoverBox_mOver(event) {
	var whichOne = this.id.replace('clLwMo_', '');
	var listItems = document.getElementById('cl_popupsLower').getElementsByTagName('td');
	var nrOfItems = listItems.length;
	var boxWidth = 200; // set width of productbox here
	var adjustForCenter = boxWidth / 2;
	var boxId = 'cl_popupLower_' + whichOne;
	var box = document.getElementById(boxId);
	var moImages = document.getElementById('cl_bgMain_pad01').getElementsByTagName('a');
	for (i = 0; i < moImages.length; i++) {
		moImages[i].style.display = 'none';
	}
	var imgId = 'pl_clLwMo_' + whichOne;
	var img = document.getElementById(imgId);
	img.style.display = 'block';
	
	var halfwayThroughTheList = (nrOfItems / 2);
	halfwayThroughTheList = parseInt(halfwayThroughTheList);
	
	var is_odd = false;
	
	if (nrOfItems%2 == 0) {
		halfwayThroughTheList = halfwayThroughTheList - 1;
	} else {
		is_odd = true;
	}
	
	if ((whichOne == halfwayThroughTheList && is_odd == true)) { // middle mouseover link (if odd number of links)
		box.style.display = 'block';
		box.className = box.className + ' cl_pl_center';
		//box.style.left = adjustForCenter + 'px';
	} else if (whichOne > halfwayThroughTheList) { // mouseover links to the right of the middle
		box.style.display = 'block';
		box.className = box.className + ' cl_pl_right';
	} else { // mouseover links to the left of the middle
		box.style.display = 'block';
		//box.style.left = (adjustForCenter/1.5) + 'px';
	}

}



function clLowerHoverBox_mOut(event) {
	var whichOne = this.id.replace('clLwMo_', '');
	var boxId = 'cl_popupLower_' + whichOne;
	var box = document.getElementById(boxId);
	var related;
	if (window.event) {
		related = window.event.toElement;
	} else {
		related = event.relatedTarget;
	}
	if (related != box) {
		box.style.display = 'none';
	}
}


function clLowerHoverBox_mOutBox(event) {
	var box = document.getElementById(this.id);
	var current, related;
	if (window.event) {
		current = this;
		related = window.event.toElement;
	} else {
		current = event.currentTarget;
		related = event.relatedTarget;
	}
	if (current != related && !contains(current, related)) {
		box.style.display = 'none';
	}
}



// ------------------------ market selector popup layer ------------------------


var adjustHeight_init = '';

function adjustHeightToScroll(checkMe) {  // adjust overlay position to scroll
	if (adjustHeight_init == '') {
		adjustHeight_init = parseInt(checkMe.offsetTop);
	}
	var scrolledHeight = getScrollXY();
	checkMe.style.top = adjustHeight_init + scrolledHeight[1] + 'px';
}




function checkThePopupBg() { // makes sure that the shade background of layers works in IE6
	var popupBg_black = document.getElementById('popupLayer_fullCoverBackground');
	if (popupBg_black.style.display == 'block' && document.all && document.fireEvent && document.createComment) { //WinIE
		popupBg_black.style.width = document.body.offsetWidth;
		popupBg_black.style.height = document.body.offsetHeight;
	}
}

function showPopupLayer(whichOne,actContentLink,actContentWidth,actContentHeight,plWidth) {
	selectFlipper('hide');
	flashFlipper('hide');
	var bg_black = document.getElementById('popupLayer_fullCoverBackground');
	window.onresize = function() {
		checkThePopupBg(); // resize the big bg - for IE	
	}
	bg_black.style.display = 'block';
	checkThePopupBg();// - for IE
	
	if (whichOne == 'changeLocation') {
		cl_assignEvents(true);
		var pl = document.getElementById('popupLayer');
		var cl = document.getElementById(whichOne);
		var pl_src01 = document.getElementById('pl_src01');
		var pl_applySrc01 = document.getElementById('cl_bgMain');
		var pl_src02 = document.getElementById('pl_src02');
		var pl_applySrc02 = document.getElementById('cl_bgFooter');
		var plCloseBtn = pl.getElementsByTagName('div');
		plCloseBtn = plCloseBtn[0].getElementsByTagName('img');
		plCloseBtn[0].onclick = function() {
			hidePopupLayer(whichOne);
		}
		bg_black.onclick = function() {
			hidePopupLayer(whichOne);
		}
		var loadImage = setTimeout( function() { // timeout fix to stop flickering
			pl_applySrc01.style.backgroundImage = 'url(' + pl_src01.href + ')'; 
			pl_applySrc02.style.backgroundImage = 'url(' + pl_src02.href + ')';
		},100);
		pl.style.display = 'block';
		cl.style.visibility = 'visible';
		cl.style.display = 'block';
		adjustHeightToScroll(pl); // adjust overlay position to scroll
		
	} else if (whichOne == 'emailAFriend') {
		var pl = document.getElementById('popupLayer_small');
		var cl = document.getElementById(whichOne);
		var plCloseBtn = pl.getElementsByTagName('img');
		plCloseBtn[0].onclick = function() {
			hidePopupLayer(whichOne);
		} 
		bg_black.onclick = function() {
			hidePopupLayer(whichOne);
		} 
		pl.style.display = 'block';
		plWidth = parseInt(plWidth);
		var plMargin = plWidth / 2;
		pl.style.width = plWidth + 'px';
		pl.style.marginLeft = '-' + plMargin + 'px';
		cl.style.visibility = 'visible';
		cl.style.display = 'block';
		adjustHeightToScroll(pl); // adjust overlay position to scroll
		
	} else if (whichOne == 'gallery01') {
		gallery_handleLinks();
		var pl = document.getElementById('popupLayer');
		var cl = document.getElementById(whichOne);
		var plCloseBtn = pl.getElementsByTagName('div');
		plCloseBtn = plCloseBtn[0].getElementsByTagName('img');
		plCloseBtn[0].onclick = function() {
			hidePopupLayer(whichOne);
		}
		bg_black.onclick = function() {
			hidePopupLayer(whichOne);
		}
		pl.style.display = 'block';
		cl.style.visibility = 'visible';
		cl.style.display = 'block';
		adjustHeightToScroll(pl); // adjust overlay position to scroll
	}
	if (whichOne == 'actContent_flash') {
		var pl = document.getElementById('popupLayer_small');
		var plCloseBtn = pl.getElementsByTagName('img');
		plCloseBtn[0].onclick = function() {
			hidePopupLayer(whichOne);
		} 
		bg_black.onclick = function() {
			hidePopupLayer(whichOne);
		} 
		pl.style.display = 'block';
		plWidth = parseInt(plWidth);
		var plMargin = plWidth / 2;
		pl.style.width = plWidth + 'px';
		pl.style.marginLeft = '-' + plMargin + 'px';
		loadFlash(actContentLink,actContentWidth,actContentHeight,'actContent_flashPH','','#FFFFFF','alpha','There was a problem. Please check if you have the latest Flash version.');
		adjustHeightToScroll(pl); // adjust overlay position to scroll
		
	}
	
}

function hidePopupLayer(whichOne) {
	selectFlipper('show');
	flashFlipper('show');
	var bg_black = document.getElementById('popupLayer_fullCoverBackground');
	bg_black.style.display = 'none';
	
	if (whichOne == 'changeLocation') {
		var cl = document.getElementById('changeLocation');
		var pl = document.getElementById('popupLayer');
		pl.style.display = 'none';
		cl.style.visibility = 'hidden';
		cl.style.display = 'none';
	} else if (whichOne == 'emailAFriend') {
		var cl = document.getElementById('emailAFriend');
		var pl = document.getElementById('popupLayer_small');
		pl.style.display = 'none';
		cl.style.visibility = 'hidden';
		cl.style.display = 'none';
	} else if (whichOne == 'gallery01') {
		var cl = document.getElementById('gallery01');
		var pl = document.getElementById('popupLayer');
		pl.style.display = 'none';
		cl.style.visibility = 'hidden';
		cl.style.display = 'none';
	} else if (whichOne == 'actContent_flash') {
		var cl = document.getElementById('actContent_flashPH');
		var pl = document.getElementById('popupLayer_small');
		pl.style.display = 'none';
		//cl.style.visibility = 'hidden';
		//cl.style.display = 'none';
		cl.innerHTML = '';
	}
	

}

// ------------------------ Quicktime loader for History Timeline template ------------------------

var qt_muted = false;
var qt_wasPlaying;
var qt_ff_interval = false;
var qt_rw_interval = false;

function SafChk() {
	var userAgent = navigator.userAgent;
	var uACheck = userAgent.match('AppleWebKit');
	return uACheck;
}

function qt_play() {
	var qt_playButtonImg = parent.parent.document.getElementById('qt_ctrl_play');
	if (qt_wasPlaying == false) { // if stopped, then PLAY
		if (parent.parent.document.qt001b) { // The rest
			if (SafChk() == null) { // if not Safari
				parent.parent.document.qt001b.Play();
			}
		} else { // WinIE
			parent.parent.document.qt001a.Play();
		}
		qt_wasPlaying = true;
		var fixInIE = setTimeout( function() {
			qt_playButtonImg.src = '_images/layout/qt_pause.gif';
			qt_playButtonImg.title = 'Pause';
		},100);
		if (qt_rw_interval != false) {
			clearInterval(qt_rw_interval);
		} 
		if (qt_ff_interval != false) {
			clearInterval(qt_ff_interval);
		}
	} else { // if playing, sten STOP
		if (parent.parent.document.qt001b) { // The rest
			if (SafChk() == null) { // if not Safari
				parent.parent.document.qt001b.Stop();
			}
		} else { // WinIE
			parent.parent.document.qt001a.Stop();
		}
		if (qt_rw_interval != false) {
			clearInterval(qt_rw_interval);
		}
		if (qt_ff_interval != false) {
			clearInterval(qt_ff_interval);
		}
		qt_wasPlaying = false;
		var fixInIE = setTimeout( function() {
			qt_playButtonImg.src = '_images/layout/qt_play.gif';
			qt_playButtonImg.title = 'Play';
		},100);
	}
}


function qt_ff(doThis) {
	var mov;
	if (parent.parent.document.qt001b) { // The rest
		if (SafChk() == null) { // if not Safari
			mov = 'qt001b';
		}
	} else { // WinIE
		mov = 'qt001a';
	}
	if (doThis == true) {
		qt_ff_interval = setInterval('parent.parent.document.' + mov + '.Step(10)', 50);
	} else {
		clearInterval(qt_ff_interval);
		if (qt_wasPlaying == true) {
			if (parent.parent.document.qt001b) { // The rest
				if (SafChk() == null) { // if not Safari
					parent.parent.document.qt001b.Play();
				}
			} else { // WinIE
				parent.parent.document.qt001a.Play();
			}
		}
	}
}

function qt_rw(doThis) {
	var mov;
	if (parent.parent.document.qt001b) { // The rest
		if (SafChk() == null) { // if not Safari
			mov = 'qt001b';
		}
	} else { // WinIE
		mov = 'qt001a';
	}
	if (doThis == true) {
		qt_rw_interval = setInterval('parent.parent.document.' + mov + '.Step(-10)', 50);
	} else {
		clearInterval(qt_rw_interval);
		if (qt_wasPlaying == true) {
			if (parent.parent.document.qt001b) { // The rest
				if (SafChk() == null) { // if not Safari
					parent.parent.document.qt001b.Play();
				}
			} else { // WinIE
				parent.parent.document.qt001a.Play();
			}
		}
	}
}

function qt_mute() {
	var qt_muteButtonImg = parent.parent.document.getElementById('qt_ctrl_vol');
	if (qt_muted == false) { // mute
		if (parent.parent.document.qt001b) { // The rest
			if (SafChk() == null) { // if not Safari
				parent.parent.document.qt001b.SetMute(true);
			}
		} else { // WinIE
			parent.parent.document.qt001a.SetMute(true);
		}
		var fixInIE = setTimeout( function() {
			qt_muteButtonImg.src = '_images/layout/qt_vol0.gif';
			qt_muteButtonImg.title = 'Turn on sound';
		},100);
		qt_muted = true;
	} else { // turn on sound
		if (parent.parent.document.qt001b) { // The rest
			if (SafChk() == null) { // if not Safari
				parent.parent.document.qt001b.SetMute(false);
			}
		} else { // WinIE
			parent.parent.document.qt001a.SetMute(false);
		}
		var fixInIE = setTimeout( function() {
			qt_muteButtonImg.src = '_images/layout/qt_vol1.gif';
			qt_muteButtonImg.title = 'Turn off sound';
		},100);
		qt_muted = false;
	}
}


function htl_loadQT(contentType,codeOrURL,width,height) {
	width = parseInt(width);
	height = parseInt(height);
	selectFlipper('hide');
	flashFlipper('hide');
	var bg_black = parent.parent.document.getElementById('popupLayer_fullCoverBackground');
	bg_black.style.display = 'block';
	if (bg_black.style.display == 'block' && document.all && document.fireEvent && document.createComment) { //WinIE
		bg_black.style.width = parent.parent.document.body.offsetWidth;
		bg_black.style.height = parent.parent.document.body.offsetHeight;
	}
	var pl = parent.parent.document.getElementById('popupLayer_small');
	
	var plCloseBtn = pl.getElementsByClassName('popupLayer_small_close');
	plCloseBtn = plCloseBtn[0].getElementsByTagName('img');
	
	plCloseBtn[0].onclick = function() {
		htl_unloadQT();
	}
	
	bg_black.onclick = function() {
		htl_unloadQT();
	}
	
	var plqt;
	if (!parent.parent.document.getElementById('htl_qt')) {
		plqt = parent.parent.document.createElement('div');
		var plqt_c = parent.parent.document.createTextNode(codeOrURL);
		plqt.appendChild(plqt_c);
		pl.getElementsByClassName('popupLayer_small_content')[0].appendChild(plqt);
	
		var plqt_container = pl.getElementsByClassName('popupLayer_small_content')[0].getElementsByTagName('div');
		var plqt_last = plqt_container.length - 1;
		plqt_container = plqt_container[plqt_last];
		plqt_container.id = 'htl_qt';
	}
	plqt = parent.parent.document.getElementById('htl_qt');
	
	pl.style.display = 'block';
	plqt.style.display = 'block';
	
	if (contentType == 'url') {
		// generate QT code by JS
		var qt_content = new Array();
		
		qt_content[0] = '<object id="qt001a" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" width="';
		qt_content[1] = width;
		qt_content[2] = '" height="';
		qt_content[3] = height;
		qt_content[4] = '"><param name="controller" value="false" /><param name="src" value="';
		qt_content[5] = codeOrURL;
		qt_content[6] = '" /><param name="autoplay" value="true" /><!--[if !IE]>--><object id="qt001b" type="video/quicktime" data="';
		qt_content[7] = codeOrURL;
		qt_content[8] = '" style="position: fixed;" width="';
		qt_content[9] = width;
		qt_content[10] = '" height="';
		qt_content[11] = height;
		qt_content[12] = '"><param name="autoplay" value="true" /><param name="controller" value="false" /></object><!--<![endif]--></object>';
		qt_content[13] = '<div id="qt_ctrl" style="margin: auto; width:' + width + 'px;"><a href="javascript:void(0);" onclick="qt_play();"><img id="qt_ctrl_play" src="_images/layout/qt_pause.gif" alt="" title="Pause" /></a><a href="javascript:void(0);" onkeydown="qt_rw(true);" onmousedown="qt_rw(true);" onkeyup="qt_rw();" onmouseup="qt_rw();"><img src="_images/layout/qt_rw.gif" alt="" title="Rewind" /></a><a href="javascript:void(0);" onkeydown="qt_ff(true);" onmousedown="qt_ff(true);" onkeyup="qt_ff();" onmouseup="qt_ff();"><img src="_images/layout/qt_ff.gif" alt="" title="Fast forward" /></a><a href="javascript:void(0);" onclick="qt_mute();" class="vol"><img id="qt_ctrl_vol" src="_images/layout/qt_vol1.gif" alt="" title="Turn sound off" /></a></div>';

		if (!(document.all) || (window.opera)) { // if != IE 5+
			pl.style.position = 'fixed';
			var halfwidth = width / 2;
			halfwidth = parseInt(halfwidth);
			qt_content[8] = '" style="position: fixed; margin-left: -' + halfwidth + 'px;" width="';
			qt_content[13] = '<div style="width:' + width + 'px; height:' + height + 'px;"></div>' + qt_content[13];
			//alert(qt_content[13]);
		}
		
		var userAgent = navigator.userAgent;
		var uACheck = userAgent.match('AppleWebKit');
		if (uACheck != null) { // if Safari
			qt_content[3] = height + 16;
			qt_content[11] = height + 16;
			qt_content[4] = '"><param name="controller" value="true" /><param name="src" value="';
			qt_content[8] = '" style="position: fixed;" width="';
			qt_content[12] = '"><param name="autoplay" value="true" /><param name="controller" value="true" /></object><!--<![endif]--></object>';
			qt_content[13] = '';
		}
		
		plqt.innerHTML = qt_content.join('');
		parent.parent.qt_wasPlaying = true; // if the film is not supposed to autoplay, this needs to be changed to false
		parent.parent.qt_muted = false;
	} else  {
		// inject code directly from the function call
		plqt.innerHTML = codeOrURL;
	}
	
}

function htl_unloadQT() {
	selectFlipper('show');
	flashFlipper('show');
	var bg_black = parent.parent.document.getElementById('popupLayer_fullCoverBackground');
	var pl = parent.parent.document.getElementById('popupLayer_small');
	var plqt = parent.parent.document.getElementById('htl_qt');
	pl.style.display = 'none';
	plqt.innerHTML = '';
	plqt.style.display = 'none';
	bg_black.style.display = 'none';
	qt_wasPlaying = true;
}



// ------------------------ handle active content ------------------------

function handleActiveContent(contentType) {
	// rcb_banner - activeContent_flash
	var ac_links = document.getElementsByClassName('rcb_banner');
	var thisLink;
	if (contentType == 'activeContent_flash') {
		for (i = 0; i < ac_links.length; i++) {
			if (ac_links[i].rel == contentType) {
				thisLink = ac_links[i];
				thisSrc = thisLink.getElementsByClassName('rcbe_main_end');
				thisLink.onclick = function () {
					showPopupLayer('actContent_flash',thisSrc[0].title,'294','222','350')
				}
			}
		}
	}
}


// ------------------------ group home video ------------------------

function loadGroupHomeVideo() {
	mediaSwfObject.write("main01_media_ph");
}

// ------------------------ general promo ------------------------

//start at slide -1 because it counts to 0 onload
var activePromoItem = -1;
var promoItemBAHomeSlidePlay = true;
var promoItemBAHomeInterval;

function voidAllPromoButtons() {
	var linkList = document.getElementById('main01_promo_links');
	var links = linkList.getElementsByTagName('a');
	for (i = 0; i < links.length; i++) {
		links[i].href = 'javascript:void(0);';
	}
}
var tempText ="";
var placeHolder='';
function showPromoItemBAHome(me) {
	placeHolder = document.getElementById('main01_promoPh');
	//
		if (promoSwfObject[me] != '' && flashVersion > 7){
		//if there is a SwfObject, show it
		placeHolder.innerHTML = '';
		if (promoItemBAHomeSlidePlay == false) { // if the user slideshow is stopped, tell this to the flash
			promoSwfObject[me].addVariable("userClicked", "1");	
		} else {
			promoSwfObject[me].addVariable("userClicked", "0");	
		}
		promoSwfObject[me].write("main01_promoPh");
	} else {
		//otherwise, show the image
		tempText = promoObject[me];
		//placeHolder.innerHTML = tempText;
		var pImage = setTimeout("showPromoImage()",100);
		if(promoItemBAHomeSlidePlay) {
			promoItemBAHomeInterval = setTimeout("promoItemBAHome_slideShow();", 4000);
		}
	}
	markThumbnail(me);
}

// special solution due to IE bugg
function showPromoImage(){
		placeHolder.innerHTML = '';
		placeHolder.innerHTML = tempText;
}

function promoItemBAHomeOnClick(me) {
	//stop slide show onClick
	//if(promoItemBAHomeInterval!=undefined) {
	clearTimeout(promoItemBAHomeInterval);
	//}
	promoItemBAHomeSlidePlay = false;
	showPromoItemBAHome(me) ;
}

function promoItemBAHome_slideShow(onlyOnce) {
	if (onlyOnce == 'onlyOnce') {
		promoItemBAHomeSlidePlay = false;
	}
	//next image
	activePromoItem++;

	if(activePromoItem>=promoObject.length) activePromoItem = 0;

	//check that image string isnt empty
	while(promoObject[activePromoItem]=='' && promoSwfObject[activePromoItem]==''){
		//alert("empty");
		activePromoItem++;
		if(activePromoItem>=promoObject.length) activePromoItem = 0;
	}
	showPromoItemBAHome(activePromoItem);
	if (!flashVersion > 7){
		var noFlash = document.getElementById('main01_promo_info');
		noFlash.innerHTML = 'You do not have Flash 8, please click here to install';
		noFlash.href = 'http://www.macromedia.com/software/flash/about/';
		noFlash.style.display = 'block';
	}
}

function promoItemBAHome_flashDone() {
	// flash is done, show next promo item
	if (promoItemBAHomeSlidePlay != false) {
		promoItemBAHome_slideShow();
	}
}


function markThumbnail(thisOne) {
	var promoControlArea = document.getElementById('main01_promo_links');
	var promoControlButtons = promoControlArea.getElementsByTagName('a');
	for (i = 0; i < promoControlButtons.length; i++) {
		var otherThumbs = promoControlButtons[i].getElementsByTagName('img');
		otherThumbs[1].style.visibility = 'hidden';
	}
	var selectedThumb = promoControlButtons[thisOne].getElementsByTagName('img');
	selectedThumb[1].style.visibility = 'visible';
}


function stopSlideshow() { /* is used by the Media Player flash, new as of 070829 */
	promoItemBAHomeSlidePlay = false;
	if (promoItemBAHomeInterval) {
		clearTimeout(promoItemBAHomeInterval);
	}
}

// ======================== subNav2 on product page ========================

function showSubNav2(showMe) {
	document.onclick = null;
	showMe.href = "javascript:void(0);";
	var menuLook = showMe.parentNode;	
	var moreMenuLook = menuLook.parentNode;
	closeSubNav2();
	if (menuLook.className == 'subNav02_closed') {
		menuLook.className = 'subNav02';
	} else {
		menuLook.className = 'subNav02_closed';
	}
	setTimeout("catchClick()",100);
}

function closeSubNav2(){
	var allMenuLook = document.getElementsByClassName('subNav02');
	if (allMenuLook.length > 0) {
		for (i = 0; i < allMenuLook.length; i++) {
			allMenuLook[i].className = 'subNav02_closed';
		}
	}
}

function catchClick(){
	document.onclick =	closeSubNav2;
}

// ======================== product page promo select ========================

function showProductPromo(iAm, showThis, imgAltText) {
	var imageHolder = document.getElementById('main01_contentMain_mediaBlock01_promo_ph');
	var imgStart = '<span class="imgRc"><span class="imgRc_top"><span class="imgRc_topLeft"></span><span class="imgRc_topRight"></span></span><img src="';
	var imgMiddle = '" alt="';
	var imgEnd = '" /><span class="imgRc_bottom"><span class="imgRc_bottomLeft"></span><span class="imgRc_bottomRight"></span></span></span>';
	imageHolder.innerHTML = imgStart + showThis + imgMiddle + imgAltText + imgEnd;
	var allThumbs = iAm.parentNode;
	allThumbs = allThumbs.getElementsByTagName('a');
	//alert(allThumbs.length);
	for (i = 0; i < allThumbs.length; i++) {
		var otherThumbs = allThumbs[i].getElementsByTagName('img');
		otherThumbs[1].style.visibility = 'hidden';
	}
	var thumbs = iAm.getElementsByTagName('img');
	thumbs[1].style.visibility = 'visible';
}


// ======================== help popup ========================


function openNewWindow(url,winWidth,winHeight) {
	var screenWidth = screen.availWidth / 2;
	var screenHeight = screen.availHeight / 2;
	var winLeft = winWidth / 2;
	var winTop = winHeight / 2;
	winLeft = screenWidth - winLeft;
	winTop = screenHeight - winTop;
	var ctrlString = 'left=' + winLeft + ',top=' + winTop + ',height=' + winHeight + ',width=' + winWidth + ',resizable=yes,scrollbars=yes';
	var newwindow = window.open(url,'blankPopup',ctrlString);	
}

// ======================== print popup ========================


function openPrintWindow(url,winWidth,winHeight) {
	var screenWidth = screen.availWidth / 2;
	var screenHeight = screen.availHeight / 2;
	var winLeft = winWidth / 2;
	var winTop = winHeight / 2;
	winLeft = screenWidth - winLeft;
	winTop = screenHeight - winTop;
	var ctrlString = 'left=' + winLeft + ',top=' + winTop + ',height=' + winHeight + ',width=' + winWidth + ',resizable=yes,scrollbars=yes,toolbar=yes,menubar=yes';
	var newwindow = window.open(url,'blankPopup',ctrlString);	
}

// ======================== gallery ========================

var gallery_currentImage = 0;
var gallery_thumbsHidden = 0;
var gallery_thumbsHiddenNoTab = 6;

function gallery_hideCap() {
	var gallery_thumbCap = document.getElementById('gallery_thumbCap');
	gallery_thumbCap.style.display = 'none';
}

function gallery_handleLinks() {
	var galleryLinks = document.getElementsByClassName('gallery_thumb', $('gallery_thumbs'));
	for (i = 0; i < galleryLinks.length; i++) {
		var imgAltTxt = galleryLinks[i].getElementsByClassName('gallery_thumb_alt');
		if (galleryLinks[i].href != 'javascript:void(0);') { 
		// makes sure that the links do not get overwritten, when an overlay is closed and opened repeatedly.
			imgAltTxt[0].title = galleryLinks[i].href;
			galleryLinks[i].href = 'javascript:void(0);';
		}
	}
	var gallery_noFocusLinks = galleryLinks.length - 6;
	//for (i = 6; i < galleryLinks.length; i++) {
		//galleryLinks[i].tabIndex = '-1';
	//}
	var arrowPrev = document.getElementById('gallery_imageArea_arrowPrev');
	var arrowNext = document.getElementById('gallery_imageArea_arrowNext');
	var thumbsPrev = document.getElementById('gallery_thumbsPrev');
	var thumbsNext = document.getElementById('gallery_thumbsNext');
	arrowPrev.onclick = gallery_prevImage;
	arrowNext.onclick = gallery_nextImage;
	thumbsPrev.onclick = gallery_prevThumb;
	thumbsNext.onclick = gallery_nextThumb;
	
	var imgArea = document.getElementById('gallery_imageArea');
	var fixInIE = setTimeout( function() { // IE position fix for image area
		imgArea.style.position = 'relative';
		imgArea.style.position = 'static';
	},100);
}


function gallery_loadImage(url) {
	var gallery_image_Ph = document.getElementById('gallery_image_Ph');
	var gallery_image = gallery_image_Ph.getElementsByTagName('img');
	gallery_image[0].src = url;
	}

function gallery_showImage(me) {
	var prevSelected = document.getElementsByClassName('gallery_thumb_selected');
	if (prevSelected.length > 0) {
		prevSelected[0].className = 'gallery_thumb_marker';
	}
	var thisSelected = me.getElementsByClassName('gallery_thumb_marker');
	if (thisSelected.length > 0) {
		thisSelected[0].className = 'gallery_thumb_selected';
	} else {
		thisSelected = me.getElementsByClassName('gallery_thumb_selected');
		if (thisSelected.length > 0) {
		thisSelected[0].className = 'gallery_thumb_selected';
		} else {
			thisSelected = me.getElementsByClassName('gallery_thumb_marked');
			thisSelected[0].className = 'gallery_thumb_selected';
		}
	}
	var gallery_image_Ph = document.getElementById('gallery_image_Ph');
	var gallery_image = gallery_image_Ph.getElementsByTagName('img');
	var gallery_textArea = document.getElementById('gallery_textArea');
	var gallery_linkArea = document.getElementById('subNav_gallery');
	var thumb_linkArea = document.getElementById('gallery_thumb_links');
	var gallery_links = thumb_linkArea.getElementsByClassName('gallery_thumb_links');
	var imgAltTxt = me.getElementsByClassName('gallery_thumb_alt');
	var imgInfoTxt = me.getElementsByClassName('gallery_thumb_info');
	gallery_textArea.innerHTML = imgInfoTxt[0].innerHTML;
	var loadImage = setTimeout( function() {
		gallery_loadImage(imgAltTxt[0].title);
	},100);
	gallery_image[0].alt = imgAltTxt[0].innerHTML;
	gallery_currentImage = me.id.replace('galleryThumb_', '');
	gallery_currentImage =  parseInt(gallery_currentImage);
	gallery_linkArea.innerHTML = gallery_links[gallery_currentImage].innerHTML;
	var nrOfThumbs = document.getElementById('gallery_thumbs');
	nrOfThumbs = nrOfThumbs.getElementsByTagName('a');
	nrOfThumbs = nrOfThumbs.length;
	var arrowPrev = document.getElementById('gallery_imageArea_arrowPrev');
	var arrowNext = document.getElementById('gallery_imageArea_arrowNext');
	if (gallery_currentImage == 0) {
		arrowPrev.style.visibility = 'hidden';
		arrowNext.style.visibility = 'visible';
	} else if (gallery_currentImage == (nrOfThumbs - 1)) {
		arrowPrev.style.visibility = 'visible';
		arrowNext.style.visibility = 'hidden';
	} else {
		arrowPrev.style.visibility = 'visible';
		arrowNext.style.visibility = 'visible';
	}
}

function gallery_moThumb(me) {
	if (me.className == 'gallery_thumb_marker') {
		me.className = 'gallery_thumb_marked';
	} else if (me.className != 'gallery_thumb_selected') {
		me.className = 'gallery_thumb_marker';
	}
}

function gallery_prevImage() {
	var nrOfThumbs = document.getElementById('gallery_thumbs');
	nrOfThumbs = nrOfThumbs.getElementsByTagName('a');
	nrOfThumbs = nrOfThumbs.length;
	if (gallery_currentImage < (nrOfThumbs)) {
			var arrowNext = document.getElementById('gallery_imageArea_arrowNext');
			arrowNext.style.visibility = 'visible';
	}
	if (gallery_currentImage > 0) {
		var prevSelected = document.getElementsByClassName('gallery_thumb_selected');
		if (prevSelected.length > 0) {
			prevSelected[0].className = 'gallery_thumb_marker';
		}
		var gallery_image_Ph = document.getElementById('gallery_image_Ph');
		var gallery_image = gallery_image_Ph.getElementsByTagName('img');
		var gallery_textArea = document.getElementById('gallery_textArea');
		gallery_currentImage--;
		var gallery_nextImage = document.getElementById('galleryThumb_' + gallery_currentImage);
		var gallery_linkArea = document.getElementById('subNav_gallery');
		var thumb_linkArea = document.getElementById('gallery_thumb_links');
		var gallery_links = thumb_linkArea.getElementsByClassName('gallery_thumb_links');
		var imgAltTxt = gallery_nextImage.getElementsByClassName('gallery_thumb_alt');
		var imgInfoTxt = gallery_nextImage.getElementsByClassName('gallery_thumb_info');
		gallery_textArea.innerHTML = imgInfoTxt[0].innerHTML;
		gallery_linkArea.innerHTML = gallery_links[gallery_currentImage].innerHTML;
		var loadImage = setTimeout( function() {
			gallery_loadImage(imgAltTxt[0].title);
		},100);
		gallery_image[0].alt = imgAltTxt[0].innerHTML;
		var thisSelected = gallery_nextImage.getElementsByClassName('gallery_thumb_marker');
		thisSelected[0].className = 'gallery_thumb_selected';
		if (gallery_currentImage < 1) {
			var arrowPrev = document.getElementById('gallery_imageArea_arrowPrev');
			arrowPrev.style.visibility = 'hidden';
		}
		gallery_prevThumb();
	}
}

function gallery_nextImage() {
	var nrOfThumbs = document.getElementById('gallery_thumbs');
	nrOfThumbs = nrOfThumbs.getElementsByTagName('a');
	nrOfThumbs = nrOfThumbs.length;
	if (gallery_currentImage >= 0) {
		var arrowPrev = document.getElementById('gallery_imageArea_arrowPrev');
		arrowPrev.style.visibility = 'visible';
	}
	if (gallery_currentImage < (nrOfThumbs - 1)) {
		var prevSelected = document.getElementsByClassName('gallery_thumb_selected');
		if (prevSelected.length > 0) {
			prevSelected[0].className = 'gallery_thumb_marker';
		}
		var gallery_image_Ph = document.getElementById('gallery_image_Ph');
		var gallery_image = gallery_image_Ph.getElementsByTagName('img');
		var gallery_textArea = document.getElementById('gallery_textArea');
		gallery_currentImage++;
		var gallery_nextImage = document.getElementById('galleryThumb_' + gallery_currentImage);
		var gallery_linkArea = document.getElementById('subNav_gallery');
		var thumb_linkArea = document.getElementById('gallery_thumb_links');
		var gallery_links = thumb_linkArea.getElementsByClassName('gallery_thumb_links');
		var imgAltTxt = gallery_nextImage.getElementsByClassName('gallery_thumb_alt');
		var imgInfoTxt = gallery_nextImage.getElementsByClassName('gallery_thumb_info');
		gallery_textArea.innerHTML = imgInfoTxt[0].innerHTML;
		gallery_linkArea.innerHTML = gallery_links[gallery_currentImage].innerHTML;
		var loadImage = setTimeout( function() {
			gallery_loadImage(imgAltTxt[0].title);
		},100);
		gallery_image[0].alt = imgAltTxt[0].innerHTML;
		var thisSelected = gallery_nextImage.getElementsByClassName('gallery_thumb_marker');
		thisSelected[0].className = 'gallery_thumb_selected';
		if (gallery_currentImage == (nrOfThumbs - 1)) {
			var arrowNext = document.getElementById('gallery_imageArea_arrowNext');
			arrowNext.style.visibility = 'hidden';
		}
		gallery_nextThumb();
	}
}

function gallery_prevThumb() {
	var theThumbs = document.getElementById('gallery_thumbs');
	theThumbs = theThumbs.getElementsByTagName('a');
	if (gallery_thumbsHidden > 0) {
			gallery_thumbsHidden--;
	}
	if (gallery_thumbsHidden >= 0) {
		theThumbs[gallery_thumbsHidden].style.display = 'inline';
		gallery_thumbsHiddenNoTab--;
		//theThumbs[gallery_thumbsHiddenNoTab].tabIndex = '-1';
		if (gallery_thumbsHidden > 0) {
			gallery_thumbsHidden--;
		}
	}
}

function gallery_nextThumb() {
	var theThumbs = document.getElementById('gallery_thumbs');
	theThumbs = theThumbs.getElementsByTagName('a');
	var nrOfThumbs = theThumbs.length;
	if (gallery_thumbsHidden < (nrOfThumbs - 6)) {
		theThumbs[gallery_thumbsHidden].style.display = 'none';
		//theThumbs[gallery_thumbsHiddenNoTab].tabIndex = '';
		gallery_thumbsHidden++;
		gallery_thumbsHiddenNoTab++;
	}
}


// ------------------------ onchange-select submit ------------------------

// ........................ selector module ........................

function selector_gotoSelected(showThis) {
	if(showThis != '') {
		window.location.href = showThis;	
	}
}


function selector_SelectOnchange_init() {
	var theSelect = document.getElementById("selector01");
	
	var userAgent = navigator.userAgent;
	var uACheck = userAgent.match('AppleWebKit');
	
	if (uACheck != null) {
		theSelect.onchange = selector_selectChangedSafari;
	} else {
		theSelect.changed = false;
		theSelect.onfocus = selector_selectFocused;
		theSelect.onchange = selector_selectChanged;
		theSelect.onkeydown = selector_selectKeyed;
		theSelect.onclick = selector_selectClicked;
	}
	
	return true;
}


function selector_selectChangedSafari() {
	var theSelect = document.getElementById("selector01");
	selector_gotoSelected(theSelect.value);
}


function selector_selectChanged(theElement) {
	var theSelect;
	
	if (theElement && theElement.value) {
		theSelect = theElement;
	}
	else {
		theSelect = this;
	}
	
	if (!theSelect.changed) {
		return false;
	}
	
	selector_gotoSelected(theSelect.value);
	return true;
}


function selector_selectClicked() {
	this.changed = true;
}




function selector_selectFocused() {
	this.initValue = this.value;
	
	return true;
}




function selector_selectKeyed(e) {
	var theEvent;
	var keyCodeTab = "9";
	var keyCodeEnter = "13";
	var keyCodeEsc = "27";
	
	if (e) {
		theEvent = e;
	}
	else {
		theEvent = event;
	}

	if ((theEvent.keyCode == keyCodeEnter || theEvent.keyCode == keyCodeTab) && this.value != this.initValue) {
		this.changed = true;
		selector_selectChanged(this);
	}
	else if (theEvent.keyCode == keyCodeEsc) {
		this.value = this.initValue;
	}
	else {
		this.changed = false;
	}
	
	return true;
}

// ........................ history timeline ........................

function showHtlCategory(showThis) {
	window.location.href = showThis;	
}


function htl_SelectOnchange_init() {
	var theSelect = document.getElementById("htl_select");
	
	var userAgent = navigator.userAgent;
	var uACheck = userAgent.match('AppleWebKit');
	
	if (uACheck != null) {
		theSelect.onchange = htl_selectChangedSafari;
	} else {
		theSelect.changed = false;
		theSelect.onfocus = htl_selectFocused;
		theSelect.onchange = htl_selectChanged;
		theSelect.onkeydown = htl_selectKeyed;
		theSelect.onclick = htl_selectClicked;
	}
	
	return true;
}


function htl_selectChangedSafari() {
	var theSelect = document.getElementById("htl_select");
	showHtlCategory(theSelect.value);
}


function htl_selectChanged(theElement) {
	var theSelect;
	
	if (theElement && theElement.value) {
		theSelect = theElement;
	}
	else {
		theSelect = this;
	}
	
	if (!theSelect.changed) {
		return false;
	}
	
	showHtlCategory(theSelect.value);
	return true;
}


function htl_selectClicked() {
	this.changed = true;
}




function htl_selectFocused() {
	this.initValue = this.value;
	
	return true;
}




function htl_selectKeyed(e) {
	var theEvent;
	var keyCodeTab = "9";
	var keyCodeEnter = "13";
	var keyCodeEsc = "27";
	
	if (e) {
		theEvent = e;
	}
	else {
		theEvent = event;
	}

	if ((theEvent.keyCode == keyCodeEnter || theEvent.keyCode == keyCodeTab) && this.value != this.initValue) {
		this.changed = true;
		htl_selectChanged(this);
	}
	else if (theEvent.keyCode == keyCodeEsc) {
		this.value = this.initValue;
	}
	else {
		this.changed = false;
	}
	
	return true;
}

// ........................ list ........................


function listSelectOnchange_init() {
	var theSelect = document.getElementById("list_mainSelector");
	
	var userAgent = navigator.userAgent;
	var uACheck = userAgent.match('AppleWebKit');
	
	if (uACheck != null) {
		theSelect.onchange = selectChangedSafari;
	} else {
		theSelect.changed = false;
		theSelect.onfocus = selectFocused;
		theSelect.onchange = selectChanged;
		theSelect.onkeydown = selectKeyed;
		theSelect.onclick = selectClicked;
	}
	
	return true;
}


function selectChangedSafari() {
	var theSelect = document.getElementById("list_mainSelector");
	showListCategory(theSelect.value);
}

function selectChanged(theElement) {
	var theSelect;
	
	if (theElement && theElement.value) {
		theSelect = theElement;
	}
	else {
		theSelect = this;
	}
	
	if (!theSelect.changed) {
		return false;
	}
	
	showListCategory(theSelect.value);
	return true;
}




function selectClicked() {
	this.changed = true;
}




function selectFocused() {
	this.initValue = this.value;
	
	return true;
}




function selectKeyed(e) {
	var theEvent;
	var keyCodeTab = "9";
	var keyCodeEnter = "13";
	var keyCodeEsc = "27";
	
	if (e) {
		theEvent = e;
	}
	else {
		theEvent = event;
	}

	if ((theEvent.keyCode == keyCodeEnter || theEvent.keyCode == keyCodeTab) && this.value != this.initValue) {
		this.changed = true;
		selectChanged(this);
	}
	else if (theEvent.keyCode == keyCodeEsc) {
		this.value = this.initValue;
	}
	else {
		this.changed = false;
	}
	
	return true;
}

// ------------------------ list ------------------------

var listAnswer_prev = false;
var listCategory_prev = false;
var printSingleHref = false;
var printAllHref = false;
var printPopup_start = "javascript:openPrintWindow('";
var printPopup_end = "','800','600')";

function showListCategory(categoryId) {
	if (listCategory_prev != false) {
		listCategory_prev.style.display = 'none';
	}
	category = categoryId.replace('sel_list_', '');
	if (category != 'def') {
		category = document.getElementById('listCat_' + category);
		category.style.display = 'block';
		listCategory_prev = category;
		var printLink = document.getElementById('main01_contentMain_print');
		printLink = printLink.getElementsByTagName('a');
		// popup
		printLink[0].href = printPopup_start + printSingleHref + printPopup_end;
		// popup
		printLink[1].href = printPopup_start + printAllHref + '&cat=' + categoryId + printPopup_end;
		//alert(printLink[1].href);
	}
}

function showListAnswer(showMe) {
	var me = showMe.parentNode;
	var itemParentlist = showMe.parentNode.parentNode;
	var catNr = itemParentlist.id;
	var catSelValue = catNr.replace('listCat_', '');
	catSelValue = 'sel_list_' + catSelValue;
	itemParentlist = itemParentlist.getElementsByTagName('li');
	for (i = 0; i < itemParentlist.length; i++) {
		if (itemParentlist[i] == me) {
			var printLink = document.getElementById('main01_contentMain_print');
			printLink = printLink.getElementsByTagName('a');
			// popup
			printLink[0].href = printPopup_start + printSingleHref + '&cat=' + catNr + '&answer=' + i + printPopup_end;
			// popup
			printLink[1].href = printPopup_start + printAllHref + '&cat=' + catSelValue + printPopup_end;
		}
	}
	
	if (listAnswer_prev != false) {
		var hideQuestion = listAnswer_prev.getElementsByClassName('list_answer');
		var hideMyMarker = listAnswer_prev.getElementsByClassName('list_answerMarker');
		hideQuestion[0].style.display = 'none';
		hideMyMarker[0].style.display = 'none';
	}
	showMe = showMe.parentNode;
	var showQuestion = showMe.getElementsByClassName('list_answer');
	var showMyMarker = showMe.getElementsByClassName('list_answerMarker');
	showQuestion[0].style.display = 'block';
	showMyMarker[0].style.display = 'block';
	listAnswer_prev = showMe;
}



// ------------------------ list printing ------------------------


function checkPrintMode() {
	var printLink = document.getElementById('main01_contentMain_print');
	if (printLink != null) {
		printLink = printLink.getElementsByTagName('a');
		printSingleHref = printLink[0].href;
		printAllHref = printLink[1].href;
		printLink[0].href = printPopup_start + printSingleHref + printPopup_end;
		printLink[1].href = printPopup_start + printAllHref + printPopup_end;
	}
	if (retrieveQueryStringFromURL('printSingle') != '') {
		if (retrieveQueryStringFromURL('cat') != '') {
			var showAnswer = document.getElementById('list_currentPanelPrint');
			var getCat = retrieveQueryStringFromURL('cat');
			var getAnswer = retrieveQueryStringFromURL('answer');
			var findCat = document.getElementById(getCat);
			var findAnswer = findCat.getElementsByTagName('li');
			findAnswer = findAnswer[getAnswer].getElementsByClassName('list_answer_main');
			showAnswer.innerHTML = findAnswer[0].innerHTML + '<span class="list_answer_bottom"></span>';
		//	alert(' - printa vald fråga');
			showAnswer.style.display = 'block';
			var mainList = document.getElementById('main01_list');
			mainList.style.display = 'none';
		} else {
		//	alert(' - printa utan fråga');
			var listAnswers = document.getElementsByClassName('list_answer_wrap01');
			for (i = 0; i < listAnswers.length; i++) {
				var me = listAnswers[i];
				me.style.display = 'none';
			}	
		}
	} else if (retrieveQueryStringFromURL('printAll') != '') {
		if (retrieveQueryStringFromURL('cat') != '') {
			var getCat = retrieveQueryStringFromURL('cat');
			var findCat = document.getElementById(getCat);
			getCat = getCat.replace('sel_list_', '');
			var allCat = document.getElementsByClassName('list_category');
			for (i = 0; i < allCat.length; i++) {
				var me = allCat[i];
				if (i != getCat) {
					me.style.display = 'none';
				}
			}
		} else {
			// print all categories
		}

	}
}


// ------------------------ login form ------------------------

function handleLoginDisabling(element) {
	var loginElement = document.getElementsByClassName(element);
	if (loginElement.length > 0) {
		for (i = 0; i < loginElement.length; i++) {
			loginElement[i].disabled = 'disabled';
		}
	}
}

function login_enableForm(formAction) {
	var login_eyelid = document.getElementById('login_eyelid01');
	var login_column = document.getElementsByClassName('login_column3');
	var login_inputs = login_column[0].getElementsByTagName('input');
	var login_button = login_column[0].getElementsByTagName('button');
	var login_form = document.getElementById('DUMMY0001');
	// var loginForm = document.getElementsByTagName('form');
	// loginForm = loginForm[0];
	login_form.action = formAction;
	login_eyelid.style.display = 'none';
	for (i = 0; i < login_inputs.length; i++) {
		login_inputs[i].disabled = '';
		login_inputs[i].value = '';
	}
	for (i = 0; i < login_button.length; i++) {
		login_button[i].disabled = '';
	}
	login_inputs[0].focus();
}

// ------------------------ sitemap ------------------------

function expListOpen(me) {
	var listBelow = me.parentNode.parentNode.getElementsByTagName('ul');
	//alert(listBelow.length);
	if (me.className != 'expButton_open') {
		me.className = 'expButton_open';
		listBelow[0].style.display = 'none';
	} else {
		me.className = 'expButton_close';
		listBelow[0].style.display = 'block';
	}
}

// ------------------------ image viewer (for VTNA inventory item)------------------------ 

var imageViewer_thumbURL;

function imageViewer_init() {
	var imgArea = document.getElementById('imageViewer_imageArea');
	var imgThumbArea = document.getElementById('imageViewer_thumbs');
	var imgThumbs = imgThumbArea.getElementsByClassName('imageViewer_thumb');
	
	if (imgThumbs.length > 1) {
		for (i = 0; i < imgThumbs.length; i++) { // add click events on thumbnails
			var thumb = imgThumbs[i];
			thumb.href = 'javascript:void(0);';
			thumb.onclick = imageViewer_loadImage;
			thumb.style.visibility = 'visible';
		}
	} else { // if there is only one thumb, hide caption (and skip event assign)
		var thumbCap = document.getElementById('imageViewer_caption');
		thumbCap.style.display = 'none';
	}
	
	imageViewer_thumbURL = imgThumbs[0].getElementsByTagName('img')[0].src; // extract the first thumbnail's image URL
	imgArea.innerHTML = '<img src="' + imageViewer_thumbURL + '" alt="" style="visibility: hidden;">'; // create main image
	var currentImage = imgArea.getElementsByTagName('img')[0]; // make object out of the main image
	if (currentImage.offsetWidth > 276) { // if image width exceeds view area, resize it
		currentImage.style.width = '276px';	
	}
	currentImage.style.visibility = 'visible';
	
	imgThumbs[0].style.display = 'none'; // hides current thumbnail
	
	
}

function imageViewer_loadImage() {
	imageViewer_thumbURL = this.getElementsByTagName('img')[0].src;
	var imgArea = document.getElementById('imageViewer_imageArea');
	imgArea.innerHTML = '<img src="' + imageViewer_thumbURL + '" alt="" style="visibility: hidden;">';
	var currentImage = imgArea.getElementsByTagName('img')[0];
	if (currentImage.offsetWidth > 276) {
		currentImage.style.width = '276px';	
	}
	currentImage.style.visibility = 'visible';
	
	var imgThumbs = this.parentNode.getElementsByClassName('imageViewer_thumb');
	for (i = 0; i < imgThumbs.length; i++) { // resets the display of the thumbnails
		var thumb = imgThumbs[i];
		thumb.style.display = 'block';
	}
	this.style.display = 'none'; // hides current thumbnail
}



// ======================== initial actions (before window.onload) ========================

doThisRightAway = function() {
}






// ======================== TEST ========================

