// Credit to who ever modified this sloppy code so that it works better.  Nice work.

var preloadFlag = false;


function ylib_Browser() {
 var d=document;
 this.agt=navigator.userAgent.toLowerCase();
 this.major = parseInt(navigator.appVersion);
 this.dom=(d.getElementById)?1:0; // true for ie6, ns6
 this.ns=(d.layers);
 this.ns4up=(this.ns && this.major >=4);
 this.ns6=(this.dom&&navigator.appName=="Netscape");
 this.op=this.agt.indexOf('opera')!=-1;
 this.ie=(d.all);
 this.ie4=(d.all&&!this.dom)?1:0;
 this.ie4up=(this.ie && this.major >= 4);
 this.ie5=(d.all&&this.dom);
 this.win=((this.agt.indexOf("win")!=-1) || (this.agt.indexOf("16bit")!=-1));
 this.mac=(this.agt.indexOf("mac")!=-1);
}

var oBw = new ylib_Browser();


var activeSub = "";
var clicked = "";
var clickedOriginal = "";
var timer = null;
var subTimer = null;

function showSub(s) {
   if(activeSub != "") {
      hideSub(activeSub);
      clearTimeout(timer);
      clearTimeout(subTimer);
   }
   if (oBw.dom) { 
      document.getElementById(s).style.visibility = "visible";
   }
   else { 
      document.all[s].style.visibility = "visible";
   }
   activeSub = s;
}

function hideSub(sub) {
   if (oBw.dom) { 
    if (document.getElementById(sub)) document.getElementById(sub).style.visibility = "hidden"; 
   } else { document.all[sub].style.visibility = "hidden"; }
}

function navOut() {
   if(activeSub != "") {
      timer = setTimeout("hideSub(activeSub), unHighlight(clicked, clickedOriginal)", 200);
   }
}

function subOver(overSub, x) {
   if(activeSub == overSub) {
      clearTimeout(timer);
      clearTimeout(subTimer);
   } else {
      if(activeSub != "" && clicked != "") {
         hideSub(activeSub);
         unHighlight(clicked, clickedOriginal);
         highlight(x, ("images/"+x+"-HI.gif"), ("images/"+x+"-NA.gif"));
         showSub(overSub);
      }
   }
}

function subOut() {
   subTimer = setTimeout("hideSub(activeSub), unHighlight(clicked, clickedOriginal)", 400);
}

function stick() {
   if(oBw.dom) { 
   document.getElementById(stuck).src = "images/"+stuck+"-HI.gif"; }
   else { 
   document.all[stuck].src = "images/"+stuck+"-HI.gif"; }
}

function highlight(img) {
   var tempStuck;
   if(stuck == img) { tempStuck = stuck; stuck = ""; }
   changeImages(img, "images/"+img+"-HI.gif");
   clicked = img;
   clickedOriginal = "images/"+img+"-NA.gif";
   if(img == tempStuck) { stuck = img; }
}

function unHighlight(img, imgSrc) {
   var tempStuck;
   clicked = "";
   if(stuck == img) { tempStuck = stuck; stuck = ""; imgSrc = "images/"+img+"-HI.gif";}
   changeImages(img, imgSrc);
   if(img == tempStuck) { stuck = img; }
}

function changeBG(td) {
   if(oBw.dom) { document.getElementById(td).className = "subOver"; }
   else { document.all[td].className = "subOver"; }
}
function changeBGback(td) {
   if(oBw.dom) { if (document.getElementById(td)) document.getElementById(td).className = "sub"; }
   else { document.all[td].className = "sub"; }
}

function newImage(arg) {
   if (document.images) {
      var rslt = new Image();
      rslt.src = arg;
      return rslt;
   }
}

function changeImages() {
   var tclicked = "";
   if (document.images && (preloadFlag == true) && changeImages.arguments[0] != stuck && changeImages.arguments[0] != clicked) {
      for (var i=0; i<changeImages.arguments.length; i+=2) {
         document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
      }
   }
}

function preloadImages() {
   if (document.images && !preloadFlag) {
      var male_over = newImage("images/male-HI.gif");
      var female_over = newImage("images/female-HI.gif");
      preloadFlag = true;
      
   }
}

