/*******************************************************************************FILE: mud_ToolTip.jsREQUIRES: prototype.jsAUTHOR: Takashi Okamoto mud(tm) - http://www.mudcorp.com/VERSION: 1.5 - added support for WIN IE6DATE: 09/03/2006--------------------------------------------------------------------------------This file is part of MudToolTip.	MudToolTip is free for anyone to use, but this header MUST be	included, and may not be modified.	--------------------------------------------------------------------------------Usage:MudToolTip('tooltip_id')--------------------------------------------------------------------------------Add this css:.tooltip {	cursor: pointer;}#tooltipbox {	position: absolute;	width: 200px;	height: 100px;	z-index: 100;	opacity: 0.8;	filter: alpha(opacity=80);	-moz-opacity: .8;}#tooltipbox-pointer {	position: absolute;	top: -4px;	left: 0;	height: 4px;	width: 18px;	background: url(../assets/tip.gif) no-repeat;}#tooltipbox-content {	padding: 4px;	font-size: 9px;	font-family: verdana, arial, helvetica, sans-serif;	color: white;	background-color: black;}*******************************************************************************/var MudToolTip = Class.create();MudToolTip.OFFSET = new Array(-12, 20);MudToolTip.prototype = {		/* ------------- DON'T EDIT PAST HERE ------------- */		initialize: function(thisObj, id) {		this.thisObj = thisObj;		this.pos = new Array(0, 0);		this.hidden = true;		this.target = false;		this.side = "right";				// tooltipbox		this.tipbox = document.createElement('div');		this.tipbox.id = 'tooltipbox';		document.getElementsByTagName('body')[0].appendChild(this.tipbox);		this.tipbox.style.display = 'none';				// tooltipbox-pointer		var tooltipbox_pointer = document.createElement('div');		this.tipbox.appendChild(tooltipbox_pointer);		tooltipbox_pointer.id = 'tooltipbox-pointer';				// tooptipbox-content		var tooltipbox_content = document.createElement('div');		this.tipbox.appendChild(tooltipbox_content);		tooltipbox_content.id = 'tooltipbox-content';				// save pointer position		this.pointer_x = Element.getStyle('tooltipbox-pointer', 'left');	},		// call onmouseover	showTip: function(evt) {		evt = (evt) ? evt : event;		this.setPos(evt);		this.target = this.getTarget(evt);		this.target.setAttribute('tiptext', this.target.getAttribute('title'));		this.target.removeAttribute('title');		this.hidden = false;		Element.show(this.tipbox);		$(this.tipbox.id+"-content").innerHTML = this.target.getAttribute('tiptext');	},		// call onmouseout	hideTip: function() {		if (this.target) {			this.target.setAttribute('title', this.target.getAttribute('tiptext'));			this.target.removeAttribute('tiptext');			this.hidden = true;			$(this.tipbox.id+"-content").innerHTML = "";			this.target = false;			Element.hide(this.tipbox);		}	},		setPos: function(evt) {		this.pos = cursorPos(evt);		this.setSide(this.pos);		switch(this.side) {			case "left":				var offset_x = MudToolTip.OFFSET[0] + Element.getDimensions('tooltipbox-content').width;				this.tipbox.style.left = this.pos[0] - offset_x + "px";				this.tipbox.style.top = this.pos[1] + MudToolTip.OFFSET[1] + "px";				this.tipbox.style.textAlign = "right";				Element.setStyle('tooltipbox-pointer', {left: (offset_x + MudToolTip.OFFSET[0]) + "px"});				break;			default:				this.tipbox.style.left = this.pos[0] + MudToolTip.OFFSET[0] + "px";				this.tipbox.style.top = this.pos[1] + MudToolTip.OFFSET[1] + "px";				this.tipbox.style.textAlign = "left";				Element.setStyle('tooltipbox-pointer', {left: this.pointer_x});				break;		}	},		setSide: function(pos) {		if ($('content') && $('content-wrapper')) {			if ((pos[0]+200) > Element.getDimensions('content-wrapper').width) this.side = "left";			else this.side = "right";		}	},		getTarget: function(evt) {		var target = (evt.target) ? evt.target : evt.srcElement;		if (target.className != "tooltip") target = target.parentNode;		return target;	}}/* ------------- PUBLIC FUNCTIONS ------------- */function cursorPos(evt) {	var pos = new Array(0, 0);	evt = (evt) ? evt : event;	if (!evt) return false;		if (evt.pageX) {		pos[0] = evt.pageX;		pos[1] = evt.pageY;	}	else if (evt.clientX) {		if (document.documentElement.scrollTop){			pos[0] = evt.clientX + document.documentElement.scrollLeft;			pos[1] = evt.clientY + document.documentElement.scrollTop;		}		else{			pos[0] = evt.clientX + document.body.scrollLeft;			pos[1] = evt.clientY + document.body.scrollTop;		}	}	return pos;}function addEvent(obj, evType, fn) {	if (obj.addEventListener) {		obj.addEventListener(evType, fn, true);		return true;	}	else if (obj.attachEvent) {		var r = obj.attachEvent("on"+evType, fn);		return r;	}	else {		return false;	}}