Text=[]; // For About Author
function viewMyValue(myValue) {
			var newStr = Text[myValue];					
			var oNode = document.getElementById('contentValue');
			if (oNode)
			{			
				oNode.setAttribute("innerHTML","");
				oNode.insertAdjacentHTML("beforeend", newStr);
			}
}	
	
function LinkBehavior(oLink, nData) {
	var o=new JSObj(); o.oType="LinkBehavior";
	o.link=oLink;
	o.nDataA = nData;

	o.link.onmouseover=LinkBehavior_onmouseover;
	o.link.onmouseout=LinkBehavior_onmouseout;
	o.onmouseover = LinkBehavior_onmouseover; o.onmouseout=LinkBehavior_onmouseout;
	o.contentObj = new ContentObj(o);
	o.mouseIn = false;
	o.create();
	o.data=new PopupXMLObj(o);	return o;

	function LinkBehavior_onmouseover(oEvent, bFromDelay) {
		try {
			if (!this.oType)
			{				
				var oBH = this.getAttribute("bh");
				if ((oBH) && (!oBH.mouseIn)) {
					oBH.mouseIn = true;
					// get object ref
					var sCmd = "jsAll.objects['"+ oBH.oType + "']['"+oBH.oID+"'].onmouseover();";					
					oBH.showtimeout = setTimeout(sCmd, 100);				
					return true;
				} else if ((oBH) && (oBH.mouseIn)) {
					return true;
				}
			}
		} catch(ex) { if (disable_debug_handler == true) { debug(ex); } return true; }
		try {
			if (this.contentObj.hasData) {
				this.contentObj.render();
				this.contentObj.show(oEvent);
			} else {
				this.data.setCallback(this.contentObj.show);
				this.data.load();
			}
		} catch(ex) { if (disable_debug_handler == true) { debug(ex); } }
		return true;
		
	}
	function LinkBehavior_onmouseout(oEvent) {
		try {
			if (!this.oType)
			{
				var oBH = this.getAttribute("bh");
				if (oBH) {
					oBH.mouseIn = false;
					clearTimeout(oBH.showtimeout);
					oBH.onmouseout(event);
					return true;
				}
			}
		} catch(ex) {
			if (disable_debug_handler == true) {
				debug(ex);
			}
			return true;
		}
		try { this.timeout = setTimeout("jsAll.objects."+this.oType+"['"+this.oID+"'].contentObj.hide()",300); } catch(ex) { if (disable_debug_handler == true) { debug(ex); } }
		if (isIE()) { CollectGarbage(); }
		return true;
	}
}
var oLastShown = null;
function ContentObj_mousemove() {
	try {
		var oDOM = document.getElementById("balloon");
		// $$$$ should this be event.x/event.y?
		if (oDOM.componentFromPoint(event.clientX, event.clientY) != "") {
			oDOM.obj.hide();
			document.body.onmousemove=null;
		}
	} catch(ex) { if (disable_debug_handler == true) { debug(ex); } }
}

