//          Copyright HYDE COMMERCIAL SERVICES 2003
//                         www.hydeservices.com
//                     PROPRIATARY SOFTWARE
//NO REPRODUCTION OR USE WITHOUT SIGNED WRITTEN CONSENT
//Author:  Andrew F. Hyde
//Date: 11/20/2001
//File: xlogic.js
//Function: mechanical overlay for content menu system

//Note search for "adjustment" for color changes
var NS4 = (document.layers) ? 1 : 0
var IE4 = (document.all&&(!document.getElementById)) ? 1 : 0
var IE5 = (document.getElementById && document.all) ? 1 : 0
// If we are IE4 then we are going to add some functionality to make it act
// more like IE5... this should help simplify code, although it may complicate browser
// detection for other scripts.
if (IE4){
	document.getElementById = IE4getElementById
}
var NS6 = (document.getElementById && (!document.all)) ? 1 : 0
	
// Global Variables

var XX_Tab = 0	
var XX_Normal = 1
var XX_Double = 2
var XX_Image = 3
var XX_Text = 4
var XX_preloadList = new Array()
var XX_currentMenu = false
var XX_showRequestId, XX_showRequestName, XX_showRequestParent
var XX_globalHideRequests = new Array()
var XX_currentEvent = 0
var XX_loadComplete = false
var XX_prematureRequest = false
var XX_activeMenus = new Array()
var XX_geckoMenuFix = new Array()
var leftPos = 0
var topPos = 0
var lastElementName
var sImagePath // Path that preloadImage, and other functions will use to find the image.  Changes on the fly.
var menuTimer = 200 //number of msec delay before showing/killing menus. 
if(!XX_absolutePath){
	var XX_absolutePath = ""
}

// Preload Menu "Arrows"
sImagePath = XX_absolutePath + "images/"
var XX_menuArrow = preloadImage ("arrow.gif")
var XX_menuArrow_ro = preloadImage ("arrowon.gif")

var XX_arrowbig = preloadImage ("arrowbig.gif")
var XX_arrowbigon = preloadImage ("arrowbigon.gif")

// ************************************
// * Misc. functions
// ************************************

//Ths is only here for compatibility.  this function does nothing
function preloadSideMenuImages(){
	var nothing
	// Do nothing
}

//Ths is only here for compatibility.  this function does nothing
function writesideMenus(){
	var nothing
	// Do nothing
}

//Set image element to preloaded image
function setImage (menuId, imageId){
	var tmpImageName = 'img' + menuId + imageId
		
	//  NN4
	if (NS4){
		document.layers[menuId].document[tmpImageName].src = eval(menuId + imageId + '.src')
	}		
		
	// IE5+, and browsers based on the Gecko core (like NS6, and Mozilla).
	if (IE4 || IE5 || NS6){
		document.getElementById(tmpImageName).src = eval(menuId + imageId + '.src')
	}
}

// Return a preloaded image	
function preloadImage(tsImageName){
	tempImage = new Image()
	tempImage.src = sImagePath + tsImageName
	return tempImage
}
// This function is used to give IE4 a "getElementById()" method.
function IE4getElementById(tsElementId){
	return eval("document.all." + tsElementId)
}

// Check if we have native javascript support for push() and pop() methods in arrays, 
// if not, make them.  This will probably be the case for IE4 and IE5.
if (!XX_globalHideRequests.push){
	Array.prototype.push = function(v){
		this[this.length] = v
	} 	
}
	
if (!XX_globalHideRequests.pop){
	Array.prototype.pop = function() {
		var r = this[this.length - 1]
		this.length--
		return r
	}
}
	
if (!XX_globalHideRequests.shift){
	Array.prototype.shift = function() {
		var i = 0
		var l = this.length - 1
		if (i==l){
			var r = this[l]
			this.length--
			return r
		}else{
			var r = this[i]
			for (c=i; c<l; c++){
				this[c]=this[c+1]
			}
			this.length--
			return r
		}
	}
}

// And create some more array methods
// This one will let you pop an item out of the middle of the array
Array.prototype.extract = function(i) {
	var l = this.length - 1
	if (i==l){
		var r = this[l]
		this.length--
		return r
	}else{
		var r = this[i]
		for (c=i; c<l; c++){
			this[c]=this[c+1]
		}
		this.length--
		return r
	}
}
	
// This one will find an item in the array, and return it's position, +1
// If nothing is found, 0 is returnd
Array.prototype.find = function(search,increment,startpos) {
	if(!increment){
		increment=1
	}
	if(!startpos){
		startpos=0
	}
	for (var i=startpos; i<this.length; i+=increment){
		if (this[i] == search){
			return i+1
		}
	}
	return 0
}

// This one will find an item in the array, and return it's position, +1
// If nothing is found, 0 is returnd
Array.prototype.findMin = function() {
	var curMin
	var curPos = 0
	if(this.length){
		curMin = this[0]
		curPos = 1
		for(var i=0;i<this.length;i++){
			if(curMin<this[i]){
				curMin = this[i]
				curPos = (i+1)
			}
		}
	}
	return curPos
}

// This one will push a "," delimited string onto an array
Array.prototype.pushList = function(v) {
	v+=',' // add a comma to the end
	var z = 0
	var i =0
	do	{
		i = v.indexOf(',',z)
		this.push(v.slice(z,i))
		z = i+1
	} while (z < v.length)
}


// Load all menus that need to be created
function writeMenus(){
	// nothing
}


// *****************************
// * Menu generation code
// *****************************

function initMenus(){

	do{
		XX_makeMenu(XX_preloadList.shift())	
	}while(XX_preloadList.length)
	
	XX_loadComplete = true
	
	if(XX_prematureRequest){
		setTimeout('XX_showMenu("'+XX_prematureRequest+'",false)',10)
	}
}

