/*
	@date: 2002/04/24
	@version: 1.0
	@description: Site Office menu scripts
	@testing: IE 5,6,Mac 5; Netscape 6.1,6.2,Mac 6.2
	@updates:
*/

// -- these vars set the basic menu properties --
var MenusAtTop = false;   // false if menus are down the left (i.e. fixed leftpos, variable toppos)
var MenusTopPos = 70; 	 // only used if MenusAtTop = true; fixed top position
var MenusLeftPos = 112; 	 // only used if MenusAtTop = false; fixed left position
var MenuLeftOffset = 650; // added to dynamic left pos
var MenusTopOffset = 0; // only used if MenusAtTop = false; added to dynamic top pos
var anchorMenus = false;
var MenusRightPos = 744;
var arrTdHilight = new Array();
// -------------

var False = false;
var True = true;

function findClientWidth() {
    if (document.getElementById) {
        return document.body.clientWidth;
    } // else is NN4 && W3C
    return innerWidth;
}

function NoneLink() {
	return
}

function AdjustSiteLeftPos() {
	var browser_width = findClientWidth()
	if(browser_width > 750) {
		var adj = browser_width - 750
		adj = adj / 2
		MenuLeftOffset+=adj
		MenuLeftOffset-=5	//adjust for body margin
	}
}

// browser version class
function BrowserVer(){

	this.isIE = false;
	this.isNN = false;
	this.isMac = false;
	this.browseVer = 0;
	this.platform = '';

	if( document.all )
		this.isIE = true;
	else
		this.isNN = true;

	if( navigator.appVersion.search(/Mac/) > -1 ) this.isMac = true;

	if( this.isIE ){
		// get version number for IE
		var tmpArr = navigator.userAgent.split(';');

		if( document.getElementById ){
			this.browseVer = tmpArr[tmpArr.length - 2].replace(/MSIE/i, '');
			this.platform = tmpArr[tmpArr.length - 1].replace(/\)/,'');
		}
		else{
			var tmpArr = navigator.userAgent.split(';');

			this.browseVer = tmpArr[1].replace(/MSIE/i, '');
			this.platform = tmpArr[2].replace(/\)/,'');

		}

		this.platform = this.platform.replace(/windows /i, 'Win');

	}
	else{
		// get version number for NN
		var tmpArr = navigator.userAgent.split('/');
		this.browseVer = tmpArr[tmpArr.length - 1];

		tmpArr = navigator.userAgent.split(';');
		this.platform = tmpArr[2];

	}

}

var bv = new BrowserVer();

var max = 5;
var browserVer = parseInt(navigator.appVersion);
/*
if( document.all )
	var isIE = true;
else
	var isIE = false;
*/
isIE = bv.isIE;

if( document.getElementById )
	var isW3C = true;
else
	var isW3C = false;

var gMenuTop = 40;

var i = 1, j = 0;
//var cumulativeX = 0;
var currX = 0, currY = 0;
/*
var strStyle = 'position: absolute; z-index: 40; visibility: hidden; ';
var tmpStr;
var tmpStr2;
var tmpStr3;

var strURL = '';
var strCmd = '';
var lstLevIDs;
var arrLinkType;
var arrLevel;
var arrURL;
var arrID;
var flgDoc = '';*/
var dontShow = new Array(max + 1);
// var strDivName;
// var visibleMenus = new Array(); // array of references to visible menu divs (not level 2s)
var cancelled = new Array(); // array of booleans used to decide to hide sub menu div on td out
var posLeft = 0;
var loaded;
var mnuactive
var booMenu
// menu properties
var mnuBgColor = '#FFDE9E; '

var zLineRef;

var currentVisibleDiv = new Array();

booMenu = false;
loaded = false;

for(i = 1; i <= 5; i++)
	currentVisibleDiv[i] = null;

for(i = 0; i <= 5; i++)
	cancelled[i] = false;

function bodyOnLoad(){
	var lstTmp;

	if(document.getElementById) lstTmp = document.getElementsByTagName('body');

	AdjustSiteLeftPos()

	loaded = true;
}

function bodyMouseOver(){
	
	
	
	gMenuTop = 40;
	if(document.all) {
		if((loaded)&&(mnuactive)){
			hideAllMenus();
		}
	}
	else {
		if((!booMenu)&&(loaded)&&(mnuactive)){
			hideAllMenus();
		}
	}

}


