/***********************************************************************************************
*		Javascript Menu code for Menu Generator Type 4.
*		Developed by Up N Away for Cockburn web site.
*
*
************************************************************************************************/
/*if (navigator.appName == "Netscape") {
	if (navigator.appVersion.charAt(0) == "4") {
		var IE = false;
	} else {
		var IE = true;
		document.addEventListener("mousemove",updateit, false);
	}
} else {
	var IE = true;
	var _debug;
}*/
var IE = true;
var PrevLayer = null;
var PrevObj = null;
//new Array(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null);
var PrevLevel = 0;
var PrevParent = null;

var Y1 = new Array(0,0,0,0,0,0,0,0,0);
var Y2 = new Array(0,0,0,0,0,0,0,0,0);
var Y3 = new Array(0,0,0,0,0,0,0,0,0);
var Y4 = new Array(0,0,0,0,0,0,0,0,0);
var X1 = new Array(0,0,0,0,0,0,0,0,0);
var X2 = new Array(0,0,0,0,0,0,0,0,0);
var X3 = new Array(0,0,0,0,0,0,0,0,0);
var X4 = new Array(0,0,0,0,0,0,0,0,0);

var DefaultHeight = 40;
var DefaultRight = 120;
var closetimer = 0;
var prevTally = null;
//var XOffset = 8;
//var YOffset = 26;

function showit(Parent, strObj, Direction, RefLayer, Level, Tally) {

	var Obj = document.getElementById(strObj);

	if (Obj == null) {
		//hideit();
		return;
	}
	var x = CalLeft(Obj);
	var y = CalTop(Obj);

	cancelclosetimer();
	startclosetimer();

	if (IE) {
		switch (Direction) {
			case "RIGHT":
				Obj.style.left = ((x - 50) / 13.69) + 'em';
				Obj.style.top = (((y + 40) + (Tally * 18)) / 13.7) + 'em';
				Obj.style.visibility = "visible";
				Obj.onmouseover = function() { cancelclosetimer(); };
				Obj.onmouseout = function() { startclosetimer(); };

				PrevObj = Obj;
				prevTally = Tally;

				//Y1[Level] = y + DefaultHeight+ ((Level - 1) * DefaultHeight);
				//Y2[Level] = y + DefaultHeight+ DefaultHeight + ((Level - 1) * DefaultHeight);
				//X1[Level] = x;
				//X2[Level] = x + DefaultRight + ((Level - 1) * DefaultRight );
				//Y3[Level] = y + DefaultHeight+ ((Level - 1) * DefaultHeight);
				//Y4[Level] = y + Obj.clip.height;
				//X3[Level] = x + DefaultRight + ((Level - 1) * DefaultRight );
				//X4[Level] = x + DefaultRight + Obj.clip.width + ((Level - 1) * DefaultRight );
				break;
			case "DOWN":
				Obj.style.top = y + DefaultHeight;
				Obj.style.left = x;
				Obj.style.visibility = "visible";
				Y1[Level] = y;
				Y2[Level] = y + DefaultHeight;
				X1[Level] = x;
				X2[Level] = x + Obj.offsetWidth;
				Y3[Level] = y;
				Y4[Level] = y + DefaultHeight + Obj.offsetHeight;
				X3[Level] = x;
				X4[Level] = x + Obj.offsetWidth;
				break;
			case "UPLEFT":
				Obj.style.top = y + DefaultHeight - Obj.offsetHeight;
				Obj.style.left = x - Obj.offsetWidth;
				Obj.style.visibility = "visible";
				Y1[Level] = Obj.style.pixelTop;
				Y2[Level] = Obj.style.pixelTop + Obj.offsetHeight;
				X1[Level] = Obj.style.pixelLeft;
				X2[Level] = Obj.style.pixelLeft + Obj.offsetWidth;
				Y3[Level] = y;
				Y4[Level] = y + DefaultHeight;
				X3[Level] = x;
				X4[Level] = x + DefaultRight;
				break;
			case "DOWNLEFT":
				Obj.style.top = y + DefaultHeight;
				Obj.style.left = x - 40;
				Obj.style.visibility = "visible";
				Y1[Level] = Obj.style.pixelTop;
				Y2[Level] = Obj.style.pixelTop + Obj.offsetHeight;
				X1[Level] = Obj.style.pixelLeft;
				X2[Level] = Obj.style.pixelLeft + Obj.offsetWidth;
				Y3[Level] = y;
				Y4[Level] = y + DefaultHeight + Obj.offsetHeight;
				X3[Level] = x;
				X4[Level] = x + DefaultRight;
				break;
		}
	} else {
		var y = Parent.y;
		var x = Parent.x;
		if (RefLayer) {
			var RefObj = eval("document.layers.topLayer")
			DefaultTop = RefObj.top
			var RefObj = eval("document.layers.topLayer.layers." + RefLayer)
			DefaultTop +=RefObj.top
			var RefObj = eval("document.layers.topLayer.layers." + RefLayer + ".layers.L" + RefLayer)
			DefaultTop +=RefObj.top
			DefaultTop -= 3	
		}
		var DefaultLeft = 130
		var DefaultHeight = 30;
		var DefaultWidth = 100;
		switch (Direction) {
			case "RIGHT":
				Obj.left = x + DefaultLeft + ((Level - 1) * DefaultLeft);
				Obj.top = y + DefaultTop;
				Obj.visibility = "show";
				Y1[Level] = y + DefaultTop + ((Level - 1) * DefaultTop);
				Y2[Level] = y + DefaultTop + DefaultHeight + ((Level - 1) * DefaultTop);
				X1[Level] = x;
				X2[Level] = x + DefaultLeft + ((Level - 1) * DefaultLeft);
				Y3[Level] = y + DefaultTop + ((Level - 1) * DefaultTop);
				Y4[Level] = y + Obj.clip.height;
				X3[Level] = x + DefaultLeft + ((Level - 1) * DefaultLeft);
				X4[Level] = x + DefaultLeft + Obj.clip.width + ((Level - 1) * DefaultLeft);
				//alert(X1[Level] + "," + Y1[Level] + "," + X2[Level] + "," + Y2[Level] + ",")
				break;
			case "DOWN":
				Obj.left = x;
				Obj.top = y + DefaultHeight;
				Obj.visibility = "show";
				Y1[Level] = y;
				Y2[Level] = y + DefaultHeight;
				X1[Level] = x;
				X2[Level] = x + Obj.clip.width;
				Y3[Level] = y + DefaultHeight;
				Y4[Level] = y + DefaultHeight + Obj.clip.height;
				X3[Level] = x;
				X4[Level] = x + Obj.clip.width;
				break;
			case "UPLEFT":
				Obj.left = x - 40;
				Obj.top = y + DefaultHeight;
				Obj.visibility = "show";
				Y1[Level] = y;
				Y2[Level] = y + Obj.clip.height;
				X1[Level] = x - Obj.clip.width;
				X2[Level] = x;
				Y3[Level] = y;
				Y4[Level] = y + DefaultHeight;
				X3[Level] = x;
				X4[Level] = x + 20;
				break;
			case "DOWNLEFT":
				Obj.left = x - 40;
				Obj.top = y + DefaultHeight;
				Obj.visibility = "show";
				Y1[Level] = y;
				Y2[Level] = y + Obj.clip.height;
				X1[Level] = x - Obj.clip.width;
				X2[Level] = x;
				Y3[Level] = y;
				Y4[Level] = y + DefaultHeight + Obj.clip.height;
				X3[Level] = x;
				X4[Level] = x + Obj.clip.width;
				break;
		}
	}
	//alert(x + "," + y + " " +  X1[Level] + "," + Y1[Level] + " " + X2[Level] + "," + Y2[Level] + " " + X3[Level] + "," + Y3[Level] + " " + X4[Level] + "," + Y4[Level])

	//PrevLevel = Level;

}

