/*
'Ultimate JavaScript Client Sniffer' V 3.03
By Mozilla (http://www.mozilla.org/docs/web-developer/sniffer/browser_type_oo.html)
*/      

function Is (){
 
  // convert all characters to lowercase to simplify testing
  var agt=navigator.userAgent.toLowerCase();
 
  this.major = parseInt(navigator.appVersion);
  this.minor = parseFloat(navigator.appVersion);
 
  this.ns      = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1) && 
                 (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1) && 
                 (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)); 
  this.ns2     = (this.ns && (this.major == 2));
  this.ns3     = (this.ns && (this.major == 3));
  this.ns4     = (this.ns && (this.major == 4));
  this.ns4up   = (this.ns && (this.major >= 4));
  this.nsonly  = (this.ns && 
                 ((agt.indexOf(";nav") != -1) || (agt.indexOf("; nav") != -1)));
  this.ns6     = (this.ns && (this.major == 5));
  this.ns6up   = (this.ns && (this.major >= 5));
  this.gecko   = (agt.indexOf('gecko') != -1);
 
  this.ie      = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
  this.ie3     = (this.ie && (this.major < 4));
  this.ie4     = (this.ie && (this.major == 4) && (agt.indexOf("msie 4")!=-1) );
  this.ie4up   = (this.ie  && (this.major >= 4));
  this.ie5     = (this.ie && (this.major == 4) && (agt.indexOf("msie 5.0")!=-1));
  this.ie5_5   = (this.ie && (this.major == 4) && (agt.indexOf("msie 5.5") !=-1));
  this.ie5up   = (this.ie  && !this.ie3 && !this.ie4);
  this.ie5_5up = (this.ie && !this.ie3 && !this.ie4 && !this.ie5);
  this.ie6     = (this.ie && (this.major == 4) && (agt.indexOf("msie 6.")!=-1) );
  this.ie6up   = (this.ie  && !this.ie3 && !this.ie4 && !this.ie5 && !this.ie5_5);
 
  // BUG: On AOL4, returns false if IE3 is embedded browser or if this is the first 
  //      browser window opened.  Thus the variables is.aol, is.aol3, and is.aol4 
  //      aren't 100% reliable.
  this.aol     = (agt.indexOf("aol") != -1);
  this.aol3    = (this.aol && this.ie3);
  this.aol4    = (this.aol && this.ie4);
  this.aol5    = (agt.indexOf("aol 5") != -1);
  this.aol6    = (agt.indexOf("aol 6") != -1);
 
  // NOTE: Opera and WebTV spoof Navigator.  We do strict client detection. If you 
  //       want to allow spoofing, take out the tests for opera and webtv.
  this.opera   = (agt.indexOf("opera") != -1);
  this.opera2  = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
  this.opera3  = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
  this.opera4  = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
  this.opera5  = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
  this.opera5up= (this.opera && !this.opera2 && !this.opera3 && !this.opera4);
 
  this.webtv   = (agt.indexOf("webtv") != -1); 
 
  this.aoltv   = ((agt.indexOf("navio") != -1) || 
                 (agt.indexOf("navio_aoltv") != -1)); 
 
  this.hotjava = (agt.indexOf("hotjava") != -1);
  this.hotjava3 = (this.hotjava && (this.major == 3));
  this.hotjava3up = (this.hotjava && (this.major >= 3));

 }
var is=new Is();
