
	// get browser info
	var browser = new Object();
	browser.app = window.navigator.appName
	if(browser.app.indexOf(" ") != -1) browser.app = browser.app.substr(0, browser.app.indexOf(" "));
	browser.ver = window.navigator.appVersion;
	if(browser.ver.indexOf(" ") != -1) browser.ver = browser.ver.substr(0, browser.ver.indexOf(" "));
	browser.ver = parseFloat(browser.ver);
	browser.os = window.navigator.platform;
	
	// center main frame vertically in page if there's room
	function positionMainFrame() {
		var oBody = document.getElementsByTagName("body")[0];
		var oMain = document.getElementById("mainFrame");
		var winHeight = oBody.clientHeight;
		var diff = winHeight - parseInt(oMain.offsetHeight);
		if (diff > 0) oMain.style.marginTop = Math.floor(diff / 4);
		else if(oMain.style.marginTop != 0) oMain.style.marginTop = 0;
	}
	window.onresize = positionMainFrame;
	
	// gets a reference to the xml data island and to the frame its content will target
	function setXML() {
		setXML.xmlRef = document.getElementById("xmlData");
		setXML.targetRef = document.getElementById("bodyFrame");
		if(setXML.xmlRef.readyState == "complete") setXML.xmlRef = setXML.xmlRef.XMLDocument.documentElement;
		else {
			window.setTimeout("setXML()", 1000);
			return;
		}
		if(setXML.xmlRef == null) window.alert("Error!\nfailed to load XML");
		if(setXML.targetRef == null) window.alert("Error!\nfailed establish a target frame for XML output");
	}
	setXML.xmlRef;
	setXML.targetRef;
	
	// loads content into bodyFrame
	function goToPage(pageId) {
		var pageRef = gebi(setXML.xmlRef, pageId);
		setXML.targetRef.innerHTML = pageRef.xml;
		goToPage.history.push(pageId);
	}
	goToPage.history = new Array();
	goToPage.goBack = function() {
		if (goToPage.history.length < 2) return;                 
		var currentId = goToPage.history.pop();
		var pageId = goToPage.history.pop();
		goToPage(pageId);
	}
	
	// gebi (get element by id)
	function gebi(node, strID) {
		var nodeList = node.childNodes;
		for (var i = 0; i < nodeList.length; i++) if (nodeList[i].nodeType == 1 && nodeList[i].getAttribute("id") == strID) return nodeList[i];	
		window.alert("node id = '" + strID + "' not found");
		return null;
	}
	
	// script to run once window is loaded
	window.onload = function() {
		positionMainFrame();
		setXML();
	}
	