// Build the start of the menu
function XX_makeMenu(menuName, showMenuNow, menuParent){
	
	if (NS4) {
		var menuObjectArray = eval('XX_menu_' + menuName)
		var menuId = menuName
		var menuHeight = 0
		document.layers[menuId] = new Layer(menuObjectArray[0][2], window)
		var newMenuObject = document.layers[menuId]
		if(menuParent){
			if(menuParent.XX_image){
			topPos = menuParent.XX_image.y
			topPos += menuParent.pageY
			leftPos = menuParent.XX_image.x
			leftPos += menuParent.pageX		
			}	
		}else{
			getAnchorPos(menuObjectArray[0][3])
		}
		if (menuObjectArray[0][6]){
			topPos = getAnchorTop(menuObjectArray[0][6])
		}
		newMenuObject.XX_parent = menuParent
		newMenuObject.XX_hideRequests = new Array()
		if(menuParent){
			newMenuObject.XX_master = menuParent.XX_masterParent
			menuParent.XX_activeChild = newMenuObject
		}
		newMenuObject.visibility = 'hide'
		newMenuObject.top = topPos + menuObjectArray[0][4]
		newMenuObject.left = leftPos + menuObjectArray[0][5]
		//newMenuObject.bgColor = 'red'
		for(var i=1;menuObjectArray.length>i;i++){
			if(menuObjectArray[i][0]==XX_Tab){
				menuHeight+=menuObjectArray[i][4]
			}
			if(menuObjectArray[i][0]==XX_Normal){
				menuHeight+=17
				if(i==1){
					menuHeight++
				}
			}
			if(menuObjectArray[i][0]==XX_Double){
				menuHeight+=31
				if(i==1){
					menuHeight++
				}
			}
			if(menuObjectArray[i][0]==XX_Image){
				menuHeight+=menuObjectArray[i][4]
				if(i==1){
					menuHeight++
				}
				if(i==menuObjectArray.length-1){
					menuHeight++
				}
			}
			if(menuObjectArray[i][0]==XX_Text){
				menuHeight+=250
			}
		}
		newMenuObject.document.open()
		newMenuObject.document.write('<img src="'+XX_absolutePath+'images/sp_m.gif" width='+menuObjectArray[0][2]+' height='+menuHeight+'>')
		newMenuObject.document.close()
		var menuItemPosition = 0
		var menuObjectDiv, itemHtml, itemId, imageId
		var menuObjectImage, htmlString, tempVar, tempVar2, tempVar3
		for(i=1;menuObjectArray.length>i;i++){
			itemId = menuId + '_' + i
			imageId = 'img_' + itemId
			document.layers[itemId] = new Layer(400, newMenuObject)
			menuObjectDiv = document.layers[itemId]
			if((menuObjectArray[i][1].substr(0,7).toLowerCase()!="http://")&&(menuObjectArray[i][1].substr(0,8).toLowerCase()!="https://")&&(menuObjectArray[i][1].substr(0,6).toLowerCase()!="ftp://")){
				menuObjectArray[i][1] = XX_absolutePath + menuObjectArray[i][1]
			}
			menuObjectDiv.XX_href = menuObjectArray[i][1]
			menuObjectDiv.XX_masterParent = newMenuObject
			menuObjectDiv.XX_itemType = menuObjectArray[i][0]
			menuObjectDiv.visibility = 'inherit'
			menuObjectDiv.zIndex = 3
			//menuObjectDiv.captureEvents(Event.MOUSEOVER|Event.MOUSEOUT);
			if (menuObjectArray[i][1]){
				menuObjectDiv.captureEvents(Event.MOUSEUP);
				menuObjectDiv.onmouseup = XX_gotoHref		
			}
			menuObjectDiv.left = 0
			menuObjectDiv.top = menuItemPosition
						
			if(menuObjectArray[i][0]==XX_Tab){
					menuObjectDiv.onmouseover = XX_tabOver
					menuObjectDiv.onmouseout = XX_tabOut
					menuObjectDiv.XX_child = menuObjectArray[i][5];
					menuObjectDiv.document.open()
					menuObjectDiv.document.write(XX_makeImageTag(imageId, menuObjectArray[i][2], menuObjectArray[i][3], menuObjectArray[i][4]));
					menuObjectDiv.document.close()
					menuItemPosition+=menuObjectArray[i][4]
					menuObjectDiv.XX_image = menuObjectDiv.document.images[imageId]
					newMenuObject.XX_defaultTab = menuObjectDiv
			}
					
			if(menuObjectArray[i][0]==XX_Normal){
					menuObjectDiv.XX_child = menuObjectArray[i][3]
					menuObjectDiv.onmouseover = XX_normalOver
					menuObjectDiv.onmouseout = XX_normalOut
					menuObjectDiv.bgColor = (menuObjectArray[i][4])?menuObjectArray[i][4]:'#C0FFFF';
					menuObjectDiv.XX_bgColor = (menuObjectArray[i][4])?menuObjectArray[i][4]:'#C0FFFF';
					menuObjectArray[i][5] = menuObjectArray[i][5]?menuObjectArray[i][5]:10;
					htmlString = '<table cellpadding=0 cellspacing=0 border=0 width='+menuObjectArray[0][2]+'>';
					if(i==1){
						htmlString+=XX_makeBorderTag()
						menuItemPosition++
					}
					tempVar = (menuObjectArray[i][3])?1:2
					tempVar2 = (menuObjectArray[i][3])?menuObjectArray[0][2]-16:menuObjectArray[0][2]-2
					tempVar3 = menuObjectArray[i][1]
					if(!menuObjectArray[i][1]){
						tempVar3 = '#'
					}
										
					htmlString+='<tr>'+XX_makeSideBorderTag(16)
					htmlString+='<td width='+tempVar2+' colspan="'+tempVar+'"><a href="'+tempVar3+'" style="padding: 0px 5px 0px '+menuObjectArray[i][5] + 'px; font-family: tahoma,verdana,arial,helvetica; font-size: 9.5px; font-weight: bold; color: #000000; text-decoration:none;">'
					htmlString+='<nobr>' + menuObjectArray[i][2] + '</nobr>'
					htmlString+='</a></td>'

					if(menuObjectArray[i][3]){
						htmlString+='<td><a href="'+tempVar3+'">' + XX_makeImageTag(imageId, "images/arrow.gif", 14, 16) + '</a></td>'
						menuObjectDiv.XX_imageId = imageId
					}
					
					htmlString+=XX_makeSideBorderTag(16)+ '</tr>'
					
					menuItemPosition+=16
					
					if(i==menuObjectArray.length-1){
						htmlString+=XX_makeBorderTag()
					}else{
						htmlString+=XX_makeSeparatorTag()
					}
					menuItemPosition++
					htmlString+='</table>'
				
					menuObjectDiv.document.open()
					menuObjectDiv.document.write(htmlString)
					menuObjectDiv.document.close()
					menuObjectDiv.XX_image = menuObjectDiv.document.images[imageId]

			}
			
			if(menuObjectArray[i][0]==XX_Double){
					menuObjectDiv.XX_child = menuObjectArray[i][3]
					menuObjectDiv.onmouseover = XX_normalOver
					menuObjectDiv.onmouseout = XX_normalOut
					menuObjectDiv.bgColor = (menuObjectArray[i][4])?menuObjectArray[i][4]:'#ffffff';
					menuObjectDiv.XX_bgColor = (menuObjectArray[i][4])?menuObjectArray[i][4]:'#ffffff';
					menuObjectArray[i][5] = menuObjectArray[i][5]?menuObjectArray[i][5]:10;
					htmlString = '<table cellpadding=0 cellspacing=0 border=0 width='+menuObjectArray[0][2]+'>';
					if(i==1){
						htmlString+=XX_makeBorderTag()
						menuItemPosition++
					}
					tempVar = (menuObjectArray[i][3])?1:2
					tempVar2 = (menuObjectArray[i][3])?menuObjectArray[0][2]-16:menuObjectArray[0][2]-2
					tempVar3 = menuObjectArray[i][1]
					if(!menuObjectArray[i][1]){
						tempVar3 = '#'
					}
										
					htmlString+='<tr>'+XX_makeSideBorderTag(30)
					htmlString+='<td width='+tempVar2+' colspan="'+tempVar+'"><a href="'+tempVar3+'" style="padding: 0px 5px 0px '+menuObjectArray[i][5] + 'px; font-family: tahoma,verdana,arial,helvetica; font-size: 9.5px; font-weight: bold; color: #FFFFFF; text-decoration:none;">'
					htmlString+='<nobr>' + menuObjectArray[i][2] + '</nobr>'
					htmlString+='</a></td>'

					if(menuObjectArray[i][3]){
						htmlString+='<td><a href="'+tempVar3+'">' + XX_makeImageTag(imageId, "images/arrowbig.gif", 14, 30) + '</a></td>'
						menuObjectDiv.XX_imageId = imageId
					}
					
					htmlString+=XX_makeSideBorderTag(30)+ '</tr>'
					
					menuItemPosition+=30
					
					if(i==menuObjectArray.length-1){
						htmlString+=XX_makeBorderTag()
					}else{
						htmlString+=XX_makeSeparatorTag()
					}
					menuItemPosition++
					htmlString+='</table>'
				
					menuObjectDiv.document.open()
					menuObjectDiv.document.write(htmlString)
					menuObjectDiv.document.close()
					menuObjectDiv.XX_image = menuObjectDiv.document.images[imageId]

			}
			
			if(menuObjectArray[i][0]==XX_Image){
					menuObjectDiv.onmouseover = XX_blockOver
					menuObjectDiv.onmouseout = XX_blockOut
					menuObjectDiv.bgColor = '#ffffff';
					menuObjectDiv.XX_bgColor = '#ffffff';
					
					htmlString = '<table cellpadding=0 cellspacing=0 border=0 width='+menuObjectArray[0][2]+'>';
					if(i==1){
						htmlString+=XX_makeBorderTag()
						menuItemPosition++
					}
					
					tempVar3 = menuObjectArray[i][1]
					if(!menuObjectArray[i][1]){
						tempVar3 = '#'
					}
															
					htmlString+='<tr>'+XX_makeSideBorderTag(menuObjectArray[i][4])
					htmlString+='<td colspan=2 width=100%><a href="'+tempVar3+'">' + XX_makeImageTag('', menuObjectArray[i][2], menuObjectArray[i][3], menuObjectArray[i][4]) + '</a></td>'
					htmlString+=XX_makeSideBorderTag(menuObjectArray[i][4])+ '</tr>'
					
					menuItemPosition+=menuObjectArray[i][4]
					
					if(i==menuObjectArray.length-1){
						htmlString+=XX_makeBorderTag()
						menuItemPosition++
					}
					
					htmlString+='</table>'
				
					menuObjectDiv.document.open()
					menuObjectDiv.document.write(htmlString)
					menuObjectDiv.document.close()
			}
			
			if(menuObjectArray[i][0]==XX_Text){
					menuObjectDiv.onmouseover = XX_blockOver;
					menuObjectDiv.onmouseout = XX_blockOut;
					menuObjectDiv.bgColor = '#ffffff';
					
					htmlString = '<table cellpadding=0 cellspacing=0 border=0 width='+menuObjectArray[0][2]+'>';
					if(i==1){
						htmlString+=XX_makeBorderTag()
						menuItemPosition++
					}
					
					tempVar2 = menuObjectArray[0][2]-2
					
					tempVar3 = menuObjectArray[i][1]
					if(!menuObjectArray[i][1]){
						tempVar3 = '#'
					}
														
					htmlString+='<tr>'+XX_makeSideBorderTag(16)
					htmlString+='<td width='+tempVar2+' colspan=2><a href="'+tempVar3+'" style="padding: 0px 5px 0px 5px; font-family: tahoma,verdana,arial,helvetica; font-size: 11px; font-weight: bold; color: #849CB5; text-decoration:none;">'
					htmlString+='<nobr>' + menuObjectArray[i][2] + '</nobr>'
					htmlString+='</a></td>'			
					htmlString+=XX_makeSideBorderTag(16)+ '</tr>'
					
					menuItemPosition+=16
					
					htmlString+='<tr>'+XX_makeSideBorderTag(16)
					htmlString+='<td width='+tempVar2+' colspan=2><a href="'+tempVar3+'" style="padding: 0px 5px 0px 5px; font-family: tahoma,verdana,arial,helvetica; font-size: 9.5px; font-weight: bold; color:  #849CB5; text-decoration:none;">'
					htmlString+=menuObjectArray[i][3]
					htmlString+='</a></td>'			
					htmlString+=XX_makeSideBorderTag(16)+ '</tr>'
					
					menuItemPosition+=16
					
					if(i==menuObjectArray.length-1){
						htmlString+=XX_makeBorderTag()
						menuItemPosition++
					}
					htmlString+='</table>'
				
					menuObjectDiv.document.open()
					menuObjectDiv.document.write(htmlString)
					menuObjectDiv.document.close()
			}
			
		}
		newMenuObject.visibility = showMenuNow?'show':'hide'
	}
	
	
	if (IE4||IE5) {
		var menuObjectArray = eval('XX_menu_' + menuName)
		var menuId = menuName
		document.body.insertAdjacentHTML('BeforeEnd','<div id=' + menuId + ' style="position: absolute; visibility: hidden;"></div>')
		var newMenuObject = document.getElementById(menuId)
		getAnchorPos(menuObjectArray[0][3])
		if (menuObjectArray[0][6]){
			topPos = getAnchorTop(menuObjectArray[0][6])
		}
		newMenuObject.XX_parent = menuParent
		newMenuObject.XX_hideRequests = new Array()
		if(menuParent){
			newMenuObject.XX_master = menuParent.XX_masterParent
			menuParent.XX_activeChild = newMenuObject
		}
		newMenuObject.style.cursor = "hand"
		newMenuObject.style.visibility = showMenuNow?'visible':'hidden'
		newMenuObject.style.left = leftPos + menuObjectArray[0][5] + 'px'
		newMenuObject.style.top = topPos + menuObjectArray[0][4] + 'px'
		newMenuObject.style.width = menuObjectArray[0][2]
		
		var menuItemPosition = 0
		var menuObjectDiv, itemHtml, itemId, imageId
		var menuObjectImage, htmlString, tempVar
		for(var i=1;menuObjectArray.length>i;i++){
			itemId = menuId + '_' + i
			imageId = 'img_' + itemId
			newMenuObject.insertAdjacentHTML('BeforeEnd','<div id=' + itemId + ' style="position: absolute;"></div>')
			menuObjectDiv = document.getElementById(itemId)
			if((menuObjectArray[i][1].substr(0,7).toLowerCase()!="http://")&&(menuObjectArray[i][1].substr(0,8).toLowerCase()!="https://")&&(menuObjectArray[i][1].substr(0,6).toLowerCase()!="ftp://")){
				menuObjectDiv.XX_href = XX_absolutePath + menuObjectArray[i][1]
			}else{
				menuObjectDiv.XX_href = menuObjectArray[i][1]
			}
			menuObjectDiv.XX_masterParent = newMenuObject
			menuObjectDiv.XX_itemType = menuObjectArray[i][0]
			//menuObjectDiv.id = itemId
			if (menuObjectArray[i][1]){
				menuObjectDiv.onclick = XX_gotoHref	
			}
			//menuObjectDiv.style.position = 'absolute'
			menuObjectDiv.style.left = '0px'
			menuObjectDiv.style.top = menuItemPosition + 'px'
			menuObjectDiv.style.width = menuObjectArray[0][2]
						
			if(menuObjectArray[i][0]==XX_Tab){
					with(menuObjectDiv){
						onmouseover = XX_tabOver
						onmouseout = XX_tabOut
					}
					menuObjectDiv.XX_child = menuObjectArray[i][5]
					menuObjectDiv.insertAdjacentHTML('BeforeEnd',XX_makeImageTag(imageId, menuObjectArray[i][2], menuObjectArray[i][3], menuObjectArray[i][4]))
					menuItemPosition+=menuObjectArray[i][4]
					newMenuObject.XX_defaultTab = menuObjectDiv
			}
			
			if(menuObjectArray[i][0]==XX_Normal){
					menuObjectDiv.XX_child = menuObjectArray[i][3]		
					menuObjectDiv.onmouseover = XX_normalOver
					menuObjectDiv.onmouseout = XX_normalOut
					//Adjustment - menu background color
					menuObjectDiv.style.backgroundColor = (menuObjectArray[i][4])?menuObjectArray[i][4]:'#2968C5'
					menuObjectDiv.XX_bgColor = (menuObjectArray[i][4])?menuObjectArray[i][4]:'#2968C5'
					menuObjectArray[i][5] = menuObjectArray[i][5]?menuObjectArray[i][5]:10
					
					htmlString = '<table cellpadding=0 cellspacing=0 border=0 width='+menuObjectArray[0][2]+'>'

					if(i==1){
						htmlString+=XX_makeBorderTag()
						menuItemPosition++
					}
					
					tempVar = (menuObjectArray[i][3])?1:2
										
					htmlString+='<tr>'+XX_makeSideBorderTag(16)
					//Adjustment - menu Font color
					htmlString+='<td width=100% colspan="'+tempVar+'" style="font-family: tahoma,verdana,arial,helvetica; font-size: 9.5px; font-weight: bold; color:  #01034B; padding-left: '+menuObjectArray[i][5] + 'px; padding-right 5px;">'
					htmlString+='<nobr>' + menuObjectArray[i][2] + '</nobr>'
					htmlString+='</td>'

					if(menuObjectArray[i][3]){
						htmlString+='<td>' + XX_makeImageTag(imageId, "images/arrow.gif", 14, 16) + '</td>'
						menuObjectDiv.XX_imageId = imageId
					}
					
					htmlString+=XX_makeSideBorderTag(16)+ '</tr>'
					
					menuItemPosition+=16
					
					if(i==menuObjectArray.length-1){
						htmlString+=XX_makeBorderTag()
					}else{
						htmlString+=XX_makeSeparatorTag()
					}
					menuItemPosition++
					htmlString+='</table>'
				
					menuObjectDiv.insertAdjacentHTML('BeforeEnd',htmlString)
					
					menuObjectDiv.XX_image = document.getElementById(imageId)
			
			}
			
			if(menuObjectArray[i][0]==XX_Double){
					menuObjectDiv.XX_child = menuObjectArray[i][3]		
					menuObjectDiv.onmouseover = XX_normalOver
					menuObjectDiv.onmouseout = XX_normalOut
					menuObjectDiv.style.backgroundColor = (menuObjectArray[i][4])?menuObjectArray[i][4]:'#C0FFFF'
					menuObjectDiv.XX_bgColor = (menuObjectArray[i][4])?menuObjectArray[i][4]:'#C0FFFF'
					menuObjectArray[i][5] = menuObjectArray[i][5]?menuObjectArray[i][5]:10
					
					htmlString = '<table cellpadding=0 cellspacing=0 border=0 width='+menuObjectArray[0][2]+'>'

					if(i==1){
						htmlString+=XX_makeBorderTag()
						menuItemPosition++
					}
					
					tempVar = (menuObjectArray[i][3])?1:2
										
					htmlString+='<tr>'+XX_makeSideBorderTag(30)
					htmlString+='<td width=100% colspan="'+tempVar+'" style="font-family: tahoma,verdana,arial,helvetica; font-size: 9.5px; font-weight: bold; color: #000000; padding-left: '+menuObjectArray[i][5] + 'px; padding-right 5px;">'
					htmlString+='<nobr>' + menuObjectArray[i][2] + '</nobr>'
					htmlString+='</td>'

					if(menuObjectArray[i][3]){
						htmlString+='<td>' + XX_makeImageTag(imageId, "images/arrowbig.gif", 14, 30) + '</td>'
						menuObjectDiv.XX_imageId = imageId
					}
					
					htmlString+=XX_makeSideBorderTag(30)+ '</tr>'
					
					menuItemPosition+=30
					
					if(i==menuObjectArray.length-1){
						htmlString+=XX_makeBorderTag()
					}else{
						htmlString+=XX_makeSeparatorTag()
					}
					menuItemPosition++
					htmlString+='</table>'
				
					menuObjectDiv.insertAdjacentHTML('BeforeEnd',htmlString)
					
					menuObjectDiv.XX_image = document.getElementById(imageId)
			
			}
			
			if(menuObjectArray[i][0]==XX_Image){	
					menuObjectDiv.onmouseover = XX_blockOver
					menuObjectDiv.onmouseout = XX_blockOut
					menuObjectDiv.style.backgroundColor = '#ffffff'
										
					htmlString = '<table cellpadding=0 cellspacing=0 border=0 width='+menuObjectArray[0][2]+'>'

					if(i==1){
						htmlString+=XX_makeBorderTag()
						menuItemPosition++
					}
					
					htmlString+='<tr>'+XX_makeSideBorderTag(menuObjectArray[i][4])
					
					htmlString+='<td width=100% colspan=2>' + XX_makeImageTag('', menuObjectArray[i][2], menuObjectArray[i][3], menuObjectArray[i][4]) + '</td>'

					htmlString+=XX_makeSideBorderTag(menuObjectArray[i][4])+ '</tr>'
					
					menuItemPosition+=menuObjectArray[i][4]
					
					if(i==menuObjectArray.length-1){
						htmlString+=XX_makeBorderTag()
						menuItemPosition++
					}

					htmlString+='</table>'
				
					menuObjectDiv.insertAdjacentHTML('BeforeEnd',htmlString)
			
			}
			
			if(menuObjectArray[i][0]==XX_Text){		
					// Adjustment -  text for image with text page & backcolor
					menuObjectDiv.onmouseover = XX_blockOver
					menuObjectDiv.onmouseout = XX_blockOut
					menuObjectDiv.style.backgroundColor = '#AD9C73'
					menuObjectDiv.XX_bgColor = '#AD9C73'
						
					htmlString = '<table cellpadding=0 cellspacing=0 border=0 width='+menuObjectArray[0][2]+'>'

					if(i==1){
						htmlString+=XX_makeBorderTag()
						menuItemPosition++
					}
					
					htmlString+='<tr>'+XX_makeSideBorderTag(16)
					htmlString+='<td width=100% colspan=2 style="font-family: tahoma,verdana,arial,helvetica; font-size: 11px; font-weight: bold; color: #000000; padding-left: 5px; padding-right 5px;">'
					htmlString+='<nobr>' + menuObjectArray[i][2] + '</nobr>'
					htmlString+='</td>'
					htmlString+=XX_makeSideBorderTag(16)+ '</tr>'
					
					menuItemPosition+=16
					
					htmlString+='<tr>'+XX_makeSideBorderTag(16)
					htmlString+='<td width=100% colspan=2 style="font-family: tahoma,verdana,arial,helvetica; font-size: 9.5px; font-weight: bold; color: #000000; padding-left: 5px; padding-right 5px;">'
					htmlString+=menuObjectArray[i][3]
					htmlString+='</td>'
					htmlString+=XX_makeSideBorderTag(16)+ '</tr>'
					
					if(i==menuObjectArray.length-1){
						htmlString+=XX_makeBorderTag()
						menuItemPosition++
					}
					htmlString+='</table>'
				
					menuObjectDiv.insertAdjacentHTML('BeforeEnd',htmlString)
			}
		}
	}
	
	// Menu for IE5+, and browsers based on the Gecko core (like NS6, and Mozilla).
	if (NS6){

		var menuObjectArray = eval('XX_menu_' + menuName)
		var menuId = menuName
		var newMenuObject = document.createElement("div")
		//alert(menuObjectArray[0][3])
		getAnchorPos(menuObjectArray[0][3])
		if (menuObjectArray[0][6]){
			topPos = getAnchorTop(menuObjectArray[0][6])
		}
		//alert('gotposition')
		newMenuObject.id = menuId
		newMenuObject.XX_parent = menuParent
		newMenuObject.XX_hideRequests = new Array()
		if(menuParent){
			newMenuObject.XX_master = menuParent.XX_masterParent
			menuParent.XX_activeChild = newMenuObject
		}
		newMenuObject.XX_left = leftPos + menuObjectArray[0][5] + 'px'
		newMenuObject.XX_top = topPos + menuObjectArray[0][4] + 'px'
		newMenuObject.style.position = 'absolute'
		if (IE5){
			newMenuObject.style.visibility = showMenuNow?'visible':'hidden'
		}
		if (NS6){
			newMenuObject.style.visibility = 'hidden'
		}
		newMenuObject.style.cursor = NS6 ? "pointer" : "hand"
		newMenuObject.style.left = leftPos + menuObjectArray[0][5] + 'px'
		newMenuObject.style.top = topPos + menuObjectArray[0][4] + 'px'
		newMenuObject.style.width = menuObjectArray[0][2]
		newMenuObject.XX_items = new Array()
		document.body.appendChild(newMenuObject)
		
		var menuItemPosition = 0
		var menuObjectDiv, itemHtml, itemId, imageId, XX_tempVar1
		var menuObjectTable, menuObjectRow, menuObjectCell, menuObjectTBody, menuObjectImage
		for(var i=1;menuObjectArray.length>i;i++){
			itemId = menuId + '_' + i
			imageId = 'img_' + itemId
			menuObjectDiv = document.createElement("div")
			if((menuObjectArray[i][1].substr(0,7).toLowerCase()!="http://")&&(menuObjectArray[i][1].substr(0,8).toLowerCase()!="http://")&&(menuObjectArray[i][1].substr(0,6).toLowerCase()!="ftp://")){
				menuObjectDiv.XX_href = XX_absolutePath + menuObjectArray[i][1]
			}else{
				menuObjectDiv.XX_href = menuObjectArray[i][1]
			}
			menuObjectDiv.id = itemId
			if (menuObjectArray[i][1]){
				menuObjectDiv.onclick = XX_gotoHref	
			}
			menuObjectDiv.XX_masterParent = newMenuObject
			menuObjectDiv.XX_itemType = menuObjectArray[i][0]
			menuObjectDiv.style.position = 'absolute'
			menuObjectDiv.style.left = '0px'
			menuObjectDiv.style.top = menuItemPosition + 'px'
			menuObjectDiv.style.width = menuObjectArray[0][2]
			menuObjectDiv.style.visibility = 'inherit'
			newMenuObject.XX_items.push(menuObjectDiv)
						
			if(menuObjectArray[i][0]==XX_Tab){
					menuObjectDiv.onmouseover = XX_tabOver
					menuObjectDiv.onmouseout = XX_tabOut
					menuObjectDiv.XX_child = menuObjectArray[i][5]
					menuObjectDiv.appendChild(XX_makeImage(imageId, menuObjectArray[i][2], menuObjectArray[i][3], menuObjectArray[i][4]))
					menuItemPosition+=menuObjectArray[i][4]
					newMenuObject.XX_defaultTab = menuObjectDiv
			}
			
			if(menuObjectArray[i][0]==XX_Normal){
					menuObjectDiv.XX_child = menuObjectArray[i][3]				
					menuObjectDiv.onmouseover = XX_normalOver
					menuObjectDiv.onmouseout = XX_normalOut
					menuObjectDiv.style.backgroundColor = (menuObjectArray[i][4])?menuObjectArray[i][4]:'#436D95'
					menuObjectDiv.XX_bgColor = (menuObjectArray[i][4])?menuObjectArray[i][4]:'#436D95'
										
					menuObjectTable = document.createElement("table")
					menuObjectDiv.appendChild(menuObjectTable)
					menuObjectTable.cellSpacing = 0
					menuObjectTable.cellPadding = 0
					if(NS6){
						menuObjectTable.style.backgroundColor = (menuObjectArray[i][4])?menuObjectArray[i][4]:'#436D95'
					}
					menuObjectTable.border = 0
					menuObjectTable.width = menuObjectArray[0][2]
					
					menuObjectDiv.XX_bgObject = menuObjectTable
										
					menuObjectTBody = document.createElement("tbody") 
					menuObjectTable.appendChild(menuObjectTBody)
					
					if(i==1){
						menuObjectTBody.appendChild(XX_makeBorder())
						menuItemPosition++
					}
					
					tempVar2 = (menuObjectArray[i][3])?menuObjectArray[0][2]-16:menuObjectArray[0][2]-2
					
					menuObjectRow = document.createElement("tr")
					menuObjectTBody.appendChild(menuObjectRow)
					
					menuObjectRow.appendChild(XX_makeSideBorder(16))
					menuObjectArray[i][5] = menuObjectArray[i][5]?menuObjectArray[i][5]:10
					menuObjectCell = document.createElement("td")
					menuObjectCell.style.textAlign = 'left'
					menuObjectCell.style.fontFamily = 'tahoma,verdana,arial,helvetica'
					menuObjectCell.style.fontSize = '9.5px'
					menuObjectCell.style.fontWeight = 'bold'
					menuObjectCell.style.color = '#436D95'
					menuObjectCell.style.paddingLeft = menuObjectArray[i][5] + 'px'
					menuObjectCell.style.paddingRight = '5px'
					menuObjectCell.width = tempVar2
					menuObjectCell.colSpan = (menuObjectArray[i][3])?1:2
					menuObjectCell.innerHTML = '<nobr>' + menuObjectArray[i][2] + '</nobr>'
					menuObjectRow.appendChild(menuObjectCell)
					
					if(menuObjectArray[i][3]){
						menuObjectCell = document.createElement("td")
						menuObjectCell.style.textAlign = 'right'
						menuObjectImage = XX_makeImage(imageId, 'images/arrow.gif', 14, 16)
						menuObjectCell.appendChild(menuObjectImage)
						menuObjectRow.appendChild(menuObjectCell)
						menuObjectDiv.XX_image = menuObjectImage
					}
					
					menuObjectRow.appendChild(XX_makeSideBorder(16))
					
					if(i==menuObjectArray.length-1){
						menuObjectTBody.appendChild(XX_makeBorder())
					}else{
						menuObjectTBody.appendChild(XX_makeSeparator())
					}
					menuItemPosition++
										
					menuItemPosition+=16
			}
			
			if(menuObjectArray[i][0]==XX_Double){
					menuObjectDiv.XX_child = menuObjectArray[i][3]				
					menuObjectDiv.onmouseover = XX_normalOver
					menuObjectDiv.onmouseout = XX_normalOut
					menuObjectDiv.style.backgroundColor = (menuObjectArray[i][4])?menuObjectArray[i][4]:'#ffffff'
					menuObjectDiv.XX_bgColor = (menuObjectArray[i][4])?menuObjectArray[i][4]:'#ffffff'
										
					menuObjectTable = document.createElement("table")
					menuObjectTable.cellSpacing = 0
					menuObjectTable.cellPadding = 0
					if(NS6){
						menuObjectTable.style.backgroundColor = (menuObjectArray[i][4])?menuObjectArray[i][4]:'#ffffff'
					}
					menuObjectTable.border = 0
					menuObjectTable.width = menuObjectArray[0][2]
					
					menuObjectDiv.XX_bgObject = menuObjectTable
										
					menuObjectTBody = document.createElement("tbody") 
					menuObjectTable.appendChild(menuObjectTBody)
					
					if(i==1){
						menuObjectTBody.appendChild(XX_makeBorder())
						menuItemPosition++
					}
					
					menuObjectRow = document.createElement("tr")
					menuObjectTBody.appendChild(menuObjectRow)
					
					menuObjectRow.appendChild(XX_makeSideBorder(30))
					menuObjectArray[i][5] = menuObjectArray[i][5]?menuObjectArray[i][5]:10
					menuObjectCell = document.createElement("td")
					menuObjectCell.style.textAlign = 'left'
					menuObjectCell.style.fontFamily = 'tahoma,verdana,arial,helvetica'
					menuObjectCell.style.fontSize = '9.5px'
					menuObjectCell.style.fontWeight = 'bold'
					menuObjectCell.style.color = '#FFFFFF'
					menuObjectCell.style.paddingLeft = menuObjectArray[i][5] + 'px'
					menuObjectCell.style.paddingRight = '5px'
					menuObjectCell.colSpan = (menuObjectArray[i][3])?1:2
					menuObjectCell.innerHTML = '<nobr>' + menuObjectArray[i][2] + '</nobr>'
					menuObjectRow.appendChild(menuObjectCell)
					
					if(menuObjectArray[i][3]){
						menuObjectCell = document.createElement("td")
						menuObjectCell.style.textAlign = 'right'
						menuObjectImage = XX_makeImage(imageId, 'images/arrowbig.gif', 14, 30)
						menuObjectCell.appendChild(menuObjectImage)
						menuObjectRow.appendChild(menuObjectCell)
						menuObjectDiv.XX_image = menuObjectImage
					}
					
					menuObjectRow.appendChild(XX_makeSideBorder(30))
					
					if(i==menuObjectArray.length-1){
						menuObjectTBody.appendChild(XX_makeBorder())
					}else{
						menuObjectTBody.appendChild(XX_makeSeparator())
					}
					menuItemPosition++
					
					menuObjectDiv.appendChild(menuObjectTable)
					
					menuItemPosition+=30
					
			}
	
			if(menuObjectArray[i][0]==XX_Image){				
					menuObjectDiv.onmouseover = XX_blockOver
					menuObjectDiv.onmouseout = XX_blockOut
					menuObjectDiv.style.backgroundColor = '#ffffff'
										
					menuObjectTable = document.createElement("table")
					menuObjectTable.cellSpacing = 0
					menuObjectTable.cellPadding = 0
					if(NS6){
						menuObjectTable.style.backgroundColor = '#ffffff'
					}
					menuObjectTable.border = 0
					menuObjectTable.width = menuObjectArray[0][2]
					
					menuObjectDiv.XX_bgObject = menuObjectTable
										
					menuObjectTBody = document.createElement("tbody") 
					menuObjectTable.appendChild(menuObjectTBody)
					
					if(i==1){
						menuObjectTBody.appendChild(XX_makeBorder())
						menuItemPosition++
					}
					
					menuObjectRow = document.createElement("tr")
					menuObjectTBody.appendChild(menuObjectRow)
					
					menuObjectRow.appendChild(XX_makeSideBorder(menuObjectArray[i][4]))
										
					menuObjectCell = document.createElement("td")
					menuObjectCell.style.textAlign = 'center'
					menuObjectImage = document.createElement("img")
					menuObjectImage.src = menuObjectArray[i][2]
					menuObjectImage.width = menuObjectArray[i][3]
					menuObjectImage.height = menuObjectArray[i][4]
					menuObjectCell.appendChild(menuObjectImage)
					menuObjectRow.appendChild(menuObjectCell)
					menuObjectDiv.XX_image = menuObjectImage
					
					menuObjectRow.appendChild(XX_makeSideBorder(menuObjectArray[i][4]))
					
					menuItemPosition+=menuObjectArray[i][4]
					
					if(i==menuObjectArray.length-1){
						menuObjectTBody.appendChild(XX_makeBorder())
						menuItemPosition++
					}
					
					menuObjectDiv.appendChild(menuObjectTable)
				
			}
			
			if(menuObjectArray[i][0]==XX_Text){			
					menuObjectDiv.onmouseover = XX_blockOver
					menuObjectDiv.onmouseout = XX_blockOut
					menuObjectDiv.style.backgroundColor = '#436D95'
										
					menuObjectTable = document.createElement("table")
					menuObjectTable.cellSpacing = 0
					menuObjectTable.cellPadding = 0
					if(NS6){
						menuObjectTable.style.backgroundColor = '#436D95'
					}
					menuObjectTable.border = 0
					menuObjectTable.width = menuObjectArray[0][2]
					
					menuObjectDiv.XX_bgObject = menuObjectTable
										
					menuObjectTBody = document.createElement("tbody") 
					menuObjectTable.appendChild(menuObjectTBody)
					
					if(i==1){
						menuObjectTBody.appendChild(XX_makeBorder())
						menuItemPosition++
					}
					
					menuObjectRow = document.createElement("tr")
					menuObjectTBody.appendChild(menuObjectRow)
					
					menuObjectRow.appendChild(XX_makeSideBorder(16))
					menuObjectCell = document.createElement("td")
					menuObjectCell.style.textAlign = 'left'
					menuObjectCell.style.fontFamily = 'tahoma,verdana,arial,helvetica'
					menuObjectCell.style.fontSize = '11px'
					menuObjectCell.style.fontWeight = 'bold'
					menuObjectCell.style.color = '#436D95'
					menuObjectCell.style.paddingLeft = '5px'
					menuObjectCell.style.paddingRight = '5px'
					menuObjectCell.colSpan = 2
					menuObjectCell.innerHTML = '<nobr>' + menuObjectArray[i][2] + '</nobr>'
					menuObjectRow.appendChild(menuObjectCell)
					
					menuObjectRow.appendChild(XX_makeSideBorder(16))
					
					menuObjectRow = document.createElement("tr")
					menuObjectTBody.appendChild(menuObjectRow)
					
					menuObjectRow.appendChild(XX_makeSideBorder(1))
					menuObjectCell = document.createElement("td")
					menuObjectCell.style.textAlign = 'left'
					menuObjectCell.style.fontFamily = 'tahoma,verdana,arial,helvetica'
					menuObjectCell.style.fontSize = '9.5px'
					menuObjectCell.style.fontWeight = 'bold'
					menuObjectCell.style.color = '#436D95'
					menuObjectCell.style.paddingLeft = '5px'
					menuObjectCell.style.paddingRight = '5px'
					menuObjectCell.colSpan = 2
					menuObjectCell.innerHTML = menuObjectArray[i][3]
					menuObjectRow.appendChild(menuObjectCell)
					
					menuObjectRow.appendChild(XX_makeSideBorder(1))
					
					if(i==menuObjectArray.length-1){
						menuObjectTBody.appendChild(XX_makeBorder())
						menuItemPosition++
					}
					
					menuObjectDiv.appendChild(menuObjectTable)
					
					menuItemPosition+=16
					
			}
			
			newMenuObject.appendChild(menuObjectDiv)
		}
		if(NS6){
			if(showMenuNow){
				newMenuObject.style.left = leftPos + menuObjectArray[0][5] + 'px'
			}else{
				newMenuObject.style.left = -500
			}
			newMenuObject.style.visibility = 'visible'
		}
	}
}

