/* $Id: bsniff.js,v 1.35 2007/12/06 15:08:17 tb Exp $ */

/*
  You can find a short description of the script under http://www.quirksmode.org/js/detect.html

  Not allowed browsers:

  Firefox           lower version 1.0
  Internet Explorer lower version 5.5
  Mozilla           lower version 1.0
*/

var BrowserDetect = {
  init:
    function () {
		  this.browser =    this.searchString(this.dataBrowser)
                     || "an unknown browser";
		  this.version =    this.searchVersion(navigator.userAgent)
                     || this.searchVersion(navigator.appVersion)
                     || "an unknown version";
		  this.OS      =    this.searchString(this.dataOS)
                     || "an unknown OS";
	  },
	searchString:
    function (data) {
		  for (var i=0;i<data.length;i++)	{
			  var dataString = data[i].string;
			  var dataProp = data[i].prop;
			  this.versionSearchString = data[i].versionSearch || data[i].identity;
			  if (dataString) {
				  if (dataString.indexOf(data[i].subString) != -1)
					  return data[i].identity;
			  }
			  else if (dataProp)
				  return data[i].identity;
		  }
	  },
	searchVersion:
    function (dataString) {
		  var index = dataString.indexOf(this.versionSearchString);
		  if (index == -1) return;
		  return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	  },

  // definition of special strings to identify the different browsers
	dataBrowser:
    [
		  { string: navigator.userAgent,
			  subString: "OmniWeb",
			  versionSearch: "OmniWeb/",
			  identity: "OmniWeb"
		  },
		  {
			  string: navigator.vendor,
			  subString: "Apple",
			  identity: "Safari"
		  },
		  {
			  prop: window.opera,
			  identity: "Opera"
		  },
		  {
			  string: navigator.vendor,
			  subString: "iCab",
			  identity: "iCab"
		  },
		  {
			  string: navigator.vendor,
			  subString: "KDE",
			  identity: "Konqueror"
		  },
		  {
			  string: navigator.userAgent,
			  subString: "Firefox",
			  identity: "Firefox"
		  },
		  {
			  string: navigator.vendor,
			  subString: "Camino",
			  identity: "Camino"
		  },
		  {	// for newer Netscapes (6+)
			  string: navigator.userAgent,
			  subString: "Netscape",
			  identity: "Netscape"
		  },
		  {
			  string: navigator.userAgent,
			  subString: "MSIE",
			  identity: "Explorer",
			  versionSearch: "MSIE"
		  },
		  {
			  string: navigator.userAgent,
			  subString: "Gecko",
			  identity: "Mozilla",
			  versionSearch: "rv"
		  },
		  { // for older Netscapes (4-)
			  string: navigator.userAgent,
			  subString: "Mozilla",
			  identity: "Netscape",
			  versionSearch: "Mozilla"
		  }
	  ],
	dataOS :
    [
		  {
			  string: navigator.platform,
			  subString: "Win",
			  identity: "Windows"
		  },
		  {
			  string: navigator.platform,
			  subString: "Mac",
			  identity: "Mac"
		  },
		  {
			  string: navigator.platform,
			  subString: "Linux",
			  identity: "Linux"
		  }
	  ]
};

// Initialize and detect browser. After this function the following value are available:
// BrowserDetect.browser -> Name of the browser
// BrowserDetect.version -> Version of the browser
// BrowserDetect.OS      -> Operating System
BrowserDetect.init();

// check java
var is_javaenabled = navigator.javaEnabled();
var is_javascriptenabled = true;

if (document.URL.indexOf("Browser=FALSE") < 0) {

  var brw_version = parseFloat(BrowserDetect.version);
  var brw_name    = BrowserDetect.browser.toLowerCase();

  if (   (brw_name == "firefox"  && brw_version < 1.0)
      || (brw_name == "mozilla"  && brw_version < 1.0)
      || (brw_name == "explorer" && brw_version < 5.5)
      || (!is_javaenabled)) {
    document.location.href="/cgi-bin/ws_er.sh/mfer100000upd.p?Browser=FALSE";
  }
}

