function getObjStyle(refObjName)
{
	if (is_domcom)
		return document.getElementById(refObjName).style;
	else if (is_ie4)
		return document.all[refObjName].style;
}




// Copyright 2001-2003 Villario, villario@yahoo.com

var agt=navigator.userAgent.toLowerCase();
var is_major = parseInt(navigator.appVersion);
var is_minor = parseFloat(navigator.appVersion);
var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1) && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1) && (agt.indexOf('webtv')==-1));
var is_nav2 = (is_nav && (is_major == 2));
var is_nav3 = (is_nav && (is_major == 3));
var is_badnav4 = (is_nav && (parseFloat(navigator.appVersion) == 4.02));
var is_oldnav4 = (is_nav && (parseFloat(navigator.appVersion) < 4.06));
var is_nav4 = (is_nav && (is_major == 4));
var is_nav4up = (is_nav && (is_major >= 4));
var is_nav6 = (is_nav && (is_major == 5));
var is_nav6up = (is_nav && (is_major >= 5));
var is_ie   = (agt.indexOf("msie") != -1);
var is_ie3  = (is_ie && (is_major < 4));
var is_ie4  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")==-1));
var is_ie4up  = (is_ie  && (is_major >= 4));
var is_ie5  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1));
var is_ie5up  = (is_ie && !is_ie3 && !is_ie4);
var is_aol   = (agt.indexOf("aol") != -1);
var is_aol3  = (is_aol && is_ie3);
var is_aol4  = (is_aol && is_ie4);
var is_aol5up  = (is_aol && is_ie5up);
var is_opera = (agt.indexOf("opera") != -1);
var is_opera4 = (is_opera && (is_major == 4));
var is_opera5 = (is_opera && (is_major == 5));
var is_opera5up = (is_opera && (is_major >= 5));
var is_webtv = (agt.indexOf("webtv") != -1);
var is_domcom = ((is_nav6up)||(is_ie5up)||(is_opera5up))
var is_mac    = (agt.indexOf("mac")!=-1);
var is_mac68k = (is_mac && ((agt.indexOf("68k")!=-1) || (agt.indexOf("68000")!=-1)));
var is_macppc = (is_mac && ((agt.indexOf("ppc")!=-1) || (agt.indexOf("powerpc")!=-1)));
var dhtmlnav=0;
var dhtmlBrowser=0;
if ((is_nav4up)||(is_ie4up)) dhtmlBrowser=1;

var table_template_front_array1 = new Array();
var table_template_front_array2 = new Array();
var table_template_end_array = new Array();
var row_template_front_array = new Array();
var parent_layer_array = new Array();
var child_layer_array = new Array();
var last_button_name = "";
var last_parent_layer = "";
var last_child_layer = "";
var last_image_name = "";
var image_pointer = "";
var TimerID = "";
var TimerIDLink = "";
var table_width = 0; // Changes the width of all menu tables. Set to widest menu.
var IsLink = "NO";
var PrevLayer = "NO";
var WaitLink = 0;
var LinkLayer = "";
var TimeLinkOut = 100;
var TimeLayerOut = 100;

if (document.images) {
    var arrow = new Image();
    var blank = new Image();
    arrow.src = "menu_script/arrow.gif";
    blank.src = "../../img/bases/spacer.gif";
}

function getINNERWIDTH()
{
	var pageWIDTH=null;
	if(is_nav4 || is_domcom)
		pageWIDTH=window.innerWidth;         //NN
	else if(is_ie4up)
		pageWIDTH=document.body.clientWidth; //IE
	return pageWIDTH;
}
  
function getINNERHEIGHT()
{
	var pageHEIGHT=null;
	if(is_nav4 || is_domcom)
		pageHEIGHT=window.innerHeight;         //NN
	else if(is_ie4up)
		pageHEIGHT=document.body.clientHeight; //IE
	return pageHEIGHT;
}
  
