
function initPage(pageName){

	var keywords
	var sectionID
	var channelID
	var parentID
	var objDoc
	var obj
	var args = initPage.arguments
	
	initBrowserFlags()
	
	keywords = queryString('keyword');
	
	if (keywords && document.search) {
		keywords = keywords.replace('+', ' ');
		document.search.keyword.focus();
		document.search.keyword.value = keywords;
	}
		
	sectionID = queryString("sectionID")
	
	if (sectionID == null || sectionID == '')
		sectionID = queryString("channelID")
		
	parentID = getParentID(sectionID)
	channelID = getTopSectionID(sectionID)
	
	s_channelID = channelID
	s_sectionID = sectionID
			
	setCurTab(channelID)		
	setSectionHeader(sectionID)
	
	if (pageName!= 'plans') {
		
		
		if (sectionID == '173' || sectionID == '343') {
			buildLeftMenu(sectionID);
		}
		else {
			if(parentID > 0) {
				buildLeftMenu(parentID);
			}
			else {
				if (channelID > 0)
					buildLeftMenu(channelID);
			}
		}
	}
		
	setCurMenuOption(channelID, sectionID)
	
	// Set cookies for pop-up survey
	getSurveyCookies()	
}

function gotoChildURL(src){

	if(event.srcElement.tagName == 'TD') {
	
		var obj = src.children.tags('A')[0]
		
		if (obj)
			obj.click()
	}
}

function hideMenus(){
	var args = hideMenus.arguments
	var menuName
	var objSelect, objImage
	var activeMenuID
	
	activeMenuID = args[0]
		
	if(! s_isNN6)				
		toggleSelects(true)
	
	for (i=0; i < args.length; i++) {
		
		menuName = 'mnuItems' + args[i]		
		obj = getObject(menuName)		
		setVisibility (obj, false)
	}
}

function showMenus(){
	var args = showMenus.arguments
	var menuName
	var objSelect
	var activeMenuID
	
	activeMenuID = args[0]
	
	if(! s_isNN6){		
				
		toggleMultiSelects(false)
		toggleSelects(false)				
	}
	
	for (i=0; i < args.length; i++) {
		menuName = 'mnuItems' + args[i]
				
		obj = getObject(menuName)
		setVisibility (obj, true)
	}
}

function setCurMenuOption(channelID, sectionID){
	
	if (channelID != sectionID)
		swapClass('mnuCell' + sectionID, 'navTabHL')
		
	swapClass('mnuCellLeft' + sectionID, 'navTabHLLeft')
}

function setCurTab(channelID){

	swapClass('mnuCell' + channelID, 'headerTabCur')
}

function hlightOption(sectionID, enabled, typeCode){

	if (sectionID == s_sectionID)
		return
		
	var id = 'mnuCell'
	
	if (typeCode == 2)
		id += 'Left'
		
	id += sectionID
	
	if (enabled){
		
		if (typeCode == 2)
			swapClass(id, 'navTabHLLeft')			
		else
			swapClass(id, 'navTabHL')	
	}
	else {
		
		if (typeCode == 2)
			swapClass(id, 'navTabSectionLeft')			
		else
			swapClass(id, 'navTabSection')			
	}
}

function hlightTab(channelID, enabled){
		
	var id = 'mnuCell' + channelID
				
	if (enabled)
		swapClass(id, 'headerTabHL')
	else {
	
		if (channelID != s_channelID)
			swapClass(id, 'headerTabBG')
		else
			swapClass(id, 'headerTabCur')
	}
}

function getParentID(sectionID){

	var obj
	var parentID
	
	obj = getObject('mnuText' + sectionID)				
	obj = getParentTag(obj, 'DIV', 20)
		
	if(obj)		
		parentID = stripAlphaChars(obj.id)
	else
		parentID = 0
			
	return parentID
}

function getTopSectionID(sectionID){

	var prevID
	
	if(sectionID < 1)
		return 0
		
	while(sectionID > 0){
		
		prevID = sectionID
		sectionID = getParentID(sectionID)		
	}
	return prevID
}

function setSectionHeader(sectionID){
	
	if (!sectionID || sectionID < 1)
		return false
		
	var txt = '';
	var obj = getObject('mnuText' + sectionID)
	
	if (obj)
	{
		var txt = obj.innerHTML
	}
	else if(sectionID == 980 || sectionID == 981)
	{
		txt = "Project Gallery";
	}
		
	if(txt != '')
	{	
		obj = getObject('hdrText')
				
		if (obj)
			obj.innerHTML = txt
			
		obj = getObject('hdrDiv')		
		obj.style.display = 'block'
	}
}

