var divName = '';
var divBGName = '';
var sToolTipContent = '';
var sToolTipUri = '';
var bToolTipStored = false;
var bToolTipLoaded = false;
var offX = 15;
var offY = 20;

function SetupToolTip(sDivName,sDivBGName,xOffset,yOffset) {
	divName = sDivName;
	divBGName = sDivBGName;
	offX = xOffset;
	offY = yOffset;
	document.getElementById(divName).style.display = "none";
	document.getElementById(divBGName).style.display = "none";
}

function ToolTipStart(sURL,iWidth,iHeight,bLoadPage) {
	var obj = document.getElementById(divName);
	var objBG = document.getElementById(divBGName);

	if (sToolTipUri != sURL) {
		sToolTipUri = sURL;
		sToolTipContent = "<Img Src='./Graphics/Loading2.gif'> Loading";
		if (bLoadPage) {
			if (!bToolTipStored) {
				LoadTTHTML(sToolTipContent);
				LoadTTXML(sURL);
			}
			else if (!bToolTipLoaded) {
				LoadTTHTML(sToolTipContent);
			}
		}
		else {
			if (!bToolTipLoaded) {
				LoadTTHTML(sURL);
			}
		}
	}
	else {	
		bToolTipLoaded = true;
		bToolTipStored = true;
		LoadTTHTML(sToolTipContent);
	}

	if ((iWidth * 1) > 0) {
		obj.style.width = iWidth+"px";
		objBG.style.width = iWidth+"px";
	}
	if ((iHeight * 1) > 0) {
		obj.style.height = iHeight+"px";
		objBG.style.height = iHeight+"px";
	}
	obj.style.display = 'block';
	objBG.style.display = 'block';
	document.onmousemove = ToolTip;
}

function ToolTipEnd() {
	var obj = document.getElementById(divName);
	var objBG = document.getElementById(divBGName);
	obj.innerHTML = "";
	objBG.innerHTML = "";
	obj.style.display = 'none';
	objBG.style.display = 'none';
	document.onmousemove = "";
	bToolTipLoaded = false;
	bToolTipStored = false;
	objBG.style.left = "-400px";
	objBG.style.top = "-400px";
	obj.style.left = "-400px";
	obj.style.top = "-400px";
}

function StoreTTHTML(sHTML) {
	sToolTipContent = sHTML;
	LoadTTHTML(sHTML);
}

function LoadTTHTML(sHTML) {
	document.getElementById(divName).innerHTML = sHTML;
	document.getElementById(divBGName).innerHTML = sHTML;
	bToolTipLoaded = true;
}

function LoadTTXML(sURL) {
	bToolTipStored = true;
	var req;
	req = false;
  // branch for native XMLHttpRequest object
  if(window.XMLHttpRequest) {
  	try {
			req = new XMLHttpRequest();
    }
		catch(e) {
			req = false;
    }
    	// branch for IE/Windows ActiveX version
  }
	else if(window.ActiveXObject) {
  	try {
   		req = new ActiveXObject("Msxml2.XMLHTTP");
  	}
		catch(e) {
    	try {
    		req = new ActiveXObject("Microsoft.XMLHTTP");
    	}
			catch(e) {
    		req = false;
    	}
		}
  }
	if(req) {
		//req.onreadystatechange = processReqChange;
		req.open("GET", sURL, true);
		req.onreadystatechange = function () {
		if (req.readyState == 4) {
			if(req.status == 200)
				StoreTTHTML(req.responseText);
			else
				StoreTTHTML("Error loading children");
			}
		};
		req.send(null);
	}
}

function mouseX(evt) {
	if (!evt)
		evt = window.event;
	if (evt.pageX)
		return evt.pageX;
	else if (evt.clientX)
		return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft);
	else
		return 0;
}

function mouseY(evt) {
	if (!evt)
		evt = window.event;
	if (evt.pageY)
		return evt.pageY;
	else if (evt.clientY)
		return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
	else
		return 0;
}

function ToolTip(evt) {
	if (document.getElementById) {
		var obj = document.getElementById(divName).style;
		var objBG = document.getElementById(divBGName).style;
		sX = (parseInt(mouseX(evt))+offX) + 'px';
		sY = (parseInt(mouseY(evt))+offY) + 'px';
		obj.left = sX;
		obj.top = sY;
		objBG.left = sX;
		objBG.top = sY;
	}
}