function getItem(itemID){

	if(document.getElementById)
		return (document.getElementById(itemID));
	else
		return (document.all(itemID));

}

function showLev2Over(parentID, thisID, objThis){

	gMenuTop = 90;

	showMnuLevel(3, objThis, thisID);

}

function showLev2Out(parentID, thisID, objThis){


}

// This function adds an event listener to every menu div in NS6 so stopPropagation can be called
// preventing the div from hiding on the body mouse over.
function mouseMenuShow(tmpLevel, obj, parentID){
	
	if(loaded)
		showMnuLevel(tmpLevel, obj, parentID);
}

function divMenuMouseOver(e){
	var idTmp = '';
	var levTmp;
	
	if(document.getElementById){ // cancel event propagation in ie 5 and ns 6
		if(document.all){
			window.event.cancelBubble = true;
			idTmp = e.id;
			idTmp = idTmp.replace('level', '');
			levTmp = parseInt(idTmp);
			cancelled[levTmp] = true;
		}
		else {
			booMenu = true;
			e.stopPropagation = true ;
		}
	}
	else if(document.all) {
		e.style.width = e.children[0].offsetWidth;
		window.event.cancelBubble = true;
	}
}

function divMenuMouseOut(e) {
	booMenu = false;
	
	
}

function tdMouseOver(thisObj, divChild, CascadeLeft) {
	var x = 0;
	var idTmp;
	var idNum;
	var divTmp;
	var lstTmp;
	var posTop;
//	var strCmd;
	
	
	mnuactive = true;

	if(document.getElementById){ // ie5 and ns 6
		idTmp = thisObj.parentNode.parentNode.parentNode.parentNode.id;
		idTmp = idTmp.replace('level', '');
		idNum = parseInt(idTmp);

		thisObj.className = 'menu' + idNum + 'over';
		thisObj.firstChild.className = 'menu' + idNum + 'over';

		lstTmp = thisObj.parentNode.getElementsByTagName("td");
		lstTmp[0].className = 'menu' + idNum + 'over';
		lstTmp[1].className = 'menu' + idNum + 'over';
		lstTmp[2].className = 'menu' + idNum + 'over';

		// hide currently visible sub level if there is one
		for(i = (idNum + 1); i <= max; i++){
			if(currentVisibleDiv[i]){
				currentVisibleDiv[i].style.zIndex = '-10';
				currentVisibleDiv[i].style.visibility = 'hidden';
				currentVisibleDiv[i].style.display = 'none';
				currentVisibleDiv[i] = null;
			}
		}

		if(divChild){
			// show sub menu
			divTmp = thisObj.parentNode.parentNode.parentNode.parentNode;
			if( !document.all ) {
				posTop = thisObj.parentNode.offsetTop; // netscape 6 needs to be like this
				posTop += 157;
			}
			else {
				posTop = divTmp.offsetTop + thisObj.parentNode.offsetTop; // netscape 6.1 needs to be like this
			}

			lstTmp = thisObj.parentNode.getElementsByTagName("td");
			posLeft = divTmp.offsetLeft + divTmp.offsetWidth;
			document.getElementById(divChild).style.visibility = 'visible';
			document.getElementById(divChild).style.display = '';

			//put back into code
			//if( (posLeft + document.getElementById(divChild).offsetWidth) > screen.width )
			//	posLeft = screen.width - (document.getElementById(divChild).offsetWidth + 10);
			//end

			if( CascadeLeft ){
			//if( (posLeft + document.getElementById(divChild).offsetWidth) > screen.width ) {
				posLeft = divTmp.offsetLeft - document.getElementById(divChild).offsetWidth;
			}

			posTop--;
			posLeft--;
		
			document.getElementById(divChild).style.left = posLeft;
			document.getElementById(divChild).style.top = posTop;
			document.getElementById(divChild).style.zIndex = '40';

			currentVisibleDiv[idNum + 1] = document.getElementById(divChild);
		}

	} else if(document.all){ // ie 4
		// thisObj.parentElement.children[0].style.backgroundColor = '#6F80A0';
		// thisObj.parentElement.children[1].style.backgroundColor = '#6F80A0';
		// thisObj.parentElement.children[2].style.backgroundColor = '#6F80A0';

		idTmp = thisObj.parentElement.parentElement.parentElement.parentElement.id;
		idTmp = idTmp.replace('level', '');
		idNum = parseInt(idTmp);
		for(i = (idNum + 1); i <= max; i++){
			if(currentVisibleDiv[i]){
				currentVisibleDiv[i].style.zIndex = '-10';
				currentVisibleDiv[i].style.visibility = 'hidden';
				currentVisibleDiv[i].style.display = 'none';
				currentVisibleDiv[i] = null;
			}
		}
		divTmp = thisObj.parentElement.parentElement.parentElement.parentElement;
		posLeft = divTmp.offsetLeft+thisObj.parentElement.parentElement.parentElement.offsetWidth;
		posTop = divTmp.offsetTop+thisObj.parentElement.offsetTop;

		if(divChild){
			document.all(divChild).style.visibility = 'visible';
			document.all(divChild).style.zIndex = '40';
			document.all(divChild).style.display = '';
			document.all(divChild).style.top = posTop;
			document.all(divChild).style.left = posLeft;
			currentVisibleDiv[idNum + 1] = document.all(divChild);
		}

		for(x = 0; x < thisObj.children.length; x++){
			thisObj.children[x].style.color = 'yellow';
		}
	}
}

