/*********************************************************************************************
ALTTXT V1.4
BY: BRIAN GOSSELIN OF SCRIPTASYLUM.COM

1: PUT THESE DIV IN THE END OF THE BODY AREA:
   <div id="navtxt"></div>

2: NEXT, PLACE THIS STYLE DECLARATION IN THE HEAD SECTION OF YOUR PAGE (JUST CHANGE YOUR SETTINGS):
   #navtxt { 
	position: absolute;
	top: -100px;
	left: 0px; 
	visibility: hidden;
	width: 235px;
	border: 2px outset #006BAE; 
	z-index: 9999;
	background-color: #FFF6D9; 
	color: black;
   }

3: THEN, SET THE 4 FLAGS BELOW (mousefollow, dofade, center, centertext) TO true OR false AS DESIRED.

4: LASTLY ADD THE MOUSEOVER/MOUSEOUT EVENT HANDLERS TO EACH LINK THAT YOU WANT THIS EFFECT FOR:
   <a onmouseover="writetxt('Popup text')" onmouseout="writetxt(0)">Link text</a>

NOTE: YOU CAN CAUSE A BOX *NOT* TO DISAPPEAR ONCE THE MOUSE LEAVES THE LINK BY SIMPLY OMITTING
      THE onmouseout="writetxt(0)" PART. THIS WILL CAUSE THE CURRENT BOX TO REMAIN VISIBLE. THIS
      IS BEST USED WHEN mousefollow MODE IS DISABLED (SET TO false).

*********************************************************************************************/

// box following mouse move
var mousefollow = true;
// fade-in effect (for IE4+ and NS6 only)
var dofade = false;
// center text (centering by style does not work in NS4)
var centertext = false;
// horizontal pixel count from cursor
var xoffset = -200;
// vertical pixel count from cursor
var yoffset = 5; 



function altProps() {
  this.ns4 = (navigator.appName.indexOf("Netscape") >= 0 && !document.getElementById) ? true : false;
  this.ie4 = (document.all && !document.getElementById) ? true : false;
  this.ie5 = (document.getElementById && document.all) ? true : false;
  this.ns6 = (document.getElementById && navigator.appName.indexOf("Netscape") >= 0 ) ? true: false;
  this.w3c = (document.getElementById) ? true : false;
  this.w_y = 0;
  this.w_x = 0;
  this.navtxt = 0;
  this.boxheight = 0;
  this.boxwidth = 0;
  this.ishover = false;
  this.isloaded = false;
  this.ieop = 0;
  this.op_id = 0;
  this.oktomove = false;
}

var AT = new altProps();

function getwindowdims() {
  AT.w_y = (AT.ie5 || AT.ie4) ? document.body.clientHeight : window.innerHeight;
  AT.w_x = (AT.ie5 || AT.ie4) ? document.body.clientWidth : window.innerWidth;
}

function getboxwidth() {
  if(AT.ns4)
    AT.boxwidth = (AT.navtxt.document.width) ? AT.navtxt.document.width : AT.navtxt.clip.width;
  else if(AT.ie4)
    AT.boxwidth = (AT.navtxt.style.pixelWidth) ? AT.navtxt.style.pixelWidth : AT.navtxt.offsetWidth;
  else
    AT.boxwidth = (AT.navtxt.style.width) ? parseInt(AT.navtxt.style.width) : parseInt(AT.navtxt.offsetWidth);
}

function getboxheight() {
  if(AT.ns4)
    AT.boxheight = (AT.navtxt.document.height) ? AT.navtxt.document.height : AT.navtxt.clip.height;
  else if(AT.ie4)
    AT.boxheight = (AT.navtxt.style.pixelHeight) ? AT.navtxt.style.pixelHeight : AT.navtxt.offsetHeight;
  else
    AT.boxheight = parseInt(AT.navtxt.offsetHeight);
}

function movenavtxt(x,y) {
  if(AT.ns4)
    AT.navtxt.moveTo(x,y);
  else {
    AT.navtxt.style.left = x + 'px';
    AT.navtxt.style.top = y + 'px';
  }
}

function getpagescrolly() {
  if(AT.ie5 || AT.ie4)
    return document.body.scrollTop;
  else 
    return window.pageYOffset;
}

