// array of menu layer id's
var allItems = new Array("contact", "advertisers", "boardhosts");

// x-postions of the menu items 
var absLeft = new Array(117, 117, 117);


var msieMac = navigator.appVersion.toLowerCase();
var nn4 = (document.layers)?1:0
var dom = (document.getElementById && msieMac.indexOf("msie 5.0; mac") == -1)?1:0
var ie4 = (!document.getElementById && document.all)?1:0
var mac = (msieMac.indexOf("mac") != -1)?1:0
var ie5mac = (msieMac.indexOf("msie 5.0; mac") != -1)?1:0
var nn = (navigator.appName.toLowerCase() == "netscape")?1:0

var lyr = null;  			// init the returned DOM tree path variable  
var nav_width = 1; 	   		// height of nav layers
var nav_height = 1;	   		// width of nav layers
var nav_zindex = 100;      		// z-index of nav layers
var nav_vis = "hidden";                 // visibility of nav layers
var nav_opacity = 92;			// opacity filter setting for IE
var bg_over = "#1A8ABC";    		// TD bgColor for mouseover
var bg_out = "#484848";    		// TD bgColor for mouseout and default TD bgColor
var start_table, end_table;		// start & end table outline
var curs = nn ? "pointer":"hand"        // set the cursor style
var fntsize = (nn4 && !mac) ? 11:10 	// set font size of menu items text
var m_locked = false;			// lockout MOUSEUP to turn off menu
var m_repos = false;			// toggle dynamic centering of menu, set to false to turn off
var min_w = 750;			// used for m_repos, indicates min window inner size without scrolling on browsers
var building = 0;			// which menu layer are we building

// images to swap for signin layer
var signinArr = new Array()
signinArr[0] = new Image(); signinArr[0].src = "image-en/images/template/btn_sign_in.gif";
signinArr[1] = new Image(); signinArr[1].src = "image-en/images/template/btn_close.gif";
var trackSrc = "visible"; // track visibility
var trackPos = true;	  // workaround to reposition the 'signin' layer on the first click

// define outer table structure for each menu
if (nn4) {
	start_table = "<table border='0' cellspacing='0' cellpadding='0'><tr><td bgcolor='#FFFFFF'>";
	start_table += "<table width='100%' height='100%' border='0' cellspacing='1' cellpadding='0'>";
	end_table   = "</table></td></tr></table>";
} else {
	start_table = "<table border='0' cellspacing='1' cellpadding='0' bgcolor='#FFFFFF'>";
	if (ie5mac) end_table   = "</table></td></tr></table>";
	else end_table = "</table>";
}

// ----- END GLOBAL VARIABLES

// DOM capatability code for easy referencing of layers
function lyrobj(this_lyr) 
{
	if ((ie4 || ie5mac) && document.all[this_lyr]) lyr = document.all[this_lyr].style; 
	else if (dom && document.getElementById(this_lyr)) lyr = document.getElementById(this_lyr).style;
	else if (nn4 && document.layers[this_lyr]) lyr = document.layers[this_lyr];
	return lyr;	
}

// returns the top px position of nav layers
// and 'signin' layer
function nav_top(default_pos)
{
	if (nn4 && !mac) nav_t = default_pos + 2;
	else if (ie4 && mac) nav_t = default_pos + 12;
	else if (!mac && nn && (navigator.userAgent.indexOf("/6.1") != -1)) nav_t = default_pos + 6;
	else if (mac && nn && (navigator.userAgent.indexOf("/6.1") != -1)) nav_t = default_pos + 1;
	else nav_t = default_pos;
	return nav_t;
}	

// show a nav iten section
// give opacity or DOM compliant browsers
function show_lyr(this_lyr, hide_all) 
{
	if (hide_all) {
		for (i = 0; i < allItems.length; i++) {
			hide_lyr(allItems[i]);
		}
	}	
	if (this_lyr != "") {
		lyrobj(this_lyr).visibility = "visible";
		if (dom) lyrobj(this_lyr).filter = "Alpha(Opacity=" + nav_opacity + ",enabled=1)";
	}
	set_lock(1);
}


// hide a nav item section
// reset opacity (workaround for switching opacities)
function hide_lyr(this_lyr) 
{
	if (dom) lyrobj(this_lyr).filter = "";
	lyrobj(this_lyr).visibility = "hidden";	
}

