// convert all characters to lowercase to simplify testing
var agt=navigator.userAgent.toLowerCase();
var appVer = navigator.appVersion.toLowerCase();
// *** BROWSER VERSION ***
var minor = parseFloat(appVer);
var major = parseInt(minor);
var opera = (agt.indexOf("opera") != -1);
var opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
var opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
var opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
var opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
var opera6 = (agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1);
var opera7 = (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1);
var opera5up = (opera && !opera2 && !opera3 && !opera4);
var opera6up = (opera && !opera2 && !opera3 && !opera4 && !opera5);
var opera7up = (opera && !opera2 && !opera3 && !opera4 && !opera5 && !opera6);
// Note: On IE, start of appVersion return 3 or 4 which supposedly is the version of Netscape it is compatible with. So we look for the real version further on in the string
var iePos  = appVer.indexOf('msie');
if (iePos !=-1) {
	minor = parseFloat(appVer.substring(iePos+5,appVer.indexOf(';',iePos)))
	major = parseInt(minor);
}
// ditto Konqueror
var konq = false;
var kqPos   = agt.indexOf('konqueror');
if (kqPos !=-1) {                 
	konq  = true;
	minor = parseFloat(agt.substring(kqPos+10,agt.indexOf(';',kqPos)));
	major = parseInt(minor);
}                                 
var getElementById   = (document.getElementById) ? "true" : "false"; // 001121-abk
var getElementsByTagName = (document.getElementsByTagName) ? "true" : "false"; // 001127-abk
var documentElement = (document.documentElement) ? "true" : "false"; // 001121-abk
var safari = ((agt.indexOf('safari')!=-1)&&(agt.indexOf('mac')!=-1))?true:false;
var khtml  = (safari || konq);
var gecko = ((!khtml)&&(navigator.product)&&(navigator.product.toLowerCase()=="gecko"))?true:false;
var gver  = 0;
if (gecko) gver=navigator.productSub;
var 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) && (gecko) && ((navigator.vendor=="")||(navigator.vendor=="Mozilla")));
if (moz) {
	var moz_ver = (navigator.vendorSub)?navigator.vendorSub:0;
	if(!(moz_ver)) {
		moz_ver = agt.indexOf('rv:');
		moz_ver = agt.substring(moz_ver+3);
		paren   = moz_ver.indexOf(')');
		moz_ver = moz_ver.substring(0,paren);
	}
	minor = moz_ver;
	major = parseInt(moz_ver);
}
var 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) && (!khtml) && (!(moz)));
if ((navigator.vendor)&& ((navigator.vendor=="Netscape6")||(navigator.vendor=="Netscape")) && (nav)) {
	major = parseInt(navigator.vendorSub);
	minor = parseFloat(navigator.vendorSub);
}
var nav2 = (nav && (major == 2));
var nav3 = (nav && (major == 3));
var nav4 = (nav && (major == 4));
var nav4up = (nav && minor >= 4);
var navonly = (nav && ((agt.indexOf(";nav") != -1) || (agt.indexOf("; nav") != -1)) );
var nav6   = (nav && major==6);
var nav6up = (nav && minor >= 6);
var nav5   = (nav && major == 5 && !nav6);
var nav5up = (nav && minor >= 5);
var nav7   = (nav && major == 7);
var nav7up = (nav && minor >= 7);
var ie   = ((iePos!=-1) && (!opera) && (!khtml));
var ie3  = (ie && (major < 4));
var ie4   = (ie && major == 4);
var ie4up = (ie && minor >= 4);
var ie5   = (ie && major == 5);
var ie5up = (ie && minor >= 5);
var ie5_5  = (ie && (agt.indexOf("msie 5.5") !=-1));
var ie5_5up =(ie && minor >= 5.5);
var ie6   = (ie && major == 6);
var ie6up = (ie && minor >= 6);
// KNOWN BUG: On AOL4, returns false if IE3 is embedded browser or if this is the first browser window opened.  Thus the variables aol, aol3, and aol4 aren't 100% reliable.
var aol   = (agt.indexOf("aol") != -1);
var aol3  = (aol && ie3);
var aol4  = (aol && ie4);
var aol5  = (agt.indexOf("aol 5") != -1);
var aol6  = (agt.indexOf("aol 6") != -1);
var aol7  = ((agt.indexOf("aol 7")!=-1) || (agt.indexOf("aol7")!=-1));
var aol8  = ((agt.indexOf("aol 8")!=-1) || (agt.indexOf("aol8")!=-1));
var webtv = (agt.indexOf("webtv") != -1);
var TVNavigator = ((agt.indexOf("navio") != -1) || (agt.indexOf("navio_aoltv") != -1)); 
var AOLTV = TVNavigator;
var hotjava = (agt.indexOf("hotjava") != -1);
var hotjava3 = (hotjava && (major == 3));
var hotjava3up = (hotjava && (major >= 3));
