var mousey = 0;
var mousex = 0;
var mouseOverY = 0;
var mouseOverX = 0;


function init()
{
  document.onmousemove = getMouseXY; // update(event) implied on NS, update(null) implied on IE
  getMouseXY();
}

function highlight(x) {
	getObj(x + "H").className = "vis";
	getObj(x).className = "notVis";
}

function unHighlight(x) {
	getObj(x + "H").className = "notVis";
	getObj(x).className = "vis";
}

function getObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
// FORM FUNCTIONS *********************************************************
function verify() {
	e = "";
	if ( getObj("userName").value == "") { e += "- Name must be supplied\n"; }
	if (getObj("message").value == "") { e+= "- Message must be supplied\n"; }
	if ( !isEmail(getObj("userEmail")) ) { e+= "- A properly formatted email address must be supplied."; }
	if (e != "") { alert ("The following errors occurred:\n\n" + e); return false;}
	else { return true; }
}
function isEmail(x) {
	mail_at = x.value.indexOf("@");
	mail_dot = x.value.lastIndexOf(".");
	if( mail_at < 2 || mail_dot < 4 || mail_dot < (mail_at + 2) ) { return false; }
	else { return true; }
}
// MENU FUNCTIONS *********************************************************

function showSub(x) {
	if(x == "subMenuSolutions") { getObj("subMenuResources").className = "subMenuHidden"; }
	if(x == "subMenuResources") { getObj("subMenuSolutions").className = "subMenuHidden"; }
	//hideSubMenus();
	getObj(x).className = "subMenuShow";
	mouseOverY = mousey;
	mouseOverX = mousex;
}
function hideSub(x) {
	
	if (mousey >= mouseOverY) { return false; }
	else {
		getObj(x).className = "subMenuHidden";
	}
}
function hideSubMenus() {
	thisPage = location.href;
	//alert(thisPage.indexOf("Solutions"));
	if ( (thisPage.indexOf("solutions") > 0) || (thisPage.indexOf("Solutions") > 0)) { getObj("subMenuSolutions").className = "subMenuShow"; }
	if ( (thisPage.indexOf("resources") > 0 ) || (thisPage.indexOf("Resources") > 0)) { getObj("subMenuResources").className = "subMenuShow"; }
	if ( (thisPage.indexOf("solutions") == -1 ) && (thisPage.indexOf("Solutions") == -1)) { getObj("subMenuSolutions").className = "subMenuHidden"; }
	if ( (thisPage.indexOf("resources") == -1 ) && (thisPage.indexOf("Resources") == -1)) { getObj("subMenuResources").className = "subMenuHidden"; }
}

function hideMenu2(x) {
	getObj(x).style.display = "none";
}
// GET MOUSE POS **********************************************************
function getMouseXY(e) // works on IE6,FF,Moz,Opera7
{ 
apy = getAnchorPosition("menuAnchor").y;
apx = getAnchorPosition("menuAnchor").x;
  if (!e) e = window.event; // works on IE, but not NS (we rely on NS passing us the event)

  if (e)
  { 
    if (e.pageX || e.pageY)
    { // this doesn't work on IE6!! (works on FF,Moz,Opera7)
      mousex = e.pageX;
      mousey = e.pageY;
      algor = '[e.pageX]';
      if (e.clientX || e.clientY) algor += ' [e.clientX] '
    }
    else if (e.clientX || e.clientY)
    { // works on IE6,FF,Moz,Opera7
      mousex = e.clientX + document.body.scrollLeft;
      mousey = e.clientY + document.body.scrollTop;
      algor = '[e.clientX]';
      if (e.pageX || e.pageY) algor += ' [e.pageX] '
    }
  }
  if ( (mousey > (apy +40)) || (mousey < (apy-3)) || (mousex > (apx+340)) || (mousex < (apx-10))   ) 
  { hideSubMenus(); }
}
// GET ANCHOR POS ***********************************************************
function getAnchorPosition(anchorname) {
	// This function will return an Object with x and y properties
	var useWindow=false;
	var coordinates=new Object();
	var x=0,y=0;
	// Browser capability sniffing
	var use_gebi=false, use_css=false, use_layers=false;
	if (document.getElementById) { use_gebi=true; }
	else if (document.all) { use_css=true; }
	else if (document.layers) { use_layers=true; }
	// Logic to find position
 	if (use_gebi && document.all) {
		x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
		y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
		}
	else if (use_gebi) {
		var o=document.getElementById(anchorname);
		x=AnchorPosition_getPageOffsetLeft(o);
		y=AnchorPosition_getPageOffsetTop(o);
		}
 	else if (use_css) {
		x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
		y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
		}
	else if (use_layers) {
		var found=0;
		for (var i=0; i<document.anchors.length; i++) {
			if (document.anchors[i].name==anchorname) { found=1; break; }
			}
		if (found==0) {
			coordinates.x=0; coordinates.y=0; return coordinates;
			}
		x=document.anchors[i].x;
		y=document.anchors[i].y;
		}
	else {
		coordinates.x=0; coordinates.y=0; return coordinates;
		}
	coordinates.x=x;
	coordinates.y=y;
	return coordinates;
	}
// getAnchorWindowPosition(anchorname)
//   This function returns an object having .x and .y properties which are the coordinates
//   of the named anchor, relative to the window
function getAnchorWindowPosition(anchorname) {
	var coordinates=getAnchorPosition(anchorname);
	var x=0;
	var y=0;
	if (document.getElementById) {
		if (isNaN(window.screenX)) {
			x=coordinates.x-document.body.scrollLeft+window.screenLeft;
			y=coordinates.y-document.body.scrollTop+window.screenTop;
			}
		else {
			x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;
			y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset;
			}
		}
	else if (document.all) {
		x=coordinates.x-document.body.scrollLeft+window.screenLeft;
		y=coordinates.y-document.body.scrollTop+window.screenTop;
		}
	else if (document.layers) {
		x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;
		y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset;
		}
	coordinates.x=x;
	coordinates.y=y;
	return coordinates;
	}

// Functions for IE to get position of an object
function AnchorPosition_getPageOffsetLeft (el) {
	var ol=el.offsetLeft;
	while ((el=el.offsetParent) != null) { ol += el.offsetLeft; }
	return ol;
	}
function AnchorPosition_getWindowOffsetLeft (el) {
	return AnchorPosition_getPageOffsetLeft(el)-document.body.scrollLeft;
	}	
function AnchorPosition_getPageOffsetTop (el) {
	var ot=el.offsetTop;
	while((el=el.offsetParent) != null) { ot += el.offsetTop; }
	return ot;
	}
function AnchorPosition_getWindowOffsetTop (el) {
	return AnchorPosition_getPageOffsetTop(el)-document.body.scrollTop;
	}