var config = new Object(); var tt_Debug = true; var tt_Enabled = true; var TagsToTip = true; config.Above = false; config.BgColor = '#FCFCFC'; config.BgImg = ''; config.BorderColor = '#666666'; config.BorderStyle = 'solid'; config.BorderWidth = 1; config.CenterMouse = false; config.ClickClose = false; config.ClickSticky = false; config.CloseBtn = false; config.CloseBtnColors= ['#990000','#FFFFFF','#DD3333','#FFFFFF']; config.CloseBtnText= ' X '; config.CopyContent = true; config.Delay = 400; config.Duration = 0; config.Exclusive = false; config.FadeIn = 100; config.FadeOut = 100; config.FadeInterval = 30; config.Fix = null; config.FollowMouse = true; config.FontColor = '#000044'; config.FontFace = 'Arial,Helvetica,sans-serif'; config.FontSize = '8pt'; config.FontWeight = 'normal'; config.Height = 0; config.JumpHorz = false; config.JumpVert = true; config.Left = false; config.OffsetX = 14; config.OffsetY = 8; config.Opacity = 100; config.Padding = 3; config.Shadow = false; config.ShadowColor = '#C0C0C0'; config.ShadowWidth = 5; config.Sticky = false; config.TextAlign = 'left'; config.Title = ''; config.TitleAlign = 'left'; config.TitleBgColor = ''; config.TitleFontColor= '#FFFFFF'; config.TitleFontFace = ''; config.TitleFontSize = ''; config.TitlePadding = 2; config. Width = 0;; function Tip(){ tt_Tip(arguments, null); } function TagToTip(){ var t2t = tt_GetElt(arguments[0]); if(t2t) tt_Tip(arguments, t2t); } function UnTip(){ tt_OpReHref(); if(tt_aV[DURATION] < 0 && (tt_iState & 0x2)) tt_tDurt.Timer("tt_HideInit()", -tt_aV[DURATION], true); else if(!(tt_aV[STICKY] && (tt_iState & 0x2))) tt_HideInit(); } //================== PUBLIC TT-PLUGIN API =====================================// var tt_aElt = new Array(10), tt_aV = new Array(), tt_sContent, tt_t2t, tt_t2tDad, tt_musX, tt_musY, tt_over, tt_x, tt_y, tt_w, tt_h; function tt_Extension(){ tt_ExtCmdEnum(); tt_aExt[tt_aExt.length] = this; return this; } function tt_SetTipPos(x, y){ var css = tt_aElt[0].style; tt_x = x; tt_y = y; css.left = x + 'px'; css.top = y + 'px'; } function tt_HideInit(){ if(tt_iState){ tt_ExtCallFncs(0,'HideInit'); tt_iState &= ~(0x4 | 0x8); if(tt_flagOpa && tt_aV[FADEOUT]){ tt_tFade.EndTimer(); if(tt_opa){ var n = Math.round(tt_aV[FADEOUT] / (tt_aV[FADEINTERVAL] * (tt_aV[OPACITY] / tt_opa))); tt_Fade(tt_opa,tt_opa,0,n); return; } } tt_tHide.Timer('tt_Hide();', 1, false); } } function tt_Hide(){ if(tt_db && tt_iState){ tt_OpReHref(); if(tt_iState & 0x2){ tt_aElt[0].style.visibility = 'hidden'; tt_ExtCallFncs(0, 'Hide'); } tt_tShow.EndTimer(); tt_tHide.EndTimer(); tt_tDurt.EndTimer(); tt_tFade.EndTimer(); if(!tt_op && !tt_ie){ tt_tWaitMov.EndTimer(); tt_bWait = false; } if(tt_aV[CLICKCLOSE] || tt_aV[CLICKSTICKY]) tt_RemEvtFnc(document, 'mouseup', tt_OnLClick); tt_ExtCallFncs(0, 'Kill'); if(tt_t2t && !tt_aV[COPYCONTENT]) tt_UnEl2Tip(); tt_iState = 0; tt_over = null; tt_ResetMainDiv(); if(tt_aElt[tt_aElt.length - 1]) tt_aElt[tt_aElt.length - 1].style.display = 'none'; } } function tt_GetElt(id){ return(document.getElementById ? document.getElementById(id) : document.all ? document.all[id] : null); } function tt_GetDivW(el){ return(el ? (el.offsetWidth || el.style.pixelWidth || 0) : 0); } function tt_GetDivH(el){ return(el ? (el.offsetHeight || el.style.pixelHeight || 0) : 0); } function tt_GetScrollX(){ return(window.pageXOffset || (tt_db ? (tt_db.scrollLeft || 0) : 0)); } function tt_GetScrollY(){ return(window.pageYOffset || (tt_db ? (tt_db.scrollTop || 0) : 0)); } function tt_GetClientW(){ return tt_GetWndCliSiz('Width'); } function tt_GetClientH(){ return tt_GetWndCliSiz('Height'); } function tt_GetEvtX(e){ return (e ? ((typeof(e.pageX) != tt_u) ? e.pageX : (e.clientX + tt_GetScrollX())) : 0); } function tt_GetEvtY(e){ return (e ? ((typeof(e.pageY) != tt_u) ? e.pageY : (e.clientY + tt_GetScrollY())) : 0); } function tt_AddEvtFnc(el, sEvt, PFnc){ if(el){ if(el.addEventListener) el.addEventListener(sEvt, PFnc, false); else el.attachEvent('on' + sEvt, PFnc); } } function tt_RemEvtFnc(el, sEvt, PFnc){ if(el){ if(el.removeEventListener) el.removeEventListener(sEvt, PFnc, false); else el.detachEvent('on' + sEvt, PFnc); } } function tt_GetDad(el){ return(el.parentNode || el.parentElement || el.offsetParent); } function tt_MovDomNode(el, dadFrom, dadTo){ if(dadFrom) dadFrom.removeChild(el); if(dadTo) dadTo.appendChild(el); } //====================== PRIVATE ===========================================// var tt_aExt = new Array(), tt_db, tt_op, tt_ie, tt_ie56, tt_bBoxOld, tt_body, tt_ovr_, tt_flagOpa, tt_maxPosX, tt_maxPosY, tt_iState = 0, tt_opa, tt_bJmpVert, tt_bJmpHorz, tt_elDeHref, tt_tShow = new Number(0), tt_tHide = new Number(0), tt_tDurt = new Number(0), tt_tFade = new Number(0), tt_tWaitMov = new Number(0), tt_bWait = false, tt_u = 'undefined'; function tt_Init(){ tt_MkCmdEnum(); if(!tt_Browser() || !tt_MkMainDiv()) return; tt_IsW3cBox(); tt_OpaSupport(); tt_AddEvtFnc(document, 'mousemove', tt_Move); if(TagsToTip || tt_Debug) tt_SetOnloadFnc(); tt_AddEvtFnc(window, 'unload', tt_Hide); } function tt_MkCmdEnum(){ var n = 0; for(var i in config) eval('window.' + i.toString().toUpperCase() + ' = ' + n++); tt_aV.length = n; } function tt_Browser(){ var n, nv, n6, w3c; n = navigator.userAgent.toLowerCase(), nv = navigator.appVersion; tt_op = (document.defaultView && typeof(eval('w' + 'indow' + '.' + 'o' + 'p' + 'er' + 'a')) != tt_u); tt_ie = n.indexOf('msie') != -1 && document.all && !tt_op; tt_db = document.documentElement || document.body || (document.getElementsByTagName ? document.getElementsByTagName('body')[0] : null); if(!tt_op){ n6 = document.defaultView && typeof document.defaultView.getComputedStyle != tt_u; w3c = !n6 && document.getElementById; } tt_body = (document.getElementsByTagName ? document.getElementsByTagName('body')[0] : (document.body || null)); if(tt_ie || n6 || tt_op || w3c){ if(tt_body && tt_db){ if(document.attachEvent || document.addEventListener) return true; } else tt_Err('wz_tooltip.js must be included INSIDE the body section,'+' immediately after the opening
tag.', false); } tt_db = null; return false; } function tt_MkMainDiv(){ if(tt_body.insertAdjacentHTML) tt_body.insertAdjacentHTML('afterBegin', tt_MkMainDivHtm()); else if(typeof tt_body.innerHTML != tt_u && document.createElement && tt_body.appendChild) tt_body.appendChild(tt_MkMainDivDom()); if(window.tt_GetMainDivRefs /* FireFox Alzheimer */ && tt_GetMainDivRefs()) return true; tt_db = null; return false; } function tt_MkMainDivHtm(){ return(''); } function tt_MkMainDivDom(){ var el = document.createElement('div'); if(el) el.id = 'WzTtDiV'; return el; } function tt_GetMainDivRefs(){ tt_aElt[0] = tt_GetElt('WzTtDiV'); if(tt_ie56 && tt_aElt[0]){ tt_aElt[tt_aElt.length-1] = tt_GetElt('WzTtIfRm'); if(!tt_aElt[tt_aElt.length - 1]) tt_aElt[0] = null; } if(tt_aElt[0]){ var css = tt_aElt[0].style; css.visibility = 'hidden'; css.position = 'absolute'; css.overflow = 'hidden'; return true; } return false; } function tt_ResetMainDiv(){ tt_SetTipPos(0, 0); tt_aElt[0].innerHTML = ''; tt_aElt[0].style.width = '0px'; tt_h = 0; } function tt_IsW3cBox(){ var css = tt_aElt[0].style; css.padding = '10px'; css.width = '40px'; tt_bBoxOld = (tt_GetDivW(tt_aElt[0]) == 40); css.padding = '0px'; tt_ResetMainDiv(); } function tt_OpaSupport(){ var css = tt_body.style; tt_flagOpa = (typeof(css.KhtmlOpacity) != tt_u) ? 2 : (typeof(css.KHTMLOpacity) != tt_u) ? 3 : (typeof(css.MozOpacity) != tt_u) ? 4 : (typeof(css.opacity) != tt_u) ? 5 : (typeof(css.filter) != tt_u) ? 1 : 0; } function tt_SetOnloadFnc(){ tt_AddEvtFnc(document, 'DOMContentLoaded', tt_HideSrcTags); tt_AddEvtFnc(window, 'load', tt_HideSrcTags); if(tt_body.attachEvent) tt_body.attachEvent('onreadystatechange', function() { if(tt_body.readyState == 'complete') tt_HideSrcTags(); } ); if(/WebKit|KHTML/i.test(navigator.userAgent)) { var t = setInterval(function(){ if(/loaded|complete/.test(document.readyState)){clearInterval(t); tt_HideSrcTags(); }},10); } } function tt_HideSrcTags(){ if(!window.tt_HideSrcTags || window.tt_HideSrcTags.done) return; window.tt_HideSrcTags.done = true; if(!tt_HideSrcTagsRecurs(tt_body)) tt_Err('There are HTML elements to be converted to tooltips.',true); } function tt_HideSrcTagsRecurs(dad){ var ovr, asT2t; var a = dad.childNodes || dad.children || null; for(var i = a ? a.length : 0; i;){--i; if(!tt_HideSrcTagsRecurs(a[i])) return false; ovr = a[i].getAttribute ? (a[i].getAttribute('onmouseover') || a[i].getAttribute('onclick')) : (typeof a[i].onmouseover == 'function') ? (a[i].onmouseover || a[i].onclick) : null; if(ovr){ asT2t = ovr.toString().match(/TagToTip\s*\(\s*'[^'.]+'\s*[\),]/); if(asT2t && asT2t.length){ if(!tt_HideSrcTag(asT2t[0])) return false; } } } return true; } function tt_HideSrcTag(sT2t){ var id, el; id = sT2t.replace(/.+'([^'.]+)'.+/, '$1'); el = tt_GetElt(id); if(el){ if(tt_Debug && !TagsToTip) return false; else el.style.display = 'none'; } else tt_Err('Invalid ID '+id+' passed to TagToTip().'+' There exists no HTML element with that ID.', true); return true; } function tt_Tip(arg, t2t){ if(!tt_db || (tt_iState & 0x8)) return; if(tt_iState) tt_Hide(); if(!tt_Enabled) return; tt_t2t = t2t; if(!tt_ReadCmds(arg)) return; tt_iState = 0x1 | 0x4; tt_AdaptConfig1(); tt_MkTipContent(arg); tt_MkTipSubDivs(); tt_FormatTip(); tt_bJmpVert = false; tt_bJmpHorz = false; tt_maxPosX = tt_GetClientW() + tt_GetScrollX() - tt_w - 1; tt_maxPosY = tt_GetClientH() + tt_GetScrollY() - tt_h - 1; tt_AdaptConfig2(); // Ensure the tip be shown and positioned before the first onmousemove tt_OverInit(); tt_ShowInit(); tt_Move(); } function tt_ReadCmds(a){ var i; i=0; for(var j in config)tt_aV[i++] = config[j]; if(a.length & 1){ for(i = a.length - 1; i > 0; i -= 2) tt_aV[a[i - 1]] = a[i]; return true; } tt_Err('Incorrect call of Tip() or TagToTip(). Each command must be followed by a value.',true); return false; } function tt_AdaptConfig1(){ tt_ExtCallFncs(0, 'LoadConfig'); if(!tt_aV[TITLEBGCOLOR].length) tt_aV[TITLEBGCOLOR] = tt_aV[BORDERCOLOR]; if(!tt_aV[TITLEFONTCOLOR].length) tt_aV[TITLEFONTCOLOR]= tt_aV[BGCOLOR]; if(!tt_aV[TITLEFONTFACE].length) tt_aV[TITLEFONTFACE] = tt_aV[FONTFACE]; if(!tt_aV[TITLEFONTSIZE].length) tt_aV[TITLEFONTSIZE] = tt_aV[FONTSIZE]; if(tt_aV[CLOSEBTN]){ if(!tt_aV[CLOSEBTNCOLORS]) tt_aV[CLOSEBTNCOLORS] = new Array('', '', '', ''); for(var i = 4; i;){--i; if(!tt_aV[CLOSEBTNCOLORS][i].length) tt_aV[CLOSEBTNCOLORS][i] = (i & 1) ? tt_aV[TITLEFONTCOLOR] : tt_aV[TITLEBGCOLOR]; } if(!tt_aV[TITLE].length) tt_aV[TITLE] = ' '; } if(tt_aV[OPACITY] == 100 && typeof tt_aElt[0].style.MozOpacity != tt_u && !Array.every) tt_aV[OPACITY] = 99; if(tt_aV[FADEIN] && tt_flagOpa && tt_aV[DELAY] > 100) tt_aV[DELAY] = Math.max(tt_aV[DELAY] - tt_aV[FADEIN], 100); } function tt_AdaptConfig2(){ if(tt_aV[CENTERMOUSE]){ tt_aV[OFFSETX] -= ((tt_w - (tt_aV[SHADOW] ? tt_aV[SHADOWWIDTH] : 0)) >> 1); tt_aV[JUMPHORZ] = false; } } function tt_MkTipContent(a){ if(tt_t2t) { if(tt_aV[COPYCONTENT]) tt_sContent = tt_t2t.innerHTML; else tt_sContent = ''; } else tt_sContent = a[0]; tt_ExtCallFncs(0, 'CreateContentString'); } function tt_MkTipSubDivs(){ var sCss = 'position:relative;margin:0px;padding:0px;border-width:0px;left:0px;top:0px;line-height:normal;width:auto;', sTbTrTd = ' cellspacing="0" cellpadding="0" border="0" style="' + sCss + '">' + '' + tt_aV[CLOSEBTNTEXT] + ' | ') : '') + '