/*BrowserDetector() Parses User-Agent string into useful info.
Source: Webmonkey Code Library (http://www.hotwired.com/webmonkey/javascript/code_library/)
Author: Richard Blaylock Author Email: blaylock@wired.com
Usage: var bd = new BrowserDetector();
*/
function BrowserDetector() {
  this.browser = "Unknown";  // Defaults
  this.platform = "Unknown";
  this.version = "";
  this.majorver = "";
  this.minorver = "";
	var ua=navigator.userAgent;
  var uaLen = ua.length;
  var preparens = ""; // ##### Split into stuff before parens and stuff in parens
  var parenthesized = "";
  var i = ua.indexOf("(");
	var j;
  if (i >= 0) {
    preparens = Trim(ua.substring(0,i));
		parenthesized = ua.substring(i+1, uaLen);
		j = parenthesized.indexOf(")");
		if (j >= 0) {parenthesized = parenthesized.substring(0, j);}
  }else{
    preparens = ua;
  }
  var browVer = preparens;// ##### First assume browser and version are in preparens, override later if we find them in the parenthesized stuff
  var tokens = parenthesized.split(";");
  var token = "";
  for (i=0; i < tokens.length; i++) {// # Now go through parenthesized tokens
    token = Trim(tokens[i]);
		if (token == "compatible") {//## compatible - might want to reset from Netscape
			//## One might want to reset browVer to a null string here, but instead, we'll assume that if we don't
			//## find out otherwise, then it really is Mozilla(or whatever showed up before the parens). browser - try for Opera or IE
    }else if (token.indexOf("MSIE") >= 0) {
      browVer = token;
    }else if (token.indexOf("Opera") >= 0) {
      browVer = token;
    }else if ((token.indexOf("X11") >= 0) || (token.indexOf("SunOS") >= 0) || (token.indexOf("Linux") >= 0)) {//'## platform - try for X11, SunOS, Win, Mac, PPC
      this.platform = "Unix";
    }else if (token.indexOf("Win") >= 0) {
      this.platform = token;
    }else if ((token.indexOf("Mac") >= 0) || (token.indexOf("PPC") >= 0)) {
      this.platform = token;
    }//if
  }//for
  var msieIndex = browVer.indexOf("MSIE");
  if (msieIndex >= 0) {browVer = browVer.substring(msieIndex, browVer.length);}
  var leftover = "";
  if (browVer.substring(0, "Mozilla".length) == "Mozilla") {
    this.browser = "Netscape";
    leftover = browVer.substring("Mozilla".length+1, browVer.length);
  }else if (browVer.substring(0, "Lynx".length) == "Lynx") {
    this.browser = "Lynx";
    leftover = browVer.substring("Lynx".length+1, browVer.length);
  }else if (browVer.substring(0, "MSIE".length) == "MSIE") {
    this.browser = "IE";
    leftover = browVer.substring("MSIE".length+1, browVer.length);
  }else if (browVer.substring(0, "Microsoft Internet Explorer".length) == "Microsoft Internet Explorer") {
    this.browser = "IE"
    leftover = browVer.substring("Microsoft Internet Explorer".length+1,browVer.length);
  }else if (browVer.substring(0, "Opera".length) == "Opera") {
    this.browser = "Opera"
    leftover = browVer.substring("Opera".length+1, browVer.length);
  }//if
  leftover = Trim(leftover);
  i = leftover.indexOf(" "); // # Try to get version info out of leftover stuff
  if (i >= 0) {
    this.version = leftover.substring(0, i);
  }else{
    this.version = leftover;
  }
  j = this.version.indexOf(".");
  if (j >= 0) {
    this.majorver = this.version.substring(0,j);
    this.minorver = this.version.substring(j+1, this.version.length);
  }else{
    this.majorver = this.version;
  }
if (ua.indexOf("Gecko")>=0)	{
	this.browser="Gecko";
}
} // function BrowserCap

function Trim(inString) {// Utility function to trim spaces from both ends of a string
  var retVal = "";
  var start = 0;
  while ((start < inString.length) && (inString.charAt(start) == ' ')) {++start;}
  var end = inString.length;
  while ((end > 0) && (inString.charAt(end - 1) == ' ')) {--end;}
  retVal = inString.substring(start, end);
  return retVal;
}