// This function works around a problem with Mozilla 0.8 (and possibly other Gecko based browsers)
// It simply changes the background color of a menu item, causing it to reflow, thus making it display
// properly.  The user may see this happen.
function XX_fixGeckoMenuSnap(menuObject){
	var menuItemObject
	for(var i=0;i<menuObject.XX_items.length;i++){
		menuItemObject = menuObject.XX_items[i]
		if(menuItemObject.XX_bgObject){
			var currentBgColor = menuItemObject.XX_bgObject.style.backgroundColor
			menuItemObject.XX_bgObject.style.backgroundColor = '#436D95'
			menuItemObject.XX_bgObject.style.backgroundColor = currentBgColor
		}
	}
}

function XX_makeSeparator(){
	var newRow = document.createElement("tr")
	
	var newCell = document.createElement("td")
	with (newCell){
		bgColor = '#436D95'
		height = 1
		width = 1
	}
	newCell.appendChild(XX_makeImage('', XX_absolutePath + 'images/sp_m.gif', 1, 1))
	newRow.appendChild(newCell)
	
	var newCell = document.createElement("td")
	with (newCell){
		bgColor = '#436D95'
		height = 1
		width = '100%'
		colSpan = 2
	}
	newCell.appendChild(XX_makeImage('', XX_absolutePath + 'images/sp_m.gif', 1, 1))
	newRow.appendChild(newCell)
	
	var newCell = document.createElement("td")
	with (newCell){
		bgColor = '#FFFFFF'
		height = 1
		width = 1
	}
	newCell.appendChild(XX_makeImage('', XX_absolutePath + 'images/sp_m.gif', 1, 1))
	newRow.appendChild(newCell)
	
	return newRow
}