function tdMouseOut(thisObj, divChild, flgCloseMenu, flgHeadingMenu){
	var x = 0;
	var idTmp;
	var idNum;
	var lstTmp;

	


	if( document.getElementById ){
		if( flgCloseMenu ){
			thisObj.className = 'MenuCloseOut';
			thisObj.firstChild.className = 'menucloseoutA';
		
		}
		else if( flgHeadingMenu ){
			thisObj.className = 'MenuHeadingOut';
			thisObj.firstChild.className = 'MenuHeadingOutA';
			
		}
		else{
			// thisObj.firstChild.style.color = 'black';
			idTmp = thisObj.parentNode.parentNode.parentNode.parentNode.id;
			idTmp = idTmp.replace('level', '');
			idNum = parseInt(idTmp);

			thisObj.className = 'menu' + idNum + 'out';
			thisObj.firstChild.className = 'menu' + idNum + 'out';

			lstTmp = thisObj.parentNode.getElementsByTagName("td");
			lstTmp[0].className = 'menu' + idNum + 'out';
			lstTmp[1].className = 'menu' + idNum + 'out';
			lstTmp[2].className = 'menu' + idNum + 'out';
/*
			thisObj.className = 'menu' + idNum + 'hl';
			thisObj.firstChild.className = 'menu' + idNum + 'hl';

			lstTmp = thisObj.parentNode.getElementsByTagName("td");
			lstTmp[0].className = 'menu' + idNum + 'hl';
			lstTmp[1].className = 'menu' + idNum + 'hl';
			lstTmp[2].className = 'menu' + idNum + 'hl';

*/
			// reset colours
		/*
			if( arrTdHilight && arrTdHilight.length >= tmpLevel ){
				arrTdHilight[tmpLevel].className = 'menu1out';
				arrTdHilight[tmpLevel].children[0].className = 'menu1out';
			}

			arrTdHilight[tmpLevel] = objThis;

			arrTdHilight[tmpLevel].className = 'menu1hl';
			arrTdHilight[tmpLevel].children[0].className = 'menu1hl';
		*/

			//lstTmp[1].firstChild.className = 'menu' + idNum + 'out';
			
		}
	}
	else if( document.all ){
		// thisObj.parentElement.children[0].style.backgroundColor = '#6F80A0';
		// thisObj.parentElement.children[1].style.backgroundColor = '#6F80A0';
		// thisObj.parentElement.children[2].style.backgroundColor = '#6F80A0';
		for(x = 0; x < thisObj.children.length; x++){
			thisObj.children[x].style.color = 'white';
		}
		
	}
}

function tdOnClick(objThis){
	var tmp;

	if(isW3C){
		document.location.href = objThis.firstChild.href;
	}else if(isIE){
		if(objThis.children.length > 0 && (tmp = objThis.children[0].href))
			top.document.location.href = tmp;
	}
}

function stubFunc(){

}

