/*********************************************************************************************

ALTTXT V1.5
BY: BRIAN GOSSELIN OF SCRIPTASYLUM.COM

INSTRUCTIONS:

1: PUT THESE DIVS IN THE END OF THE BODY AREA:

   <div id="navtxt" class="navtext" style="position:absolute; top:-100px; left:0px; visibility:hidden;"></div>

2: NEXT, PLACE THIS STYLE DECLARATION IN THE HEAD SECTION OF YOUR PAGE (JUST CHANGE YOUR SETTINGS):

   .navtext { width:235px; font:bold 8pt sans-serif; border-width:2px; border-style:outset; border-color:#006BAE; z-index:10000; layer-background-color:#FFF6D9; background-color:#FFF6D9; color:black; }

2: THEN, SET THE 5 SETTINGS BELOW (mousefollow, dofade, centertext, xoffset, and yoffset) AS DESIRED.

3: LASTLY ADD THE MOUSEOVER/MOUSEOUT EVENT HANDLERS TO EACH LINK THAT YOU WANT THIS EFFECT FOR:

     EXAMPLE: <a href="scriptasylum.com" 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).

*********************************************************************************************/

var mousefollow=true;  // ENABLES MOUSE FOLLOW MODE WHERE THE BOX CONTINUES TO FOLLOW THE MOUSE.
                       // SETTING TO false WILL CAUSE THE BOX TO APPEAR NEAR THE MOUSE BUT WILL NOT
                       // CONTINUE TO FOLLOW THE MOUSE. 
var dofade=true;       // ENABLES FADE-IN EFFECT (FOR IE4+ AND NS6 ONLY)
var centertext=false;  // CENTERS THE TEXT INSIDE THE BOX. YOU CAN'T SIMPLY DO THIS VIA "STYLE" BECAUSE OF NS4.
                       // OTHERWISE, TEXT IS LEFT-JUSTIFIED.
var xoffset=9;         // HORIZONTAL PIXEL COUNT FROM CURSOR
var yoffset=25;         // VERTICAL PIXEL COUNT FROM CURSOR

////////////////////////////// NO NEED TO EDIT BEYOND THIS POINT //////////////////////////////////////

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;
}

function toggle_centertext(){
centertext=!centertext;
AT_.navtxt.style.textAlign=((AT_.w3c || AT_.ie4) && centertext)?"center" : "left";
}

function toggle_mousefollow(){
mousefollow=!mousefollow;
}

function toggle_dofade(){
dofade=!dofade;
if(!dofade)AT_.ieop=100;
}

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){
if(AT_.ns4){
AT_.navtxt.document.open();
AT_.navtxt.document.write(text);
AT_.navtxt.document.close();
}
else AT_.navtxt.innerHTML=text;
}

function writetxt(text,col){
if(AT_.isloaded){
if(text!=0){
AT_.oktomove=true;
AT_.ishover=true;
if(AT_.ns4)text='<div class="navtext">'+((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";
}
movenavtxt(-AT_.boxwidth-10,0);
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){
mx=(AT_.ie5||AT_.ie4)?event.clientX:evt.pageX;
my=(AT_.ie5||AT_.ie4)?event.clientY:evt.pageY;
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;
if(AT_.ns4||AT_.ns6)mx-=getpagescrollx();
if(AT_.ns4)my-=getpagescrolly();
xoff=mx+xoffset;
yoff=(my+AT_.boxheight+yoffset-((AT_.ns6)?getpagescrolly():0)>=AT_.w_y)? -5-AT_.boxheight-yoffset: yoffset;
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='4px';
  if(AT_.ie4 || AT_.ie5 && dofade)AT_.navtxt.style.filter="alpha(opacity=0)";
  }

window.onresize=getwindowdims;

