/* CrossBrowser Stylable Tooltips
 *
 * Author   : www.guyfromchennai.com 
 *            Additional changes by Leon (izi-services.com)
 * Function : provides easy crossbrowser tooltips
 * Example  :
 *
 *    <html>
 *    <head>
 *      <title>Crossbrowser stylable tooltips</title>
 *      <script language="javascript" type="text/javascript" src="tooltip.js"></script>
 *      <style>
 *        .toolTip,
 *        .toolTip tr,
 *        .toolTip td,
 *        .toolTip th,
 *        .toolTip table        { margin:0; padding:0; filter:alpha(opacity=90); -moz-opacity: 90.0; opacity: 90.0; background-color: #FFF; color: #000 }
 *        .toolTip td           { padding: 0.5em; font-family: sans-serif, Verdana, Arial; font-size: 11px }
 *        .toolTip              { border: 1px solid #b1b1b1; }
 *      </style>
 *    </head>
 *    <body onload="tooltip.init();" bgcolor="#CCCCCC">
 *      <a href="#" title="Simpele tooltip">normal title tooltips still work</a><br>
 *      <a href="#" title="Dit....is een tooltip!" rel="<img src=http://upload.wikimedia.org/wikipedia/meta/2/2a/Nohat-logo-nowords-bgwhite-200px.jpg>">but now they are stylable!</a>
 *    </body>
 *    </html>
 *
 */

//browser detection
var agt=navigator.userAgent.toLowerCase();
var is_major = parseInt(navigator.appVersion);
var is_minor = parseFloat(navigator.appVersion);

var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
            && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
            && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
var is_nav4 = (is_nav && (is_major == 4));
var is_nav6 = (is_nav && (is_major == 5));
var is_nav6up = (is_nav && (is_major >= 5));
var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));


var tooltip = {

  // tooltip layout
  toolTipDiv:  null,
  ajaxLoader:  "lib/core/tooltip/gfx/ajaxloader.gif",

  init: function( onlyAnchors){
    if( !document.getElementById) return;
    // quick hack to prevent malicious requests done not from root
    if(document.location.pathname.length != 1)
      return;
    
    if( !onlyAnchors ){
      this.toolTipDiv                  = document.getElementById("toolTip") ? document.getElementById("toolTip") : document.createElement('div');
      this.toolTipDiv.style.left       = "0";
      this.toolTipDiv.style.right      = "0";
      this.toolTipDiv.style.position   = "absolute";
      this.toolTipDiv.id               = "toolTip";
      if( !document.getElementById("toolTip") )
        document.body.appendChild( this.toolTipDiv );
      this.toolTipDiv = this.toolTipDiv.style;

      if(is_ie || is_nav6up)
      {
        this.toolTipDiv.visibility = "visible";
        this.toolTipDiv.display = "none";
        document.onmousemove = tooltip.moveToMousePos;
      }
    }

    // now provide a tooltip for  all anchors with title tag
    var anchors = document.getElementsByTagName("a");
    for(var i = 0; i < anchors.length; i++) {
      if( anchors[i].title.length > 0 ){
        anchors[i].onmouseover = new Function("tooltip.toolTip( '"+document.location.href+anchors[i].rel+"' )");
        anchors[i].onmouseout  = new Function("tooltip.toolTip()");
        anchors[i].title = "";
      }
    }
    if( !doRequest )
      alert("(tooltip.js) need ajax.js function : doRequest(url, args, method, elname ) (");
  },

  moveToMousePos: function(e)
  {
    if(!is_ie){
      x = e.pageX;
      y = e.pageY;
    }else{
      x = event.x + document.body.scrollLeft;
      y = event.y + document.body.scrollTop;
    }
    this.toolTipDiv = document.getElementById("toolTip").style;
    this.toolTipDiv.left = (x+25)+'px';
    this.toolTipDiv.top = (y)+'px';
    return true;
  },


  toolTip: function( url )
  {
    if( this.toolTip.arguments.length == 0) // if no arguments are passed then hide the tootip
    {
      if(is_nav4)
        this.toolTipDiv.visibility = "hidden";
      else
        this.toolTipDiv.display = "none";
    }
    else // show
    {
      var content = '<table border="0" cellspacing="0" cellpadding="0" class="toolTip"><tr><td>' +
                    '<table border="0" cellspacing="1" cellpadding="0"><tr><td id="toolTipText"><img id="ajaxloader" src="'+this.ajaxLoader+'"/></td></tr></table>'+
                    '</td></tr></table>';
      setTimeout( 'doRequest( "'+url+'", false, "GET", "toolTipText" )', 250 );
     if(is_nav4)
      {
        this.toolTipDiv.document.write(content);
        this.toolTipDiv.document.close();
        this.toolTipDiv.visibility = "visible";
      }

      else if(is_ie || is_nav6up)
      {
        document.getElementById("toolTip").innerHTML = content;
        this.toolTipDiv.display='block'
      }
    }
  }
}  

