// Instructions for display of a check_your_browser window

function stopErr() {
  var msg = ""
  msg += "JavaScript error has occurred!" + "\n"
  msg += "Cannot display the desired information." + "\n"
  msg += "Your browser is: " + navigator.appName + " " + navigator.appVersion + "\n\n"
  msg += "Too bad that various browers have different capabilities."
  alert(msg)
  return true
}

function makeArray() {
  var args = makeArray.arguments
  for (var i=0; i < args.length; i++) {
    this[i] = args[i]
  }
  this.length = args.length
}

function fixDate(date) {
  var base = new Date(0)
  var skew = base.getTime()
  if (skew > 0)
    date.setTime(date.getTime() - skew)
}

function getDayString(date) {
  var days = new makeArray("Sunday",   "Monday",  "Tuesday",
                           "Wednesday","Thursday","Friday","Saturday")
  return days[date.getDay()]
}

function getDateString(date) {
  var months = new makeArray("January",  "February","March",   "April",
                             "May",      "June",    "July",    "August",
                             "September","October", "November","December")
  var year = date.getYear()
  year += ((year < 1000) ? 1900 : 0)
  return months[date.getMonth()] + " " + date.getDate() + ", " + year
}

function getTimeString(date) {
  var hour = date.getHours()
  var mins = date.getMinutes()
  var secs = date.getSeconds()
  if (secs < 10) secs = "0" + secs
  if (mins < 10) mins = "0" + mins
  if (hour < 10) hour = "0" + hour
  return hour + ":" + mins + ":" + secs
}

function check_your_browser_button() { check_browser('B') }

function check_your_browser_link() { check_browser('L') }

function check_browser(actCode) {
  var windowFeatures = ""
  if (navigator.appName == "Microsoft Internet Explorer") {
    windowFeatures = "height=205,width=380,left=130,top=130"
    if (parseInt(navigator.appVersion) > 3) {
      windowFeatures += ",height=265,width=420"
    }
  } else {
    windowFeatures = "height=265,width=420,screenX=100,screenY=100"
  }
  var repWindow = window.open("_blank_.html","MyWin",windowFeatures)
  if (repWindow != null) {
    window.onerror = stopErr
    var action = ""
    if (actCode == 'B') {
      action = "pushing a button"
    } else {
      action = "clicking on a link"
    }
//  var name = navigator.appName
//  var vers = navigator.appVersion
//  if (name == "Microsoft Internet Explorer") {
//    var i = vers.indexOf("MSIE")
//    if (i > 0) {
//      i += 5
//      vers = parseFloat(vers.substr(i))
//    } else {
//      vers = parseFloat(vers)
//      if (vers == 2) {
//        vers = "3"
//      }
//    }
//  } else {
//    vers = parseFloat(vers)
//  }
//  if (parseInt(vers) == vers) {
//    vers += ".0"
//  }
    var nVer = navigator.appVersion;
    var nAgt = navigator.userAgent;
    var browserName  = navigator.appName;
    var fullVersion  = ''+parseFloat(navigator.appVersion); 
    var majorVersion = parseInt(navigator.appVersion,10);
    var nameOffset,verOffset,ix;

    // In MSIE, the true version is after "MSIE" in userAgent
    if ((verOffset=nAgt.indexOf("MSIE"))!= -1) {
      browserName = "Microsoft Internet Explorer";
      fullVersion = nAgt.substring(verOffset+5);
    }
    // In Opera, the true version is after "Opera" 
    else if ((verOffset=nAgt.indexOf("Opera"))!= -1) {
      browserName = "Opera";
      fullVersion = nAgt.substring(verOffset+6);
    }
    // In Chrome, the true version is after "Chrome" 
    else if ((verOffset=nAgt.indexOf("Chrome"))!= -1) {
      browserName = "Chrome";
      fullVersion = nAgt.substring(verOffset+7);
    }
    // In Safari, the true version is after "Safari" 
    else if ((verOffset=nAgt.indexOf("Safari"))!= -1) {
      browserName = "Safari";
      fullVersion = nAgt.substring(verOffset+7);
    }
    // In Firefox, the true version is after "Firefox" 
    else if ((verOffset=nAgt.indexOf("Firefox"))!= -1) {
      browserName = "Firefox";
      fullVersion = nAgt.substring(verOffset+8);
    }
    // In most other browsers, "name/version" is at the end of userAgent 
    else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < (verOffset=nAgt.lastIndexOf('/')) ) {
      browserName = nAgt.substring(nameOffset,verOffset);
      fullVersion = nAgt.substring(verOffset+1);
      if (browserName.toLowerCase() == browserName.toUpperCase()) {
        browserName = navigator.appName;
     }
    }
    // trim the fullVersion string at semicolon/space if present
    if ((ix=fullVersion.indexOf(";"))!=-1) fullVersion=fullVersion.substring(0,ix);
    if ((ix=fullVersion.indexOf(" "))!=-1) fullVersion=fullVersion.substring(0,ix);

    majorVersion = parseInt(''+fullVersion,10);
    if (isNaN(majorVersion)) {
      fullVersion  = ''+parseFloat(navigator.appVersion); 
      majorVersion = parseInt(navigator.appVersion,10);
    }

    var now = new Date()
    fixDate(now)
    var repPage = ""
    repPage += "<HTML><HEAD><TITL\E>Browser Information</TITL\E>" + "\n"
    repPage += "<SCRIPT LANGUAGE='JavaScript'>" + "\n"
    repPage += "<!-- " + "\n"
    repPage += "function closeit() { window.close(); return true }" + "\n"
    repPage += "function stopErr() { window.close(); return true }" + "\n"
    repPage += "window.onerror = stopErr" + "\n"
    repPage += "// --\>" + "\n"
    repPage += "<\/SCRIPT>" + "\n"
    repPage += "</HEAD>" + "\n"
    repWindow.document.write(repPage); repPage = ""
    repPage += "<BODY BGCOLOR='#FFFFFF'>" + "\n"
    repPage += "<H2 ALIGN=CENTER>Your browser is JavaScript capable!</H2>" + "\n"
    repPage += "<P ALIGN=CENTER>You are using " + browserName + " " + fullVersion + "\n"
    repPage += "<BR>You got here by " + action + "." + "\n"
    repWindow.document.write(repPage); repPage = ""
    repPage += "<P ALIGN=CENTER>For your information, today is " + getDayString(now) + ", " + getDateString(now) + "\n"
    repPage += "<BR>Your time is now " + getTimeString(now) + "\n"
    repPage += "<P><HR SIZE=4 NOSHADE COLOR=GREEN>" + "\n"
    repWindow.document.write(repPage); repPage = ""
    repPage += "<FORM><CENTER>" + "\n"
    repPage += "<INPUT TYPE=BUTTON NAME=aButton VALUE='Close' OnClick='closeit()'>" + "\n"
    repPage += "</CENTER></FORM>" + "\n"
    repWindow.document.write(repPage); repPage = ""
//  repPage += "<BGSOUND SRC=taptap.wav LOOP=infinite>" + "\n"
//  repPage += "<EMBED SRC=taptap.wav hidden=true LOOP=false autostart=true>" + "\n"
    repPage += "</BODY></HTML>" + "\n"
    repWindow.document.write(repPage)
    repWindow.document.close()
  }
}