function getpagescrollx() {
  if(AT.ie5 || AT.ie4)
    return document.body.scrollLeft;
  else 
    return window.pageXOffset;
}

function writeindiv(text) {
  // ie6 select bug
  // text = '<div>' + text + '</div><iframe style="width: ' + (AT.boxwidth + 6) + 'px; height: ' + (AT.boxheight + 6) + 'px;"></iframe>';
  text = '<div>' + text + '</div>';
  
  if(AT.ns4) {
    AT.navtxt.document.open();
    AT.navtxt.document.write(text);
    AT.navtxt.document.close();
  }
  else 
    AT.navtxt.innerHTML = text;
}

function writetxt(text) {
  if(AT.isloaded) {
    if(text != 0) {
      AT.oktomove = true;
	  AT.ishover = true;
	  if(AT.ns4)
	    text = '<div id="navtxt">' + ((centertext) ? '<center>' : '') + text + ((centertext) ? '</center>' : '') + '</div>';
      writeindiv(text);
      if(AT.ns4)
	    AT.navtxt.visibility = "show";
      else {
	    AT.navtxt.style.visibility = "visible";
		AT.navtxt.style.display = "block";
      }
      getboxheight();
	  if((AT.w3c || AT.ie4) && dofade) {
	    if(AT.ie4 || AT.ie5)
		  AT.navtxt.style.filter = "alpha(opacity=0)";
		if(AT.ns6)
		  AT.navtxt.style.MozOpacity = 0;
		AT.ieop = 0;
		AT.op_id = setInterval('incropacity()', 50);
	  }
	}
	else {
      if(AT.ns4)
	    AT.navtxt.visibility = "hide";
	  else {
		if(dofade)
		  clearInterval(AT.op_id);
		AT.navtxt.style.display = "none";
		AT.navtxt.style.visibility = "hidden";
	  }
	  writeindiv('');
    }
  }
}

function incropacity() {
  if(AT.ieop <= 100) {
    AT.ieop += 7;
	if(AT.ie4 || AT.ie5)
	  AT.navtxt.style.filter = "alpha(opacity=" + AT.ieop + ")";
	if(AT.ns6)
	  AT.navtxt.style.MozOpacity = AT.ieop / 100;
  }
  else 
	clearInterval(AT.op_id);
}

function moveobj(evt) {
  if(AT.isloaded && AT.ishover && AT.oktomove) {
    margin = (AT.ie4 || AT.ie5) ? 5 : 25;
	if(AT.ns6)
	  if(document.height + 27 - window.innerHeight < 0)
	    margin = 15;
	if(AT.ns4)
	  if(document.height - window.innerHeight < 0)
		margin = 10;
	mx = (AT.ie5 || AT.ie4) ? event.clientX : evt.pageX;
    my = (AT.ie5 || AT.ie4) ? event.clientY : evt.pageY;
    if(AT.ns4 || AT.ns6)
	  mx -= getpagescrollx();
    if(AT.ns4)
	  my -= getpagescrolly();
    xoff = mx + xoffset;
    yoff = (my + AT.boxheight + 25 - ((AT.ns6) ? getpagescrolly() : 0) + margin >= AT.w_y) ? -15 - AT.boxheight : 30;
    movenavtxt(Math.min(AT.w_x - AT.boxwidth - margin, Math.max(2, xoff)) + getpagescrollx(), my + yoff + ((!AT.ns6) ? getpagescrolly() : 0));
    if(!mousefollow)
	  AT.oktomove = false;
  }
}

if(AT.ns4)
  document.captureEvents(Event.MOUSEMOVE);

document.onmousemove = moveobj;

window.onload = function() {
  AT.navtxt = (AT.ns4) ? document.layers['navtxt'] : (AT.ie4) ? document.all['navtxt'] : (AT.w3c) ? document.getElementById('navtxt') : null;
  getboxwidth();
  getboxheight();
  getwindowdims();
  AT.isloaded = true;
  if((AT.w3c || AT.ie4) && centertext)
    AT.navtxt.style.textAlign = "center";
  if(AT.w3c)
    AT.navtxt.style.padding = '8px';
  if(AT.ie4 || AT.ie5 && dofade)
    AT.navtxt.style.filter = "alpha(opacity=0)";
}

window.onresize = getwindowdims;