function buildLeftMenu(sectionID){
			
	var objMenu
	var html
	var arr
	var id

	if (sectionID < 1)	
		return
	
	arr = getArrayMenuData(sectionID)

	if (arr) {
		
		if (arr[0][1] && arr[0][1] != ''){
			html = '<table width="95%" border="0" cellspacing="0" cellpadding="3" class="navTabBorder">'
			
			for (var i=0; i < arr[0].length; i++){
			
				if(arr[0][i] && arr[0][i] != ''){						
						
					var id = arr[2][i]
					var cellID = 'mnuCellLeft' + id
					var linkID = 'mnuLinkLeft' + id
							
					html += '<tr><td class="navTabSectionLeft" '
					html += 'onMouseover="hlightOption(' + id + ', 1, 2)" '
					html += 'onMouseout="hlightOption(' + id + ', 0, 2)" '
					html += 'onClick="gotoChildURL(this)" '
					html += 'id="' + cellID + '">'
					html += '<a href="' + arr[1][i] + '" '
					html += 'id="' + linkID + '" '
					html += 'title="' + arr[0][i] + '">' + arr[0][i] + '</a>'
					html += '</td></tr>'						
				}
			}
					
			objMenu = getObject('left-menu')
								
			html += '</table><br>'

			objMenu.innerHTML = html
		}
	}
}
	
function getArrayMenuData(sectionID){
	var arrData = new Array(3);
	var obj;
		
	obj = getObject('mnuItems' + sectionID)
	
	if (!obj) {
		return null;
	}
	
	// this is a very brittle function that requires a lot
	// of sanity checks to ensure we are walkng the DOM
	// tree we think we recieved.
	//
	// we must locate the first child table and use it
	// as a reference point.
	var refTable = null;
	var childNodes = obj.childNodes;
	
	if (!childNodes) {
		return null;
	}
	
	for (var i = 0; i < childNodes.length; i++) {
		var node = childNodes[i];
		
		if (node.nodeName.toUpperCase() == "TABLE") {
			refTable = node;
			break;
		}
	}
	
	if (!refTable) {
		return null;
	}
	
	// we must check all TRs belong to out reference point.
	if (refTable.getElementsByTagName) {
		childNodes = refTable.getElementsByTagName("TR");
	}
	else if (document.getElementsByTagName) {
		childNodes = document.getElementsByTagName("TR");
	}
	else if (refTable.all) {
		childNodes = refTable.all.tags("TR");
	}

	var numRows = 0;
	
	for (var i = 0; i < childNodes.length; i++) {
		var node = childNodes[i];

		if (getParentTag(node, "TABLE", 3) == refTable) {
			numRows++;
		}
	}

	arrData[0] = new Array(numRows - 1);
	arrData[1] = new Array(numRows - 1);
	arrData[2] = new Array(numRows - 1);
	
	// collect only the begining data of each valid row
	var j = 0;
				
	for (var i = 0; i < childNodes.length; i++) {
		var node = childNodes[i];
		
		if (getParentTag(node, "TABLE", 3) != refTable) {
			continue;
		}
		
		anchorNode = getChildTag(node, 'A', 5);
		spanNode = getChildTag(anchorNode, 'SPAN', 5);
			
		if (obj){
			arrData[0][j] = spanNode.innerHTML;				
			arrData[1][j] = anchorNode.href;
			arrData[2][j] = stripAlphaChars(spanNode.id);
			
			j++;
		}
	}
	
	return arrData;
}


function body_onunload() {
	
	// determine if we should present the pop-up survey.
	/*
	if (s_surveyhitCt%3==0 && s_surveydTime > 1200000) {
	
		window.open ('http://www.ebuild.com/feedback/survey.asp?websource=3','alert','width=425,height=650,scrollbars=yes')
	}
	*/
}


function cookieVal(cookieName) {
	thisCookie = document.cookie.split("; ")

	for (i=0; i<thisCookie.length; i++) {
		if (cookieName == thisCookie[i].split("=")[0]) {
			return thisCookie[i].split("=")[1]
		}
	}
	return 0
}

function getSurveyCookies() {
	var expireDate
	var surveycTime
	var surveyvDate
	var surveydTime
	
	expireDate = new Date
	expireDate.setMonth(expireDate.getMonth()+6)

	s_surveyhitCt = eval(cookieVal("pageHit3"));
	surveycTime = eval(cookieVal("visitTime"));

	surveyvDate = new Date();
	surveyvTime = surveyvDate.getTime();

	s_surveydTime = surveyvTime - surveycTime;

	document.cookie = "visitTime="+ surveyvTime +";path=/;expires=" + expireDate.toGMTString();
	
	if (s_surveyhitCt<1 || s_surveydTime > 1200000) {	
	
		s_surveyhitCt ++		
		document.cookie = "pageHit3="+ s_surveyhitCt +";path=/;expires=" + expireDate.toGMTString()
	}	
	return 0
}

function seekLayer(objDoc, name){
	var obj
	
	for (var i=0; i < objDoc.layers.length; i++){
		if (objDoc.layers[i].name == name){
			obj = objDoc.layers[i]
			
			//alert('found ' + obj.id)
			
			break
		}
		// dive into nested layers if necessary
		if (objDoc.layers[i].document.layers.length > 0){
			obj = seekLayer(document.layers[i].document, name)
		}
	}
	return obj
}