function openFloatingPanel(parentElement, pID, xOff, yOff, w, textW) {

	closeAllPanels();

	var sourceEl;
	var newPos, newX, newY;
	
	var panelID = "FP_" + pID;	
	var panelEl = document.getElementById(panelID);
	var localID = "FP_Link_" + pID;
	
	var windowDivName = "FPContentsInner" + pID;
	var windowDiv = document.getElementById(windowDivName);
	windowDiv.style.width = w + "px";
	
	var titleBarDivName = "FPTitleBar" + pID;
	var titleBarDiv = document.getElementById(titleBarDivName);
	titleBarDiv.style.width = w + "px";
	
	var textDivName = "FPText" + pID;
	var textDiv;
	if (document.getElementById(textDivName)) {
		textDiv = document.getElementById(textDivName);
		textDiv.style.width = textW + "px";
	}
	
	if (parentElement == "site_plan") {
		sourceEl = document.getElementById('Site_Plan');
	} else if (parentElement == "local") {
		sourceEl = document.getElementById(localID);
	}
	
	newPos = findPos(sourceEl);
	newX = newPos[0] + xOff;
	newY = newPos[1] + yOff;
	newX += 'px';
	newY += 'px';
	
	panelEl.style.display = 'block';
	panelEl.style.width = w + 'px';
	panelEl.style.left = newX;
	panelEl.style.top = newY;
	
	tooltip.hide();
	
	panelEl.onmouseover = function() {tooltip.hide()};
	
}

function closeAllPanels() {
	for (var i=1; i<=panelCount; i++) {
		var panelID = i;
		var panelName = "FP_" + panelID;
		floatingPanelClose(panelID);
	}
}

function floatingPanelClose(pID) {
	var panelID = "FP_" + pID;
	var objRef = document.getElementById(panelID);
	if (objRef) {
		objRef.style.display = 'none';
	}
}

function getHeight(layerElement) {
	var heightVal;
	if (document.layers) {
		heightVal = layerElement.document.height;
	} else if (document.all) {
		heightVal = layerElement.offsetHeight;
	} 
	return heightVal;
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}


