	// ********************************* SET VARS **********************************************	
	// Define browser vars and check which is being used
	var Net11       = false;		
	var Net20       = false;		
	var Net30       = false;		
	var Net35       = false;		
	var ie          = false;
	var ie4         = false;
	var ie5         = false;
	var ie55        = false;
	var ie5Up       =	false;
	var ie6         = false;
	var ie6Up       = false;
	var ie7         = false;
	var ie7Up       = false;
	var ie8         = false;
	var ie8Up       = false;
	var firefox     = false;
	var safari      = false;
	var chrome      = false;
	var netscape    = false;
	var opera       = false;
	var staroffice  = false;
	var webtv       = false;
	var beonex      = false;
	var chimera     = false;
	var netpositive = false;
	var phoenix     = false;
	var skipstone   = false;
	var mozilla     = false;
	var englishBrowser = whichBrs();
	var verBrowser = whichBrsVer();
	if (ie4 || ie5 || ie55 || ie6 || ie7 || ie8) { ie = true; }
	if (ie && verBrowser>5) { ie5Up = true; }
	if (ie && verBrowser>=6) { ie6Up = true; }
	if (ie && verBrowser>=7) { ie6Up = true; }
	if (ie && verBrowser==7) {
		var agt   = navigator.userAgent.toLowerCase();
		if (agt.indexOf("trident/4.0") != -1) { 
			ie8=true; 
			verBrowser = '8 (v7 Compatible)';
		}
	}

	// Test OS
	var agt   = navigator.userAgent.toLowerCase();
	var win   = ((agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1));
	var macosx = (agt.indexOf("mac os x") != -1) || (agt.indexOf("macintosh") != -1);
	var OS = whichOS();
	
	if (ie) {
		var agt   = navigator.userAgent.toLowerCase();
		if (agt.indexOf(".net clr 1.1")!=-1) { Net11 = true; }
		if (agt.indexOf(".net clr 2.0")!=-1) { Net20 = true; }
		if (agt.indexOf(".net clr 3.0")!=-1) { Net30 = true; }
		if (agt.indexOf(".net clr 3.5")!=-1) { Net35 = true; }		
	}

	// Test for ability to use java
	var java    = false;
	if (navigator.javaEnabled()) { java = true; }

	var acrobat = false;
	var acroVer = '';
	var acro3  = false;
	var acro4  = false;
	var acro5  = false;
	var acro6  = false;
	var acro7  = false;

	var flash  = false;
	var flashVer = '';
	var flash4 = false;
	var flash5 = false;
	var flash6 = false;
	var flash7 = false;
	var flash8 = false;
	var flash9 = false;

	var quickt = false;
	var quicktVer = '';
	
	var wmp = false;
	var wmpVer = '';
	
	var error
	// ********************************* SET VARS **********************************************	


	// ********************************* OS CHECK **********************************************	
	function whichOS() {
		var agt=navigator.userAgent;
		var FoundOS = 'Unknown';
		if (agt.indexOf("Windows NT 6.0") != -1) { return 'Windows Vista'; }
		if (agt.indexOf("Windows NT 5.2") != -1) { return 'Windows Server 2003 or Windows XP x64 Edition'; }
		if (agt.indexOf("Windows NT 5.1") != -1) { return 'Windows XP'; }
		if (agt.indexOf("Windows NT 5.01") != -1) { return 'Windows 2000, Service Pack 1 (SP1)'; }
		if (agt.indexOf("Windows NT 5.0") != -1) { return 'Windows 2000'; }	
		if (agt.indexOf("Windows NT 4.0") != -1) { return 'Microsoft Windows NT 4.0'; }
		if (agt.indexOf("Win 9x 4.90") != -1) { return 'Windows Me'; }		
		if (agt.indexOf("Windows 98") != -1) { return 'Windows 98'; }	
		if (agt.indexOf("Windows 95") != -1) { return 'Windows 95'; }
		if (agt.indexOf("Windows CE") != -1) { return 'Windows CE'; }	
		if (agt.indexOf("Mac") != -1) { return 'Apple Mac'; }
		if (agt.indexOf("PPC") != -1) { return 'Apple Mac'; } 
		if (agt.indexOf("SunOS") != -1) { return 'SunOS'; } 
		if (agt.indexOf("Sun") != -1) { return 'SunOS'; }
		if (agt.indexOf("Linux") != -1) { return 'Linux'; } 
		if (agt.indexOf("Unix") != -1) { return 'Unix'; }
		if (agt.indexOf("RISC OS") != -1) { return 'RISC OS'; } 
		if (agt.indexOf("OpenVMS") != -1) { return 'OpenVMS'; } 
		if (agt.indexOf("FreeBSD") != -1) { return 'FreeBSD'; } 
		if (agt.indexOf("Darwin") != -1) { return 'Darwin'; } 
		if (agt.indexOf("IRIX") != -1) { return 'IRIX'; } 
		if (agt.indexOf("BeOS") != -1) { return 'BeOS'; } 
		if (agt.indexOf("OS/2") != -1) { return 'OS/2'; } 
		if (agt.indexOf("AIX") != -1) { return 'AIX'; } 
	}
	// ********************************* OS CHECK **********************************************	


	// ****************************** BROWSER CHECK ********************************************	
	// Return the proper browser name and flag it as true
	function whichBrs() {
		var agt=navigator.userAgent.toLowerCase();
		if (agt.indexOf("msie 8") != -1) { ie8=true; return 'Internet Explorer'; }
		if (agt.indexOf("msie 7") != -1) { ie7=true; return 'Internet Explorer'; }
		if (agt.indexOf("msie 6") != -1) { ie6=true; return 'Internet Explorer'; }
		if (agt.indexOf("msie 5") != -1) { ie5=true; return 'Internet Explorer'; }
		if (agt.indexOf("msie 5.5") != -1) { ie55=true; return 'Internet Explorer'; }	
		if (agt.indexOf("msie") != -1) { ie4=true; return 'Internet Explorer'; }
		if (agt.indexOf("firefox") != -1) { firefox=true; return 'Firefox';}		
		if (agt.indexOf("chrome") != -1) { chrome=true; return 'Chrome'; }	
		if (agt.indexOf("safari") != -1) { safari=true; return 'Safari';}
		if (agt.indexOf("opera") != -1) { opera=true; return 'Opera';}
		if (agt.indexOf("staroffice") != -1) {  staroffice=true; return 'Star Office';}
		if (agt.indexOf("webtv") != -1) { webtv=true; return 'WebTV';}
		if (agt.indexOf("beonex") != -1) { beonex=true; return 'Beonex';}
		if (agt.indexOf("chimera") != -1) { chimera=true; return 'Chimera';}
		if (agt.indexOf("netpositive") != -1) { netpositive=true; return 'NetPositive';}
		if (agt.indexOf("phoenix") != -1) { phoenix=true; return 'Phoenix';}
		if (agt.indexOf("skipstone") != -1) { skipstone=true; return 'SkipStone';}
		if (agt.indexOf("netscape") != -1) { netscape=true; return 'Netscape';}
		if (agt.indexOf("mozilla/5.0") != -1) { mozilla=true; return 'Mozilla';}
		if (agt.indexOf('\/') != -1) {
		if (agt.substr(0,agt.indexOf('\/')) != 'mozilla') {
		return navigator.userAgent.substr(0,agt.indexOf('\/'));}
		else return 'Netscape';} else if (agt.indexOf(' ') != -1)
		return navigator.userAgent.substr(0,agt.indexOf(' '));
		else return 'Unknown';
	}

	// Return the proper browser name and flag it as true
	function whichBrsVer() {
		var agt=navigator.userAgent.toLowerCase();

		if (agt.indexOf("msie")!=-1) {
			var versionindex=agt.indexOf("msie")+5
			if (parseInt(agt.charAt(versionindex))>=1) { return agt.substr(versionindex,agt.indexOf(';',versionindex)-versionindex); }	
		}	
		
		if(agt.indexOf("netscape")!=-1) {
			var versionindex=agt.indexOf("netscape")+10;
			if (parseInt(agt.charAt(versionindex))>=1) { return parseInt(agt.charAt(versionindex)); }
		}
	
		if(agt.indexOf("firefox")!=-1) {
			var versionindex=agt.indexOf("firefox")+8;
			if (parseInt(agt.charAt(versionindex))>=1) { return agt.substr(versionindex); }
		}
	
		if(agt.indexOf("opera")!=-1) {
			var versionindex=agt.indexOf("opera")+6;
			if (parseInt(agt.charAt(versionindex))>=1) { return parseInt(agt.charAt(versionindex)); }
		}

		if(agt.indexOf("safari")!=-1) {
			var versionindex=agt.indexOf("version")+8;
			if (parseInt(agt.charAt(versionindex))>=1) { return agt.substr(versionindex,agt.indexOf(' ',versionindex)-versionindex); }
		}

		if(agt.indexOf("chrome")!=-1) {
			var versionindex=agt.indexOf("chrome")+7;
			if (parseInt(agt.charAt(versionindex))>=0) { return agt.substr(versionindex,agt.indexOf(' ',versionindex)-versionindex); }	
		}
		
		return '';
	}	
	// ****************************** BROWSER CHECK ********************************************	



	// ******************************* COOKIE CHECK ********************************************	
		// Test for ability to use cookies
	var cookieindex = -1;
	var cookies = false;
	cookies = navigator.cookieEnabled;
	// Backup cookie check 
	if (!cookies) {
		setCookie("CACI_COOKIE","CACI_TESTING_COOKIE",1);
		checkCookie("CACI_COOKIE");
	}
		
	// Set the cookie on the end user machine
	function setCookie(name, value) { 
		document.cookie = name + "=" + escape(value)
	}

	// Read the cookie on the end user machine
	function checkCookie(name) {
		cookieindex = document.cookie.indexOf(name + "=")
		if (cookieindex != -1 ) { cookies = true; }	
	}
	// ******************************* COOKIE CHECK ********************************************			
	

	
	// ****************************** ACTIVEX CHECK ********************************************		
	// Try to load XML to verify ActiveX
	var activex = false;
	var activexType = '';
	var objXML;
	if (window.ActiveXObject) { activexType = '(Microsoft)';  activex = true; }
	if (window.GeckoActiveXObject) {	activexType = '(Gecko)'; }	
	if (typeof window.ActiveXObject != "undefined") { 
		objXML = new ActiveXObject("WMPlayer.OCX");
		if (objXML) { activex = true; }
	} 
	// ****************************** ACTIVEX CHECK ********************************************		

		

	// ******************************** APPS CHECK *********************************************		
	// Check each application to see if they are available
	if (activex) {
		acro3  = DetectObjects("PDF.PdfCtrl.3");
		acro4  = DetectObjects("PDF.PdfCtrl.4");
		acro5  = DetectObjects("PDF.PdfCtrl.5");
		acro6  = DetectObjects("PDF.PdfCtrl.6");
		acro7  = DetectObjects("acroPDF.PDF");
		flash4 = DetectObjects("ShockwaveFlash.ShockwaveFlash.4");
		flash5 = DetectObjects("ShockwaveFlash.ShockwaveFlash.5");
		flash6 = DetectObjects("ShockwaveFlash.ShockwaveFlash.6");
		flash7 = DetectObjects("ShockwaveFlash.ShockwaveFlash.7");
		flash8 = DetectObjects("ShockwaveFlash.ShockwaveFlash.8");
		flash9 = DetectObjects("ShockwaveFlash.ShockwaveFlash.9");
		quickt = DetectObjects("QuickTimeCheckObject.QuickTimeCheck.1");
		wmp = DetectObjects("MediaPlayer.MediaPlayer.1");
		wmp = DetectObjects("WMPlayer.OCX");
	}	

	function DetectObjects(ClassID) {	
		if (activex && win)	{
			try {			
				var testObject = new ActiveXObject(ClassID);
				if (testObject) { return true; }
			}
			catch (error)
			{ ; }
		}
		return false;
	}
	
	function DetectVersions(ClassID,App)	{
		if (activex && win)	{
			try {			
				var testVer = '';
				var testObject = new ActiveXObject(ClassID);
				if (testObject) {
					switch (App.toLowerCase()) {
						case "wmp":
							var testVer = testObject.versionInfo;
							testVer = testVer.substr(0,testVer.indexOf('.')+2);
							if (!isNaN(parseInt(testVer.substr(0,1)))) { return testVer; }
							break;
						case "acrobat":
							testVer = testObject.GetVersions();
							testVer = testVer.substr(testVer.indexOf('=')+1,3);
							if (!isNaN(parseInt(testVer.substr(0,1)))) { return testVer; }
							break;							
						case "quicktime":
							testVer = testObject.QuickTimeVersion;
							testVer = testVer.toString(16);
							if (testVer.length >= 2 ) {
								testVer = testVer.substr(0,2);
								testVer = testVer.substr(0,1) + '.' + testVer.substr(1,1);
							}
							if (!isNaN(parseInt(testVer.substr(0,1)))) { return testVer; }
							break;
					}		
				}
			}
			catch (error)
			{ ; }
		}
		return '';
	}	
	// ******************************** APPS CHECK *********************************************		
		
	
	// ******************************* ACROBAT CHECK ********************************************		
	// Check for Acrobat in IE browsers
	if (acro3 || acro4 || acro5 || acro6 || acro7) { 
		acrobat = true; 
		if (acro7) acroVer = DetectVersions("acroPDF.PDF","Acrobat");
		if (!acroVer.length) {
			if (acro3) { acroVer='3.0' };
			if (acro4) { acroVer='4.0' };
			if (acro5) { acroVer='5.0' };
			if (acro6) { acroVer='6.0' };
			if (acro7) { acroVer='7+' };
		}	
	} else {
		// Check for Acrobat in the mimetypes to support non IE browsers
		if (navigator.mimeTypes && (navigator.mimeTypes["pdf"] || navigator.mimeTypes["application/pdf"])) { 
			acrobat = true;
			if (navigator.plugins) {
				var words = parseFloat(navigator.plugins["Adobe Acrobat"].description.split("Version ")[1]);
				acroVer = words;
				if (isNaN(parseInt(acroVer))) { acroVer=''; }
			}	
		}
	}	
	// ******************************* ACROBAT CHECK ********************************************	



	// ******************************** FLASH CHECK *********************************************
	// Check for Flash in IE browsers
	if (flash4 || flash5 || flash6 || flash7 || flash8 || flash9) { 
		flash = true; 
		if (flash4) { flashVer='4.0' };
		if (flash5) { flashVer='5.0' };
		if (flash6) { flashVer='6.0' };
		if (flash7) { flashVer='7.0' };
		if (flash8) { flashVer='8.0' };
		if (flash9) { flashVer='9.0' };
	}	else {
		// Check for Flash in the mimetypes to support non IE browsers
		if (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) {
			flash = true;
			if (navigator.plugins) {
				var words = navigator.plugins["Shockwave Flash"].description.split(" ");
			   for (var f = 0; f < words.length; f++) {
					if (isNaN(parseInt(words[f])))
					continue;
					var MM_PluginVersion = words[f]; 
				}
				flashVer = MM_PluginVersion;
				if (isNaN(parseInt(flashVer))) { flashVer=''; }
			}	
		}
	}	
	// ******************************** FLASH CHECK *********************************************
		


	// ****************************** QUICKTIME CHECK *******************************************
	// Check for QuickTime in IE browsers
	if (quickt) {
		quicktVer = DetectVersions("QuickTimeCheckObject.QuickTimeCheck.1","QuickTime");
	} else {		
		// Check for Quicktime in the mimetypes to support non IE browsers
		if (navigator.mimeTypes && (navigator.mimeTypes["quicktime"] || navigator.mimeTypes["video/quicktime"])) { 
			quickt = true;
			if (!quicktVer.length) {
				if (navigator.plugins) {
					for (var q=0; q < navigator.plugins.length; q++) {
						if (navigator.plugins[q].name.indexOf("QuickTime") >= 0) { 	
							var words = navigator.plugins[q].name.split("Plug-in ");	
							quicktVer = words[1];
							if (isNaN(parseInt(quicktVer))) { quicktVer=''; }		
						}	
					}
				}	 
			}	
		}
	}	
	// ****************************** QUICKTIME CHECK *******************************************



	// **************************** MEDIA PLAYER CHECK ******************************************
	// Backup check for Windows Media Player
	if (wmp) {
		wmpVer = DetectVersions("MediaPlayer.MediaPlayer.1","WMP");
		if (!wmpVer) {
			wmpVer = DetectVersions("WMPlayer.OCX","WMP");
		}
	} else {	
		if (navigator.mimeTypes && navigator.mimeTypes["audio/x-ms-wma"] && navigator.mimeTypes["video/x-ms-wmv"]) { wmp = true; }
		if (!wmp) {	                        
			if (navigator.plugins) {
				for (var m=0; m < navigator.plugins.length; m++) {
					alert(navigator.plugins[m].name);
					if (navigator.plugins[m].name.indexOf("Windows Media Player") >= 0) { wmp = true; }
				}
			}
		}
	}	
	// **************************** MEDIA PLAYER CHECK ******************************************


	// ******************************* POPUP WINDOW *********************************************
	function fnPopUp(webSite)  {
		if (!webSite || website=='undefined') {
			window.open("popup_test.htm","PopUp","height=200,width=450,scrollbars=yes,resizable=yes");		
		} else {
			window.open(webSite,"PopUp","height=200,width=450,scrollbars=yes,resizable=yes");		
		}
	}
	// ******************************* POPUP WINDOW *********************************************