function Layer(name, visibility, zindex, table_template, left, top) {
    this.name = name;
    this.left = left;
    this.top = top;
    this.width = table_width;
    this.visibility = visibility;
    this.zindex = zindex;
    this.table_template = table_template;
    this.ar = ar;
    this.fl = fl;

    if (this.table_template == 1) {
        this.left = this.left + this.width - 70;
    }

    if ((is_domcom)||(is_ie4)) {  
      if (is_mac) { //changed the navigator.appVersion.indexOf("Macintosh") to is_mac
            this.top += 7;
            this.left += 2;
        }
        this.layer_content = '<div id="' + this.name + '" style="position: absolute; left: ' + this.left + '; top: ' + this.top + '; width: ' + this.width + '; visibility: ' + (this.visibility ? 'visible' : 'hidden') + '; z-index: ' + this.zindex + ';">';
    } else if (is_nav4) { 
        this.layer_content = '<layer name="' + this.name + '" left=' + this.left + ' top=' + this.top + ' width=' + this.width + ' visibility=' + (this.visibility ? '"show"' : '"hide"') + ' z-index=' + this.zindex + '>';
    }
	   this.layer_content += table_template_front_array1[this.table_template];
	   this.layer_content += name
	   this.layer_content += table_template_front_array2[this.table_template];
		if (this.table_template == 0) { 
			parent_layer_array[parent_layer_array.length] = this.name;
		} else {
		child_layer_array[child_layer_array.length] = this.name;
	    }
}

function ar(row_template, row_content) {  
    this.layer_content += row_template_front_array[row_template] + row_content + row_end;
}

function fl() {  
    this.layer_content += table_template_end_array[this.table_template];
    if ((is_domcom)||(is_ie4)) {
      this.layer_content += '</div>'; 
    } else if (is_nav4) {
        this.layer_content += '</layer>';
    } document.write(this.layer_content);
}

function define_table(tw) {
    table_template_front_array1[0] = '<table cellspacing="0" cellpadding="0" border="0" bgcolor="#bcbcb0" onmouseover="TableOver(\'';
    table_template_front_array2[0] = '\');" TableOut();">';
    table_template_end_array[0] = '</table>';
    row_template_front_array[0] = '<tr><td nowrap height="47">';

    table_template_front_array1[1] = '<table cellspacing="0" cellpadding="0" border="0" bgcolor="#f050f0" onmouseover="TableOver(\'';
    table_template_front_array2[1] = '\');" TableOut();">';
    table_template_end_array[1] = '</table>';
    row_template_front_array[1] = '<tr><td nowrap height="47">';

    row_end = '</tr>';
}

define_table(table_width);

function TableOut(){
	clearTimeout(TimerID);
	TimerID = setTimeout("ShowLayers('None')", TimeLayerOut);
}

function TableOver(ActiveLayer){
	clearTimeout(TimerID);
	if(ActiveLayer == LinkLayer){
		clearTimeout(TimerIDLink);
		WaitLink = 0;
	}
	ShowLayers(ActiveLayer);
}

function ResetWaitLink(ActiveLayer){
	WaitLink = 0;
	clearTimeout(TimerIDLink);
	ShowLayers(ActiveLayer);
}

function LinkOut(ActiveLayer){
	IsLink = "NO";
	WaitLink = 1;
    	TimerIDLink = setTimeout("ResetWaitLink('" + ActiveLayer + "')", TimeLinkOut);
	TableOut();
}

function LinkOver(ActiveLayer){
	clearTimeout(TimerID);
	clearTimeout(TimerIDLink);
	WaitLink = 0;
	LinkLayer = ActiveLayer;
	IsLink = ActiveLayer;
	ShowLayers(ActiveLayer);
}

function ShowLayers(ActiveLayer){
	
	if (IsLink != "NO") ActiveLayer = IsLink;

	if (PrevLayer != ActiveLayer && WaitLink == 0){
	
		for(i=0; i<menuLayers.length;i++){
			if (is_nav4) {
				document.layers[menuLayers[i].name].visibility='hide';
			} else if (is_ie4) {
				document.all[menuLayers[i].name].style.visibility='hidden';
			} else if (is_domcom) {
				//if (document.getElementById(menuLayers[i].name) != null)
					document.getElementById(menuLayers[i].name).style.visibility='hidden';
			}


			if (menuLayers[i].name == ActiveLayer){
				if (is_nav4) {
					document.layers[menuLayers[i].name].visibility='show';
				} else if (is_ie4) {
					document.all[menuLayers[i].name].style.visibility='visible';
				} else if (is_domcom) {
					document.getElementById(menuLayers[i].name).style.visibility='visible';
				}
			}
		}
		PrevLayer = ActiveLayer;
	}
}