function animateMenu(divRef, topPos){

	var lastPos = (0 - divRef.offsetHeight) + 10;

	divRef.style.top = lastPos;

	while( divRef.offsetTop < topPos ){
		setTimeout('stubFunc()', 100)

		lastPos++;
		divRef.style.top = lastPos;

	}


}

function showMenuLine( objDiv, objTD ){
	var objImg = document.getElementById("imgZline");
	var i;

	if( objTD && objDiv ){


		i = bv.isMac ? objTD.parentElement.offsetTop - 4 : objTD.offsetTop;

		if( i > 0 ){
			var objZLine = document.getElementById("divZline");
			objImg.style.height = i;
		}
		else{
			var objZLine = document.getElementById("divHorLine");
		}


		objZLine.style.top = MenusTopPos;
		if( bv.isMac )
			objZLine.style.left = (document.all.tabMain.offsetLeft + 597);
		else
			objZLine.style.left = (document.all.tabMain.offsetLeft + 581);

		if( objZLine ){
			objZLine.style.display = '';
		}
	}
}

function showMnuLevel(tmpLevel, objThis, parentID, home, is2ndMenu){
	var tmpTop;
	var tmp;
	var tmpObj;
	var obj;
	var leftPos = objThis.x;
	var p;
	var objStyle;



	if(!document.getElementById) isW3C=false;

	if(loaded){
		hideAllMenus();

		if( document.getElementById ){
//alert("HH1 " + max + " " + tmpLevel + " " + parentID + " " + 'level' + tmpLevel + '_' + parentID);
			if(document.getElementById('level' + tmpLevel + '_' + parentID)){
//alert("HH2 " + max + " " + parentID + " ");
				var lstElems = document.getElementsByTagName('body');
				leftPos = objThis.offsetLeft;

				if( MenusAtTop )
					tmpTop = MenusTopPos;

				if(tmpLevel <= max && !dontShow[tmpLevel]) {

					leftPos = parseInt(leftPos) + MenuLeftOffset;

					if(parentID != 1){

						currentVisibleDiv[tmpLevel] = document.getElementById('level' + tmpLevel + '_' + parentID);
						currentVisibleDiv[tmpLevel].style.display="";

						// reset colours
						/*
						if( arrTdHilight && arrTdHilight.length >= tmpLevel ){
							arrTdHilight[tmpLevel].className = 'menu1out';
							arrTdHilight[tmpLevel].children[0].className = 'menu1out';
						}

						arrTdHilight[tmpLevel] = objThis;

						arrTdHilight[tmpLevel].className = 'menu1hl';
						arrTdHilight[tmpLevel].children[0].className = 'menu1hl';
						*/
						if( MenusAtTop ){
							//menus at top of page
							if( objThis.tagName.toLowerCase() == 'img' ){
								leftPos = objThis.parentNode.parentNode.offsetLeft;
								p = objThis.parentNode;
								var i = 0;

								for(i = 0; i < 5; i++ ){
									leftPos += p.offsetLeft;
									p = p.parentNode;
								}

								leftPos += MenuLeftOffset;
							}

							if( document.getElementById('MainTable') )
								leftPos += document.getElementById('MainTable').offsetLeft;

							//if( bv.isNN ) leftPos -= 35;
							if( bv.isNN ) leftPos -= 95

							var tooWide = document.body.offsetWidth - currentVisibleDiv[tmpLevel].offsetWidth;
							tooWide -= 20;
							if( leftPos > tooWide )
								leftPos = tooWide;

						} else {
							//menus down left of page
							
							tmpTop = MenusTopPos + objThis.offsetTop +60;
						}

						if( anchorMenus ){
							if( bv.isMac )
								leftPos = (document.all.tabMain.offsetLeft + 597) - currentVisibleDiv[tmpLevel].offsetWidth;
							else
								leftPos = (document.all.tabMain.offsetLeft + 590) - currentVisibleDiv[tmpLevel].offsetWidth;

							tmpTop = MenusTopPos;
						}

						if( !MenusAtTop ) leftPos = MenusLeftPos;

						// showMenuLine( currentVisibleDiv[tmpLevel], objThis );

						currentVisibleDiv[tmpLevel].style.left = leftPos+15;
						currentVisibleDiv[tmpLevel].style.visibility = 'visible';
						currentVisibleDiv[tmpLevel].style.zIndex = 40;
						currentVisibleDiv[tmpLevel].style.top = tmpTop;

					}else{
						document.getElementById('level' + tmpLevel + '_' + parentID).style.left = leftPos+15;
						document.getElementById('level' + tmpLevel + '_' + parentID).style.visibility = 'visible';
						document.getElementById('level' + tmpLevel + '_' + parentID).style.zIndex = 40;
						document.getElementById('level' + tmpLevel + '_' + parentID).style.top = tmpTop;
					}
				}
			}
		}
	}
}



