var BrowserString;
var BrowserUserAgent = "";
var BrowserName;
var BrowserVersion;
var BrowserOS;
var BrowserStringIndex;

var BROWSER_UNKNOWN   = 0;
var BROWSER_MSIE      = 1;
var BROWSER_NETSCAPE  = 2;
var BROWSER_OPERA     = 3;
var BROWSER_KONQUEROR = 4;
var BROWSER_OMNIWEB   = 5;
var BROWSER_WEBTV     = 6;
var BROWSER_ICAB      = 7;
var BROWSER_SAFARI    = 8;
var BROWSER_NETSCAPE6 = 9;
var BROWSER_FIREFOX   = 10;

var BROWSEROK_UNKNOWN = 0;
var BROWSEROS_WINDOWS = 1;
var BROWSEROS_LINUX   = 2;
var BROWSEROS_UNIX    = 3;
var BROWSEROS_MAC     = 4;

function BrowserSupportsInnerHTML()
{
  GetBrowserAndVersion();
  if      (BrowserName == BROWSER_MSIE)
  {
    if (BrowserVersion >= 4)
    {
      return 1;
    }
  }
  else if (BrowserName == BROWSER_NETSCAPE)
  {
    if (BrowserVersion >= 5)
    {
      return 1;
    }
  }
  else if (BrowserName == BROWSER_NETSCAPE6)
  {
    return 1;
  }
  else if (BrowserName == BROWSER_KONQUEROR)
  {
    return 1;
  }
  else if (BrowserName == BROWSER_SAFARI)
  {
    return 1;
  }
  else if (BrowserName == BROWSER_OPERA)
  {
    if (version >= 7)
    {
      return 1;
    }
  }
  return 0;  
}

function BrowserSupportsAnimation()
{
  GetBrowserAndVersion();
  if      (BrowserName == BROWSER_MSIE)
  {
    if (BrowserVersion >= 6)
    {
      return 1;
    }
  }
  else if (BrowserName == BROWSER_NETSCAPE6)
  {
    return 1; // actually, NS 6 is iffy
  }
  else if (BrowserName == BROWSER_FIREFOX)
  {
    return 1;
  }
  else if (BrowserName == BROWSER_OPERA)
  {
    if (BrowserVersion >= 7)
    {
      return 1;
    }
  }
  else if (BrowserName == BROWSER_SAFARI)
  {
    return 1;
  }
  return 0;  
}

function BrowserSupported()
{
  GetBrowserAndVersion();
  if      (BrowserName == BROWSER_MSIE)
  {
    if (BrowserVersion >= 6)
    {
      return 1;
    }
  }
  else if (BrowserName == BROWSER_NETSCAPE)
  {
    if (BrowserVersion >= 5)
    {
      return 1;
    }
  }
  else if (BrowserName == BROWSER_FIREFOX)
  {
    return 1;
  }
  else if (BrowserName == BROWSER_OPERA)
  {
    if (version >= 7)
    {
      return 1;
    }
  }
  else if (BrowserName == BROWSER_SAFARI)
  {
    return 1;
  }
  return 0;  
}

function ShowBrowserNotSupported()
{
  alert("This Web site or Web site feature may not appear or work correctly with this Web browser and version. We recommend either:\nInternet Explorer v6.0 or later\nMozilla Firefox v1.0 or later\nOpera v7.0 or later");
}

function ShowBrowserAndVersion()
{
  GetBrowserAndVersion();
  alert("Browser Name=" + BrowserName + "\nBrowser O/S=" + BrowserOS + "\nBrowser Version=" + BrowserVersion);
}  

function GetBrowserAndVersion()
{
  if (BrowserUserAgent)
  {
    return; // already got it
  }
  BrowserUserAgent = navigator.userAgent.toLowerCase();
  var os,browser,version,ix,ch;

  if (GetBrowserIndex('konqueror'))
  {
    browser = BROWSER_KONQUEROR;
    os = BROWSEROS_LINUX;
  }
  else if (GetBrowserIndex('safari'))
  {
    browser = BROWSER_SAFARI;
  }
  else if (GetBrowserIndex('omniweb'))
  {
    browser = BROWSER_OMNIWEB;
  }
  else if (GetBrowserIndex('opera'))
  {
    browser = BROWSER_OPERA;
  }
  else if (GetBrowserIndex('webtv'))
  {
    browser = BROWSER_WEBTV;
  }
  else if (GetBrowserIndex('icab'))
  {
    browser = BROWSER_ICAB;
  }
  else if (GetBrowserIndex('msie'))
  {
    browser = BROWSER_MSIE;
  }
  else if (GetBrowserIndex('netscape6'))
  {
    browser = BROWSER_NETSCAPE6;
  }
  else if (GetBrowserIndex('firefox'))
  {
    browser = BROWSER_FIREFOX;
  }
  else if (!GetBrowserIndex('compatible'))
  {
    browser = BROWSER_NETSCAPE;
	version = BrowserUserAgent.charAt('Mozilla'.length+1);
  }
  else 
  {
    browser = BROWSER_UNKNOWN;
  }

  if (!version) 
  {
    version = BrowserUserAgent.charAt(BrowserStringIndex + BrowserString.length);
    ch = BrowserUserAgent.charAt(BrowserStringIndex + BrowserString.length + 1);
    if ((ch >= '0') && (ch <= '9'))
    {
      version += ch;
    }
  }

  if (!os)
  {
	if (GetBrowserIndex('linux'))
    {
      os = BROWSEROS_LINUX;
    }
	else if (GetBrowserIndex('x11'))
    {
      os = BROWSEROS_UNIX;
    }
	else if (GetBrowserIndex('mac'))
    { 
      os = BROWSEROS_MAC;
    }
	else if (GetBrowserIndex('win'))
    {
      os = BROWSEROS_WINDOWS;
    }
	else 
    {
      os = BROWSEROS_UNKNOWN;
    }
  }
  BrowserName = browser;
  BrowserOS = os;
  BrowserVersion = version;
}

function GetBrowserIndex(string)
{
  BrowserStringIndex = BrowserUserAgent.indexOf(string) + 1;
  BrowserString = string;
  return BrowserStringIndex;
}

function BrowserNeedUpgradeSelect()
{
  GetBrowserAndVersion();
  if ((BrowserName == BROWSER_MSIE) && (parseInt(BrowserVersion) <= 6))
  {
    return true;
  }
  return false;
}