// swap and visibility for 'SIGN ME IN' to 'CLOSE' button
function signin_swap() 
{
	// Special repos of layer, 2px down
	// for nn4 layout bug. Only occurs the first time.
	if (trackPos) {
		lyrobj("signin").top = nav_top(32);
	}
	lyrobj("signin").visibility = trackSrc;
	if (trackSrc == "hidden") {
		var useImg = 0;
		var vis = "visible";
	} else {
		var useImg = 1;
		var vis = "hidden";
	}
	document.images["signinSwap"].src = signinArr[useImg].src;
	trackSrc = vis;
	trackPos = false;	
}

// lock navs on or off
function set_lock(num) 
{
	m_locked = (num == 1) ? true : false
}

// turn navs off
function nav_off(e) 
{
	if (m_locked) return;
	else {
		if ((nn && e.which == 1)||
		    (mac && event.button == 0)||
		    (event.button == 1)) {
			for (i = 0; i < allItems.length; i++) hide_lyr(allItems[i]);
		}
	}	
}


// rollover highlighting
function hi(outer_id, inner_id, this_color) 
{
	var use_color = (this_color == 0) ? bg_out:bg_over
	if (nn4) {
		document.layers[outer_id].document.layers[outer_id+inner_id].bgColor = use_color;
	} else {
		bg_td = document.all ? document.all[outer_id+inner_id]:document.getElementById(outer_id+inner_id)
		bg_td.bgColor = use_color;
	}
}


// create a new layer and fill it
function make_lyr(this_lyr, l, text) 
{
    	if (nn4) {
		document.layers[this_lyr]            = new Layer(nav_width);
		document.layers[this_lyr].left       = l;
		document.layers[this_lyr].top        = nav_top(32);
		document.layers[this_lyr].height     = nav_height;
		document.layers[this_lyr].zIndex     = nav_zindex;
		document.layers[this_lyr].visibility = nav_vis;
		document.layers[this_lyr].document.open();
		document.layers[this_lyr].document.write(text);
      		document.layers[this_lyr].document.close(); 
		
	} else if (ie4) {
		new_lyr  = "<DIV ID="+this_lyr;
		new_lyr += " STYLE='position:absolute";
		new_lyr += "; left:" + l;
		new_lyr += "; top:" + nav_top(32);
		new_lyr += "; width:" + nav_width;
		new_lyr += "; height:" + nav_height;
		new_lyr += "; visibility:" + nav_vis;
		new_lyr += "; filter:Alpha(Opacity=" + nav_opacity + ", FinishOpacity=100)";
		new_lyr += "; z-index=" + nav_zindex + "'>";
		new_lyr += text;		
		new_lyr += "</DIV>"
		document.body.insertAdjacentHTML("BeforeEnd",new_lyr);
	
	} else if (dom || ie5mac) {
		new_lyr = document.createElement('DIV');
		new_lyr.setAttribute("id",this_lyr);
		document.body.appendChild(new_lyr);
		o_lyr = document.getElementById(this_lyr);
		o_lyr.style.position   = "absolute";
		o_lyr.style.left       = l;
		o_lyr.style.top        = nav_top(165);
		o_lyr.style.height     = nav_height;
		o_lyr.style.width      = nav_width;
		o_lyr.style.zIndex     = nav_zindex;
		o_lyr.style.visibility = nav_vis;
		o_lyr.innerHTML        = text;
	}
	generate_nav();
}


