// MASTHEAD MENUS - v.1.0.2
// COPYRIGHT SUN MICROSYSTEMS INC.
// QUESTIONS? webdesign -at- sun.com

// init values
flym = new Array();
posi = new Array();
nlnk = new Array();
glnk = new Array();
mitm = new Array();
mlnk = new Array();
toplink = new Array();
glinkstate = new Array();
glinknull = 'url('+cssdir+'/a2_menu_off.gif)';
glinkhover = "#ED9BF9";	// main topic when active
glinkhighl = "#FD9B09";	// main topic when in that section
glinkdeflt = "#FFFFFF";	// main topic default
mitembgD = "#5CB1EC";	// menu bg default
mitembgH = "#0086E1";	// menu bg hover
mitemlnD = "#A3B8CB";	// menu line default
mitemlnH = "#A14D00";	// menu line hover

grbgH = "#0086E1";	// menu bg default

mwidth = mwidth+20;

omenu = null;
oitem = null;
ready = false;
clinks = false;
clkd = false;
thisdoc = document;
presetlink = 0;
ydif = 0;
xdif = 0;

function closefly(){
	if (is.docom && omenu != null && ready){
		clrtopic(omenu, null);
		flym[omenu].style.visibility = "hidden";
		flym[0].style.visibility = "hidden";
		omenu = null;
		colormenuitem(null);
	}
}


//open flyout
function popfly(flyname){
	if (is.docom && ready){
		if (omenu != null && omenu != flyname){
			closefly();
		}else if(omenu != flyname){
			if (is.op7){
				moveit(flyname,flyname,(xdif),(ydif + 0));
				moveit(0,1,(xdif + 0),(ydif + 0));
			}else if (is.op){
				moveit(flyname,flyname,2,(ydif + 0));
				moveit(0,1,(xdif + 0),(ydif + 0));
			}else if (is.iemac){
				moveit(flyname,flyname,-8,(ydif ));
				moveit(0,1,(xdif + -8),(ydif ));
			}
			clrtopic(flyname,true);
			flym[flyname].style.visibility = "visible";
			flym[0].style.visibility = "visible";
			omenu = flyname;
		}
	}
}

// close fly

// color masthead bgs
function clrtopic(cid,clrval){
	if (clrval){
		if (clinks){
			nlnk[cid].style.backgroundColor = mitembgD;
		}
		nlnk[cid].style.backgroundColor=grbgH; //textDecoration = "underline";

	}else{
		if (clinks){
			nlnk[cid].style.backgroundColor = "transparent";
		}
		nlnk[cid].style.backgroundColor = glinkstate[cid]; //textDecoration = glinkstate[cid];
	}
}

// color menu item
function colormenuitem(dc){
	if (oitem){
		var whichlink = oitem.split('.'); 
		mitm[oitem].style.backgroundColor =  mitembgD;
		mlnk[oitem].style.textDecoration = "none";
	}
	if (dc){
		mitm[dc].style.backgroundColor = mitembgH;
//		mlnk[dc].style.textDecoration = "underline";
	}
	oitem = dc;
}

// position div
function moveit(flyname,origin,xoff,yoff){

	if (document.images['ip'+origin].x && !is.safari) {
		var plft = thisdoc.images['ip'+origin].x;
		var ptop = thisdoc.images['ip'+origin].y;
	}else if (posi[origin].offsetLeft >= 0){
		var plft = posi[origin].offsetLeft;
		var ptop = posi[origin].offsetTop;
		var parr = posi[origin].offsetParent;
		while(parr != null){
			plft = plft + parr.offsetLeft;
			ptop = ptop + parr.offsetTop;
			parr = parr.offsetParent;
		}
	}
	plft = plft + xoff;
	ptop = ptop + yoff;
	flym[flyname].style.top=ptop+'px';
	if (flyname != 0){
		flym[flyname].style.left=plft+'px';
//		flym[flyname].style.zIndex=2;
	}
//	else
//		flym[flyname].style.zIndex=1;
}