function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findObjW(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
		return obj.offsetWidth;
	else if (obj.width)
		return obj.width;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function findObjH(obj)
{
	if (obj.offsetParent)
		return obj.offsetHeight;
	else if (obj.width)
		return obj.height;
}

function refreshLevel2Menu(menuName, n)		// don't call this function for sliding menus
{
	fHide = eval('show_' + menuName + n + 'sub') == 0;

	getObjStyle(menuName + n + 'sub').visibility = fHide ? 'hidden' : 'visible';
	if (fHide)
	{
		for (i=0; true; i++)
		{
			if (null == getObjStyle(menuName + n + "sub_" + i))
				break;
			else
				getObjStyle(menuName + n + "sub_" + i).visibility = 'hidden';
		}
		PrevLayer = "NO";
	}
}

function isSelectedItem(sLayerName)
{
	fSliding = sLayerName.indexOf("Sliding") == 0;
	if (!fSliding)
		return false;
	if (sLayerName.indexOf('link') == -1)
	{
		sLinkLayerName = sLayerName + 'link';
		fLinkLayerSelected = getLayerByName(sLinkLayerName).innerHTML.indexOf('../' + SlidingMenu_selected + '/index.jsp') != -1;
	}
	else
		fLinkLayerSelected = false;
	
	return fLinkLayerSelected || getLayerByName(sLayerName).innerHTML.indexOf('../' + SlidingMenu_selected + '/index.jsp') != -1;
}

function initialiseLayerPositions(menuName, fVertical)
{	
	fSliding = menuName.indexOf("Sliding") == 0;
	nSlidingShift = 0;

	for (j=0; true; j++)
	{
		for (i=0; true; i++)
		{
			if (fSliding)
			{
				anObjStyle = getObjStyle(menuName + "_sub_" + i);
				if (null == anObjStyle)
					break;
				else
				{
					if (i > 0)
					{
						aLinkObjStyle = getObjStyle(menuName + "_sub_" + i + 'link');
						previousLinkObj = getLayerByName(menuName + "_sub_" + (i - 1) + 'link');
						aLinkObjStyle.left = findPosX(previousLinkObj);
						if (isSelectedItem(menuName + "_sub_" + (i - 1)) || isSelectedItem(menuName + "_sub_" + (i - 1) + 'link'))
							nSlidingShift = - 1 + findObjH(getLayerByName(menuName + "_sub_" + (i - 1)));
						else
							nSlidingShift = 0;

						if (isNaN(nSlidingShift))
							nSlidingShift = 0;
	
						aLinkObjStyle.top = nSlidingShift + 1 + findPosY(previousLinkObj) + findObjH(previousLinkObj);
					}
				}
				//alert(menuName + "_sub_" + i);
				if (isSelectedItem(menuName + "_sub_" + i) || isSelectedItem(menuName + "_sub_" + i + 'link'))
					getObjStyle(menuName + "_sub_" + i).visibility = 'visible';

				anObjStyle.left = -1 + findPosX(getLayerByName(menuName + "_sub_" + i + 'link'));
				anObjStyle.top = findPosY(getLayerByName(menuName + "_sub_" + i + 'link')) + findObjH(getLayerByName(menuName + "_sub_" + i + 'link'));
			}
			else
			{
				anObjStyle = getObjStyle(menuName + j + "sub_" + i);
				if (null == anObjStyle)
					break;
				else
				{
					//anObjStyle.top = -1 + findPosY(getLayerByName(menuName + j + "sub_" + i + 'link'));
					//anObjStyle.left = findPosX(getLayerByName(menuName + j + "sub_" + i + 'link')) + findObjW(getLayerByName(menuName + j + "sub_" + i + 'link'));
				}
			}
		}
		if (null == getObjStyle(menuName + j + 'link'))
			break;
		else
		{
			anObjStyle = getObjStyle(menuName + j + 'sub');
			if (fVertical)
			{
				anObjStyle.top = findPosY(getLayerByName(menuName + j + 'link')) - findPosY(getLayerByName('mainMenu')) + "px";
				anObjStyle.left = 1 + findPosX(getLayerByName(menuName + j + 'link')) + findObjW(getLayerByName(menuName + j + 'link')) - findPosX(getLayerByName('mainMenu')) + "px";
			}
			else
			{
				//anObjStyle.left = findPosX(getLayerByName(menuName + 0 + 'link'));
				anObjStyle.left = -1 + findPosX(getLayerByName(menuName + j + 'link'));
				anObjStyle.top = -1 + findPosY(getLayerByName(menuName + j + 'link')) + findObjH(getLayerByName(menuName + j + 'link'));
			}
		}
	}
}

function showMenu(menuName)
{
	fSliding = menuName.indexOf("Sliding") == 0;
	for (i=0; true; i++)
	{
		aLinkObjStyle = getObjStyle(menuName + (fSliding ? "_sub_" : "") + i + 'link');
		if (null == aLinkObjStyle)
			break;
			
		aLinkObjStyle.visibility = 'visible';
	}
}

