//The Browser object has the following properties:
// Browser.name (String)
// Browser.vendor (String)
// Browser.version (Version)
//
// The Version object has the following properties:
// Version.major (String/Number)
// Version.minor (String/Number)

var _browser = new Browser();

function Version(Major, Minor)
{
  this.orig = 0;
  this.major = Major;
  this.minor = Minor;
}

Version.prototype.major = 0;
Version.prototype.minor = 0;

function Browser()
{
/* 
  this.name = Name;
  this.vendor = Vendor;
  this.version = new Version(MajorVersion, MinorVersion);
*/

  this.version = new Version(0, 0);
  var ver;
  if (navigator.appName.indexOf("Microsoft") != -1) 
  {
    this.isIE = true;
    this.vendor = "Microsoft";
    this.name = "Internet Explorer";
 
    ver = navigator.appVersion.substring(navigator.appVersion.indexOf("MSIE") + 5);
    ver = ver.substring(0, ver.indexOf(";"));
    //la
    this.version.orig=parseFloat(ver);
    if (ver.indexOf(".") == -1)
      this.version.major = ver;
    else 
    {
      this.version.major = ver.substring(0, ver.indexOf("."));
      this.version.minor = ver.substring(ver.indexOf(".") + 1);
    }
  }
  else if (navigator.appName == "Netscape") 
  {
    this.isNS = true;
    this.vendor = "Netscape";
    this.name = "Navigator";
    var ver = navigator.userAgent;
    if (ver.indexOf("Netscape6") != -1)
      ver = ver.substring(ver.indexOf("Netscape6") + 10);
    else 
    {
      ver = ver.substring(ver.indexOf("/") + 1);
      ver = ver.substring(0, ver.indexOf(" "));
    }
    if (ver.indexOf(".") == -1)
      this.version.major = parseInt(ver);
    else 
    {
      this.version.major = parseInt(ver.substring(0, ver.indexOf(".")));
      this.version.minor = parseInt(ver.substring(ver.indexOf(".") + 1));
    }
  }
  else
    this.isUnknown = true;

  if (this.isNS == true)
  {
    switch (this.version.major) 
    {
      case 5:  //mozzila
      case 6:
       	 this.supportsInner = true;
         this.supportsDOM = 2;
         break;
      case 4:
         this.supportsLayers = true;
         break;
    }
  }
  else if (this.isIE == true)
  {
    switch (this.version.major) 
    {
      case "4":
 	this.supportsDOM = 1;
        break;
      case "5":	
      case "6":
 	this.supportsDOM = 2;
 	this.supportsInner = true;
        break;
    }
  }
}

Browser.prototype.isNS = false;
Browser.prototype.isIE = false;
Browser.prototype.isUnknown = false;
Browser.prototype.vendor = "unknown";
Browser.prototype.name = "unknown";
Browser.prototype.supportsDOM = 0;
Browser.prototype.supportsInner = false;
Browser.prototype.supportsLayers = false;

Browser.prototype.toString = function()
{
  return this.vendor + " " + this.name + " " + this.version.major.toString() + "."   +this.version.minor.toString();
}