function XX_makeSeparatorTag(){
	return '<tr><td bgcolor=#FFFFFF><img src="'+XX_absolutePath+'images/sp_m.gif" height=1 width=1></td><td colspan="2" bgcolor=#000000><img src="'+XX_absolutePath+'images/sp_m.gif" height=1 width=1></td><td bgcolor=#000000><img src="'+XX_absolutePath+'images/sp_m.gif" height=q width=1></td></tr>'
}

function XX_makeSideBorder(borderHieght){
var newCell = document.createElement("td")
	with (newCell){
		bgColor = '#FFFFFF'
		height = 1
		width = 1
	}
	newCell.appendChild(XX_makeImage('', XX_absolutePath + 'images/sp_m.gif', 1, borderHieght))
	return newCell
}

function XX_makeSideBorderTag(borderHieght){
	return '<td bgcolor=#000000><img src="'+XX_absolutePath+'images/sp_m.gif" height='+borderHieght+' width=1></td>'
}

function XX_makeBorder(){
	var newRow = document.createElement("tr")
	
	var newCell = document.createElement("td")
	with (newCell){
		bgColor = '#000000'
		height = 1
		colSpan = 4
	}
	newCell.appendChild(XX_makeImage('', XX_absolutePath + 'images/sp_m.gif', 1, 1))
	newRow.appendChild(newCell)
	
	return newRow
}

