oDetect = new doDetection();

function doDetection()
{
    var agt=navigator.userAgent.toLowerCase();
    var appVer = navigator.appVersion.toLowerCase();

    this.minor = parseFloat(appVer);
    this.major = parseInt(this.minor);

    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.opera6 = (agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1);
    this.opera7 = (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1);
    this.opera5up = (this.opera && !this.opera2 && !this.opera3 && !this.opera4);
    this.opera6up = (this.opera && !this.opera2 && !this.opera3 && !this.opera4 && !this.opera5);
    this.opera7up = (this.opera && !this.opera2 && !this.opera3 && !this.opera4 && !this.opera5 && !this.opera6);

    iePos  = appVer.indexOf('msie');
    if (iePos !=-1) {
       this.minor = parseFloat(appVer.substring(iePos+5,appVer.indexOf(';',iePos)));
       this.major = parseInt(this.minor);
    }
                                      
    this.konq = false;
    kqPos   = agt.indexOf('konqueror');
    if (kqPos !=-1) {                 
       this.konq  = true;
       this.minor = parseFloat(agt.substring(kqPos+10,agt.indexOf(';',kqPos)));
       this.major = parseInt(this.minor);
    }

    this.safari = ((agt.indexOf('safari')!=-1)&&(agt.indexOf('mac')!=-1))?true:false;
    this.khtml  = (this.safari || this.konq);

    this.gecko = ((!this.khtml)&&(navigator.product)&&(navigator.product.toLowerCase()=="gecko"))?true:false;
    this.gver  = 0;
    if (this.gecko) this.gver=navigator.productSub;

    this.moz   = ((agt.indexOf('mozilla/5')!=-1) && (agt.indexOf('spoofer')==-1) &&
                    (agt.indexOf('compatible')==-1) && (agt.indexOf('opera')==-1)  &&
                    (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)     &&
                    (this.gecko) && 
                    ((navigator.vendor=="")||(navigator.vendor=="Mozilla")));
    if (this.moz) {
       this.moz_ver = (navigator.vendorSub)?navigator.vendorSub:0;
       if(!(this.moz_ver)) {
           this.moz_ver = agt.indexOf('rv:');
           this.moz_ver = agt.substring(this.moz_ver+3);
           this.paren   = this.moz_ver.indexOf(')');
           this.moz_ver = this.moz_ver.substring(0,this.paren);
       }
       this.minor = this.moz_ver;
       this.major = parseInt(this.moz_ver);
    }

    this.nav  = ((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.khtml) && (!(this.moz)));

    if ((navigator.vendor)&&
        ((navigator.vendor=="Netscape6")||(navigator.vendor=="Netscape"))&&
        (this.nav)) {
       this.major = parseInt(navigator.vendorSub); 
       this.minor = parseFloat(navigator.vendorSub);
    }

    this.nav2 = (this.nav && (this.major == 2));
    this.nav3 = (this.nav && (this.major == 3));
    this.nav4 = (this.nav && (this.major == 4));
    this.nav4up = (this.nav && this.minor >= 4);
    this.navonly      = (this.nav && ((agt.indexOf(";nav") != -1) ||
                          (agt.indexOf("; nav") != -1)) );
    this.nav6   = (this.nav && this.major==6);
    this.nav6up = (this.nav && this.minor >= 6);
    this.nav5   = (this.nav && this.major == 5 && !this.nav6);
    this.nav5up = (this.nav && this.minor >= 5);
    this.nav7   = (this.nav && this.major == 7);
    this.nav7up = (this.nav && this.minor >= 7);

    this.ie   = ((iePos!=-1) && (!this.opera) && (!this.khtml));
    this.ie3  = (this.ie && (this.major < 4));
    this.ie4   = (this.ie && this.major == 4);
    this.ie4up = (this.ie && this.minor >= 4);
    this.ie5   = (this.ie && this.major == 5);
    this.ie5up = (this.ie && this.minor >= 5);
    this.ie5_5  = (this.ie && (agt.indexOf("msie 5.5") !=-1));
    this.ie5_5up =(this.ie && this.minor >= 5.5);
    this.ie6   = (this.ie && this.major == 6);
    this.ie6up = (this.ie && this.minor >= 6);

    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);
    this.aol7  = ((agt.indexOf("aol 7")!=-1) || (agt.indexOf("aol7")!=-1));
    this.aol8  = ((agt.indexOf("aol 8")!=-1) || (agt.indexOf("aol8")!=-1));

    this.webtv = (agt.indexOf("webtv") != -1);

    this.TVNavigator = ((agt.indexOf("navio") != -1) || (agt.indexOf("navio_aoltv") != -1)); 
    this.AOLTV = this.TVNavigator;

    this.hotjava = (agt.indexOf("hotjava") != -1);
    this.hotjava3 = (this.hotjava && (this.major == 3));
    this.hotjava3up = (this.hotjava && (this.major >= 3));
}