//-- First we need some basic information about the client's browser.
objClientInfo = new Object;
objClientInfo.browserName = navigator.appName;
objClientInfo.browserVersion = navigator.appVersion;
objClientInfo.browserVersionNum = parseFloat(objClientInfo.browserVersion);
objClientInfo.userAgent=navigator.userAgent;
objClientInfo.codeName=navigator.appCodeName;
objClientInfo.agt=navigator.userAgent;

//-- Assign initial values for browser settings to global variables.
objClientInfo.availheight="unknown";
objClientInfo.availwidth="unknown";
objClientInfo.winheight="unknown";
objClientInfo.winwidth="unknown";
objClientInfo.bufferdepth="unknown";
objClientInfo.colordepth="unknown";
objClientInfo.height="unknown";
objClientInfo.width="unknown";
//objClientInfo.javaOK = "unknown"
objClientInfo.cookiesOK = "unknown";
objClientInfo.minorVers = "unknown";
objClientInfo.cpu = "unknown";
objClientInfo.browsLang = "unknown";

//-- If browser is version 4 or better we can take a deeper look.
if (objClientInfo.browserVersionNum >= 4) {
objClientInfo.availheight=screen.availHeight;
objClientInfo.availwidth=screen.availWidth;
objClientInfo.colordepth=screen.colorDepth + " bit"
objClientInfo.height=screen.height;
objClientInfo.width=screen.width;
/*if (window.innerWidth){
objClientInfo.winheight=window.innerHeight;
objClientInfo.winwidth=window.innerWidth;
}
else if (document.all){
objClientInfo.winheight=document.body.clientHeight;
objClientInfo.winwidth=document.body.clientWidth;
}
var isIE=document.all?true:false;
objClientInfo.winheight=isIE?document.body.clientHeight:window.innerHeight;
objClientInfo.winwidth=isIE?document.body.clientWidth:window.innerWidth;*/
if (navigator.javaEnabled()==true){objClientInfo.javaOK="Yes"}else{objClientInfo.javaOK="No"}
//-- cookieEnabled only works in MSIE.
if (objClientInfo.browserName=="Microsoft Internet Explorer") {if (navigator.cookieEnabled==true) {objClientInfo.cookiesOK="Yes";}else{objClientInfo.cookiesOK="No";}}
//-- These all end up as unknowns in Navigator 4.05.
objClientInfo.minorVers = navigator.appMinorVersion;
objClientInfo.cpu = navigator.cpuClass;
objClientInfo.browsLang = navigator.browserLanguage;
Is();
}

function Is ()
{// convert all characters to lowercase to simplify testing
var agt=navigator.userAgent.toLowerCase();

objClientInfo.major = parseInt(navigator.appVersion);
objClientInfo.minor = parseFloat(navigator.appVersion);

// If you want to allow spoofing, take out the tests for opera and webtv.
objClientInfo.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));
objClientInfo.nav2 = (objClientInfo.nav && (objClientInfo.major == 2));
objClientInfo.nav3 = (objClientInfo.nav && (objClientInfo.major == 3));
objClientInfo.nav4 = (objClientInfo.nav && (objClientInfo.major == 4));
objClientInfo.nav4up = (objClientInfo.nav && (objClientInfo.major >= 4));
objClientInfo.navonly  = (objClientInfo.nav && ((agt.indexOf(";nav") != -1) ||
(agt.indexOf("; nav") != -1)) );
objClientInfo.nav6 = (objClientInfo.nav && (objClientInfo.major == 5));
objClientInfo.nav6up = (objClientInfo.nav && (objClientInfo.major >= 5));

objClientInfo.ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
objClientInfo.ie3= (objClientInfo.ie && (objClientInfo.major < 4));
objClientInfo.ie4= (objClientInfo.ie && (objClientInfo.major == 4) && (agt.indexOf("msie 4")!=-1) );
objClientInfo.ie4up  = (objClientInfo.ie  && (objClientInfo.major >= 4));
objClientInfo.ie5= (objClientInfo.ie && (objClientInfo.major == 4) && (agt.indexOf("msie 5.0")!=-1) );
objClientInfo.ie5_5  = (objClientInfo.ie && (objClientInfo.major == 4) && (agt.indexOf("msie 5.5") !=-1));
objClientInfo.ie5up  = (objClientInfo.ie  && !objClientInfo.ie3 && !objClientInfo.ie4);
objClientInfo.ie5_5up =(objClientInfo.ie && !objClientInfo.ie3 && !objClientInfo.ie4 && !objClientInfo.ie5);
objClientInfo.ie6= (objClientInfo.ie && (objClientInfo.major == 4) && (agt.indexOf("msie 6.")!=-1) );
objClientInfo.ie6up  = (objClientInfo.ie  && !objClientInfo.ie3 && !objClientInfo.ie4 && !objClientInfo.ie5 && !objClientInfo.ie5_5);