function XX_makeBorderTag(borderWidth){
	if(!borderWidth){boderWidth = 1}
	return '<td colspan=4 bgcolor=#000000><img src="'+XX_absolutePath+'images/sp_m.gif" height=1 width='+borderWidth+'></td>'
}

function XX_makeImage(imageId, imageSrc, width, height){
	var newImageObject = document.createElement("img")
	newImageObject.src = XX_absolutePath + imageSrc
	newImageObject.width = width
	newImageObject.height = height
	if(imageId){
		newImageObject.id = imageId
	}
	return newImageObject
}

function XX_makeImageTag(imageId, imageSrc, width, height){
	return '<img id='+imageId+' name='+imageId+' src="'+XX_absolutePath+imageSrc+'" width='+width+' height='+height+' border=0>'
}

// ********************************
// * Event handelers
// ********************************

function XX_tabOver(){
	XX_currentMenu = this.XX_masterParent
	if(this.XX_child){
		XX_showMenu(this.XX_child, this)
	}
	if(this.XX_activeChild){
		XX_suppressHideForTree(this.XX_activeChild)
	}else{
		XX_suppressHideForTree(this.XX_masterParent)
	}
}

function XX_tabOut(){
	if(this.XX_activeChild){
		XX_requestHideForTree(this.XX_activeChild)
	}else{
		XX_requestHideForTree(this.XX_masterParent)
	}
}