function ContentObj(oParent) {
	var o=new JSObj(); o.oType="ContentObj";
	o.parent= oParent;	o.hasData = false;
	o.show=ContentObj_show; o.hide=ContentObj_hide; o.make=ContentObj_make;
	o.onmouseover=ContentObj_onmouseover; o.onmouseout=ContentObj_onmouseout;
	var oDOM = document.getElementById("balloon");
	oDOM.setAttribute("onmouseover", ContentObj_onmouseover);
	oDOM.setAttribute("onmouseout", ContentObj_onmouseout);
	try {
		if (document.all)
		{
			// internet explorer
			o.render = ContentObj_render_IE;
		}
		else if (document.getElementsByTagName("body"))
		{
			// dom compliant
			o.render = ContentObj_render_DOM;
		}
	}
	catch(ex)
	{
		o.render = ContentObj_render_dummy;
	}	
	o.create();
	return o;

	function ContentObj_show(oEvent) {
		this.render();
		var oDOM = document.getElementById('balloon');
		// attach this object to our balloon container, so we know which timeout to clear
		//
		oDOM.setAttribute("obj", this);
		oDOM.setAttribute("bh", this.parent);
		try {
			oDOM.style.display="";
			var oTopArrowNode = document.getElementById("toparrow");
			var oTopArrowRevNode = document.getElementById("toparrowrev");
			var oBottomArrowNode = document.getElementById("bottomarrow");
			var oBottomArrowRevNode = document.getElementById("bottomarrowrev");
		} catch(ex) { if (disable_debug_handler == true) { debug(ex); } }
		try {
			var oCookie = document.cookie;
			var oCN = "iolVersion";
			var nS = oCookie.indexOf(oCN)+oCN.length;
			if (nS > oCN.length) {
				var oNode1 = document.getElementById('notoolbar1');
				var oNode2 = document.getElementById('notoolbar2');
				if ((oNode1) && (oNode2)) {
					oNode1.style.display="none";
					oNode2.style.display="none";
					var oNode3 = document.getElementById('toolbarinstalled');
					oNode3.style.display="";
				}
			}
		} catch(ex) { if (disable_debug_handler == true) { debug(ex); } }
		try {
			oTopNode=this.parent.link.offsetParent; var nTopCoord=this.parent.link.offsetTop; var nLeftCoord= this.parent.link.offsetLeft;
			while (oTopNode.tagName!="BODY") { nTopCoord+=oTopNode.offsetTop; nLeftCoord+=oTopNode.offsetLeft; oTopNode=oTopNode.offsetParent; }
			this.nTopCoord = nTopCoord; this.nLeftCoord = nLeftCoord;

			var bTop = false; var bLeft = false;
			oTopArrowNode.style.display="none";
			oTopArrowRevNode.style.display="none";
			oBottomArrowNode.style.display="none"; 
			oBottomArrowRevNode.style.display="";
			var nScrollTop = new Number(document.body.scrollTop);
			// set to default position first
			oTopArrowRevNode.style.display="none";
			oBottomArrowRevNode.style.display="none";
			oDOM.style.posLeft = this.nLeftCoord - 75;
			oTopArrowRevNode.style.display="none";
			oTopArrowNode.style.display="none";
			oDOM.style.posTop = (this.nTopCoord - oDOM.offsetHeight);
			// added the following line to show popup from below
            bTop = true;
			if (oDOM.style.posTop < nScrollTop) {
				// div is above the screenview, fold down
				bTop = true;
			}
			var nBodyWidth = new Number(document.body.clientWidth);
			if (oDOM.style.posLeft + oDOM.clientWidth > nBodyWidth)
			{
				// div is cut off on right, fold left
				bLeft = true;
			}
			// show everything
			oTopArrowNode.style.display="";
			oTopArrowRevNode.style.display="";
			oBottomArrowNode.style.display="";
			oBottomArrowRevNode.style.display="";
			if (bLeft) {
				// hide regular arrows
				oTopArrowNode.style.display="none";
				oBottomArrowNode.style.display="none";
				oDOM.style.posLeft = this.nLeftCoord - 235;
			} else {
				// hide alternate (left facing) arrows
				oTopArrowRevNode.style.display="none";
				oBottomArrowRevNode.style.display="none";
				oDOM.style.posLeft = this.nLeftCoord - 75;
			}
			if (!bTop) {
				// hide top nodes
				oTopArrowRevNode.style.display="none";
				oTopArrowNode.style.display="none";
				oDOM.style.posTop = this.nTopCoord - oDOM.offsetHeight + 23;
			} else {
				// hide bottom nodes
				oBottomArrowRevNode.style.display="none";
				oBottomArrowNode.style.display="none";
				oDOM.style.posTop = this.nTopCoord + this.parent.link.offsetHeight;
			}
			bTop = false;
		} catch(ex) { if (disable_debug_handler == true) { debug(ex); } alert(ex.message); }
		return true;
	}
	function ContentObj_hide(oEvent) {
		var oDOM = document.getElementById('balloon');
		try {
			oDOM.style.display="none";
		} catch(ex) { if (disable_debug_handler == true) { debug(ex); } }
		return true;
	}
	function ContentObj_make(sHTML) {
	
		try {		
			this.hasData = true;
			this.show();
		} catch(ex) { if (disable_debug_handler == true) { debug(ex); } }
		return true;
	}
	function ContentObj_onmouseover(oEvent) {
		try {
			if (!this.oType)
			{
				try {
					var oObj = this.getAttribute("obj");
				} catch(ex) {}
				try {
					var oBH = this.getAttribute("bh");
				} catch(ex) {}
			}
			if (oObj) {
				oLastShown = document.getElementById("balloon");
				document.body.onmousemove = ContentObj_mousemove;
				oObj.mouseIn = true; oObj.onmouseover(event); return true;
			} else if ((oBH) && (oBH.mouseIn)) {
				return true;
			}
		} catch(ex) { if (disable_debug_handler == true) { debug(ex); } }
		try {
			clearTimeout(this.parent.timeout);
		} catch(ex) { if (disable_debug_handler == true) { debug(ex); } }
	}
	
	function ContentObj_onmouseout(oEvent) {
		try {
			if (this.oType)
			{
				try {
					var oObj = this.getAttribute("obj");
				} catch(ex) {}
				try {
					var oObj = this.getAttribute("bh");
				} catch(ex) {}
			}
			var oDOM = document.getElementById("balloon");
			if (oObj) {
				// check to see if we are actually exiting the div,
				// or if it's a bubbled event that got trigger happy
				if ((event.clientX < oDOM.offsetLeft) ||
					(event.clientX > oDOM.offsetLeft + oDOM.offsetWidth) ||
					(event.clientY+document.body.scrollTop < oDOM.offsetTop) ||
					(event.clientY+document.body.scrollTop > oDOM.offsetTop + oDOM.offsetHeight)) {
					oObj.mouseIn = false; event.cancelBubble = true;
					document.body.onmousemove = null;
					oObj.onmouseout(event); // pass to ContentObj
					return true;
				} else {
					return true;
				}
			} else if (!this.oID) {
				return false;
				// baad thing happened.. not inherited from JSObj
			} else { this.hide(oEvent); CollectGarbage(); }
		} catch(ex) { if (disable_debug_handler == true) { debug(ex); } }
	}

	function ContentObj_render_DOM()
	{

	}

	function ContentObj_render_dummy()
	{
		return true;
	}
}
