/*
Programmer:  Michael Thomas  
Email.....:  michael@michael-thomas.com
Orig Date.:  08/27/2000
Modified..:  08/27/2000

Note:  You may use and modify this JavaScript I've created without my permission.
       Enjoy success and share success!

*/

function BrowserInfo() {
  
  var strVer = fBrowserInfoVersion();
  
  this.appName          = navigator.appName;
  this.appVersion       = navigator.appVersion;
  this.userAgent        = navigator.userAgent;

  this.ScriptEngineMajorVersion = ScriptEngineMajorVersion();
  this.ScriptEngineMinorVersion = ScriptEngineMinorVersion();
  
        
  this.strName          = fBrowserInfoName();
  this.strNameAbbr      = fBrowserInfoNameAbbr();
  this.strNameAbbrGuide = "IE=MS Internet Explorer; NS=Netscape.";

  this.strVersion       = strVer;
  this.strVersionMajor  = strVer.substring(0, strVer.indexOf("."));
  this.strVersionMinor  = strVer.substring(strVer.indexOf(".")+1, strVer.length);

  this.blnJavaEnabled   = navigator.javaEnabled();
  this.blnIsMinVer4     = (this.strVersionMajor >= "4" && 
                           "|IE|NS|".indexOf(this.strNameAbbr) ? true : false );
  this.strPlatform      = navigator.platform;

  this.htmShowBrowserInfo = fBrowserInfoShow;  //Method to display HTML of info.
}

function fBrowserInfoName() {
  return navigator.appName
}

function fBrowserInfoNameAbbr() {  //This code needs much testing with other browsers!
  var strBrowser;
  
    if ( navigator.appName == "Netscape" ) {
      strBrowser = "NS";
    } else if ( navigator.appName == "Microsoft Internet Explorer" ){
      strBrowser = "IE";
    } else {
      strBrowser = "OTHER"
    }
  return ( strBrowser )
}

function fBrowserInfoVersion() {  
  var strReturn;
  var intStart;
  
    //This code needs much testing with other browsers!
    //Tested:  IE 5.01
    //Tested:  NAV 4.6
    
    if ( navigator.appName == "Netscape" ) {
        //Netscape
        strReturn =  navigator.appVersion.substring(0,3);  // first 3 char.
    } else if ( navigator.appVersion.indexOf("MSIE") != -1 ){
        //MS IE
        intStart = navigator.appVersion.indexOf("MSIE");
        strReturn = navigator.appVersion.substring( intStart + 5, intStart + 8 );
    } else {
        strReturn = navigator.appVersion
    }

  return ( strReturn )
}

function fBrowserInfoShow() {
  var strHtm;

  strHtm  = "";
    
  strHtm += "<hr>" + "\n";
  strHtm += "<p align=\"center\"><b>" + "Browser\'s Environment"  + "<br>"
  strHtm += "(information comes from UDO called 'BrowserInfo')" + "</b></p>" + "\n";  

  strHtm += "<table border=1 width=90%>";
  strHtm += "<tr><td width=20%>Item</td><td width=20%>Property</td><td width=60%>Value</td></tr>";  

  strHtm += "<tr><td>from navigator.appName</td><td>.appName</td><td>" + this.appName + "</td></tr>";
  strHtm += "<tr><td>from navigator.appVersion</td><td>.appVersion</td><td>" + this.appVersion + "</td></tr>";  
  strHtm += "<tr><td>from navigator.userAgent</td><td>.userAgent</td><td>" + this.userAgent + "</td></tr>";    

  strHtm += "<tr><td>Script Engine Major Version</td><td>ScriptEngineMajorVersion()</td><td>" + this.ScriptEngineMajorVersion + "</td></tr>";    
  strHtm += "<tr><td>Script Engine Minor Version</td><td>ScriptEngineMinorVersion()</td><td>" + this.ScriptEngineMinorVersion + "</td></tr>"; 
  
  strHtm += "<tr><td>Browser Name</td><td>.strName</td><td>" + this.strName + "</td></tr>";
  strHtm += "<tr><td>Browser Name Abbr</td><td>.strNameAbbr</td><td>" + this.strNameAbbr + "</td></tr>";  
  strHtm += "<tr><td>Browser Name Abbr Guide</td><td>.strNameAbbrGuide</td><td>" + this.strNameAbbrGuide + "</td></tr>";    
  strHtm += "<tr><td>Browser Version</td><td>.strVersion</td><td>" + this.strVersion + "</td></tr>";
  strHtm += "<tr><td>Browser Major Version</td><td>.strVersionMajor</td><td>" + this.strVersionMajor + "</td></tr>";
  strHtm += "<tr><td>Browser Minor Version</td><td>.strVersionMinor</td><td>" + this.strVersionMinor + "</td></tr>";  
  strHtm += "<tr><td>Is Minimum of Ver 4 (IE/NS)</td><td>.blnIsMinVer4</td><td>" + this.blnIsMinVer4 + "</td></tr>";    
  strHtm += "<tr><td>Is Java enabled?</td><td>.blnJavaEnabled</td><td>" + this.blnJavaEnabled + "</td></tr>";      
  strHtm += "<tr><td>Platform</td><td>.strPlatform</td><td>" + this.strPlatform + "</td></tr>";        
  strHtm += "<tr><td>Custom Method</td><td>.htmShowBrowserInfo()</td><td>" + "Prints out the table you are looking at." + "</td></tr>";          
  strHtm += "</table>";  

  strHtm += "<hr>" + "\n";

  return strHtm; //Writes HTML to page.

}