function XX_normalOver(){
	XX_currentMenu = this.XX_masterParent
	XX_effectOn(this)
	if(this.XX_masterParent.XX_parent){
		XX_effectOn(this.XX_masterParent.XX_parent)
	}
	if(this.XX_child){
		XX_requestShow(this.XX_child, this)
	}
	if(this.XX_activeChild){
		XX_suppressHideForTree(this.XX_activeChild)
	}else{
		XX_suppressHideForTree(this.XX_masterParent)
	}
}

function XX_normalOut(){
	XX_effectOff(this)
	if(this.XX_child){
		XX_showRequestId = false
	}
	if(this.XX_activeChild){
		XX_requestHideForTree(this.XX_activeChild)
	}else{
		XX_requestHideForTree(this.XX_masterParent)
	}
}

function XX_blockOver(){
	XX_currentMenu = this.XX_masterParent
	if(this.XX_masterParent.XX_parent){
		XX_effectOn(this.XX_masterParent.XX_parent)
	}
	XX_suppressHideForTree(this.XX_masterParent)
}

function XX_blockOut(){
	XX_requestHideForTree(this.XX_masterParent)
	this.XX_hadMouseOn = false
}

// ********************************
// * Handler tools
// ********************************

// Another bit of bug-fix for the Gecko core.
// Since Gecko will allow an "onmouseon" on an element, but then miss the "onmouseoff", we need
// to check to see if any items were left "on" by mistake.
// This only seems to happen the first time an element gets an event.
// It also only seems to happen on elements nested in absolutely positioned DIVs.
function XX_checkEffect(menuName){
	var menuObject = document.getElementById(menuName)
	if(menuObject.XX_effectOn&&(menuObject.XX_masterParent.XX_lastEffect!=menuObject)){
		XX_effectOff(menuObject)
		if(menuObject.XX_child){
			if(XX_showRequestId==menuObject.XX_child){
				XX_showRequestId = false
			}
		}
		if(menuObject.XX_activeChild){
			XX_requestHide(menuObject.XX_activeChild)
		}
	}
}

