var infobox_ns = (document.layers); 
var infobox_moz = (window.sidebar);
var infobox_ie = (document.all);

var skn;
if(infobox_ns) skn = document.infolayer;
if(infobox_moz) skn = document.getElementById("infolayer").style;
if(infobox_ie) skn = infolayer.style;


if (infobox_ns) document.captureEvents(Event.MOUSEMOVE);
if (infobox_moz) document.addEventListener("mousemove",get_mouse,true);
if(infobox_ns || infobox_ie) document.onmousemove = get_mouse;

function pop(title,infoText) 
{

var content ="<TABLE WIDTH=200 BORDER=0 CELLPADDING=1 CELLSPACING=0 BGCOLOR=#336699><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD><CENTER><FONT FACE='ARIAL' COLOR=#FFFFFF SIZE=2><B>" + title + "</B></FONT></CENTER></TD></TR></TABLE><TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 BGCOLOR='#FFFFFF'><TR><TD><FONT COLOR=#000000 SIZE=1 face=arial><CENTER>"+infoText+"</TD></TR></TABLE></TD></TR></TABLE>";

  if (infobox_ns) 
  { 
          skn.document.write(content); 	 
	  skn.visibility = "visible";
  }
  else if(infobox_moz)
  {
	document.getElementById("infolayer").innerHTML=content;
        skn.visibility="visible";
     
  }
  else if (infobox_ie) 
  {
	  document.all("infolayer").innerHTML = content;
	  skn.visibility = "visible";  
  }
}



function createRequest()
{
	// branch for native XMLHttpRequest object
    if(window.XMLHttpRequest) {
    	try {
			//alert('withing if xmlhttpreq');
			//netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
			//alert('set sec priv');
			request = new XMLHttpRequest();
			//alert('created firefox req');
        } catch(e) {
			request = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	request = new ActiveXObject("Msxml2.XMLHTTP");
			//alert('created ie req: ' + request);
      	} catch(e) {
        	try {
          		request = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		request = false;
        	}
		}
		
    }
	//alert('request: ' + request);
	return request;
}

var request;

function showInfoBox(key)
{
	request = createRequest();
	//alert('showInfoBox called: ' + request);
	var url = '/developer/glossary/' + key + '.xml';
	if(request)
	{
		request.onreadystatechange = processGlossary;
		//alert('url: ' + url);
		request.open("GET", url, true);
		request.send("");
	
	}

}

//return handler
function processGlossary()
{
	//alert('processGlossary called ' + request.readyState);
	if(request.readyState == 4)
	{
		//alert('status: ' + request.status);
		if(request.status == 200)
		{
			//alert('res text' + request.responseText);
			var dom = request.responseXML.documentElement;
			//alert('dom: ' + dom);
			var title = dom.getElementsByTagName('title')[0].firstChild.data;			
			var desc = dom.getElementsByTagName('description')[0].getElementsByTagName('p')[0].xml;
			pop(title,desc);
			//alert(title + '=' + desc);
		}
	}
}

function get_mouse(e) 
{
	var x;
	var y;
	
	if(infobox_ns || infobox_moz) x = e.pageX;
        if(infobox_ie) x = event.x+document.body.scrollLeft;

        if(infobox_ns || infobox_moz) y = e.pageY;
 	if(infobox_ie) y = event.y+document.body.scrollTop;	

	skn.left = x - 60 + 8*Math.random();
        skn.top  = y+20 + 8*Math.random();
}

function kill() 
{
  skn.visibility = "hidden";
}