   // keeps program from executing prematurely
   okay = false;

   // initializes arrays and variables
   function var_init()
   {
   // rollover type: "highlighting"
   rtype = "highlighting";

   // path to the images 
   // (be sure to include the trailing "/")
   path = "/images/";
	var docloc = new String;
	docloc = document.location.toString();
	docloc = docloc.toLowerCase();
	if ((docloc.indexOf("index.html") > 0)||(docloc == "http://207.25.144.218/") || (docloc == "http://www.publist.com/"))
	{
	imagenames = new Array("home", "about", "search", "help", "pub", "part");
	}
	else
	{
	imagenames = new Array("home", "about", "search", "help");
	}
   // names of images
   

   // base image names, without the "-on", "-off", or ".gif"
   // these must be in quotes, and separated by commas ... 
     

   // suffixes for mouseover and mouseout
   suffixes = new Array( 

   // these are appended to the names above, to get the filename itself. 
     "-on", "-off" 
     );

   // filename extension (".gif", ".jpg", or ".png")
   ext = ".gif";
   } 

   // roll_init() function preloads images and binds events
   function roll_init()
   {
   // get the variables
   var_init();  // this calls the function from the web page

   // find out what browser this is
   with(navigator) {
     code = appCodeName; 
     app = appName; 
     version = appVersion; 
     iver = parseInt(version); 
     ua = userAgent;
     }

   // these are from the web page too. 
   son  = suffixes[0];  
   soff = suffixes[1];

   // ua string is a generalized printable string
   uastring = app + " " + iver;

   // this will work in "Mozilla" 3+ (includes MSIE 4)
   if ( code == "Mozilla" && iver >= 3 )  okay = true;
   else okay = false; 

   // this uses eval to create variables 
   // ... and to pre-load the images. 
   if (rtype == "highlighting") {
     for (var i = 0; i < imagenames.length; i++) {
    var name = imagenames[i];
    var ion  = "r" + name + "on";
    var ioff = "r" + name + "off";
    eval(ion  + " = new Image()");
    eval(ion  + ".src = '" + path + name + son  + ext + "'");
    eval(ioff + " = new Image()");
    eval(ioff + ".src = '" + path + name + soff + ext + "'");
    }
     }
   if (rtype == "pointing") {
     blank = new Image();
     on  = new Image();
     on.src  = path + imagenames[0] + ext;
     }
   if (rtype == "slideshow") {
     blank = new Image();
     for (var i = 0; i < imagenames.length; i++) {
    var name = imagenames[i];
    eval("r" + name  + " = new Image()");
    eval("r" + name  + ".src = '" + path + name + ext + "'");
    }
     }
   }

   // the onMouseOver entry point
   function over(imgname)
   {
   if (!okay) return true; // just leave unless okay

   // swap in the "on" image
   if (rtype == "highlighting")
     eval("document." + imgname + ".src = r" + imgname + "on.src");
   if (rtype == "pointing") {
     eval("blank.src = document." + imgname + ".src");
     eval("document." + imgname + ".src = on.src");
     }
   if (rtype == "slideshow") {
     blank.src = document.rollover.src;
     eval("document.rollover.src = r" + imgname + ".src");
     }
   return true;
   }

   // the onMouseOut entry point
   function out(imgname)
   {
   if (!okay) return true; // just leave unless okay

   // swap in the "off" image
   if (rtype == "highlighting")
     eval("document." + imgname + ".src = r" + imgname + "off.src");
   if (rtype == "pointing")
     eval("document." + imgname + ".src = blank.src");
   if (rtype == "slideshow") {
     document.rollover.src = blank.src;
     }
   return true;
   }