	var iConstX = 5;
	var iConstY = 8;

	var sTTHeaderBodyDelim = " \>\> ";
	var sTTBodyNewLineDelim = "::";
	
/* do not change anything below this line */

	var iCursorX=0, iCursorY=0, iOffsetX, iOffsetY;

	var iMapIMGOffsetX = 0;
	var iMapIMGOffsetY = 0;
	
	var oTooltipDiv, oTooltipHeaderDiv, oTooltipBodyDiv, oMapFrame, oProgressDiv, oRepDiv;

	var iTimerID = null;
	
	//prototype functions
	var GetOffset;

	var gbIsNav;
	var bIsOver=false;
	var bBodyLoaded = false;

	function BodyOnload(){
		GetObjectRefs();
		
		if (document.all){
			SetIEBrowser();
		}else{
			SetNavBrowser();
		}
		
		GetOffset();

		bBodyLoaded 		= true;
		
		document.onclick = HandleOnclick;

	}

	function GetObjectRefs(){
		oMapFrame 			= document.getElementById("mapIF");

		oTooltipDiv 		= document.getElementById("toolTipDiv");
		oTooltipHeaderDiv 	= document.getElementById("toolTipHeaderDiv");
		oTooltipBodyDiv 	= document.getElementById("toolTipBodyDiv");
		
	}

	function SetIEBrowser(){
		var sProtoPrefix = "ip_";
		gbIsNav = false;

		GetOffset = ip_GetOffset;
		
		// set onclick-event prototype
		HandleOnclick = ip_HandleOnclick;
	}

	function SetNavBrowser(){
		var sProtoPrefix = "np_";
		gbIsNav = true;
		
		GetOffset = np_GetOffset;

		// capture the onclick event
		document.captureEvents(Event.CLICK);
		// set onclick-event prototype
		HandleOnclick = np_HandleOnclick;
	}

	function GetIECoords(){
	}

	function GetNavCoords(e){
	}

	function np_GetOffset(){
		iOffsetX			= oMapFrame.offsetLeft + iConstX;
		iOffsetY			= oMapFrame.offsetTop + iConstY;
	}

	function ip_GetOffset(){
		//try{
			iOffsetX	= oMapFrame.parentNode.parentNode.offsetLeft + iConstX;
			iOffsetY	= oMapFrame.parentNode.parentNode.offsetTop + iConstY;
		//}catch(e){}
	}
	
	function MoveDivPopUp(){
		if (bIsOver){
			var iLeft	= iCursorX + iOffsetX + iMapIMGOffsetX;
			var iTop	= iCursorY + iOffsetY + iMapIMGOffsetY;
			
			if (iLeft < 0){
				iLeft = 0
			}			
			if (iTop < 0){
				iTop = 0
			}			
			oTooltipDiv.style.left 	= (iLeft) + "px";	
			oTooltipDiv.style.top 	= (iTop) + "px";
		}
	}

	function ShowTT(sTTBody){
		if (bBodyLoaded){
			bIsOver = true;
			clearTimeout(iTimerID);
			
			var bHasHeader	= false;
			
			if(sTTBody.indexOf(sTTHeaderBodyDelim) > 0){
				var aTTsplit	= sTTBody.split(sTTHeaderBodyDelim);
				var sTTHeader	= aTTsplit[0];
				sTTBody			= aTTsplit[1];
				bHasHeader		= true;
			}
			
			if (bHasHeader){
				oTooltipHeaderDiv.innerHTML = sTTHeader;
				oTooltipHeaderDiv.style.display="block";
			}

			if(sTTBody.indexOf(sTTBodyNewLineDelim) > 0){
				var aTTsplit	= sTTBody.split(sTTBodyNewLineDelim);
				sTTBody 		= aTTsplit.join("<br>");
			}

			MoveDivPopUp();

			oTooltipBodyDiv.innerHTML 		= sTTBody;
			oTooltipBodyDiv.style.display	= "block";
			oTooltipDiv.style.display 		= "block";

			MoveDivPopUp();
		}
	}

	function HideTooltipPause(){
		try{
		oTooltipDiv.style.display="none";
		oTooltipBodyDiv.style.display="none";
		oTooltipHeaderDiv.style.display="none";
		clearTimeout(iTimerID);
		}
		catch(e){}
	}

	function HideTT(){
		bIsOver = false;
		iTimerID = setTimeout("HideTooltipPause()",600);
	}