function XX_effectOn(menuObject){
	if(NS6){
		if(menuObject.XX_masterParent.XX_lastEffect){
			if(menuObject.XX_masterParent.XX_lastEffect.XX_effectOn&&(menuObject.XX_masterParent.XX_lastEffect!=menuObject)){
				setTimeout('XX_checkEffect("'+menuObject.XX_masterParent.XX_lastEffect.id+'")', 100)
			}
		}	
		menuObject.XX_masterParent.XX_lastEffect = menuObject
	}
	if(!menuObject.XX_effectOn){
		if(menuObject.XX_image){
			if(menuObject.XX_itemType==XX_Normal){
				menuObject.XX_image.src = XX_menuArrow_ro.src
				if(NS6){
					menuObject.XX_image.width = 14
					menuObject.XX_image.height = 16
				}
			}
			if(menuObject.XX_itemType==XX_Double){
				menuObject.XX_image.src = XX_arrowbigon.src
			}
		}
		if(menuObject.XX_itemType==XX_Normal||menuObject.XX_itemType==XX_Double){
			//Adjustment - highlight color - next 3 items
			if(NS6){
				menuObject.XX_bgObject.style.backgroundColor = '#AD9C73'
			}
			if(IE4 || IE5 || NS6){
				menuObject.style.backgroundColor = '#AD9C73'
			}
			if(NS4){
				menuObject.bgColor = '#AD9C73'
			}
		}
		menuObject.XX_effectOn=true
	}
}

function XX_effectOff(menuObject){
	if(menuObject.XX_effectOn){
		if(menuObject.XX_image){
			if(menuObject.XX_itemType==XX_Normal){
				menuObject.XX_image.src = XX_menuArrow.src
				if(NS6){
					menuObject.XX_image.width = 14
					menuObject.XX_image.height = 16
				}
			}
			if(menuObject.XX_itemType==XX_Double){
				menuObject.XX_image.src = XX_arrowbig.src
			}
		}
		if(menuObject.XX_itemType==XX_Normal||menuObject.XX_itemType==XX_Double){
			if(NS6){
				menuObject.XX_bgObject.style.backgroundColor = menuObject.XX_bgColor
			}
			if(IE4 || IE5 || NS6){
				menuObject.style.backgroundColor = menuObject.XX_bgColor
			}
			if(NS4){
				menuObject.bgColor = menuObject.XX_bgColor
			}
		}
		menuObject.XX_effectOn=false
	}
}

function XX_suppressHideForTree(menuObject){
	if(menuObject.XX_hideRequests.length){
		if(NS6){
			var i = menuObject.XX_hideRequests.findMin()
			if(i){
				menuObject.XX_hideRequests.extract(i-1)	
			}
		}else{
			menuObject.XX_hideRequests.shift()
		}
	}
	if(menuObject.XX_master){
		XX_suppressHideForTree(menuObject.XX_master)
	}
}

function XX_forceHideForTree(menuObject){
	XX_hideMenu(menuObject)
	if(menuObject.XX_master){
		XX_forceHideForTree(menuObject.XX_master)
	}
}

function XX_requestHideForTree(menuObject){
	XX_requestHide(menuObject)
	if(menuObject.XX_master){
		XX_requestHideForTree(menuObject.XX_master)
	}
}

function XX_gotoHref(){
	if(NS4){
		setTimeout('window.location.href = "'+this.XX_href+'";', 10)
	}else{
		window.location.href = this.XX_href
	}
}

// ********************************
// * Show menus
// ********************************

function XX_getEventId(){
	XX_currentEvent++
	return XX_currentEvent
}


function XX_requestHideById(menuName){
	if(XX_loadComplete){
		if(NS4){
			var menuObject = document.layers[menuName]
		}else{
			var menuObject = document.getElementById(menuName)
		}
		XX_requestHide(menuObject)
	}
}