//print divs
function printmenus(){

	if (is.docom){
		var clickaction = "";
		var flymenus = "";
		var mtwidth = mwidth + 20;
		var mtdwidth = mtwidth - 16;
		var x = 1;
		var xx = 1;
		while (navmenu[x+'.1']){
			var thismenu =  "";
			var topiclink = navmenu[x+'.0'].split('|'); 

			while (navmenu[x+'.'+xx]){ 
				var itemnlink = navmenu[x+'.'+xx].split('|'); 
				var ml = (xx != 1)? "s": "1";
				
				//omniture onclick code
				if(window.s_account){
					var clickaction = "if(!clkd){s_linkType='o';s_linkName='Masthead Menu: "+topiclink[0]+"';s_prop15=s_pageName;s_prop16='"+itemnlink[0]+"';s_lnk=s_co(this);s_gs(s_account);clkd=true;}";
					var fullclick = ' onclick="'+clickaction+'"';
				}else{
					var clickaction = "";
					var fullclick = "";
				}

				thismenu = thismenu+'<TR><TD width="1" bgcolor="'+mitembgH+'"><img src="'+imdir+'\/1x1.gif" alt="" height="18" width="1" border="0"></TD><TD class="pmenu_text" width="100%" onmouseover="colormenuitem(\''+x+'.'+xx+'\');" id="'+x+'.'+xx+'" onclick="'+clickaction+'document.location = \''+itemnlink[1]+'\'"><a href="'+itemnlink[1]+'" class="pmenu" id="mlink'+x+'.'+xx+'" '+fullclick+'>'+itemnlink[0]+'<\/a><\/td></TR>\n';
				xx++;
			}


			flymenus = flymenus+'\n<div id="flymenu'+x+'" style="position:absolute;visibility:hidden;z-index:30;top:1;"><table cellspacing="0" style="width:'+mtwidth+'px;border:1px;border-style:solid;border-color:#5388B1;" onmouseover="popfly('+x+');">'+thismenu+'</table></div>';
			mitm[x] = xx;
			x++;
			xx = 1;
		}
	
	document.write(flymenus+'\n<div id="offdiv" style="position:absolute;width:98%;visibility:hidden;z-index:1;top:25;" onmouseover="javascript:closefly();"><img src="'+imdir+'\/1x1.gif" alt="" height="500" width="1" border="0"><\/div>\n');
	}
}

//prep menus and highlight section
function prepmenus(){
	if (is.docom)
	{
		toplink[0] = null;
		// determine section from breadcrumb or URL
		if (thisdoc.getElementById('breadcrumb') && presetlink == 0)
		{
			aa = thisdoc.getElementById('breadcrumb').getElementsByTagName('a');
			if(aa[1]){
				mktoplink(aa[1]);
			}
		}
		else if (presetlink == 0)
		{
			var allt = document.all? document.all : document.getElementsByTagName("div");
			for (var i=0;i<allt.length;i++)
			{
				if (allt[i].className=="breadcrumb")
				{
					aa = allt[i].getElementsByTagName('a');
					if(aa[1])
					{
						mktoplink(aa[1]);
					}
					break;
				}
			}
			if (!toplink[0])
			{
				mktoplink(document.location);
			}
		}

		if(thisdoc.getElementById('glink1') && thisdoc.getElementById('flymenu1'))
		{
			//prep menus & arrays
			var x = 1;
			while (navmenu[x+'.1'])
			{
				glnk[x] = thisdoc.getElementById('glink'+x);
				nlnk[x] = thisdoc.getElementById('navlink'+x);
				flym[x] = thisdoc.getElementById('flymenu'+x);
				flym[x].style.visibility = "hidden";
				posi[x] = thisdoc.getElementById('ip'+x);
				for (var i=0;i<=mitm[x];i++){
					mitm[x+'.'+i] = thisdoc.getElementById(x+'.'+i);		
					mlnk[x+'.'+i] = thisdoc.getElementById('mlink'+x+'.'+i);		
				}
				moveit(x,x,(xdif + 0),(ydif));
				if (presetlink == 0){
					ttlink = navmenu[x+'.0'].split('|');
					if (ttlink[1].indexOf("/index\.") > -1){
						ttlink = /(\/.*\/)index\..*/.exec(ttlink[1]);
					}
					hoverhighlight(x,ttlink[1]);
				}else{
					hoverhighlight(x,presetlink);
				}
				x++;

			}
			flym[0] = thisdoc.getElementById('offdiv');
			moveit(0,1,0,(ydif+7));
			ready = true;
		}
	}
}

//reposition divs
window.onresize = movin;
function movin(){
	if (is.docom && ready){
		moveit(0,1,0,(ydif + 7));
		var x = 1;
		while (navmenu[x+'.1']){
			moveit(x,x,(xdif + 0),(ydif + 2));
			x++;
		}
	}
}

// mk toplink
function mktoplink(inger){
		toplink[0] = inger;
		tplink = /\w+:\/\/[^\/]+(\/.*)/.exec(inger);
		toplink[1] = tplink[1];
	if (toplink[1].indexOf("/index\.") > -1){
		tplink = /(\/?.*\/)index\..*/.exec(tplink[1]);
		toplink[2] = tplink[1];
	}else{
		toplink[2] = "";
	}
}

//set hover arrays & highlight 
function hoverhighlight(thisglink,thisgtitle){
//	glinkstate[thisglink] = "none";
	glinkstate[thisglink] = nlnk[thisglink].style.backgroundColor;
	var x = 0;
	if (toplink[x]){
		while(toplink[x]){
			if (thisgtitle == toplink[x]){
//				glnk[thisglink].style.textDecoration = "underline";
//				glinkstate[thisglink] = "underline";
				break;
			}
			x++;	
		}
	}else if (thisgtitle == thisglink){
//		glnk[thisglink].style.backgroundColor= //textDecoration = "underline";
		glinkstate[thisglink] = nlnk[thisglink].style.backgroundColor; //"underline";
	}
}
