function PlatformInfo () 
{   // convert all characters to lowercase to simplify testing 
    var agt=navigator.userAgent.toLowerCase(); 

    // *** BROWSER VERSION *** 
    // Note: On IE5, these return 4, so use is.ie5up to detect IE5. 
    this.major = parseInt(navigator.appVersion); 
    this.minor = parseFloat(navigator.appVersion); 

    this.nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1) 
                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1) 
                && (agt.indexOf('webtv')==-1)); 
    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.major >= 4)); 
    this.nav56up = (this.nav && (this.major >= 5)); 	
	
    this.ie   = (agt.indexOf("msie") != -1); 
    this.ie3  = (this.ie && (this.major < 4)); 
    this.ie4  = (this.ie && (this.major == 4) && (agt.indexOf("msie 4.")!=-1) ); 
    this.ie5    = (this.ie && (this.major == 4) && (agt.indexOf("msie 5.")!=-1) );
    this.ie6    = (this.ie && (this.major == 4) && (agt.indexOf("msie 6.")!=-1) );	
    this.ie4up  = (this.ie  && (this.major >= 4)); 
    this.ie5up  = (this.ie && !this.ie3 && !this.ie4);
    this.ie6up  = (this.ie && !this.ie3 && !this.ie4 && !this.ie5);

    // *** PLATFORM *** 
    // NOTE: Reliable detection of Win98 may not be possible. It appears that:
    //       - On Nav 4.x and before you'll get plain "Windows" in userAgent.
    //       - On Mercury client, the 32-bit version will return "Win98", but
    //         the 16-bit version running on Win98 will still return "Win95".
	this.winme = ((agt.indexOf("win 9x 4.90")!=-1));	
    this.win98 = ((agt.indexOf("win98")!=-1) || (agt.indexOf("windows 98")!=-1));
    this.winnt = ((agt.indexOf("winnt")!=-1) || (agt.indexOf("windows nt")!=-1));
    this.win2k = ((agt.indexOf("windows nt 5.0")!=-1));	
    this.winxp = ((agt.indexOf("windows nt 5.1")!=-1));
} 
