1) Script Title: Cool DHTML Tooltip II

2) Script URL (on DD): http://www.dynamicdrive.com/dynamici...mltooltip2.htm

3) Describe problem: I am working in the jive 5.0.3 platform with .soy templates I cannot get this tooltip to work.

I have broken the script out into a seperate .js file ... then because I was having issues with the variables not being available I took the variables out of that js and created a script to make them.

I am no longer seeing errors all over the place in firebug .... but i am also not seeing my tooltips either...

below is the code as i have it currently... Im thinking there is an issue with where the following statements are placed but im not sure .

Code:
document.write('<div id="dhtmltooltip"></div>'); //write out tooltip DIV
document.write('<img id="dhtmlpointer" src="arrow2.gif">'); //write out pointer image
External CSS file Excerpt:
Code:
/* Tooltips */
	#dhtmltooltip{
	position: absolute;
	left: -300px;
	width: 150px;
	border: 1px solid black;
	padding: 2px;
	background-color: lightyellow;
	visibility: hidden;
	z-index: 100;
	/*Remove below line to remove shadow. Below line should always appear last within this CSS*/
	filter: progid:DXImageTransform.Microsoft.Shadow(color=gray,direction=135);
	}

	#dhtmlpointer{
	position:absolute;
	left: -300px;
	z-index: 101;
	visibility: hidden;
	}
.soy Template
Code:
{template .body}
<script src="/book/plugins/book-type-plugin/resources/soy/widget/dtest.js"></script>
<script>
	var enabletip = false;
	var ie = document.all;
	var ns6 = document.getElementById && !document.all;
	var tipobj="";
	var pointerobj="";
	var offsetfromcursorX=12; //Customize x offset of tooltip
	var offsetfromcursorY=10; //Customize y offset of tooltip
	var offsetdivfrompointerX=10; //Customize x offset of tooltip DIV relative to pointer image
	var offsetdivfrompointerY=14; //Customize y offset of tooltip DIV relative to pointer image. Tip: Set it to (height_of_pointer_image-1).
	document.write('<div id="dhtmltooltip"></div>'); //write out tooltip DIV
	document.write('<img id="dhtmlpointer" src="arrow2.gif">'); //write out pointer image
	
	$j(document).ready(function(){lb}
		
		ie=document.all;
		ns6=document.getElementById && !document.all;
		enabletip=false;
		if (ie||ns6) {lb}
			tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : "";
		{rb}
		
		pointerobj=document.all? document.all["dhtmlpointer"] : document.getElementById? document.getElementById("dhtmlpointer") : "";
	{rb});
</script>

<div class="jive-foo-widget-wrapper clearfix">
	    

	 <p class="hide">{i18nText('global.title')}{i18nText('global.colon')} {$title}</p>
	 <p class="hide">{i18nText('global.message')}{i18nText('global.colon')} {$message}</p>
		
	{foreach $book in $books}
		
			<div class="book_contain_back">
				<div class="book_container">
					<a href={buildUrl($book.link)|noAutoescape} class="book_cover" onMouseover="ddrivetip('Title: {$book.book.title}  <br> Author: {$book.book.authorFirstName} {$book.book.authorLastName} ', 250)"; onMouseout="hideddrivetip()">
						<img {$book.image |noAutoescape} height=150px width=120px />
					</a>
				</div>
			</div>
	{/foreach}
	
	
</div>
{/template}
.js File
Code:
/***********************************************
* Cool DHTML tooltip script II-  Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/



function ietruebody(){
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function ddrivetip(thetext, thewidth, thecolor){
	if (ns6||ie){
		if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px"
			if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor
				tipobj.innerHTML=thetext
		enabletip=true
	return false
}
}

function positiontip(e){
	if (enabletip){
		var nondefaultpos=false
		var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
		var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
		//Find out how close the mouse is to the corner of the window
		var winwidth=ie&&!window.opera? ietruebody().clientWidth : window.innerWidth-20
		var winheight=ie&&!window.opera? ietruebody().clientHeight : window.innerHeight-20

		var rightedge=ie&&!window.opera? winwidth-event.clientX-offsetfromcursorX : winwidth-e.clientX-offsetfromcursorX
		var bottomedge=ie&&!window.opera? winheight-event.clientY-offsetfromcursorY : winheight-e.clientY-offsetfromcursorY

		var leftedge=(offsetfromcursorX<0)? offsetfromcursorX*(-1) : -1000

		//if the horizontal distance isn't enough to accomodate the width of the context menu
		if (rightedge<tipobj.offsetWidth){
			//move the horizontal position of the menu to the left by it's width
			tipobj.style.left=curX-tipobj.offsetWidth+"px"
			nondefaultpos=true
		}
		else if (curX<leftedge)
			tipobj.style.left="5px"
		else{
			//position the horizontal position of the menu where the mouse is positioned
			tipobj.style.left=curX+offsetfromcursorX-offsetdivfrompointerX+"px"
			pointerobj.style.left=curX+offsetfromcursorX+"px"
		}

		//same concept with the vertical position
		if (bottomedge<tipobj.offsetHeight){
			tipobj.style.top=curY-tipobj.offsetHeight-offsetfromcursorY+"px"
			nondefaultpos=true
		}
		else{
			tipobj.style.top=curY+offsetfromcursorY+offsetdivfrompointerY+"px"
			pointerobj.style.top=curY+offsetfromcursorY+"px"
		}
		tipobj.style.visibility="visible"
		if (!nondefaultpos)
			pointerobj.style.visibility="visible"
		else
			pointerobj.style.visibility="hidden"
	}
}

function hideddrivetip(){
	if (ns6||ie){
		enabletip=false
		tipobj.style.visibility="hidden"
		pointerobj.style.visibility="hidden"
		tipobj.style.left="-1000px"
		tipobj.style.backgroundColor=''
		tipobj.style.width=''
	}
}

document.onmousemove=positiontip