function getBrowser()  // get the browser program name
  {
  if (navigator.appName == null || navigator.appName == "")
    return "other";
  else if (navigator.appName == "Netscape")
    return "netscape";
  else if (navigator.appName == "Microsoft Internet Explorer")
    return "ie";
  else if  (navigator.appName == "AOL")
    return "aol";
  else
    return "other";
  }

function isNetscape()  // is browser Netscape?
  {
  if (getBrowser() == "netscape")
    return true;
  else
    return false;
  }

function isIE()  // is browser IE?
  {
  if (getBrowser() == "ie")
    return true;
  else
    return false;
  }
function isAOL() //is browser AOL *spit*
  {
  if (getBrowser() == "aol")
    return true;
  else
    return false;
  }

function getBrowserVer()  // get the browser version
  {
  if (navigator.appVersion == null || navigator.appVersion == "")
    return "n/a";
  // fix for IE 5.x appVersion bug, which returns 4.x instead of 5.x
  if (isIE() && navigator.userAgent.indexOf("5.") != -1)
    { 
    var verNum = "";
    var str = navigator.userAgent;
    var pos = str.indexOf("IE ");  // real version num follows "IE "
    for (pos=pos+3; pos<str.length; pos++)  // build verNum string
      if (str.charAt(pos) == "." || 
         (str.charAt(pos) <= "9" && str.charAt(pos) >= "0"))
        verNum += str.charAt(pos);
      else
        break;
    return verNum;
    }
  var verArray = navigator.appVersion.split(" ");
  return verArray[0];
  }

function isVer3()  // is browser version 3.x? 
  {
  if (getBrowserVer() >= 3.0 && getBrowserVer() < 4.0)
    return true;
  else
    return false;
  }

function isVer4()  // is browser version 4.x? (should in theory cover AOL too)
  {
  if (getBrowserVer() >= 4.0 && getBrowserVer() < 5.0)
    return true;
  else
    return false;
  }

function isVer4up()  // for buggy IE5 distros
  {
  if (getBrowserVer() >= 4.0)
    return true;
  else
    return false;
  }

function isVer5()  // is browser version 5.x? (should in theory cover AOL too)
  {
  if (getBrowserVer() >= 5.0 && getBrowserVer() < 6.0)
    return true;
  else
    return false;
  }

function getPlatform()  // get the browser platform (OS)
  {
  if (navigator.platform == null || navigator.platform == "")
    return "other";
  else if (navigator.platform.indexOf("Mac") >= 0)
    return "mac";
  else if (navigator.platform.indexOf("Win") >= 0)
    return "win";
  else if (navigator.platform.indexOf("X11") >= 0)
    return "nix";
  else
    return "other";
  }

function isMac()  // is browser OS Mac?
  {
  if (getPlatform() == "mac")
    return true;
  else
    return false;
  }

function isWin()  // is browser OS Windows?
  {
  if (getPlatform() == "win")
    return true;
  else
    return false;
  }

function isUNIX()  // is browser OS UNIX?
  {
  if (getPlatform() == "nix")
    return true;
  else
    return false;
  }

function ifBVPjump(browser, version, platform, URL)
  {
  // first make sure that version = user's browser version
  if (version.indexOf("x") != -1)  // version is in "#.x" format
    {
    if ((version.charAt(0) == "3") && (isVer3() == false))
      return;  // version's incorrect, return
    else if ((version.charAt(0) == "4") && (isVer4() == false))
      return;  // version's incorrect, return 
    else if ((version.charAt(0) == "5") && (isVer5() == false))
      return;  // version's incorrect, return 
    }
  else if (version.indexOf(".") != -1) // version is in #.#[#] format
    {
    if (version != getBrowserVer())
      return;  // version's incorrect, return to caller
    }
  // okay, version's correct, but what about browser/platform?
  if ( ((browser == getBrowser()) || (browser == "any"))
       && 
       ((platform == getPlatform()) || (platform == "any")) )
    top.document.location.href = URL;  // BVP all correct, go!
  else
    return;  // B and/or P incorrect, return
  }