function XX_requestHide(menuObject){
	if(menuObject.XX_isActive){
		var requestEventId = XX_getEventId()
		if(!NS6){
			XX_globalHideRequests.push(menuObject)	
		}
		menuObject.XX_hideRequests.push(requestEventId)
		if(NS6){
			setTimeout('XX_processHideRequest('+requestEventId+', "'+menuObject.id+'")', menuTimer)
		}else{
			setTimeout('XX_processHideRequest('+requestEventId+')', menuTimer)
		}
	}
}

function XX_requestShow(menuName, menuParent){
	var requestEventId = XX_getEventId()
	XX_showRequestId = requestEventId
	XX_showRequestName = menuName
	XX_showRequestParent = menuParent
	setTimeout('XX_processShowRequest('+requestEventId+')', menuTimer)
}

function XX_processShowRequest(requestEventId){
	if(requestEventId==XX_showRequestId){
		XX_showMenu(XX_showRequestName, XX_showRequestParent)
	}
}

function XX_processHideRequest(requestEventId, menuName){
	if(NS6){
		var menuObject = document.getElementById(menuName)
		if(menuObject.XX_hideRequests.length){
			i = menuObject.XX_hideRequests.find(requestEventId)
			if(i){
				menuObject.XX_hideRequests.extract(i-1)
				XX_hideMenu(menuObject)
			}
		}
	}else{
		var menuObject = XX_globalHideRequests.shift()	
		if(menuObject.XX_hideRequests[0]==requestEventId){
			menuObject.XX_hideRequests.shift()
			XX_hideMenu(menuObject)
		}
	}
}

function XX_hideMenu(menuObject){
	if(IE4 || IE5){
		menuObject.style.visibility = 'hidden'
	}
	if(NS6){
		menuObject.style.left = -500
		if(menuObject.XX_lastEffect){
			XX_effectOff(menuObject.XX_lastEffect)
			if(menuObject.XX_lastEffect.XX_child){
				if(XX_showRequestId==menuObject.XX_lastEffect.XX_child){
					XX_showRequestId = false
				}
			}
		}
	}
	if(NS4){
		menuObject.visibility = 'hide'
	}
	if(menuObject.XX_activeChild){
		XX_hideMenu(menuObject.XX_activeChild)
		menuObject.XX_activeChild = false
	}
	if(menuObject.XX_parent){
		menuObject.XX_parent.XX_activeChild = false
		XX_effectOff(menuObject.XX_parent)
	}
	var i=XX_activeMenus.find(menuObject)
	if(i){XX_activeMenus.extract(i-1)}
	menuObject.XX_hideRequests.length = 0
	menuObject.XX_isActive = false
}

function XX_showMenu(menuName, menuParent){
	if(XX_loadComplete){
		if(NS4){
			var menuObject = document.layers[menuName]
		}else{
			var menuObject = document.getElementById(menuName)
		}
		if (menuObject){
			XX_showExistingMenu(menuObject, menuParent)
		}else{
			XX_makeMenu(menuName, true, menuParent)
			if(NS4){
				var menuObject = document.layers[menuName]
			}else{
				var menuObject = document.getElementById(menuName)
			}
			if(NS6){
				XX_fixGeckoMenuSnap(menuObject)
			}
			XX_showExistingMenu(menuObject, menuParent)
		}
	}else{
		XX_prematureRequest = menuName
	}
}

function XX_showExistingMenu(menuObject, menuParent){
	if(NS4){
		menuObject.visibility = 'show'
	}
	if(IE4 || IE5){
		menuObject.style.visibility = 'visible'
	}
	if(NS6){
		menuObject.style.left = menuObject.XX_left
	}
	if(menuParent){
		menuParent.XX_activeChild = menuObject
		menuParent.XX_masterParent.XX_activeChild = menuObject
	}else{
		if(XX_activeMenus.length){
			do{
				XX_hideMenu(XX_activeMenus.pop())
			}while(XX_activeMenus.length)
		}
		if(menuObject.XX_defaultTab){
			if(menuObject.XX_defaultTab.XX_child){
				XX_showMenu(menuObject.XX_defaultTab.XX_child, menuObject.XX_defaultTab)
				XX_currentMenu = menuObject
			}
		}
	}
	if(NS4){
		menuObject.visibility = 'show'
	}
	if(IE4 || IE5){
		menuObject.style.visibility = 'visible'
	}
	if(NS6){
		menuObject.style.left = menuObject.XX_left
	}
	menuObject.XX_isActive = true
	XX_activeMenus.push(menuObject)
}

// ********************************
// * Find Anchor/Element position
// ********************************
	
// Get the top position of an element
function getAnchorTop(elemName){

	if (NS4) {
		// If using NN4, we can just return the position of the tag.
		// But we'll also dig for the element, incase it's nested in a layer
		if (document.images[elemName]){
			return document.images[elemName].y
		}else{
			return getNestedAnchorTop(elemName, document)
		}
	}
	if (IE4 || IE5 || NS6){
		// with IE5+, and NN5/6 we need to dig for the position
		// Adding the position of each element as we dig 
		var elem = document.getElementById(elemName)
		var position = 0
		do {
		    position += elem.offsetTop
			elem = elem.offsetParent
		} while (elem)
		return position
	}		
}

// We will only look 1 layer deep (shouldn't be hard to mod if we need more).
function getNestedAnchorTop(elemName, rootDocument){
	var tmpY = 0
	var tmpY2 = 0
	for(i=0; i < rootDocument.layers.length; i++){
		if (rootDocument.layers[i].document.images[elemName]){
			tmpY = rootDocument.layers[i].document.images[elemName].y
			tmpY += rootDocument.layers[i].pageY
		}else{
			tmpY2 = getNestedAnchorTop2(elemName, rootDocument.layers[i])
			tmpY += tmpY2
		}
	}	
	return tmpY
}

function getNestedAnchorTop2(elemName, rootDocument){
	var tmpY = 0
	for(i=0; i < rootDocument.layers.length; i++){
		if (rootDocument.layers[i].document.images[elemName]){
			tmpY = rootDocument.layers[i].document.images[elemName].y
			tmpY += rootDocument.layers[i].pageY
		}
	}
	return tmpY
}

// Get the position of an element
function getAnchorPos(elemName){
	lastElementName = elemName
	topPos = 0
	leftPos = 0
	if (NS4) {
		if (document.images[elemName]){
			topPos = document.images[elemName].y
			leftPos = document.images[elemName].x
		}else{
			getNestedAnchorPos(elemName, document)
		}
	}
	if (IE4 || IE5 || NS6){
		var elem = document.getElementById(elemName)
		do {
		    topPos += elem.offsetTop
		    leftPos += elem.offsetLeft
			elem = elem.offsetParent
		} while (elem)
	}	
}

// We will only look 1 layer deep (shouldn't be hard to mod if we need more).
function getNestedAnchorPos(elemName, rootDocument){
	var tmpY = 0
	var tmpX = 0
	var posArray
	for(i=0; i < rootDocument.layers.length; i++){
		if (rootDocument.layers[i].document.images[elemName]){
			tmpY = rootDocument.layers[i].document.images[elemName].y
			tmpY += rootDocument.layers[i].pageY
			tmpX = rootDocument.layers[i].document.images[elemName].x
			tmpX += rootDocument.layers[i].pageX
		} else {
			posArray = getNestedAnchorPos2(elemName, rootDocument.layers[i])
			if (posArray[0] || posArray[1]){
				tmpY = posArray[0]
				tmpX = posArray[1]
			}
		}
	}
	topPos = tmpY
	leftPos = tmpX
}

function getNestedAnchorPos2(elemName, rootDocument){
	var tmpY = 0
	var tmpX = 0
	for(i=0; i < rootDocument.layers.length; i++){
		if (rootDocument.layers[i].document.images[elemName]){
			tmpY = rootDocument.layers[i].document.images[elemName].y
			tmpY += rootDocument.layers[i].pageY
			tmpX = rootDocument.layers[i].document.images[elemName].x
			tmpX += rootDocument.layers[i].pageX
		}
	}
	return [tmpY, tmpX]
}

// EOF