function CloseSelf(ElementID) {
	try {
		var obj = document.getElementById(ElementID);
		obj.style.display='none';
	}
	catch(e){}
}

function DisplayElement(ElementID) {
	try {
		var obj = document.getElementById(ElementID);
		obj.style.display='inline';
	}
	catch(e){}
}

function AttachHelpClass(ElementID) {
	try {
		var obj = document.getElementById(ElementID);
		obj.className='HelpBox';
	}
	catch(e){}
}

function AttachHelpClose(ElementID,CloserElementID) {
	try {
		// Attach to the element
		var obj = document.getElementById(CloserElementID);
		obj.onclick=function(){CloseSelf(ElementID);}
	}
	catch(e){}
}

function getElementPosition(elemID) {
   	try {
		var offsetTrail = document.getElementById(elemID);
		var offsetLeft = 0;
		var offsetTop = 0;
		while (offsetTrail) {
			offsetLeft += offsetTrail.offsetLeft;
			offsetTop += offsetTrail.offsetTop;
			offsetTrail = offsetTrail.offsetParent;
		}
		if (navigator.userAgent.indexOf("Mac") != -1 && 
			typeof document.body.leftMargin != "undefined") {
			offsetLeft += document.body.leftMargin;
			offsetTop += document.body.topMargin;
		}
		//alert("left:" + offsetLeft + ", " + "top:" + offsetTop);
		return {left:offsetLeft, top:offsetTop};
	}catch(e){
		return {left:0, top:0};
	}

	//return "left:" + offsetLeft + ", " + "top:" + offsetTop;
}

function ShowHelp(ElementID,CallerID,strWidth,strOffsetTop,strOffsetLeft) {
	try {
		var obj = document.getElementById(ElementID);
		var ParentTop = getElementPosition(CallerID).top + strOffsetTop;
		var ParentLeft = getElementPosition(CallerID).left - strOffsetLeft;
		obj.style.display = 'block';
		obj.style.top = ParentTop + 'px';
		obj.style.left = ParentLeft + 'px';
		obj.style.width = strWidth + 'px';
	}
	catch(e){}
}

function InitializeHelpBox(strBoxId,strLinkID,strCloser) {
	try {
		AttachHelpClose(strBoxId,strCloser);
		AttachHelpClass(strBoxId);
		DisplayElement(strLinkID);
	}
	catch(e){}
}