/********************************************
* Determine and check the browser           *
* Author: Felix Kaiser <confused@euirc.net> *
*********************************************/


var Browser;

function CheckOpera()
{
  if (navigator.userAgent.indexOf("Opera") == -1) return 0;
  var version = navigator.userAgent;
  version = version.substring(version.indexOf("Opera")+6,version.length);
  if (version.indexOf(" ") != -1) version = version.substr(0,version.indexOf(" "));
  var major = parseInt(version.substr(0,version.indexOf(".")));
  var minor = parseInt(version.substring(version.indexOf(".")+1,version.length));
  Browser = "Opera "+version;
  return ((major > 7) || ((major == 7) && (minor >= 20))) ? "OK" : "BAD";
}

function CheckMSIE()
{
  if (navigator.appName != "Microsoft Internet Explorer") return 0;
  var version = navigator.appVersion;
  version = version.substring(version.indexOf("MSIE")+5,version.length);
  version = version.substr(0,version.indexOf(";"));
  var major = parseInt(version.substr(0,version.indexOf(".")));
  var minor = parseInt(version.substring(version.indexOf(".")+1,version.length));
  Browser = "Microsoft Internet Explorer "+version;
  return ((major > 5) || ((major == 5) && (minor >= 5))) ? "OK" : "BAD";
}

function CheckMozilla()
{
  if ((navigator.appName != "Netscape") || (navigator.userAgent.indexOf("rv:") == -1)) return 0;
  var version = navigator.userAgent;
  version = version.substring(version.indexOf("rv:")+3,version.length);
  if (version.indexOf(";") != -1) version = version.substr(0,version.indexOf(";"));
  if (version.indexOf(")") != -1) version = version.substr(0,version.indexOf(")"));
  var major = parseInt(version.substr(0,version.indexOf(".")));
  version = version.substring(version.indexOf(".")+1,version.length);
  if (version.indexOf(".") == -1)
    var minor = parseInt(version.substring(version.indexOf(".")+1,version.length));
  else
    var minor = parseInt(version.substr(0,version.indexOf(".")));
  Browser = "Mozilla "+major+"."+version;
  return ((major > 1) || ((major == 1) && (minor >= 2))) ? "OK" : "BAD";
}

function CheckMozillaLike(Name)
{
  if (navigator.userAgent.indexOf(Name) == -1) return 0;
  var result = CheckMozilla();
  var version = navigator.userAgent;
  version = version.substring(version.indexOf(Name)+1+Name.length,version.length);
  if (version.indexOf(" ") != -1) version = version.substr(0,version.indexOf(" "));
  var major = parseInt(version.substr(0,version.indexOf(".")));
  var minor = parseInt(version.substring(version.indexOf(".")+1,version.length));
  Browser = Name+" "+version;
  return result;
}

function CheckNetscape()
{
  if (navigator.appName != "Netscape") return 0;
  var result = "BAD";
  if (navigator.userAgent.indexOf("Netscape") == -1) {
    if (navigator.userAgent.indexOf("rv:") != -1) return;
    var version = navigator.appVersion;
    version = version.substr(0,version.indexOf(" "));
    var major = parseInt(version.substr(0,version.indexOf(".")));
    var minor = parseInt(version.substring(version.indexOf(".")+1,version.length));
  } else {
    result = CheckMozilla();
    var version = navigator.userAgent;
    version = version.substring(version.indexOf("Netscape")+9,version.length);
    if (version.indexOf(" ") != -1) version = version.substr(0,version.indexOf(" "));
    var major = parseInt(version.substr(0,version.indexOf(".")));
    var minor = parseInt(version.substring(version.indexOf(".")+1,version.length));
  }
  Browser = "Netscape "+version;
  return result;
}

function FindBrowser()
{
  var result = 0;
  if (result = CheckOpera()) return result;
  if (result = CheckMSIE()) return result;
  if (result = CheckNetscape()) return result;
  if (result = CheckMozillaLike("Firebird")) return result;
  if (result = CheckMozillaLike("Firefox")) return result;
  if (result = CheckMozilla()) return result;
  return 0;
}

function BrowserCheck()
{
  var img = "unknown.gif";
  var obj = document.getElementById("statustext").firstChild;

  if (!obj) {
    window.setTimeout("BrowserCheck();",100);
    return;
  }
  if (result = FindBrowser()) {
    document.status.src = (result == "OK") ? "images/good.gif" : "images/bad.gif";
  } else
    Browser = navigator.appName+" "+navigator.appVersion;
  obj.nodeValue = Browser;
}

BrowserCheck();
