var offsetfromcursorX = 12;
var offsetfromcursorY = 10;
var offsetdivfrompointerX = 10;
var offsetdivfrompointerY = 15;
document.write('
');
document.write('');
var ie = document.all;
var ns6 = document.getElementById && ! document.all;
var enabletip = false;
var tipobj = document.getElementById("dhtmltooltip");
var pointerobj = document.getElementById("dhtmlpointer");
function ietruebody() {
return (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body;
}
String.prototype.trim = function () {
return this.replace(/^\s*/, "").replace(/\s*$/, "");
}
function showtip(thetext, thewidth, thecolor) {
if (ns6 || ie) {
if (typeof thewidth != "undefined")
tipobj.style.width = thewidth + "px";
if (typeof thecolor != "undefined" && thecolor != "")
tipobj.style.backgroundColor = thecolor;
thetext = thetext.trim();
var arr = thetext.split(" ");
for(i=0;i=40)
thetext=thetext.replace(arr[i],arr[i].substr(0,40)+"...");
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;
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 (rightedge < tipobj.offsetWidth) {
tipobj.style.left = curX - tipobj.offsetWidth + "px";
nondefaultpos = true;
}
else if (curX < leftedge)
tipobj.style.left = "5px";
else {
tipobj.style.left = curX + offsetfromcursorX - offsetdivfrompointerX + "px";
pointerobj.style.left = curX + offsetfromcursorX + "px";
}
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 hidetip() {
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;
(function($) {
$.fn.tipsy = function(opts) {
opts = $.extend({fade: false, gravity: 'n'}, opts || {});
var tip = null, cancelHide = false;
this.hover(function() {
$.data(this, 'cancel.tipsy', true);
var tip = $.data(this, 'active.tipsy');
if (!tip) {
tip = $('' + $(this).attr('title') + '
');
tip.css({position: 'absolute', zIndex: 100000});
$(this).attr('title', '');
$.data(this, 'active.tipsy', tip);
}
var pos = $.extend({}, $(this).offset(), {width: this.offsetWidth, height: this.offsetHeight});
tip.remove().css({top: 0, left: 0, visibility: 'hidden', display: 'block'}).appendTo(document.body);
var actualWidth = tip[0].offsetWidth, actualHeight = tip[0].offsetHeight;
switch (opts.gravity.charAt(0)) {
case 'n':
tip.css({top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}).addClass('tipsy-north');
break;
case 's':
tip.css({top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}).addClass('tipsy-south');
break;
case 'e':
tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}).addClass('tipsy-east');
break;
case 'w':
tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}).addClass('tipsy-west');
break;
}
if (opts.fade) {
tip.css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: 1});
} else {
tip.css({visibility: 'visible'});
}
}, function() {
$.data(this, 'cancel.tipsy', false);
var self = this;
setTimeout(function() {
if ($.data(this, 'cancel.tipsy')) return;
var tip = $.data(self, 'active.tipsy');
if (opts.fade) {
tip.stop().fadeOut(function() { $(this).remove(); });
} else {
tip.remove();
}
}, 100);
});
};
})(jQuery);