// Title: Titan Tooltips
// URL: http://www.thewebtier.com/products/tooltips/
// Version: 1.0 beta
// Date: 1/18/2004 (mm/dd/yyyy)
// Feedback: support@thewebtier.com
// Note: You may use this product in your applications as long as you keep this header.
function Tooltip(startDelay, hideDelay){
this.startDelay = startDelay;
this.hideDelay = hideDelay;
}
function TooltipManager(){
this.tooltips = new Array();
this.startDelay = 300;
this.hideDelay = 999999;
}
TooltipManager.prototype.getStartDelay = getStartDelay;
TooltipManager.prototype.getHideDelay = getHideDelay;
function getStartDelay(divID){
if(this.tooltips[divID] == null)
return this.startDelay;
return this.tooltips[divID].startDelay;
}
function getHideDelay(divID){
if(this.tooltips[divID] == null)
return this.hideDelay;
return this.tooltips[divID].hideDelay;
}
TooltipManager.prototype.addTooltip = addTooltip;
TooltipManager.prototype.addTooltips = addTooltips;
function addTooltip(divID, startDelay, hideDelay){
this.tooltips[divID] = new Tooltip(startDelay, hideDelay);
}
var tooltipManager = new TooltipManager();
var loaded = false;
var active = '';
var on = false;
var timerID = null;
var hideTimerID = null;
var num = 6780;
var NS6 = false;
var IE = false;
if(document.all)
IE = true;
else
NS6 = true;
function setFramePosition (left, top, width, height) {
var ifr = document.all ? document.all['winref2'] : document.getElementById('winref2');
ifr.style.position = 'absolute';
if(NS6){
ifr.style.left = (left) + 'px';
ifr.style.top = (top ) + 'px';
ifr.style.height = 0;//height + 'px';
ifr.style.width = 0;//width + 'px';
} else {
ifr.style.left = (left ) + 'px';
ifr.style.top = (top ) + 'px';
ifr.style.height = height + 'px';
ifr.style.width = width + 'px';
}
ifr.style.zIndex = 2;
}
function hideFrame () {
var ifr = document.all ? document.all['winref2'] : document.getElementById('winref2');
ifr.style.position = 'absolute';
ifr.style.left = '1000px';
ifr.style.top = '1000px';//top + 'px';
ifr.style.height = 0;//height;
ifr.style.width = 0;//width;
}
function addTooltips(filename, numberOfTooltips){
var numbertooltips = 30;
for(var i = 0; i < numbertooltips; i++){
document.write("<div id=a" + i + " style='{position: absolute; top:0; visibility: hidden;}'></div>");
}
document.writeln("<iframe name=diviframe id='winref2' frameborder=0 height=0 width=0 scrolling=no></iframe>");
document.writeln("<iframe name=iframe id='winref' frameborder=0 scrolling=no height=0 width=0 scrolling=no src=\"" + filename + "\"></iframe>");
setTimeout("addHelpProcess()",300);
}
function findNumberOfTooltips(){
var endCount = 0;
for(var id in document.all){
if(checkNumber(id) == false)
endCount++;
}
return endCount;
}
function getFrameDiv(divId){
var winref = frames['iframe'];
if(IE){
return winref.document.all[divId];
}
return winref.document.getElementById(divId);
}
function getDiv(divId){
if(IE)
return document.all[divId];
return document.getElementById(divId);
}
function copyDivProperties(rolloverDiv, winelem){
var l = rolloverDiv.style;
var r = winelem.style;
l.backgroundAttachment = r.backgroundAttachment;
l.backgroundColor = r.backgroundColor;
l.backgroundImage = r.backgroundImage;
l.backgroundPosition = r.backgroundPosition;
l.backgroundRepeat = r.backgroundRepeat;
l.border = r.border;
l.borderCollapse = r.borderCollapse;
l.borderColor = r.borderColor;
l.borderSpacing = r.borderSpacing;
l.borderStyle = r.borderStyle;
l.borderTop = r.borderTop;
l.borderRight = r.borderRight;
l.borderBottom = r.borderBottom;
l.borderLeft = r.borderLeft;
l.borderTopColor = r.borderTopColor;
l.borderRightColor = r.borderRightColor;
l.borderBottomColor = r.borderBottomColor;
l.borderLeftColor = r.borderLeftColor;
l.borderTopStyle = r.borderTopStyle;
l.borderRightStyle = r.borderRightStyle;
l.borderBottomStyle = r.borderBottomStyle;
l.borderLeftStyle = r.borderLeftStyle;
l.borderTopWidth = r.borderTopWidth;
l.borderRightWidth = r.borderRightWidth;
l.borderBottomWidth = r.borderBottomWidth;
l.borderLeftWidth = r.borderLeftWidth;
l.borderWidth = r.borderWidth;
l.bottom = r.bottom;
l.captionSide = r.captionSide;
l.clear = r.clear;
l.clip = r.clip;
l.color = r.color;
l.content = r.content;
l.counterIncrement = r.counterIncrement;
l.cursor = r.cursor;
l.direction = r.direction;
l.display = r.display;
l.emptyCells = r.emptyCells;
//l.float = r.float;
//l.font = r.font;
l.fontFamily = r.fontFamily;
l.fontSize = r.fontSize;
l.fontSizeAdjust = r.fontSizeAdjust;
l.fontStretch = r.fontStretch;
l.fontStyle = r.fontStyle;
l.fontVariant = r.fontVariant;
l.fontWeight = r.fontWeight;
l.height = r.height;
l.left = r.left;
l.letterSpacing = r.letterSpacing;
l.lineHeight = r.lineHeight;
l.listStyle = r.listStyle;
l.listStyleImage = r.listStyleImage;
l.listStylePosition = r.listStylePosition;
l.listStyleType = r.listStyleType;
l.margin = r.margin;
l.marginTop = r.marginTop;
l.marginRight = r.marginRight;
l.marginBottom = r.marginBottom;
l.marginLeft = r.marginLeft;
l.marginOffset = r.marginOffset;
l.marks = r.marks;
l.maxHeight = r.maxHeight;
l.maxWidth = r.maxWidth;
l.minHeight = r.minHeight;
l.orphans = r.orphans;
l.outline = r.outline;
l.outlineColor = r.outlineColor;
l.outlineStyle = r.outlineStyle;
l.outlineWidth = r.outlineWidth;
l.overflow = r.overflow;
l.padding = r.padding;
l.paddingTop = r.paddingTop;
l.paddingRight = r.paddingRight;
l.paddingBottom = r.paddingBottom;
l.paddingLeft = r.paddingLeft;
l.page = r.page;
l.pageBreakAfter = r.pageBreakAfter;
l.pageBreakBefore = r.pageBreakBefore;
l.pageBreakInside = r.pageBreakInside;
l.quotes = r.quotes;
l.size = r.size;
l.tableLayout = r.tableLayout;
l.textAlign = r.textAlign;
l.textDecoration = r.textDecoration;
l.textIndent = r.textIndent;
l.textShadow = r.textShadow;
l.textTransform = r.textTransform;
l.verticalAlign = r.verticalAlign;
l.whiteSpace = r.whiteSpace;
l.widows = r.widows;
l.width = r.width;
l.wordSpacing = r.wordSpacing;
}
function getFrameDivArray(){
var winref = frames['iframe'];
if(IE)
return winref.document.all;
return winref.document.getElementsByTagName('div');
}
function addHelpProcess(){
var winref = frames['iframe'];
if(winref == null || winref.loaded == null || winref.loaded == false) { setTimeout('addHelpProcess()',300); return; }
var elem = null;
var idNumber = 0;
var frameDivArray = getFrameDivArray();
for(var i = 0; i < frameDivArray.length; i++){
var id = frameDivArray[i].id;
if(checkNumber(id) == true)
continue;
var winelem = getFrameDiv(id);
if(winelem == null)continue;
if(winelem.innerHTML == null)continue;
elem = getDiv(id);
if(elem == null)continue;
var rolloverDiv = getDiv('a' + idNumber);
rolloverDiv.id = id + num;
rolloverDiv.innerHTML = winelem.innerHTML;
if(winelem.className != null && winelem.className != '')
rolloverDiv.className = winelem.className;
copyDivProperties(rolloverDiv, winelem);
rolloverDiv.style.visibility = 'hidden';
rolloverDiv.style.position = 'absolute';
rolloverDiv.style.zIndex = 15;
if(NS6){
elem.addEventListener('mouseout', divMouseout, false);
elem.addEventListener('mouseover', divMouseover, false);
} else {
elem.onmouseover = divMouseover;
elem.onmouseout = divMouseout;
}
elem.tooltip = id + num;
elem.startDelay = tooltipManager.getStartDelay(id);
elem.hideDelay = tooltipManager.getHideDelay(id);
num++;
idNumber++;
}
}
function checkNumber(checkStr)
{
if (checkStr == '')
return false;
var checkOK = "0123456789";
var ch = '';
for (var i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
if(checkOK.indexOf(ch) == -1)
return false;
}
return true;
}
function configureIframe(divId){
var layer = getDiv(active);
if(layer == null)return;
if(layer.style == null)return;
var left = 0; var top = 0;
if(layer.style.left.indexOf('px') > -1){
left = parseInt(layer.style.left.substring(0, layer.style.left.indexOf('px')));
} else {
left = layer.style.left;
}
if(layer.style.top.indexOf('px') > -1){
top = parseInt(layer.style.top.substring(0, layer.style.top.indexOf('px')));
} else {
top = layer.style.top ;
}
if(IE){
top = layer.offsetTop;
left = layer.offsetLeft;
}
layer.style.visibility = 'visible';
setFramePosition (left , top, layer.offsetWidth, layer.offsetHeight, layer);
}
function findSize(item){
item = '' + item;
if(item.indexOf('px') > -1){
return parseInt(item.substring(0, item.indexOf('px')));
} else {
return item - 0;
}
}
function displayEl(left, top) {
document.onmousemove = null;
var whichEl = getDiv(active);
var y = 0;
top = top - 0;
var offset = 0;
if(NS6) offset = pageYOffset;
else offset = document.body.offsetHeight;
if(top > offset/2 ){
if(IE){
top = top - whichEl.offsetHeight + document.body.scrollTop;
} else {
top = top - whichEl.offsetHeight + window.pageYOffset;
}
} else {
if(IE){
top = top + document.body.scrollTop;
} else {
top = top + window.pageYOffset;
}
}
if(NS6) left = left + 20;
whichEl.style.position = 'absolute';
whichEl.style.left = left;//y;
whichEl.style.top = top;
whichEl.style.visibility = 'visible';
whichEl.style.zIndex = 20;
configureIframe(active);
if (timerID) clearTimeout(timerID);
}
function divMouseout(e) {
if(active){
getDiv(active).style.visibility = 'hidden';
hideFrame();
on = false;
}
active = null;
if (timerID) clearTimeout(timerID);
if (hideTimerID) clearTimeout(hideTimerID);
document.onmousemove = null;
}
function hideLayer(){
if(active){
hideFrame();
getDiv(active).style.visibility = 'hidden';
}
active = null;
document.onmousemove = null;
}
function prepareTimer(e, showDelay, hideDelay) {
if (timerID) clearTimeout(timerID);
if (hideTimerID) clearTimeout(hideTimerID);
if(typeof(e) == 'undefined')e = event;
var left = e.clientX;
var top = e.clientY;
timerID = setTimeout("displayEl(" + left + ", " + top + ")", showDelay);
hideTimerID = setTimeout("hideLayer()", showDelay + hideDelay);
}
function divMouseover(e) {
active = this.tooltip;
document.onmousemove = null;
prepareTimer(e, this.startDelay, this.hideDelay);
}