
var gOptDoFade=false;     // ENABLES FADE-IN EFFECT FOR IE4+ AND NS6 ONLY
var gOptCenter=false;     // CENTERS THE BOX UNER THE MOUSE, OTHERWISE DISPLAYS BOX TO THE RIGHT OF THE MOUSE
var gOptCenterText=false; // CENTERS THE TEXT INSIDE THE BOX. YOU CAN'T SIMPLY DO THIS VIA STYLE BECAUSE OF NS4.
                     // OTHERWISE, TEXT IS LEFT-JUSTIFIED.


////////////////////////////// NO NEED TO EDIT BEYOND THIS POINT //////////////////////////////////////

var NS4 = (navigator.appName.indexOf("Netscape")>=0 && !document.getElementById)? true : false;
var IE4 = (document.all && !document.getElementById)? true : false;
var IE5 = (document.getElementById && document.all)? true : false;
var NS6 = (document.getElementById && (navigator.appName.indexOf("Netscape")>=0 || navigator.appName == 'Opera')) ? true: false;
var W3C = (document.getElementById)? true : false;
var objAltTxt, gBoxHeight, gBoxWidth, gWY, gWX;
var gIsHover=false;
var gIsLoaded=false;
var gIEOpacity=0;
var gOpacityID=0;
//alert("NS4:"+NS4+" IE4:"+IE4+" IE5:"+IE5+" NS6:"+NS6+" W3C:"+W3C);

//////////////////////// Funções exclusivamnte internas da biblioteca ////////////////////////
function altGetWindowDims(){
  gWY=(NS4||NS6)? window.innerHeight : (IE5||IE4)? document.body.clientHeight : 0;
  gWX=(NS4||NS6)? window.innerWidth : (IE5||IE4)? document.body.clientWidth : 0;
}

function altGetgBoxWidth(){
  if(NS4)gBoxWidth=(objAltTxt.document.width)? objAltTxt.document.width : objAltTxt.clip.width;
  if(IE5||IE4)gBoxWidth=(objAltTxt.style.pixelWidth)? objAltTxt.style.pixelWidth : objAltTxt.offsetWidth;
  if(NS6)gBoxWidth=(objAltTxt.style.width)? parseInt(objAltTxt.style.width) : parseInt(objAltTxt.offsetWidth);
}

function altGetgBoxHeight(){
  if(NS4)gBoxHeight=(objAltTxt.document.height)? objAltTxt.document.height : objAltTxt.clip.height;
  if(IE4||IE5)gBoxHeight=(objAltTxt.style.pixelHeight)? objAltTxt.style.pixelHeight : objAltTxt.offsetHeight;
  if(NS6)gBoxHeight=parseInt(objAltTxt.offsetHeight);
}

function altMoveNavTxt(x,y){
  if(NS4)objAltTxt.moveTo(x,y);
  if(W3C||IE4){
    objAltTxt.style.left=x+'px';
    objAltTxt.style.top=y+'px';
  }
}

function altGetPageScrollY(){
  if(NS4||NS6)return window.pageYOffset;
  if(IE5||IE4)return document.body.scrollTop;
}

function altGetPageScrollX(){
  if(NS4||NS6)return window.pageXOffset;
  if(IE5||IE4)return document.body.scrollLeft;
}

function altWriteInDiv(text){
  if(NS4){
    objAltTxt.document.open();
    objAltTxt.document.write(text);
    objAltTxt.document.close();
  }
  if(W3C||IE4)objAltTxt.innerHTML=text;
}

//////////////////////// Funções internas da biblioteca raramente usadas fora ////////////////////////
function altIncrOpacity(){
  if(gIEOpacity<=100){
    gIEOpacity+=7;
    if(IE4 || IE5)objAltTxt.style.filter="alpha(opacity="+gIEOpacity+")";
    if(NS6)objAltTxt.style.MozOpacity=gIEOpacity/100;
    gOpacityID=setTimeout('altIncrOpacity()', 50);
  }
}

function altMoveObj(evt){
  if(gIsLoaded && gIsHover){
    margin=(IE4||IE5)? 1 : 23;
    if(NS6)if(document.height+27-window.innerHeight<0)margin=15;
    if(NS4)if(document.height-window.innerHeight<0)margin=10;
    //mx=(NS4||NS6)? evt.pageX : (IE5||IE4)? event.clientX : 0;
    //my=(NS4||NS6)? evt.pageY : (IE5||IE4)? event.clientY : 0;
    if (NS4){
      mx=evt.pageX
      my=evt.pageY
    }
    else if (NS6){
      mx=evt.clientX
      my=evt.clientY
    }
    else if (IE5){
      mx=event.clientX
      my=event.clientY
    }
    else if (IE4){
      mx=0
      my=0
    }

    if(NS4){
      mx-=altGetPageScrollX();
      my-=altGetPageScrollY();
    }
    xoff=(gOptCenter)? mx-gBoxWidth/2 : mx+5;
    yoff=(my+gBoxHeight+30-altGetPageScrollY()+margin>=gWY)? -15-gBoxHeight: 30;
    altMoveNavTxt( Math.min(gWX-gBoxWidth-margin , Math.max(2,xoff))+altGetPageScrollX() , my+yoff+altGetPageScrollY());
    if(NS4)objAltTxt.visibility="show";
    if(W3C||IE4)objAltTxt.style.visibility="visible";
  }
}

//////////////////////// Funções EXTERNAS da biblioteca ////////////////////////

function altTxt(text){
  if(gIsLoaded){
    if(text!=0){
      gIsHover=true;
      if(NS4)text='<div class="navtext">'+((gOptCenterText)?'<center>':'')+text+((gOptCenterText)?'</center>':'')+'</div>';
      altWriteInDiv(text);
      altGetgBoxHeight();
      if((W3C || IE4) && gOptDoFade){
        gIEOpacity=0;
        altIncrOpacity();
      }
    }else{
      if(NS4)objAltTxt.visibility="hide";
      if(IE4||W3C){
      if(gOptDoFade)
        clearTimeout(gOpacityID);
        objAltTxt.style.visibility="hidden";
      }
      altWriteInDiv('');
      gIsHover=false;
    }
  }
}

function altInit(optDoFade, optCenter, optCenterText){
  gOptDoFade=optDoFade;
  gOptCenter=optCenter;
  gOptCenterText=optCenterText;

  if(NS4)document.captureEvents(Event.MOUSEMOVE);
  document.onmousemove=altMoveObj;
  window.onload=function(){
    objAltTxt=(NS4)? document.layers['alttxt'] : (IE4)? document.all['alttxt'] : (W3C)? document.getElementById('alttxt') : null;
    altGetgBoxWidth();
    altGetgBoxHeight();
    altGetWindowDims();
    gIsLoaded=true;
    if((W3C || IE4) && gOptCenterText)objAltTxt.style.textAlign="center";
    if(W3C)objAltTxt.style.padding='4px';
    if(IE4 || IE5 && gOptDoFade)objAltTxt.style.filter="alpha(opacity=0)";
    }
  window.onresize=altGetWindowDims;
}

// function writetxt(text){
//   altTxt(text)
// }
altInit(true, true, true)
