  var oldOnError = window.onerror;
  var element = null;

  window.onerror = null;

  window.saveNavigator = window.navigator;

  navigator.OS    = '';
  navigator.version  = parseFloat(navigator.appVersion);
  navigator.org    = '';
  navigator.family  = '';

  var platform;
  if (typeof(window.navigator.platform) != 'undefined')
  {
    platform = window.navigator.platform.toLowerCase();
    if (platform.indexOf('win') != -1)
      navigator.OS = 'win';
    else if (platform.indexOf('mac') != -1)
      navigator.OS = 'mac';
    else if (platform.indexOf('unix') != -1 || platform.indexOf('linux') != -1 || platform.indexOf('sun') != -1)
      navigator.OS = 'nix';
  }

  var i = 0;
  var useragent = window.navigator.userAgent.toLowerCase();
  
  if (useragent.indexOf('opera') != -1)
  {
    i = useragent.indexOf('opera');
    navigator.family  = 'opera';
    navigator.org    = 'opera';
    navigator.version  = parseFloat('0' + useragent.substr(i+6), 10);
  }
  else if ((i = useragent.indexOf('msie')) != -1)
  {
    navigator.org    = 'microsoft';
    navigator.version  = parseFloat('0' + useragent.substr(i+5), 10);
    
    if (navigator.version < 4)
      navigator.family = 'ie3';
    else
      navigator.family = 'ie4'
  }
  else if (useragent.indexOf('gecko') != -1)
  {
    navigator.family = 'gecko';
    var rvStart = navigator.userAgent.indexOf('rv:') + 3;
    var rvEnd = navigator.userAgent.indexOf(')', rvStart);
    var rv = navigator.userAgent.substring(rvStart, rvEnd);
    var decIndex = rv.indexOf('.');
    if (decIndex != -1)
    {
      rv = rv.replace(/\./g, '')
      rv = rv.substring(0, decIndex) + '.' + rv.substr(decIndex)
    }
    navigator.version = parseFloat(rv);

    if (useragent.indexOf('netscape') != -1)
      navigator.org = 'netscape';
    else if (useragent.indexOf('compuserve') != -1)
      navigator.org = 'compuserve';
    else
      navigator.org = 'mozilla';
  }
  else if ((useragent.indexOf('mozilla') !=-1) && (useragent.indexOf('spoofer')==-1) && (useragent.indexOf('compatible') == -1) && (useragent.indexOf('opera')==-1)&& (useragent.indexOf('webtv')==-1) && (useragent.indexOf('hotjava')==-1))
  {
    var is_major = parseFloat(navigator.appVersion);
    
    if (is_major < 4)
      navigator.version = is_major;
    else
    {
      i = useragent.lastIndexOf('/')
      navigator.version = parseFloat('0' + useragent.substr(i+1), 10);
    }
    navigator.org = 'netscape';
    navigator.family = 'nn' + parseInt(navigator.appVersion);
  }
  else if ((i = useragent.indexOf('aol')) != -1 )
  {
    // aol
    navigator.family  = 'aol';
    navigator.org    = 'aol';
    navigator.version  = parseFloat('0' + useragent.substr(i+4), 10);
  }
  else if ((i = useragent.indexOf('hotjava')) != -1 )
  {
    // hotjava
    navigator.family  = 'hotjava';
    navigator.org    = 'sun';
    navigator.version  = parseFloat(navigator.appVersion);
  }

  window.onerror = oldOnError;
   
  var os = '';
  var c = navigator.org;  var v = navigator.version;  
  switch(navigator.OS) {
	case ('mac'):os='mac'; 		if ((c='microsoft') && (v < 4.5)) 			window.location.href = 'upgrade.htm?os=mac&br=ie';
		else if ((c=='netscape') && (v < 4.5)) {
			window.location.href = 'upgrade.htm?os=mac&br=nn';
		}		break;
	case ('win'):os='win';
		if ((c=='microsoft') && (v < 4)) {
			window.location.href = 'upgrade.htm?os=win&br=ie';
		} else if ((c=='netscape')) { 				if ((navigator.family=='nn4') && (v < 4.70))
					window.location.href = 'upgrade.htm?os=win&br=nn';
		  } else if ((c=='mozilla') && (v < 1)) {
				window.location.href = 'upgrade.htm?os=win&br=mo';			} else if ((c=='opera') && (v < 6.03)) {
				window.location.href = 'upgrade.htm?os=win&br=op';
			  }		break;
  }