// Set Global Variables for Tracking Menus

domData.flag = false; // stops click or mouseover events from triggering menus until page is loaded.
var mCurr = false; // says mouse is roaming, no menu displayed
var mName = "topic-list";

// Track scrolling
domData.scroll_x = getScrollX; // method to get X offset
domData.scroll_y = getScrollY; // method to get Y offset
// Track delta Y scrolling
var scroll_yy = 0; // Amount of scrolling, last time checked


// BEGIN Initialize DHTML Objects and start event capture
function init() {

	if (!domData.isOther) {

		createObjects(); // Function in scripts/domobjs.js that creates DHTML objects
		initMenu(); // Define bounding box for mName
		domData.flag = true;

		if (domData.isNN6up) { document.body.addEventListener("mousemove", whereAmI, true);
		} else { 
			if (domData.isNN4) { document.captureEvents(Event.MOUSEMOVE); }
			document.onmousemove = whereAmI; 
		}

	}	

} // END init()



// initMenu() to initialize mName 
function initMenu() {
	var obj = theObjs[mName];
	obj.x1 = 3; // Upper X position of Menu slopped to 6
	obj.y1 = 3; // Upper Y position of Menu, with 12 pixel slop
	obj.x2 = obj.objGetLeft() + obj.objGetWidth() + 12; // Bottom X position of Menu with 12 pixel slop
	obj.y2 = obj.objGetTop() + obj.objGetHeight() + 24; // Bottom Y position of Menu with 12 pixel slop
	obj.x3 = obj.objGetLeft() - 24; // X value of "L"
	obj.y3 = obj.objGetTop() + 88; // Y value of "L"
}


// BEGIN whereAmI function to track mousemoving
function whereAmI(e) {

	if (!mCurr) { return; }
	
	if (domData.isNN4) { 
		x = e.pageX; 
		y = e.pageY; 
	} else if (domData.isNN6up) { 
		x = e.clientX + domData.scroll_x();
		y = e.clientY + domData.scroll_y();;
	} else if (domData.isIE4up) { 
		x = event.clientX + domData.scroll_x(); 
		y = event.clientY + domData.scroll_y(); 
	}

	var obj = theObjs[mCurr];

	if ((x < obj.x1) || (x > obj.x2) || (y < obj.y1) || (y > obj.y2) || ((x < obj.x3) && (y > obj.y3))) { 
		menuOff(mCurr); // Turn off menu
	}

} // END whereAmI function



// BEGIN Toggle Menu on and Off
function menuShow(thisOne) {
	if ((!domData.flag) || (domData.isOther)) { return; }
	if (!mCurr) { 
		mCurr = thisOne;
		var obj = theObjs[thisOne];
		obj.objShow();
		if ((domData.isIE4up) && (theObjs['formhide'])) {
			obj = theObjs['formhide']
			obj.objHide();
		}
	}
} // END menuOn()



// BEGIN Hide Menu
function menuOff(thisOne) {
	if ((!domData.flag) || (domData.isOther)) { return; }
	if (!mCurr) { return; }
	var obj = theObjs[thisOne];
	obj.objHide(); 
		if ((domData.isIE4up) && (theObjs['formhide'])) {
		obj = theObjs['formhide']
		obj.objShow();
	}
	mCurr = false;
} // End menuOff() 



// BEGIN getScrollX function that assigns scroll_x method to domData to get current X offset of page
function getScrollX() {
	if (domData.isNN4) { return self.pageXOffset; 
	} else if (domData.isIE6) { return document.all.canvas.scrollLeft; 
	} else if (domData.isIE4up) { return document.body.scrollLeft; 
	} else if (domData.isNN6up) { return window.pageXOffset; }
} // end getScrollX



// BEGIN getScrollY function that assigns scroll_y method to domData to get current Y offset of page
function getScrollY() {
	if (domData.isNN4) { return self.pageYOffset; 
	} else if (domData.isIE6) { return document.all.canvas.scrollTop; 
	} else if (domData.isIE4up) { return document.body.scrollTop; 
	} else if (domData.isNN6up) { return window.pageYOffset; }
} // end getScrollY