function startclosetimer() 
{
	closetimer = window.setTimeout(hideit, 3000);
}

function cancelclosetimer()
{
	if (closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

function CalTop(Obj) {
	var Top = Obj.offsetTop;
	//for (TempObj = Obj; TempObj = TempObj.offsetParent; TempObj != null) {
	//	Top += TempObj.offsetTop;
	//}
	return Top;
}

function CalLeft(Obj) {
	var Left = Obj.offsetLeft;
	for (TempObj = Obj; TempObj = TempObj.offsetParent; TempObj != null) {
		Left += TempObj.offsetLeft;
	}
	return Left;
}

function updateit(evt) {
	if (IE) {
		if (navigator.appName == "Netscape") {
			var x = evt.clientX
			var y = evt.clientY
		} else {
			var x = window.event.clientX  + document.body.scrollLeft;
			var y = window.event.clientY  + document.body.scrollTop;		
		}
	} else {
		var x = evt.pageX;
		var y = evt.pageY;
	}
	if (PrevObj[PrevLevel] != null) {
		//alert(PrevObj[PrevLevel]);
		var _pad = 2;
			
		Y1[PrevLevel] -= _pad;
		Y2[PrevLevel] += _pad;
		Y3[PrevLevel] -= _pad;
		Y4[PrevLevel] += _pad;
		//alert("[" + x + "," + y + "]");
		if ((x >= X1[1]) && (x <= X2[PrevLevel]) && (y >= Y1[1]) && (y <= Y2[PrevLevel])) {

		} else {
			if	((x >= X3[1]) && (x <= X4[PrevLevel]) && (y >= Y3[1]) && (y <= Y4[PrevLevel])) {

			} else {
				//alert (x + "," + y)
				//alert(X1[Level] + "," + Y2[Level] + " " + X2[Level] + "," + Y2[Level] + " " + X3[Level] + "," + Y3[Level] + " " + X4[Level] + "," + Y4[Level])
				hideit();
			}
		}
	}

	if (PrevObj1 != null) {
		if ((x >= XX1) && (x <= XX2) && (y >= YY1) && (y <= YY2)) {
		} else {
			if	((x >= XX3) && (x <= XX4) && (y >= YY3) && (y <= YY4)) {
			} else {
				//alert (x + " " + y)
				//alert(XX1 + " " + XX2 + " " + XX3 + " " + XX4 + " " + YY1 + " " + YY2 + " " + YY3 + " " + YY4)
				hideit1();
			}
		}
	}
}

function hideit() {
	//for (i=Level; i<=5; i++) {
		// on mouse leave of the object?
		if (PrevObj != null) {

			var x = CalLeft(PrevObj);
			var y = CalTop(PrevObj);

			PrevObj.style.visibility = "hidden";
			PrevObj.style.left = ((x + 48) / 13.69) + 'em';
			PrevObj.style.top = (((y - 40) - (prevTally * 18)) / 13.7) + 'em';
			PrevObj = null;
 			
		}
	//}
	//if (Level>0) {
	//	PrevLevel = Level - 1;
	//}
}

function onLeave(){
	alert( this );
}

	function BrowserCheck() {
		var b = navigator.appName
		if (b=="Netscape") this.b = "ns"
		else if (b=="Microsoft Internet Explorer") this.b = "ie"
		else this.b = b
		this.version = navigator.appVersion
		this.v = parseInt(this.version)
		//alert(this.b);
		//alert(this.v);
		this.ns = (this.b=="ns" && this.v>=4)
		this.ns4 = (this.b=="ns" && this.v==4)
		this.ns5 = (this.b=="ns" && this.v==5)
		this.ie = (this.b=="ie" && this.v>=4)
		this.ie4 = (this.version.indexOf('MSIE 4')>0)
		this.ie5 = (this.version.indexOf('MSIE 5')>0)
		this.mac = (this.version.indexOf('Macintosh')>0)
		this.min = (this.ns||this.ie)
	}

	is = new BrowserCheck();
	
	if (is.ie || is.ns5) {
		objPrefix = "D";
	} else {
		objPrefix = "L";
	}
	function DisplayContents2(name) {
		hideDivs(name);
		hideit();
		if (is.ie || is.ns5) {
			toggle=document.getElementById(objPrefix + name);
			isOnDisplay = toggle.style.display=="";
			toggle.style.display = isOnDisplay ? "none" : "";
		} else {
			toggle = document.layers["topLayer"].document.layers[name].document.layers[objPrefix + name];
			PrevLayer = toggle;
			//alert(toggle.visibility);
			isOnDisplay = toggle.visibility == "show";
			toggle.visibility = isOnDisplay ? "hide" : "show";
			yOffset = isOnDisplay ? 0 : toggle.clip.height;
			numLayers = window.document.layers["topLayer"].document.layers.length;
			var layerObj = null;
			var index=null;
			//alert(numLayers);
			//alert(document.layers["topLayer"].document.layers[0].document.layers[0].visibility);
			//alert(document.layers["topLayer"].document.layers[1].name);
			for (var i =0; i < numLayers; i++) {
				layerObj = document.layers["topLayer"].document.layers[i];
				if (layerObj.name == name) {
					index = i;
					break;
				}
			}
			for(var j=index+1; j < numLayers; j++) {
				layerObj = document.layers["topLayer"].document.layers[j];
				layerObj.moveBy(0,yOffset);
				var LastPos = layerObj.top + layerObj.clip.height;
			}
			document.layers["topLayer"].clip.height = LastPos;
		}
	}

	function hideDivs(name) { 
		if (is.ie || is.ns5) { 
			var divArray = document.getElementsByTagName("div");
			for (i=0; i < divArray.length; i++) {
				if (divArray[i].id.substr(0,1)=='D') {
					divArray[i].style.display="none";
				}
			}
		} else {
			numLayers = window.document.layers["topLayer"].document.layers.length;
			var layerObj = null;
			var index=null;
			layerObj = document.layers["topLayer"].document.layers[0]
			var setTop = layerObj.top + layerObj.clip.height
			for (var i =0; i < numLayers; i++) {
				layerObj = document.layers["topLayer"].document.layers[i];
				numsubLayers = layerObj.layers.length;
				for (var j=0; j < numsubLayers; j++) {
					if (layerObj.layers[j].name != "L" + name) {
						layerObj.layers[j].visibility = "hide"
					}
					setTop -= layerObj.layers[j].clip.height
				}
				if (i == 0) {
					var setTop = layerObj.top + layerObj.clip.height
				} else {
					layerObj.top = setTop;
					setTop += layerObj.clip.height
				}
			}
		}
	}

	function openDivs(CategoryName) { 
		DivName = 'D' + CategoryName;
		if (is.ie || is.ns5) { 
			var divArray = document.getElementsByTagName("div");
			for (i=0; i < divArray.length; i++) {
				if (divArray[i].id==DivName) {
					divArray[i].style.display="";
				}
			}
		}
	}
