var offsetxpoint=-20 //Customize x offset of tooltip
var offsetypoint=20 //Customize y offset of tooltip
var permoffsetypoint=20 //Customize y offset of tooltip

var offsetfromcursorX=-10 //Customize x offset of tooltip
var offsetfromcursorY=-19 //Customize y offset of tooltip
			
var ie=document.all
var ns6=document.getElementById && !document.all
var enabletip=false
var showtooltipontop=false;

var holdcontent = "";

if (ie||ns6){
//var tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : "" -- original but got broken in ie for some reason
//var tipobj=$("dhtmltooltip")
		var tipobj = settipobj("dhtmltooltip");
		var pointerobj=null;
}

function settipobj(tooltipname){
	if (tooltipname == "landingdhtmltooltip")
	{
		permoffsetypoint=-40 //Customize y offset of tooltip
		document.write('<img id="dhtmlpointerimg" src="/anthro/images/tooltiparrow.gif">'); //write out pointer image
		pointerobj=document.all? document.all["dhtmlpointerimg"] : document.getElementById? document.getElementById("dhtmlpointerimg") : ""
	}
	document.write('<div id="'+tooltipname+'"></div>'); //write out tooltip DIV
	var tipobj=$(tooltipname);
	return tipobj;
}

function ietruebody(){
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function ddrivetip(thetext, thecolor, bordercolor, thewidth, displaytooltipontop){
	if (holdcontent != thetext) { // if this is the first time we hit ddrivetip
		if (ns6||ie){
			tipobj.innerHTML=thetext

		}

		// here we set the real offsetypoint -- it varies depending on if it shows the arrow or not
		var getbackordered = $$("div#availdate");
		if ($("availdate")){
			offsetypoint=-54 //Customize y offset of tooltip
		}
		else {
			offsetypoint=permoffsetypoint //Customize y offset of tooltip
		}
		///////////////////////////////////////////////////////////////////////////////////////////
	}
	
	holdcontent = thetext;
	if (ns6||ie){
	// added in to make tooltip work on details popups
	tipobj.style.visibility="visible"
	document.onmousemove=positiontip
	//////////////////////////////////////////////////
	if (typeof thewidth!="undefined" && thewidth != "") tipobj.style.width=thewidth+"px"
	if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor
	if (typeof bordercolor !="undefined" && bordercolor!="") tipobj.style.borderColor=bordercolor
	enabletip=true
	if(displaytooltipontop != null){
		showtooltipontop=displaytooltipontop;
	} else {
		showtooltipontop = false;
	}
	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 rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20
	var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20
	
	var leftedge=(offsetxpoint<0)? offsetxpoint*(-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=ie? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth+"px" : window.pageXOffset+e.clientX-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+offsetxpoint+"px"
			if (pointerobj)
			pointerobj.style.left=curX+offsetfromcursorX+"px"
	}
	
	//same concept with the vertical position
	if (bottomedge<tipobj.offsetHeight || showtooltipontop) {
	tipobj.style.top=ie? ietruebody().scrollTop+event.clientY-tipobj.offsetHeight-offsetypoint+"px" : window.pageYOffset+e.clientY-tipobj.offsetHeight-offsetypoint+"px";
	nondefaultpos=true
	}
	else {
	tipobj.style.top=curY+offsetypoint+"px"
			if (pointerobj)
			pointerobj.style.top=curY+offsetfromcursorY+"px"
	}
	tipobj.style.visibility="visible"
			if (pointerobj){
			if (!nondefaultpos)
			pointerobj.style.visibility="visible"
			else
			pointerobj.style.visibility="hidden"
			}
	}
}

function hideddrivetip(){
	if (ns6||ie){
	enabletip=false
	tipobj.style.visibility="hidden"
			if (pointerobj)
			pointerobj.style.visibility="hidden"
	tipobj.style.left="-1000px"
	tipobj.style.backgroundColor=''
	tipobj.style.width=''
	}
}

//document.onmousemove=positiontip -- moved into function ddrivetip()

function _applyStyles_(elem, styles) {
	for (x in styles) {
		elem.style[x] = styles[x];
	}
}

function Location(x, y) {
	this.x = x;
	this.y = y;
}

function getOffset(elem) {
	var x = elem.offsetLeft, y = elem.offsetTop, orig = elem;
	while ((elem = elem.offsetParent) && (typeof(elem.offsetLeft) == 'number' && typeof(elem.offsetTop) == 'number') && (elem.style.position != "relative")) {
		x += elem.offsetLeft;
		y += elem.offsetTop;
	}
	return new Location(x + 10, y + orig.clientHeight + 8);
}

ToolTip = {
	tts : [],
	showIt : function(source, ttId) {
                var sawMyself = false;
		var loc = getOffset(source);
		var tt = document.getElementById(ttId);
                if (!tt) {
                    tt = document.createElement('div')
                    tt.id="tooltip";
                    tt.innerHTML = ttId;
                    document.body.appendChild(tt);
                }
		for (var i = 0, l = this.tts.length; i<l; i++) {
                    if (tt !== this.tts[i][0]) {
                        ToolTip.hide(this.tts[i][0], true);
                    } else {
                        sawMyself = true;
                    }
		}
                if (!sawMyself) {
                   this.tts.push([tt, source]);
                }
		tt.style.position = "absolute"
		tt.style.top = loc.y + "px";
		tt.style.left = loc.x + 15 + "px";

		tt.style.display = 'block';
                tt.kill = false;
		tt.onmouseover = function() {
			ToolTip.registerFocus(tt);
		};
		source.onmouseout = function() {
			ToolTip.requestKill(tt);
		};
		tt.onmouseout = function() {
			ToolTip.requestKill(tt);
		};
	},
	requestKill : function(tt) {
		tt.kill = true;
		setTimeout(function(){
			ToolTip.hide(tt);
		}, 500);
	},
	hide : function(tt, force) {
		if (tt.kill || force) {
			tt.style.display = "none";
		}
	},
	registerFocus : function(tt) {
		tt.kill = false;
	},
	smash : function(intoOblivion) {
		for (var i = 0, l = this.tts.length; i<l; i++) {
			this.tts[i][0].onmouseover = null;
			this.tts[i][0].onmouseout = null;
                        this.tts[i][0].style.display = "none";
			this.tts[i][1].onmouseout = null;
                        if (intoOblivion)
                            this.tts[i][1].onmouseover = null;
		}
	}

}