objClientInfo.hotjava = (agt.indexOf("hotjava") != -1);
objClientInfo.hotjava3 = (objClientInfo.hotjava && (objClientInfo.major == 3));
objClientInfo.hotjava3up = (objClientInfo.hotjava && (objClientInfo.major >= 3));

// *** JAVASCRIPT VERSION CHECK ***
if (objClientInfo.nav2 || objClientInfo.ie3) objClientInfo.js = 1.0;
else if (objClientInfo.nav3) objClientInfo.js = 1.1;
else if (objClientInfo.opera5up) objClientInfo.js = 1.3;
else if (objClientInfo.opera) objClientInfo.js = 1.1;
else if ((objClientInfo.nav4 && (objClientInfo.minor <= 4.05)) || objClientInfo.ie4) objClientInfo.js = 1.2;
else if ((objClientInfo.nav4 && (objClientInfo.minor > 4.05)) || objClientInfo.ie5) objClientInfo.js = 1.3;
else if (objClientInfo.hotjava3up) objClientInfo.js = 1.4;
else if (objClientInfo.nav6 || objClientInfo.gecko) objClientInfo.js = 1.5;
else if (objClientInfo.nav6up) objClientInfo.js = 1.5;
// note ie5up on mac is 1.4
else if (objClientInfo.ie5up) objClientInfo.js = 1.3

// HACK: no idea for other browsers; always check for JS version with > or >=
else objClientInfo.js = 0.0;

// *** PLATFORM ***
objClientInfo.win   = ( (agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1) );
objClientInfo.win95 = ((agt.indexOf("win95")!=-1) || (agt.indexOf("windows 95")!=-1));

// is objClientInfo a 16 bit compiled version?
objClientInfo.win16 = ((agt.indexOf("win16")!=-1) || (agt.indexOf("16bit")!=-1) || (agt.indexOf("windows 3.1")!=-1) || (agt.indexOf("windows 16-bit")!=-1) );

objClientInfo.win31 = ((agt.indexOf("windows 3.1")!=-1) || (agt.indexOf("win16")!=-1) ||
(agt.indexOf("windows 16-bit")!=-1));

objClientInfo.win98 = ((agt.indexOf("win98")!=-1) || (agt.indexOf("windows 98")!=-1));
objClientInfo.winnt = ((agt.indexOf("winnt")!=-1) || (agt.indexOf("windows nt")!=-1));
objClientInfo.win32 = (objClientInfo.win95 || objClientInfo.winnt || objClientInfo.win98 || 
((objClientInfo.major >= 4) && (navigator.platform == "Win32")) ||
(agt.indexOf("win32")!=-1) || (agt.indexOf("32bit")!=-1));

objClientInfo.winme = ((agt.indexOf("win 9x 4.90")!=-1));
objClientInfo.win2k = ((agt.indexOf("windows nt 5.0")!=-1));

objClientInfo.os2   = ((agt.indexOf("os/2")!=-1) || 
(navigator.appVersion.indexOf("OS/2")!=-1) ||   
(agt.indexOf("ibm-webexplorer")!=-1));

objClientInfo.mac= (agt.indexOf("mac")!=-1);
// hack ie5 js version for mac
if (objClientInfo.mac && objClientInfo.ie5up) objClientInfo.js = 1.4;
objClientInfo.mac68k = (objClientInfo.mac && ((agt.indexOf("68k")!=-1) || 
(agt.indexOf("68000")!=-1)));
objClientInfo.macppc = (objClientInfo.mac && ((agt.indexOf("ppc")!=-1) || 
(agt.indexOf("powerpc")!=-1)));

}

var is;
var isIE3Mac = false;
// objClientInfo section is designed specifically for IE3 for the Mac

if ((navigator.appVersion.indexOf("Mac")!=-1) && (navigator.userAgent.indexOf("MSIE")!=-1) && (parseInt(navigator.appVersion)==3))
isIE3Mac = true;
else is = new Is(); 