var is;
if(!layername) {var layername="popuplabel";}

if(!begin) { var begin = new Array(); }
if(!end) { var end = new Array(); }
begin["any"]='<table id="ncp-hover" style="background-color: #eeffff; border: solid black 1px;"><tr><td>';
end["any"]='</td></tr></table>';

if(!popupLabelZIndex) { var popupLabelZIndex = ""; }
var skn;
var yyy;


function initNCP() {
	if(!is) { is = new Is(); }
	
  var popup;
  //document.writeln('<div id="popuplabel" align="center" style="position:absolute; visibility:hidden; width:auto;'+(popupLabelZIndex.length>0 ? (' z-index: '+popupLabelZIndex+';') : '')+'"></div>');
  popup = document.createElement('div');
  popup.id='popuplabel';
  //popup.align='center';
  popup.style.position='absolute';
  popup.style.visibility='hidden';
  popup.style.width='auto';
  if (popupLabelZIndex.length>0) {
    popup.style.zIndex = popupLabelZIndex;
  }
	document.body.appendChild(popup);
	skn=popup.style;
  setNCPEvents();
}



function setNCPEvents() {
	if(is.nav4) {
		document.captureEvents(Event.MOUSEMOVE);
		document.onmousemove=get_mouse;	
	} else  {
		if (is.nav5up) {
			document.addEventListener("mousemove", get_mouse, true);
		} else {
			document.onmousemove=get_mouse;	
		}
		skn.visibility="visible";
		skn.display="none";
	}
}

function Is() {
	this.ver=navigator.appVersion
	this.agent=navigator.userAgent.toLowerCase()
	this.dom=document.getElementById?1:0
	this.opera5=(navigator.userAgent.indexOf("opera")>-1 && document.getElementById)?1:0
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;	
	this.ie5=(this.ver.indexOf("msie 5")>-1 && this.dom && !this.opera5)?1:0; 
	this.ie6=(this.ver.indexOf("msie 6")>-1 && this.dom && !this.opera5)?1:0;
	this.ie=(this.agent.indexOf("msie") != -1)
	this.mac=this.agent.indexOf("max")>-1
	this.nav=((this.agent.indexOf("mozilla")!=-1) && ((this.agent.indexOf("spoofer")==-1) && (this.agent.indexOf("compatible") == -1)))	
	this.nav5up=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
	this.nav4=(document.layers && !this.dom)?1:0;
	return this
}


Xoffset=0;     // modify these values to ...
Yoffset=20;    // change the popup position.
yyy=-1000;
timeoutID = 10;
sideBuffer = 5;	// specifies the minimum amount of space on the sides of the active labels.



function createArray(data) {
	data = data.replace(/\+/g,"%20");
	if(is.nav4) {
		// NS4 does not decode function parameters prior to send
		data = unescape(data);
		data = data.replace(/\+/g,"%20");
	}
	var result = new Array();
	if(data!=null && data.length > 0) {
		var namevaluepairs = data.split("&");
		for(var i=0;i<namevaluepairs.length;i++) {
			var pair = namevaluepairs[i].split("=");
			if(pair.length!=2)
				continue;
			result[i] = unescape(pair[1]);
			result[unescape(pair[0])] = unescape(pair[1]);
		}
	}
	return result;
}

function getNSLayer() {
	outputted = false;
	for (var i=0; i < document.layers.length; i++) {
		if (document.layers[i].name == layername) {
			outputted = true;
			break;
		}
	}
	if (!(outputted)) {
		skn = new Layer(10);
		if(popupLabelZIndex.length>0)
			skn.zIndex = popupLabelZIndex;
		layername = skn.name;
		skn.visibility="hide";
	}
	return skn;
}
	
	
	
var ncpCoords;
function setMouseNCP(evt) {

  evt = (evt) ? evt : window.event;
  ncpCoords = getPositionedEventCoords(evt);

}
	
	

function displayActiveLabel(which, text){
	var content = "";
  setNCPEvents();
	
	content = begin['any']+text.replace(/ /g,"&nbsp;")+end['any'];
  
	yyy=Yoffset;
	if(is.ie) {
		document.all("popuplabel").innerHTML=content;
		skn.display='';
	} else if(is.nav4) {
		skn = getNSLayer();	
		skn.document.write(content);
		skn.document.close();
		skn.visibility="visible";
	} else if(is.nav5up) {
		document.getElementById("popuplabel").innerHTML=content;
		skn.display='';
		skn.visibility="visible";		
	}
  skn.zIndex = 2001;
	window.status = text;
	timeoutID = setTimeout("window.status = unescape('"+escape(text)+"');", 0);	
}

function get_mouse(e) {
var e = (e) ? e : window.event;

	var clientWidth = 0;
	var scrollLeft = 0;
	var scrollTop = 0;
	var cw = 0;
	var rectX = 0;
	if (is.nav4) {
		skn = getNSLayer();
		if(skn.visibility=="hide")
			return;
		cw = skn.document.width;
		rectX = (e.pageX-window.pageXOffset)-cw/2+Xoffset;
		clientWidth = self.innerWidth;
		scrollLeft = self.pageXOffset;
		scrollTop = e.pageY;
	} else if (is.ie) {
		if(skn.display=="none")
			return;
		cw = document.all("popuplabel").scrollWidth;
		rectX = event.clientX-cw/2+Xoffset;
		if (document.documentElement && document.documentElement.clientWidth)
			clientWidth = document.documentElement.clientWidth;
		else
			clientWidth = document.body.clientWidth;
		if (document.documentElement && document.documentElement.scrollLeft)
			scrollLeft = document.documentElement.scrollLeft;
		else
			scrollLeft = document.body.scrollLeft;
		if (document.documentElement && document.documentElement.scrollTop)
			scrollTop = document.documentElement.scrollTop;
		else
			scrollTop = document.body.scrollTop;
		scrollTop+=event.clientY;
	} else if (is.nav5up) {
		if(skn.display=="none")
			return;
		cw = parseInt(document.defaultView.getComputedStyle(document.getElementById("popuplabel").firstChild,'').getPropertyValue('width'));	
		rectX = e.clientX-cw/2+Xoffset;
		if(self.innerWidth)
			clientWidth = self.innerWidth;
		else
			clientWidth = document.body.clientWidth;
		if(self.pageXOffset)
			scrollLeft = self.pageXOffset;
		else
			scrollLeft = document.body.scrollLeft;
		scrollTop = e.pageY;
	}
	if(cw==0)
		cw = 1;
	if((rectX+cw) >= (clientWidth-sideBuffer))
		rectX -= ((rectX+cw)-(clientWidth-sideBuffer));
	if (rectX < sideBuffer)
		rectX = sideBuffer;
	skn.left = (rectX+scrollLeft)+(is.nav4?'':'px');
	skn.top = (yyy+scrollTop)+(is.nav4?'':'px');
}

function unDisplayActiveLabel() {

	yyy=-1000;
  
	if(is.nav4) {
		skn = getNSLayer();
		skn.visibility="hide";
	} else if (is.nav5up||is.ie) {
		skn.display="none";
	}
  
  document.getElementById("popuplabel").style.left = '-1000px';
	window.status = "";

	clearTimeout(timeoutID);	
}

