
//Navigator Code Name
function code_name() {
  return (navigator.appCodeName) ; } 

// Navigator Application Name
function browser_name() {
  return (navigator.appName); }

// Navigator Application Version
function application_version() {
  return (navigator.appVersion); }

// User Agent
function user_agent() {
  return (navigator.userAgent); }

// Browser Version (major)
function version_major() {
  var radix = 10;
  var v_m = parseInt (navigator.appVersion,radix);
  return (v_m)  }

// Browser Version (Minor)
function version_minor() {
  var app_ver = navigator.appVersion;
  var version_major = parseInt (app_ver,10);
  var pos, version_minor = 0;
  if ((pos = app_ver.indexOf ("MSIE")) != -1)
    version_minor = parseFloat (app_ver.substring (pos+5,app_ver.length));
  else if (navigator.appName == "Netscape" && (version_major==3 || version_major==4))
    version_minor = parseFloat (app_ver);
  return (version_minor); }

// JAVA Enabled
function java_enabled() {
  var java_enabled;
  if (browser_name=="Microsoft" && verMajor==4 && navigator.javaEnabled() ) // calls function browser_name [above]
    java_enabled += "Yes (sort of ..)";
  else if (navigator.javaEnabled())    // PRESUME N2 N3 E3
    java_enabled = "Yes";
  else
    java_enabled = "No";
  return (java_enabled);  } 

// Screen Width
function screen_width() {
  if (window.screen)    // v4 browsers
    return (screen.width);
  else if (navigator.javaEnabled ())    // Presume N2 N3 N4 E3
  {
    var toolkit = java.awt.Toolkit.getDefaultToolkit ();
    var screen_size = toolkit.getScreenSize ();
    return (screen_size.width); }
  return (0); }

// Screen Height
function screen_height() {
  if (window.screen)    // v4 browsers
    return (screen.height);
  else if (navigator.javaEnabled ())    // Presume N2 N3 N4 E3
  {
    var toolkit = java.awt.Toolkit.getDefaultToolkit ();
    var screen_size = toolkit.getScreenSize ();
    return (screen_size.height); }
  return (0); }

// Color Depth 
function color_depth() {
  var color_depth;
  var bits = 0;
  if (window.screen) {
    bits = screen.colorDepth;
    // DEAL WITH BUG IN NETSCAPE 4
    bits = (( bits==14 || bits==18) && bname=="Netscape") ? bits-10 : bits;
    color_depth = bits + " bits per pixel"; }
  else
    color_depth = "Only available on browsers v4 or greater";
  if (bits == 4)
    color_depth += " (16 colors)";
  else if (bits == 8)
    color_depth += " (256 colors)";
  else if (bits == 16)
    color_depth += " (65,536 colors -- High Color)";
  else if (bits == 24)
    color_depth += " (16,777,216 colors -- True Color)";
  else if (bits == 32)
    color_depth += " (16,777,216 colors -- True Color [_not_ 4,294,967,296 colors!])"; 
  return (color_depth); }

// Window Inner Width
  function inner_width() {
  if (document.all)
    return (document.body.clientWidth);
  else if (document.layers)
    return (window.innerWidth)
  else
    return (0); }

// Window Inner Height
function inner_height() {
  if (document.all)
    return (document.body.clientHeight);
  else if (document.layers)
    return (window.innerHeight)
  else
    return (0); }

// Window Left Positon 
function window_left() {
  if (document.all)
    return (document.body.scrollLeft);
  else if (document.layers)
    return (pageXOffset)
  else
    return (0); }

// Window Top Position 
function window_top() {
  if (document.all)
    return (document.body.scrollTop);
  else if (document.layers)
    return (pageYOffset)
  else
    return (0);  }

// User Language
function language() {
  if ( typeof ( navigator.userLanguage ) == "string" )
    return ( navigator.userLanguage );
  else if ( typeof ( navigator.language ) == "string" )
    return ( navigator.language );
  return (""); }

// User Platform
function platform() {
  if ( typeof ( navigator.platform ) == "string" )
    return ( navigator.platform );
  return (""); }

// Document Referrer
function referrer() {
  if ( self == top )
    return ( document.referrer )
  else
    return ( parent.document.referrer ); }

// This Document
function name() {
  return ( document.URL ) }

// Last Modification to This Document
function lastmod() {
  return ( document.lastModified ) }

// Operating System
function operating_system() {
  var operating_system;
  if ( navigator.userAgent.indexOf ("Unix") != -1)
    operating_system = "Unix";
  else if (navigator.userAgent.indexOf ("Linux") != -1)
    operating_system = "Linux";   
  else if (navigator.userAgent.indexOf ("NT") != -1)
    operating_system = "Windows NT";
  else if (navigator.userAgent.indexOf ("95") != -1)
    operating_system = "Windows 95";
  else if (navigator.userAgent.indexOf ("16") != -1)
    operating_system = "Windows v3.1x";
  else if (navigator.userAgent.indexOf ("Win") != -1)
    operating_system = "Windows v3.1 or NT";
  else if (navigator.userAgent.indexOf ("PPC") != -1)
    operating_system = "Macintosh Power PC";
  else if (navigator.userAgent.indexOf ("Mac") != -1)
    operating_system = "Macintosh";
  else
    operating_system = "Not Detected";
  return ( operating_system );  }

  // plus a few other: 
  //    document.title
  //    document.domain
  // printed directly by the document.writeln method