// create the new layers filler
function generate_items(section) 
{
	var items_list = start_table;
	
	for (i = 0; i < navItems[section].length; i++) {
		this_link_text = String(navItems[section][i]).split("|");
		new_link = this_link_text[0];
		new_text = this_link_text[1];
		
		if (nn4) {
			items_list += "<tr><td nowrap bgcolor='" + bg_out + "'><ilayer width='100%' ";
			items_list += "id='" + (section+i) + "'> ";
			items_list += "<a class='nncell' href=javascript:go('" + new_link + "') ";
			items_list += "onmouseover=hi('" + section + "'," + i + "," + 1 + ") ";
			items_list += "onmouseout=hi('" + section + "'," + i + "," + 0 + ")>";
			items_list += "<SPACER TYPE=BLOCK HEIGHT='14' ALIGN='TOP'>";
			items_list += "&nbsp;" + new_text + "&nbsp;<SPACER TYPE=BLOCK HEIGHT='14' ALIGN='BOTTOM'></a></ilayer></td></tr>";
		
		} else {
			items_list += "<tr><td valign='top' height='10' class='cell' nowrap bgcolor='" + bg_out + "' ";
			items_list += "id='" + (section+i) + "' ";
			items_list += "onmouseover=hi('" + section + "'," + i + ",'" + 1 + "') ";
			items_list += "onmouseout=hi('" + section + "'," + i + ",'" + 0 + "') ";
			items_list += "onclick=go('" + new_link + "')>";
			items_list += "&nbsp;" + new_text + "&nbsp;</td></tr>";	
		}
	}	
	items_list += end_table;
	return items_list;
	//alert(items_list);  // DEBUG UTIL TO SEE OUTPUT
}


function generate_nav()
{	
	var is_built = false;
	var queued = allItems[building];
	
	if ((ie4 || ie5mac) && document.all[queued]) {
		is_built = true; 
	} 
	else if (dom && document.getElementById(queued)) {
		is_built = true;
	}	
	else if (nn4 && document.layers[queued]) {
		is_built = true;
	}	

	if (is_built) {
		building += 1;
	}	
	
	if (building == (allItems.length)) {
		lyrobj("hidemenu").visibility = "hidden";
		return;		
	}
	else {
		make_lyr(allItems[building], inner_size(absLeft[building]), generate_items(allItems[building]));	
	}

}


// go to URL or exec JS
// also does _blank windows, querystring or "#" targets
function go(here) 
{
	if (here.indexOf("JS") != -1) {
		exec_js = String(here).split("-");
		eval(exec_js[1]+"()");	
	} else {
		if (here.indexOf("-blank") != -1) {
			exec_blank = String(here).split("-blank");
			in_blank_win(exec_blank[0]);
		} else {
			window.location.href = here;
		}	
	}	
}


// open a URL in a blank window
function in_blank_win(loc) 
{
	var props = "width=640,height=480,left=0,top=0,resizable=1,toolbar=1,scrollbars=1,menubar=1,location=1,status=1";
	open(loc,"",props);
}


// caculate position of nav items for dynamic centering
// and nn4 reesize fix
function inner_size(abs_left) 
{
	if (!m_repos) repos = abs_left;
	else {
		if (nn) {
			if ((window.innerWidth > min_w) && (!dom)) inner_w = (window.innerWidth/2) - 9;
			else inner_w = window.innerWidth/2;
		}	
  		else inner_w = document.body.clientWidth/2;
  	
  		if ((inner_w * 2) < min_w) repos = (min_w / 2) - abs_left;
  		else repos = inner_w - abs_left;
  	}
  	return repos;
}


// nn4 resize event handler
function handle_resize() 
{
	if (m_repos && !nn4) {
		for (i = 0; i < allItems.length; i++) {
			repos_at = inner_size(absLeft[i]);
			lyrobj(allItems[i]).left = parseInt(repos_at);
		}	
	}	
	if (nn4) window.location.href = window.location.href;
}


// browser error event handler
function handle_errs() 
{
	return true; 
}

// capture events to turn nav's off
// and fix CSS layout on NN4 resize
// and trap errors
if (navigator.appName.toLowerCase() == "netscape") 
{
	document.captureEvents(Event.MOUSEUP);
	window.captureEvents(Event.RESIZE);
}
document.onmouseup = nav_off;
window.onresize = handle_resize;
window.onerror = handle_errs;

// onload handler
//window.onload = generate_nav;


// ie5 on Mac special reload
if (ie5mac) window.onunload = window.location.reload();

// document write styles for the nav
document.open();
document.write("<style>");
document.write(".nncell{text-decoration:none; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:" +fntsize+ "px; color:#FFF}");
document.write(".cell{  text-decoration:none; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:" +fntsize+ "px; color:#FFF; border: 1px #000 solid; padding:2px 0px 2px 0px; cursor:" +curs+ "}");
document.write("<\/style>");
document.close();