function swapDivImg(strNewImg, idTmp){
		if( idTmp == 18 ) // solutions
			alert('strNewImg: ' + strNewImg + ', id: ' + idTmp);
}

function hideAllMenus(){
	for(i = 1; i <= max; hideMnuLevel(i), i++);
	mnuactive = false;
}

function hideMnuLevel(tmpLevel){
//	var strCmd = '';

	if(max >= tmpLevel && loaded){
		if( currentVisibleDiv[tmpLevel] ){
			currentVisibleDiv[tmpLevel].style.zIndex = '-10';
			//hideElt(currentVisibleDiv[tmpLevel]);
			currentVisibleDiv[tmpLevel].style.visibility = 'hidden';
			currentVisibleDiv[tmpLevel].style.display= 'none';
			currentVisibleDiv[tmpLevel] = null;
		}
	}
}

function hideMenu(level){
	for(var i = level; i <= max; hideMnuLevel(i), i++);
}

var infowindow


function bigpiclink(picID, w, h, newWin){
	BigPicLink(picID, w, h, newWin);
}

function BigPicLink(picID, w, h, newWin){
	if( newWin ){
		
		ShowPopUpWindow("BigPic",basehref+"bigpic.cfm?pic_id="+picID,w,h,"no","no","yes");
	}
	else{
		
		document.location.href = 'popup_pic.cfm?pic_id=' + picID;
	}
}

function ShowPopUpWindow(Name, File, w, h, Status, Resize, Scroll){
	var t=0, l = 0, winstring = "";

	if(infowindow){
		if(!infowindow.closed) infowindow.close()
	}

	l = ((screen.width / 2) - (w / 2))
	t = ((screen.height / 2) - (h / 2))

	winstring = "width=" + w + ", height=" + h + ",left=" + l + ",top=" + t +  ",status=" + Status + ",resizable=" + Resize + ",scrollbars=" + Scroll;

	infowindow = window.open(File,Name,winstring);
	infowindow.focus();

	return;
}

function convertedpopup(id, w, h){
	ShowPopUpWindow("ShowDoc",basehref + "showdoc.cfm/id." + id, w, h, "no","no","yes");

	return;
}

function ShowBigPic(f,w,h) {
	ShowPopUpWindow("BigPic",basehref + "bigpic.cfm/pic_id."+f,w,h,"no","no","yes");

	return;
//	ShowPopUpWindow("BigPic","bigpic.cfm?bigpic="+f,w,h,"no","no","yes");
}

function ShowPrintWindow(f){
	ShowPopUpWindow("BigPic",basehref + "showprint.cfm?file="+f,600,500,"yes","yes","yes");
	return;
}

function openCertDetails() {

	var referer = "";
	var siteSealImage;

	if (self.sampleReferer)
		referer = self.sampleReferer;
	else
		referer = window.location;
/*
	if (document.images) {
		siteSealImage = document.images["thawteSiteSeal"]
		siteSealImage.src="https://www.thawte.com/cgi/server/seal_generator.exe?referer=" + referer
	}
*/
	certDetailsUrlWithReferer = "https://www.thawte.com/cgi/server/certdetails.exe?referer=" + referer;
	thewindow = window.open(certDetailsUrlWithReferer,
		"newWindow", config="height=500,width=516,toolbar=no,menubar=no," +
		"scrollbars=yes,resizable=no,location=no,directories=no,status=yes");

//	thewindow = window.open('https://www.thawte.com/cgi/server/certdetails.exe?code=GBPREM9', 'anew', config='height=400,width=450,toolbar=no,menubar=no,scrollbars=yes,resizable=no,location=no,directories=no,status=yes');
}

function ShowProspectingForm(id) {
	document.location.href = basehref + 'default.cfm/lang.eng/loadfile.ProspectingForm.cfm/formid.' + id;
}