Subversion Repositories wimsdev

Rev

Rev 5857 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. /* This notice must be untouched at all times.
  2.  
  3. wz_tooltip.js    v. 3.38
  4.  
  5. The latest version is available at
  6. http://www.walterzorn.com
  7. or http://www.devira.com
  8. or http://www.walterzorn.de
  9.  
  10. Copyright (c) 2002-2005 Walter Zorn. All rights reserved.
  11. Created 1. 12. 2002 by Walter Zorn (Web: http://www.walterzorn.com )
  12. Last modified: 9. 12. 2005
  13.  
  14. Cross-browser tooltips working even in Opera 5 and 6,
  15. as well as in NN 4, Gecko-Browsers, IE4+, Opera 7+ and Konqueror.
  16. No onmouseouts required.
  17. Appearance of tooltips can be individually configured
  18. via commands within the onmouseovers.
  19.  
  20. LICENSE: LGPL
  21.  
  22. This library is free software; you can redistribute it and/or
  23. modify it under the terms of the GNU Lesser General Public
  24. License (LGPL) as published by the Free Software Foundation; either
  25. version 2.1 of the License, or (at your option) any later version.
  26.  
  27. This library is distributed in the hope that it will be useful,
  28. but WITHOUT ANY WARRANTY; without even the implied warranty of
  29. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  30.  
  31. For more details on the GNU Lesser General Public License,
  32. see http://www.gnu.org/copyleft/lesser.html
  33. */
  34.  
  35.  
  36.  
  37. ////////////////  GLOBAL TOOPTIP CONFIGURATION  /////////////////////
  38. var ttAbove       = false;        // tooltip above mousepointer? Alternative: true
  39. var ttBgColor     = "#fffff0";
  40. var ttBgImg       = "";           // path to background image;
  41. var ttBorderColor = "#003399";
  42. var ttBorderWidth = 1;
  43. var ttDelay       = 100;          // time span until tooltip shows up [milliseconds]
  44. var ttFontColor   = "#000066";
  45. var ttFontFace    = "arial,helvetica,sans-serif";
  46. var ttFontSize    = "11px";
  47. var ttFontWeight  = "normal";     // alternative: "bold";
  48. var ttLeft        = false;        // tooltip on the left of the mouse? Alternative: true
  49. var ttOffsetX     = 12;           // horizontal offset of left-top corner from mousepointer
  50. var ttOffsetY     = 30;           // vertical offset                   "
  51. var ttOpacity     = 92;          // opacity of tooltip in percent (must be integer between 0 and 100)
  52. var ttPadding     = 3;            // spacing between border and content
  53. var ttShadowColor = false;
  54. var ttShadowWidth = false;
  55. var ttStatic      = false;        // tooltip NOT move with the mouse? Alternative: true
  56. var ttSticky      = true;        // do NOT hide tooltip on mouseout? Alternative: true
  57. var ttTemp        = 0;            // time span after which the tooltip disappears; 0 (zero) means "infinite timespan"
  58. var ttTextAlign   = "left";
  59. var ttTitleColor  = "#ffffff";    // color of caption text
  60. var ttWidth       = 600;
  61. ////////////////////  END OF TOOLTIP CONFIG  ////////////////////////
  62.  
  63.  
  64.  
  65. //////////////  TAGS WITH TOOLTIP FUNCTIONALITY  ////////////////////
  66. // List may be extended or shortened:
  67. var tt_tags = new Array("a","area","b","big","caption","center","code","dd","div","dl","dt","em","h1","h2","h3","h4","h5","h6","i","img","input","li","map","ol","p","pre","s", "select", "small","span","strike","strong","sub","sup","table","td","th","tr","tt","u","var","ul","layer");
  68. /////////////////////////////////////////////////////////////////////
  69.  
  70.  
  71.  
  72. ///////// DON'T CHANGE ANYTHING BELOW THIS LINE /////////////////////
  73. var tt_obj = null,         // current tooltip
  74. tt_ifrm = null,            // iframe to cover windowed controls in IE
  75. tt_objW = 0, tt_objH = 0,  // width and height of tt_obj
  76. tt_objX = 0, tt_objY = 0,
  77. tt_offX = 0, tt_offY = 0,
  78. xlim = 0, ylim = 0,        // right and bottom borders of visible client area
  79. tt_sup = false,            // true if T_ABOVE cmd
  80. tt_sticky = false,         // tt_obj sticky?
  81. tt_wait = false,
  82. tt_act = false,            // tooltip visibility flag
  83. tt_sub = false,            // true while tooltip below mousepointer
  84. tt_u = "undefined",
  85. tt_mf = null,              // stores previous mousemove evthandler
  86. // Opera: disable href when hovering <a>
  87. tt_tag = null;             // stores hovered dom node, href and previous statusbar txt
  88.  
  89.  
  90. var tt_db = (document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body? document.body : null,
  91. tt_n = navigator.userAgent.toLowerCase(),
  92. tt_nv = navigator.appVersion;
  93. // Browser flags
  94. var tt_op = !!(window.opera && document.getElementById),
  95. tt_op6 = tt_op && !document.defaultView,
  96. tt_op7 = tt_op && !tt_op6,
  97. tt_ie = tt_n.indexOf("msie") != -1 && document.all && tt_db && !tt_op,
  98. tt_ie6 = tt_ie && parseFloat(tt_nv.substring(tt_nv.indexOf("MSIE")+5)) >= 5.5,
  99. tt_n4 = (document.layers && typeof document.classes != tt_u),
  100. tt_n6 = (!tt_op && document.defaultView && typeof document.defaultView.getComputedStyle != tt_u),
  101. tt_w3c = !tt_ie && !tt_n6 && !tt_op && document.getElementById;
  102.  
  103. function tt_Int(t_x)
  104. {
  105.         var t_y;
  106.         return isNaN(t_y = parseInt(t_x))? 0 : t_y;
  107. }
  108. function wzReplace(t_x, t_y)
  109. {
  110.         var t_ret = "",
  111.         t_str = this,
  112.         t_xI;
  113.         while((t_xI = t_str.indexOf(t_x)) != -1)
  114.         {
  115.                 t_ret += t_str.substring(0, t_xI) + t_y;
  116.                 t_str = t_str.substring(t_xI + t_x.length);
  117.         }
  118.         return t_ret+t_str;
  119. }
  120. String.prototype.wzReplace = wzReplace;
  121. function tt_N4Tags(tagtyp, t_d, t_y)
  122. {
  123.         t_d = t_d || document;
  124.         t_y = t_y || new Array();
  125.         var t_x = (tagtyp=="a")? t_d.links : t_d.layers;
  126.         for(var z = t_x.length; z--;) t_y[t_y.length] = t_x[z];
  127.         for(z = t_d.layers.length; z--;) t_y = tt_N4Tags(tagtyp, t_d.layers[z].document, t_y);
  128.         return t_y;
  129. }
  130. function tt_Htm(tt, t_id, txt)
  131. {
  132.         var t_bgc = (typeof tt.T_BGCOLOR != tt_u)? tt.T_BGCOLOR : ttBgColor,
  133.         t_bgimg   = (typeof tt.T_BGIMG != tt_u)? tt.T_BGIMG : ttBgImg,
  134.         t_bc      = (typeof tt.T_BORDERCOLOR != tt_u)? tt.T_BORDERCOLOR : ttBorderColor,
  135.         t_bw      = (typeof tt.T_BORDERWIDTH != tt_u)? tt.T_BORDERWIDTH : ttBorderWidth,
  136.         t_ff      = (typeof tt.T_FONTFACE != tt_u)? tt.T_FONTFACE : ttFontFace,
  137.         t_fc      = (typeof tt.T_FONTCOLOR != tt_u)? tt.T_FONTCOLOR : ttFontColor,
  138.         t_fsz     = (typeof tt.T_FONTSIZE != tt_u)? tt.T_FONTSIZE : ttFontSize,
  139.         t_fwght   = (typeof tt.T_FONTWEIGHT != tt_u)? tt.T_FONTWEIGHT : ttFontWeight,
  140.         t_opa     = (typeof tt.T_OPACITY != tt_u)? tt.T_OPACITY : ttOpacity,
  141.         t_padd    = (typeof tt.T_PADDING != tt_u)? tt.T_PADDING : ttPadding,
  142.         t_shc     = (typeof tt.T_SHADOWCOLOR != tt_u)? tt.T_SHADOWCOLOR : (ttShadowColor || 0),
  143.         t_shw     = (typeof tt.T_SHADOWWIDTH != tt_u)? tt.T_SHADOWWIDTH : (ttShadowWidth || 0),
  144.         t_algn    = (typeof tt.T_TEXTALIGN != tt_u)? tt.T_TEXTALIGN : ttTextAlign,
  145.         t_tit     = (typeof tt.T_TITLE != tt_u)? tt.T_TITLE : "",
  146.         t_titc    = (typeof tt.T_TITLECOLOR != tt_u)? tt.T_TITLECOLOR : ttTitleColor,
  147.         t_w       = (typeof tt.T_WIDTH != tt_u)? tt.T_WIDTH  : ttWidth;
  148.         if(t_shc || t_shw)
  149.         {
  150.                 t_shc = t_shc || "#cccccc";
  151.                 t_shw = t_shw || 5;
  152.         }
  153.         if(tt_n4 && (t_fsz == "10px" || t_fsz == "11px")) t_fsz = "12px";
  154.  
  155.         var t_optx = (tt_n4? '' : tt_n6? ('-moz-opacity:'+(t_opa/100.0)) : tt_ie? ('filter:Alpha(opacity='+t_opa+')') : ('opacity:'+(t_opa/100.0))) + ';';
  156.         var t_y = '<div id="'+t_id+'" style="position:absolute;z-index:1010;';
  157.         t_y += 'left:0px;top:0px;width:'+(t_w+t_shw)+'px;visibility:'+(tt_n4? 'hide' : 'hidden')+';'+t_optx+'">' +
  158.                 '<table border="0" cellpadding="0" cellspacing="0"'+(t_bc? (' bgcolor="'+t_bc+'" style="background:'+t_bc+';"') : '')+' width="'+t_w+'">';
  159.         if(t_tit)
  160.         {
  161.                 t_y += '<tr><td style="padding-left:3px;padding-right:3px;" align="'+t_algn+'"><font color="'+t_titc+'" face="'+t_ff+'" ' +
  162.                         'style="color:'+t_titc+';font-family:'+t_ff+';font-size:'+t_fsz+';"><b>' +
  163.                         (tt_n4? '&nbsp;' : '')+t_tit+'</b></font></td></tr>';
  164.         }
  165.         t_y += '<tr><td><table border="0" cellpadding="'+t_padd+'" cellspacing="'+t_bw+'" width="100%">' +
  166.                 '<tr><td'+(t_bgc? (' bgcolor="'+t_bgc+'"') : '')+(t_bgimg? ' background="'+t_bgimg+'"' : '')+' style="text-align:'+t_algn+';';
  167.         if(tt_n6) t_y += 'padding:'+t_padd+'px;';
  168.         t_y += '" align="'+t_algn+'"><font color="'+t_fc+'" face="'+t_ff+'"' +
  169.                 ' style="color:'+t_fc+';font-family:'+t_ff+';font-size:'+t_fsz+';font-weight:'+t_fwght+';">';
  170.         if(t_fwght == 'bold') t_y += '<b>';
  171.         t_y += txt;
  172.         if(t_fwght == 'bold') t_y += '</b>';
  173.         t_y += '</font></td></tr></table></td></tr></table>';
  174.         if(t_shw)
  175.         {
  176.                 var t_spct = Math.round(t_shw*1.3);
  177.                 if(tt_n4)
  178.                 {
  179.                         t_y += '<layer bgcolor="'+t_shc+'" left="'+t_w+'" top="'+t_spct+'" width="'+t_shw+'" height="0"></layer>' +
  180.                                 '<layer bgcolor="'+t_shc+'" left="'+t_spct+'" align="bottom" width="'+(t_w-t_spct)+'" height="'+t_shw+'"></layer>';
  181.                 }
  182.                 else
  183.                 {
  184.                         t_optx = tt_n6? '-moz-opacity:0.85;' : tt_ie? 'filter:Alpha(opacity=85);' : 'opacity:0.85;';
  185.                         t_y += '<div id="'+t_id+'R" style="position:absolute;background:'+t_shc+';left:'+t_w+'px;top:'+t_spct+'px;width:'+t_shw+'px;height:1px;overflow:hidden;'+t_optx+'"></div>' +
  186.                                 '<div style="position:relative;background:'+t_shc+';left:'+t_spct+'px;top:0px;width:'+(t_w-t_spct)+'px;height:'+t_shw+'px;overflow:hidden;'+t_optx+'"></div>';
  187.                 }
  188.         }
  189.         return(t_y+'</div>' +
  190.                 (tt_ie6 ? '<iframe id="TTiEiFrM" src="javascript:false" scrolling="no" frameborder="0" style="filter:Alpha(opacity=0);position:absolute;top:0px;left:0px;display:none;"></iframe>' : ''));
  191. }
  192. function tt_EvX(t_e)
  193. {
  194.         var t_y = tt_Int(t_e.pageX || t_e.clientX || 0) +
  195.                 tt_Int(tt_ie? tt_db.scrollLeft : 0) +
  196.                 tt_offX;
  197.         if(t_y > xlim) t_y = xlim;
  198.         var t_scr = tt_Int(window.pageXOffset || (tt_db? tt_db.scrollLeft : 0) || 0);
  199.         if(t_y < t_scr) t_y = t_scr;
  200.         return t_y;
  201. }
  202. function tt_EvY(t_e)
  203. {
  204.         var t_y = tt_Int(t_e.pageY || t_e.clientY || 0) +
  205.                 tt_Int(tt_ie? tt_db.scrollTop : 0);
  206.         if(tt_sup) t_y -= (tt_objH + tt_offY - 15);
  207.         else if(t_y > ylim || !tt_sub && t_y > ylim-24)
  208.         {
  209.                 t_y -= (tt_objH + 5);
  210.                 tt_sub = false;
  211.         }
  212.         else
  213.         {
  214.                 t_y += tt_offY;
  215.                 tt_sub = true;
  216.         }
  217.         return t_y;
  218. }
  219. function tt_ReleasMov()
  220. {
  221.         if(document.onmousemove == tt_Move)
  222.         {
  223.                 if(!tt_mf && document.releaseEvents) document.releaseEvents(Event.MOUSEMOVE);
  224.                 document.onmousemove = tt_mf;
  225.         }
  226. }
  227. function tt_ShowIfrm(t_x)
  228. {
  229.         if(!tt_obj || !tt_ifrm) return;
  230.         if(t_x)
  231.         {
  232.                 tt_ifrm.style.width = tt_objW+'px';
  233.                 tt_ifrm.style.height = tt_objH+'px';
  234.                 tt_ifrm.style.display = "block";
  235.         }
  236.         else tt_ifrm.style.display = "none";
  237. }
  238. function tt_GetDiv(t_id)
  239. {
  240.         return(
  241.                 tt_n4? (document.layers[t_id] || null)
  242.                 : tt_ie? (document.all[t_id] || null)
  243.                 : (document.getElementById(t_id) || null)
  244.         );
  245. }
  246. function tt_GetDivW()
  247. {
  248.         return tt_Int(
  249.                 tt_n4? tt_obj.clip.width
  250.                 : (tt_obj.style.pixelWidth || tt_obj.offsetWidth)
  251.         );
  252. }
  253. function tt_GetDivH()
  254. {
  255.         return tt_Int(
  256.                 tt_n4? tt_obj.clip.height
  257.                 : (tt_obj.style.pixelHeight || tt_obj.offsetHeight)
  258.         );
  259. }
  260.  
  261. // Compat with DragDrop Lib: Ensure that z-index of tooltip is lifted beyond toplevel dragdrop element
  262. function tt_SetDivZ()
  263. {
  264.         var t_i = tt_obj.style || tt_obj;
  265.         if(t_i)
  266.         {
  267.                 if(window.dd && dd.z)
  268.                         t_i.zIndex = Math.max(dd.z+1, t_i.zIndex);
  269.                 if(tt_ifrm) tt_ifrm.style.zIndex = t_i.zIndex-1;
  270.         }
  271. }
  272. function tt_SetDivPos(t_x, t_y)
  273. {
  274.         var t_i = tt_obj.style || tt_obj;
  275.         var t_px = (tt_op6 || tt_n4)? '' : 'px';
  276.         t_i.left = (tt_objX = t_x) + t_px;
  277.         t_i.top = (tt_objY = t_y) + t_px;
  278.         if(tt_ifrm)
  279.         {
  280.                 tt_ifrm.style.left = t_i.left;
  281.                 tt_ifrm.style.top = t_i.top;
  282.         }
  283. }
  284. function tt_ShowDiv(t_x)
  285. {
  286.         tt_ShowIfrm(t_x);
  287.         if(tt_n4) tt_obj.visibility = t_x? 'show' : 'hide';
  288.         else tt_obj.style.visibility = t_x? 'visible' : 'hidden';
  289.         tt_act = t_x;
  290. }
  291. function tt_OpDeHref(t_e)
  292. {
  293.         var t_tag;
  294.         if(t_e)
  295.         {
  296.                 t_tag = t_e.target;
  297.                 while(t_tag)
  298.                 {
  299.                         if(t_tag.hasAttribute("href"))
  300.                         {
  301.                                 tt_tag = t_tag
  302.                                 tt_tag.t_href = tt_tag.getAttribute("href");
  303.                                 tt_tag.removeAttribute("href");
  304.                                 tt_tag.style.cursor = "hand";
  305.                                 tt_tag.onmousedown = tt_OpReHref;
  306.                                 tt_tag.stats = window.status;
  307.                                 window.status = tt_tag.t_href;
  308.                                 break;
  309.                         }
  310.                         t_tag = t_tag.parentElement;
  311.                 }
  312.         }
  313. }
  314. function tt_OpReHref()
  315. {
  316.         if(tt_tag)
  317.         {
  318.                 tt_tag.setAttribute("href", tt_tag.t_href);
  319.                 window.status = tt_tag.stats;
  320.                 tt_tag = null;
  321.         }
  322. }
  323. function tt_Show(t_e, t_id, t_sup, t_delay, t_fix, t_left, t_offx, t_offy, t_static, t_sticky, t_temp)
  324. {
  325.         if(tt_obj) tt_Hide();
  326.         tt_mf = document.onmousemove || null;
  327.         if(window.dd && (window.DRAG && tt_mf == DRAG || window.RESIZE && tt_mf == RESIZE)) return;
  328.         var t_sh, t_h;
  329.  
  330.         tt_obj = tt_GetDiv(t_id);
  331.         if(tt_obj)
  332.         {
  333.                 t_e = t_e || window.event;
  334.                 tt_sub = !(tt_sup = t_sup);
  335.                 tt_sticky = t_sticky;
  336.                 tt_objW = tt_GetDivW();
  337.                 tt_objH = tt_GetDivH();
  338.                 tt_offX = t_left? -(tt_objW+t_offx) : t_offx;
  339.                 tt_offY = t_offy;
  340.                 if(tt_op7) tt_OpDeHref(t_e);
  341.                 if(tt_n4)
  342.                 {
  343.                         if(tt_obj.document.layers.length)
  344.                         {
  345.                                 t_sh = tt_obj.document.layers[0];
  346.                                 t_sh.clip.height = tt_objH - Math.round(t_sh.clip.width*1.3);
  347.                         }
  348.                 }
  349.                 else
  350.                 {
  351.                         t_sh = tt_GetDiv(t_id+'R');
  352.                         if(t_sh)
  353.                         {
  354.                                 t_h = tt_objH - tt_Int(t_sh.style.pixelTop || t_sh.style.top || 0);
  355.                                 if(typeof t_sh.style.pixelHeight != tt_u) t_sh.style.pixelHeight = t_h;
  356.                                 else t_sh.style.height = t_h+'px';
  357.                         }
  358.                 }
  359.  
  360.                 xlim = tt_Int((tt_db && tt_db.clientWidth)? tt_db.clientWidth : window.innerWidth) +
  361.                         tt_Int(window.pageXOffset || (tt_db? tt_db.scrollLeft : 0) || 0) -
  362.                         tt_objW -
  363.                         (tt_n4? 21 : 0);
  364.                 ylim = tt_Int(window.innerHeight || tt_db.clientHeight) +
  365.                         tt_Int(window.pageYOffset || (tt_db? tt_db.scrollTop : 0) || 0) -
  366.                         tt_objH - tt_offY;
  367.  
  368.                 tt_SetDivZ();
  369.                 if(t_fix) tt_SetDivPos(tt_Int((t_fix = t_fix.split(','))[0]), tt_Int(t_fix[1]));
  370.                 else tt_SetDivPos(tt_EvX(t_e), tt_EvY(t_e));
  371.  
  372.                 var t_txt = 'tt_ShowDiv(\'true\');';
  373.                 if(t_sticky) t_txt += '{'+
  374.                                 'tt_ReleasMov();'+
  375.                                 'window.tt_upFunc = document.onmouseup || null;'+
  376.                                 'if(document.captureEvents) document.captureEvents(Event.MOUSEUP);'+
  377.                                 'document.onmouseup = new Function("window.setTimeout(\'tt_Hide();\', 10);");'+
  378.                         '}';
  379.                 else if(t_static) t_txt += 'tt_ReleasMov();';
  380.                 if(t_temp > 0) t_txt += 'window.tt_rtm = window.setTimeout(\'tt_sticky = false; tt_Hide();\','+t_temp+');';
  381.                 window.tt_rdl = window.setTimeout(t_txt, t_delay);
  382.  
  383.                 if(!t_fix)
  384.                 {
  385.                         if(document.captureEvents) document.captureEvents(Event.MOUSEMOVE);
  386.                         document.onmousemove = tt_Move;
  387.                 }
  388.         }
  389. }
  390. var tt_area = false;
  391. function tt_Move(t_ev)
  392. {
  393.         if(!tt_obj) return;
  394.         if(tt_n6 || tt_w3c)
  395.         {
  396.                 if(tt_wait) return;
  397.                 tt_wait = true;
  398.                 setTimeout('tt_wait = false;', 5);
  399.         }
  400.         var t_e = t_ev || window.event;
  401.         tt_SetDivPos(tt_EvX(t_e), tt_EvY(t_e));
  402.         if(tt_op6)
  403.         {
  404.                 if(tt_area && t_e.target.tagName != 'AREA') tt_Hide();
  405.                 else if(t_e.target.tagName == 'AREA') tt_area = true;
  406.         }
  407. }
  408. function tt_Hide()
  409. {
  410.         if(window.tt_obj)
  411.         {
  412.                 if(window.tt_rdl) window.clearTimeout(tt_rdl);
  413.                 if(!tt_sticky || !tt_act)
  414.                 {
  415.                         if(window.tt_rtm) window.clearTimeout(tt_rtm);
  416.                         tt_ShowDiv(false);
  417.                         tt_SetDivPos(-tt_objW, -tt_objH);
  418.                         tt_obj = null;
  419.                         if(typeof window.tt_upFunc != tt_u) document.onmouseup = window.tt_upFunc;
  420.                 }
  421.                 tt_sticky = false;
  422.                 if(tt_op6 && tt_area) tt_area = false;
  423.                 tt_ReleasMov();
  424.                 if(tt_op7) tt_OpReHref();
  425.         }
  426. }
  427. function tt_Init()
  428. {
  429.         if(!(tt_op || tt_n4 || tt_n6 || tt_ie || tt_w3c)) return;
  430.  
  431.         var htm = tt_n4? '<div style="position:absolute;"></div>' : '',
  432.         tags,
  433.         t_tj,
  434.         over,
  435.         esc = 'return escape(';
  436.         var i = tt_tags.length; while(i--)
  437.         {
  438.                 tags = tt_ie? (document.all.tags(tt_tags[i]) || 1)
  439.                         : document.getElementsByTagName? (document.getElementsByTagName(tt_tags[i]) || 1)
  440.                         : (!tt_n4 && tt_tags[i]=="a")? document.links
  441.                         : 1;
  442.                 if(tt_n4 && (tt_tags[i] == "a" || tt_tags[i] == "layer")) tags = tt_N4Tags(tt_tags[i]);
  443.                 var j = tags.length; while(j--)
  444.                 {
  445.                         if(typeof (t_tj = tags[j]).onmouseover == "function" && t_tj.onmouseover.toString().indexOf(esc) != -1 && !tt_n6 || tt_n6 && (over = t_tj.getAttribute("onmouseover")) && over.indexOf(esc) != -1)
  446.                         {
  447.                                 if(over) t_tj.onmouseover = new Function(over);
  448.                                 var txt = unescape(t_tj.onmouseover());
  449.                                 htm += tt_Htm(
  450.                                         t_tj,
  451.                                         "tOoLtIp"+i+""+j,
  452.                                         txt.wzReplace("& ","&")
  453.                                 );
  454.  
  455.                                 t_tj.onmouseover = new Function('e',
  456.                                         'tt_Show(e,'+
  457.                                         '"tOoLtIp' +i+''+j+ '",'+
  458.                                         ((typeof t_tj.T_ABOVE != tt_u)? t_tj.T_ABOVE : ttAbove)+','+
  459.                                         ((typeof t_tj.T_DELAY != tt_u)? t_tj.T_DELAY : ttDelay)+','+
  460.                                         ((typeof t_tj.T_FIX != tt_u)? '"'+t_tj.T_FIX+'"' : '""')+','+
  461.                                         ((typeof t_tj.T_LEFT != tt_u)? t_tj.T_LEFT : ttLeft)+','+
  462.                                         ((typeof t_tj.T_OFFSETX != tt_u)? t_tj.T_OFFSETX : ttOffsetX)+','+
  463.                                         ((typeof t_tj.T_OFFSETY != tt_u)? t_tj.T_OFFSETY : ttOffsetY)+','+
  464.                                         ((typeof t_tj.T_STATIC != tt_u)? t_tj.T_STATIC : ttStatic)+','+
  465.                                         ((typeof t_tj.T_STICKY != tt_u)? t_tj.T_STICKY : ttSticky)+','+
  466.                                         ((typeof t_tj.T_TEMP != tt_u)? t_tj.T_TEMP : ttTemp)+
  467.                                         ');'
  468.                                 );
  469.                                 t_tj.onmouseout = tt_Hide;
  470.                                 if(t_tj.alt) t_tj.alt = "";
  471.                                 if(t_tj.title) t_tj.title = "";
  472.                         }
  473.                 }
  474.         }
  475.         document.write(htm);
  476.         if(document.getElementById) tt_ifrm = document.getElementById("TTiEiFrM");
  477. }
  478. tt_Init();
  479.