﻿/*function detectIE(ClassID,name)function Test_acrobat(Is_IE)function Test_browser(User_agent)function capitaliseFirstChar(properName)function Test_cookie_return(Cookies_enabled)function Test_cookie()function Test_js()function Test_screen()function Test_spyware()function Set_time(DateTime)function Test_time()function testCompliance()function allow_access()*/browserTests = function(userAgent, shouldFail, inTesting){	this.userAgent		= userAgent;	this.shouldFail		= shouldFail;	this.inTesting		= inTesting || false;    this.Is_IE			= false;    this.Is_AOL			= false;    this.Is_NS			= false;    this.Is_WIN			= false;    this.Is_MAC			= false;    this.Is_NIX			= false;    this.Is_FOX			= false;	this.Is_CHROME		= false;    this.Is_SAF			= false;    this.Is_OPERA		= false;    this.OS_ver			= "";    this.Browser_ver	= "";    this.Browser_subver	= "";    this.Browser		= "";    this.Display_line	= "";    this.validAccess	= false;};//varvar _Acrobat_answer=false;var _Browser_answer=false;var _Cookie_answer=false;var _Cookie_ran=false;var _Js_answer=false;var _Screen_answer=false;var _Spyware_answer=false;var _Server_time=new Date(); //Loaded in server-side JS on calling pagevar _Time_answer=false;//vardocument.write('<SCR' + 'IPT LANGUAGE=VBScript>\n');document.write('function TestPDF(Version)\n');document.write('	on error resume next\n');document.write('	TestPDF = IsObject(CreateObject(Version))\n');document.write('end function\n');document.write('</SCR' + 'IPT>\n');function detectIE(ClassID,name){	result = false;	document.write('<SCR' + 'IPT LANGUAGE=VBScript>\n on error resume next \n result = IsObject(CreateObject("' + ClassID + '"))</SCR' + 'IPT>\n');	if (result)		return name+',';	else		return '';};function Test_acrobat(Is_IE){	//var	var PDF=false;	var IE_PDFtest=false;	var Cookie_display_line="";	//var		if(navigator.mimeTypes.length>0)	{		if(navigator.mimeTypes["application/pdf"]!=undefined)			PDF=true;	}else{		//TestPDF is a VBScript function at the top		try{			if(TestPDF("PDF.PdfCtrl.1")!=undefined || TestPDF("PDF.PdfCtrl.5")!=undefined || TestPDF("PDF.PdfCtrl.6")!=undefined || TestPDF("acroPDF.PDF")!=undefined)				PDF=true;		}catch(e){};	};	if(PDF)		document.getElementById('acrobat').innerHTML="Installed";	else		document.getElementById('acrobat').innerHTML="<b><font color=#ff0000>Not Installed</font> - <a href=http://www.adobe.com/products/acrobat/readstep2.html target=_blank>Install</a></b>";		return PDF;};function Test_browserAccess(User_agent){	//var	var testBrowser = new browserTests(User_agent, false)	//var	Test_browser(testBrowser);		if(testBrowser.validAccess)		document.getElementById('browser').innerHTML = testBrowser.Display_line;	else		document.getElementById('browser').innerHTML = "<font color=#ff0000><b>" + testBrowser.Display_line + "</b></font>";	return testBrowser.validAccess;};function Test_browser(testBrowser){	//var	var User_agent		= testBrowser.userAgent;    var Is_IE			= (User_agent.indexOf("msie") != -1);    var Is_AOL			= (User_agent.indexOf("aol") != -1);    var Is_WIN			= ((User_agent.indexOf("win") != -1) || (User_agent.indexOf("32bit") != -1));    var Is_MAC			= (User_agent.indexOf("mac") != -1);    var Is_NIX			= (User_agent.indexOf("nux") != -1);    var Is_FOX			= (User_agent.indexOf("firefox") != -1);    var Is_CHROME		= (User_agent.indexOf("chrome") != -1);    var Is_SAF			= !Is_CHROME && (User_agent.indexOf("safari") != -1);    var Is_OPERA		= (User_agent.indexOf("opera") != -1);//    var Is_NS			= (navigator.appName.indexOf("Netscape") != -1);    var Is_NS			= ((navigator.appName.indexOf("Netscape") != -1) || (User_agent.indexOf("netscape") != -1)) && !Is_IE && !Is_FOX && !Is_SAF && !Is_OPERA;    var OS_ver			= "";    var Browser_ver		= "";    var Browser_subver	= "";    var Browser			= "";    var Display_line	= "";    var validAccess		= false;	var borwserImpersonating	= false;    //var        try{        if(Is_IE)        {	        Browser_ver=User_agent.match(/msie ([\d\.]+)/)[1];			Browser="IE " + Browser_ver;		}else if(Is_OPERA){			if(User_agent.match(/opera[\/\s]?(\d+\.?\d*)/))			{				if(User_agent.match(/version\/(\d+\.?\d*)/))					Browser_ver = User_agent.match(/version\/(\d+\.?\d*)/)[1];				else					Browser_ver = User_agent.match(/opera\/(\d+\.?\d*)/)[1];				Browser="Opera " + Browser_ver;			};		}else if(Is_FOX){			if(User_agent.match(/fox[\/\s]?(\d+\.?\d*)/))			{				Browser_ver = User_agent.match(/fox\/(\d+\.?\d*)/)[1];				Browser="FireFox " + Browser_ver;			};		}else if(Is_CHROME){			if(User_agent.match(/chrome[\/\s]?(\d+\.?\d*)/))			{				Browser_ver = User_agent.match(/chrome\/(\d+\.?\d*)/)[1];				Browser="Chrome " + Browser_ver;			};		}else if(Is_SAF){			if(User_agent.match(/safari[\/\s]?(\d+\.?\d*)/))			{				Browser_ver = User_agent.match(/ver\w+\/([\d\.]+)/)[1].replace(/.\d+$/,'');				Browser="Safari " + Browser_ver;			};		}else{			if(User_agent.match(/ ([\w\.]+)\/(\d+\.\d+)\.?\d*( \(ax\))?/))			{				Browser_ver = User_agent.match(/ ([\w\.]+)\/(\d+\.\d+)\.?\d*( \(ax\))?$/)[2];				if( parseFloat(Browser_ver)>100 && User_agent.match(/ver\w+\/([\d\.]+)/))					Browser_ver = User_agent.match(/ver\w+\/([\d\.]+)/)[1].replace(/.\d+$/,'');				else if( parseFloat(Browser_ver)<100 )					Browser_ver = parseFloat(Browser_ver);				else					//Old browsers do not explicitly say "version X"					switch(parseInt(Browser_ver))					{						case 85		: Browser_ver = 1; break;						case 125	: Browser_ver = 1.2; break;						case 312	: Browser_ver = 1.3; break;						case 412	: 						case 416	: 						case 417	: 						case 419	: Browser_ver = 2; break;						default		: Browser_ver = 0; break;					};				Browser = User_agent.match(/ ([\w\.]+)\/(\d+\.\d+)\.?\d*( \(ax\))?$/)[1];			}else if(User_agent.match(/ ([[a-zA-Z]\.]+)\/(\d+\.\d+)\.?\d?( \(ax\))?(-[\w\d]+)?;?/)){				Browser_ver = User_agent.match(/ ([[a-zA-Z]\.]+)\/(\d+\.\d+)\.?\d?( \(ax\))?(-[\w\d]+)?;?/)[2];				Browser = User_agent.match(/ ([\w\.]+)\/(\d+\.\d+)\.?\d?( \(ax\))?(-[\w\d]+)?;?/)[1];			}else if(User_agent.match(/; (\d+\.\d+)\.?\d?/)){				Browser_ver = User_agent.match(/; (\d+\.\d+)\.?\d?/)[1];				Browser = ""; //User_agent.match(/\((\w+ \d+\.?\d*\.?\d*)/)[1];			};			if(Browser_ver > 0)				Browser = Browser.charAt(0).toUpperCase() + Browser.substring(1,Browser.length) + " " + Browser_ver;			else				Browser = "Undetectable";		};		if(Is_AOL)		{			Browser_subver=User_agent.match(/aol ([\d\.]+)/)[1];			Browser+=" (AOL " + Browser_subver + ")";		};		if(Is_WIN)		{			OS_ver=User_agent.match(/win(\w\w)?((\w\w )?\w* ?\w* ([\w\.]+))?[;)]/);						if(OS_ver[4]!=undefined && OS_ver[4].length<4)				OS_ver = OS_ver[4];			else if(OS_ver[3]!=undefined && OS_ver[3].substring(2,3)==" ")				OS_ver = OS_ver[3];			else				OS_ver = OS_ver[1];			if(!User_agent.match(/win 9x 4.90/))			{					switch(OS_ver)					{		        		case '98': OS_ver="Windows 98"; break;		        		case '3.1': OS_ver="Windows NT 3.1"; break;		        		case '3.5': OS_ver="Windows NT 3.5"; break;		        		case '3.51': OS_ver="Windows NT 3.51"; break;		        		case '4.0': OS_ver="Windows NT 4.0"; break;		        		case '5.0': OS_ver="Windows 2000"; break;		        		case '5.1': OS_ver="Windows XP"; break;		        		case '5.2': OS_ver="Windows Server 2003"; break;		        		case '6.0': OS_ver="Windows Vista"; break;		        		case '6.1': OS_ver="Windows 7"; break;		        		default: OS_ver="Windows " + OS_ver.toUpperCase(); break;					};			}else				OS_ver="Windows ME";		}else if(Is_MAC){			if(User_agent.match(/mac os (\w+)\s?(\d+[\._]\d+)?[\._]?\d*;/))			{				OS_ver = User_agent.match(/mac os (\w+)\s?(\d+[\._]\d+)?[\._]?\d*;/);								if(OS_ver[2])					OS_ver = 'Mac OS ' + OS_ver[1].toUpperCase() + ' ' + OS_ver[2].replace(/_/g,'.');				else					OS_ver = 'Mac OS ' + OS_ver[1].toUpperCase();			}else				OS_ver = 'Mac';							if(User_agent.match(/ipad/))				OS_ver += " (iPad)";		}else if(Is_NIX){			if(User_agent.match(/linux[;\su]*\s(\w+)\s([\d\.]*)?/) != null)				OS_ver=capitaliseFirstChar(User_agent.match(/linux[;\su]*\s(\w+)\s([\d\.]*)?/)[1]) + " " + User_agent.match(/linux[;\su]*\s(\w+)\s([\d\.]*)?/)[2];			else				OS_ver="Linux";			if(User_agent.match(/droid/))				OS_ver += " (Droid)";		}else{			if(User_agent.match(/\(([\w\s?]+\d*\.?\d*\.?\d*)/))				OS_ver = capitaliseFirstChar(User_agent.match(/\(([\w\s?]+\d*\.?\d*\.?\d*)/)[1]);			else				OS_ver = "Other";		};	}catch(e){		Browser_ver	= 0;		OS_ver		= "Undetectable"	};	//	if(Browser == "Undetectable" && OS_ver == "Undetectable")//		Display_line = "Undetectable";//	else	if(Is_IE)	{		try{			//Only IE (and Opera) has insertAdjacentHTML			document.body.insertAdjacentHTML("beforeEnd","");		}catch(e){			borwserImpersonating = true;		};		if(!Is_IE || Browser_ver <9)			try{				//Only IE can crate a note with brackets				document.createElement("<input>");			}catch(e){				borwserImpersonating = true;			};		if(document.documentMode != undefined)		{			if(document.documentMode == 8 && Browser_ver < 8)				Browser = "<font color=#ff0000>IE 8 <b>(" + Browser + " comp.)</b></font>"			if(document.documentMode == 7)				Browser = "<font color=#ff0000>IE 8 <b>(" + Browser + " comp.)</b></font>"			if(document.documentMode == 5)				Browser = "<font color=#ff0000>IE 8 <b>(IE 5 quirk)</b></font>"		};	};		Display_line = OS_ver + " - " + Browser;		if(borwserImpersonating)		Display_line = Display_line + " - Overrode";		//if((Is_IE && Browser_ver>=5.5) && Is_WIN)	if(((Is_IE && Browser_ver>=6) || 		(Is_FOX && Browser_ver>=2 && !OS_ver.match(/droid/gi) ) || 		(Is_CHROME && Browser_ver>=4) ||		(Is_SAF && Browser_ver>=1) ||		(Is_NS && Browser_ver>=6) ||		(OS_ver.match(/playstation/gi) && Browser_ver>=2))		&& !borwserImpersonating)		testBrowser.validAccess = true;	    testBrowser.Is_IE			= Is_IE;    testBrowser.Is_AOL			= Is_AOL;    testBrowser.Is_NS			= Is_NS;    testBrowser.Is_WIN			= Is_WIN;    testBrowser.Is_MAC			= Is_MAC;    testBrowser.Is_NIX			= Is_NIX;    testBrowser.Is_FOX			= Is_FOX;    testBrowser.Is_CHROME		= Is_CHROME;    testBrowser.Is_SAF			= Is_SAF;    testBrowser.Is_OPERA		= Is_OPERA;    testBrowser.OS_ver			= OS_ver;    testBrowser.Browser_ver		= Browser_ver;    testBrowser.Browser_subver	= Browser_subver;    testBrowser.Browser			= Browser;    testBrowser.Display_line	= Display_line;};function capitaliseFirstChar(properName){        var firstLetter = properName.substr(0,1);        return firstLetter.toUpperCase() + properName.substr(1);}function Test_cookie_return(Cookies_enabled){	//This function is ran from the postback of the "Test_cookie()" JS function        if(Cookies_enabled)        {		document.getElementById('cookie').innerHTML="Enabled";		_Cookie_answer=true;	}else{		document.getElementById('cookie').innerHTML="<font color=#ff0000><b>Disabled</b></font>";		_Cookie_answer=false;	};	_Cookie_ran=true;	allow_access();};function Test_cookie(){	//var	var Js_post=new postback("/includesASP/test_cookies_enabled.asp");	//var	Js_post.Retrieve();	return false;};function Test_js(){	document.getElementById('js').innerHTML="Enabled";	return true;};function Test_screen(){	if(screen.width >= 1024 && screen.height >= 768)		document.getElementById('screen').innerHTML=screen.width + "x" + screen.height;	else		document.getElementById('screen').innerHTML="<font color=#ff0000><b>" + screen.width + "x" + screen.height + "</b></font>";	return (screen.width >= 1024 && screen.height >= 768);};function Test_spyware(){	//var	var User_agent = navigator.userAgent.toLowerCase();	//User_agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; .NET CLR 1.1.4322)".toLowerCase();	//User_agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705; Alexa Toolbar; .NET CLR 1.1.4322)".toLowerCase();	//User_agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Hotbar 4.5.0.0; .NET CLR 1.1.4322)".toLowerCase();	//User_agent="Mozilla/4.0 (compatible; MSIE 6.0; AOL 9.0; Windows NT 5.1; acc=ventura5; acc=none; .NET CLR 1.1.4322)".toLowerCase();	//User_agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SpamBlockerUtility 4.7.1)".toLowerCase();	//User_agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; iebar; acc=)".toLowerCase();	var Is_spyware = (User_agent.indexOf("funwebproducts") != -1) || 		(User_agent.indexOf("alexa") != -1) || 		(User_agent.indexOf("hotbar") != -1) || 		(User_agent.indexOf("hbtools") != -1) || 		(User_agent.indexOf("askbar") != -1) || 		(User_agent.indexOf("crazy") != -1) || 		(User_agent.indexOf("coolsearch") != -1) || 		(User_agent.indexOf("isearch") != -1) || 		(User_agent.indexOf("websearch") != -1) || 		(User_agent.indexOf("peoplepal") != -1) || 		(User_agent.indexOf("total Search") != -1);        //var        if(Is_spyware)		document.getElementById('spyware').innerHTML="Spyware:<br />&nbsp;&nbsp;<font color=#ff0000><b>Detected</b></font>&nbsp;&nbsp;<a href=http://www.microsoft.com/athome/security/protect/windowsxpsp2/antispy.mspx target=_blank style='color:#0054A6;'><b>Info</b></a></br>";	else		document.getElementById('spyware').innerHTML="";	        return Is_spyware;};function Set_time(DateTime){	_Server_time=new Date(DateTime);};function Test_time(){	//var	var Client_time = new Date();	var Answer = (Math.abs(Client_time.getTime()-_Server_time.getTime())>4000000);	//var		if(Answer)		document.getElementById('datetime').innerHTML="System Date/Time:&nbsp;&nbsp;<font color=#ff0000><b>Incorrect</b></font>&nbsp;&nbsp;<a href='moreinfo.asp?info=datetime' target=_blank style='color: 0054A6; font-weight: bold'>Info</a></br>";	else		document.getElementById('datetime').innerHTML="";		return !Answer;};function testCompliance(){	//var	var User_agent = navigator.userAgent.toLowerCase().replace(/\+/g," ");	//var		//Don't crash on older browser like Netscape 4 or so.	if(document.getElementById!=undefined)	{		//The "testing..." basically IS the JS test. Otherwise it's default HTML is "failed".		if(document.getElementById('acrobat')!=null)			document.getElementById('acrobat').innerHTML="testing...";		if(document.getElementById('browser')!=null)			document.getElementById('browser').innerHTML="testing...";		if(document.getElementById('cookie')!=null)			document.getElementById('cookie').innerHTML="testing...";		if(document.getElementById('js')!=null)			document.getElementById('js').innerHTML="testing...";		if(document.getElementById('screen')!=null)			document.getElementById('screen').innerHTML="testing...";			//I normally init the vars in the decarations, but wanted to specifically		//show the "testing..." incase something was taking longer.		if(document.getElementById('acrobat')!=null)			_Acrobat_answer=Test_acrobat();		if(document.getElementById('browser')!=null)			_Browser_answer=Test_browserAccess(User_agent);		if(document.getElementById('cookie')!=null)			_Cookie_answer=Test_cookie();		if(document.getElementById('js')!=null)			_Js_answer=Test_js();		if(document.getElementById('screen')!=null)			_Screen_answer=Test_screen();		if(document.getElementById('spyware')!=null)			_Spyware_answer=Test_spyware();//		if(document.getElementById('datetime')!=null)//			_Time_answer=Test_time();			allow_access();	};};function allow_access(){	//If the cookie test ran	if(_Cookie_ran)	{		//If browser access is valid		if(_Browser_answer && _Cookie_answer && _Js_answer)		{			//Failed attemp lockout			if(document.getElementById("f_lockout").value)				disableAccess();		}else			disableCompatibility();	};};function test_allBrowserOptions(){	//var	var User_agents	= new Array;	var runner		= 0;	var allResults	= '';	//var		//User		User_agents[User_agents.length] = new browserTests(navigator.userAgent.toLowerCase().replace(/\+/g," "), false);	//PC		//should fail		User_agents[User_agents.length] = new browserTests("mozilla/5.0 (windows; u; windows nt 5.1; en-us; rv:1.7.10) gecko/20050716 firefox/1.0", true);		User_agents[User_agents.length] = new browserTests("mozilla/5.0 (windows; u; windows nt 5.1; en-us; rv:1.7.10) gecko/20050716 firefox/1.0.6", true);		User_agents[User_agents.length] = new browserTests("Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)".toLowerCase(), true);		User_agents[User_agents.length] = new browserTests("Mozilla/4.0 (compatible; MSIE 5.0; AOL 7.0; Windows 95; DigExt)".toLowerCase(), true);		User_agents[User_agents.length] = new browserTests("Mozilla/4.0 (compatible; MSIE 5.0; WinNT Service Pack 2; ATHMWWW1.1;)".toLowerCase(), true);		User_agents[User_agents.length] = new browserTests("Mozilla/2.0 (compatible; MSIE 3.0B; Windows NT)".toLowerCase(), true);		User_agents[User_agents.length] = new browserTests("Opera/9.99 (Windows NT 5.1; U; pl) Presto/9.9.9".toLowerCase(), true);		User_agents[User_agents.length] = new browserTests("Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:0.9.4.2) Gecko/20021112 CS 2000 7.0/7.0".toLowerCase(), true);		//should pass		User_agents[User_agents.length] = new browserTests("Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; GTB6.5; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; SLCC1; InfoPath.2; .NET4.0C)".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("Mozilla/4.0 (compatible; MSIE 6.0; AOL 9.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90)".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("Mozilla/4.0 (compatible; MSIE 6.0; AOL 9.0; Windows 98)".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax)".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT; Hotbar 4.4.0.0)::ELNSB50::00008115064004b002a002dc000000000507000900000000".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; Win 9x 4.90)".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.0; Windows NT 5.1; AT&T CSM6.0; .NET CLR 1.1.4322)".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; http://bsalsa.com) ; User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; http://bsalsa.com) (Mozilla/5.0 (Windows; U; Windows NT 5.1; en; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11); .NET CLR 1.1.4322; .NET CLR 2.0.50727)".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("mozilla/4.0 (compatible; msie 8.0; win32)".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("mozilla/5.0 (windows; u; windows nt 6.0; en-us; rv:1.9.0.10) gecko/2009042316 firefox/3.0.10".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("mozilla/4.0 (compatible; msie 8.0; windows nt 6.0; trident/4.0; slcc1; .net clr 2.0.50727; infopath.2; zune 3.0; .net clr 3.0.30729; officeliveconnector.1.3; officelivepatch.0.0; .net clr 3.5.21022)".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; Avant Browser; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 1.0.3705; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("mozilla/5.0 (windows; u; windows nt 6.0; en-us) applewebkit/532.5 (khtml, like gecko) chrome/4.1.249.1064 safari/532.5".toLowerCase().replace(/\+/g," "), false);		User_agents[User_agents.length] = new browserTests("mozilla/5.0 (windows; u; windows nt 6.0; en-us; rv:1.9.0.19) gecko/2010031422 firefox/3.0.19 gtb7.0 (.net clr 3.5.30729)".toLowerCase().replace(/\+/g," "), false, true);		User_agents[User_agents.length] = new browserTests("mozilla/4.0 (compatible; msie 8.0; windows nt 6.0; wow64; trident/4.0; slcc1; .net clr 2.0.50727; .net4.0c; .net4.0e; .net clr 3.0.30729; .net clr 3.5.30729)".toLowerCase().replace(/\+/g," "), false, true);		User_agents[User_agents.length] = new browserTests("opera/9.80 (windows nt 6.1; u; en) presto/2.6.30 version/10.63".toLowerCase().replace(/\+/g," "), false, true);	//MAC strings		//should fail		User_agents[User_agents.length] = new browserTests("Mozilla/4.0 (compatible; MSIE 5.23; Mac_PowerPC)".toLowerCase(), true);		//should pass		User_agents[User_agents.length] = new browserTests("Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/312.5 (KHTML, like Gecko) Safari/312.3".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr-fr) AppleWebKit/312.5.1 (KHTML, like Gecko) Safari/312.3.1".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr) AppleWebKit/418.9.1 (KHTML, like Gecko) Safari/419.3".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("mozilla/5.0 (macintosh; u; intel mac os x 10.5; en-us; rv:1.9.0.10) gecko/2009042315 firefox/3.0.10".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("mozilla/5.0 (macintosh; u; intel mac os x 10_5_7; en-us) applewebkit/525.28.3 (khtml, like gecko) version/3.2.3 safari/525.28.3".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("Mozilla/5.0+(iPad;+U;+CPU+OS+3_2+like+Mac+OS+X;+en-us)+AppleWebKit/531.21.10+(KHTML,+like+Gecko)+Version/4.0.4+Mobile/7B367+Safari/531.21.10".toLowerCase().replace(/\+/g," "), false);		User_agents[User_agents.length] = new browserTests("Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us) AppleWebKit/531.22.7 (KHTML, like Gecko) Version/4.0.5 Safari/531.22.7".toLowerCase().replace(/\+/g," "), false);	//Linux strings		//should fail		User_agents[User_agents.length] = new browserTests("Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.10) Gecko/20050909 Red Hat/1.0.6-1.4.2 Firefox/1.0.6".toLowerCase(), true);		User_agents[User_agents.length] = new browserTests("Mozilla/5.0 (compatible; Konqueror/3.3; Linux) (KHTML, like Gecko)".toLowerCase(), true);		User_agents[User_agents.length] = new browserTests("Mozilla/5.0 (compatible; Konqueror/3.4; Linux) KHTML/3.4.2 (like Gecko)".toLowerCase(), true);		User_agents[User_agents.length] = new browserTests("Mozilla/5.0 (compatible; Konqueror/3.1-rc3; i686 Linux; 20020119)".toLowerCase(), true);		//should pass		User_agents[User_agents.length] = new browserTests("Mozilla/5.0+(Linux;+U;+Android+2.0.1;+en-us;+Droid+Build/ESD56)+AppleWebKit/530.17+(KHTML,+like+Gecko)+Version/4.0+Mobile+Safari/530.17".toLowerCase().replace(/\+/g," "), false);		User_agents[User_agents.length] = new browserTests("Mozilla/5.0+(Linux;+U;+Android+2.2.1;+en-us;+DROIDX+Build/VZW)+AppleWebKit/533.1+(KHTML,+like+Gecko)+Version/4.0+Mobile+Safari/533.1+480X854+motorola+DROIDX".toLowerCase().replace(/\+/g," "), false);	//OTHER strings		User_agents[User_agents.length] = new browserTests("AUDIOVOX-SMT5600/1.2 Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 176x220)".toLowerCase(), true);		User_agents[User_agents.length] = new browserTests("Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)".toLowerCase(), true);		User_agents[User_agents.length] = new browserTests("LocalcomBot/1.2 (+http://www.local.com/bot.htm)".toLowerCase(), true);	//CONSOLE strings		//should fail		User_agents[User_agents.length] = new browserTests("Mozilla/5.0 (PLAYSTATION 3; 1.0)".toLowerCase(), true);		User_agents[User_agents.length] = new browserTests("Mozilla/4.0 (PSP (PlayStation Portable); 2.00)".toLowerCase(), true);		//should pass		User_agents[User_agents.length] = new browserTests("Mozilla/5.0 (PLAYSTATION 3; 2.00)".toLowerCase(), false);		User_agents[User_agents.length] = new browserTests("PSP (PlayStation Portable); 2.00".toLowerCase(), false);	Test_browser(User_agents[0]);	allResults += User_agents[0].userAgent + "<br />";	allResults += "<table border='0' cellpadding='0' cellspacing='0'>";	allResults += "<tr><td>Is_IE: </td><td>" + User_agents[0].Is_IE + "</td></tr>";	allResults += "<tr><td>Is_AOL: </td><td>" + User_agents[0].Is_AOL + "</td></tr>";	allResults += "<tr><td>Is_NS: </td><td>" + User_agents[0].Is_NS + "</td></tr>";	allResults += "<tr><td>Is_WIN: </td><td>" + User_agents[0].Is_WIN + "</td></tr>";	allResults += "<tr><td>Is_MAC: </td><td>" + User_agents[0].Is_MAC + "</td></tr>";	allResults += "<tr><td>Is_NIX: </td><td>" + User_agents[0].Is_NIX + "</td></tr>";	allResults += "<tr><td>Is_FOX: </td><td>" + User_agents[0].Is_FOX + "</td></tr>";	allResults += "<tr><td>Is_CHROME: </td><td>" + User_agents[0].Is_CHROME + "</td></tr>";	allResults += "<tr><td>Is_SAF: </td><td>" + User_agents[0].Is_SAF + "</td></tr>";	allResults += "<tr><td>Is_OPERA: </td><td>" + User_agents[0].Is_OPERA + "</td></tr>";	allResults += "<tr><td>OS_ver: </td><td>" + User_agents[0].OS_ver + "</td></tr>";	allResults += "<tr><td>Browser_ver: </td><td>" + User_agents[0].Browser_ver + "</td></tr>";	allResults += "<tr><td>Browser_subver: </td><td>" + User_agents[0].Browser_subver + "</td></tr>";	allResults += "<tr><td>Browser: </td><td>" + User_agents[0].Browser + "</td></tr>";	allResults += "<tr><td>Display_line: </td><td>" + User_agents[0].Display_line + "</td></tr>";	allResults += "</table>";	if(User_agents[0].shouldFail == !User_agents[0].validAccess)		allResults += User_agents[0].shouldFail + ' == !' + User_agents[0].validAccess + "<br />";	else		allResults += '<span style="color:red;">' + User_agents[0].shouldFail + ' == !' + User_agents[0].validAccess + "</span><br />";	allResults += '<hr /><br />';	for(runner=1; runner<User_agents.length; runner++)//	for(runner=1; runner<1; runner++)	{		Test_browser(User_agents[runner]);				if(User_agents[runner].inTesting)			allResults += '<span style="color:green;">';		allResults += User_agents[runner].userAgent + "<br />";		if(false)		{			allResults += "<table border='0' cellpadding='0' cellspacing='0'>";			allResults += "<tr><td>Is_IE: </td><td>" + User_agents[runner].Is_IE + "</td></tr>";			allResults += "<tr><td>Is_AOL: </td><td>" + User_agents[runner].Is_AOL + "</td></tr>";			allResults += "<tr><td>Is_NS: </td><td>" + User_agents[runner].Is_NS + "</td></tr>";			allResults += "<tr><td>Is_WIN: </td><td>" + User_agents[runner].Is_WIN + "</td></tr>";			allResults += "<tr><td>Is_MAC: </td><td>" + User_agents[runner].Is_MAC + "</td></tr>";			allResults += "<tr><td>Is_NIX: </td><td>" + User_agents[runner].Is_NIX + "</td></tr>";			allResults += "<tr><td>Is_FOX: </td><td>" + User_agents[runner].Is_FOX + "</td></tr>";			allResults += "<tr><td>Is_CHROME: </td><td>" + User_agents[runner].Is_CHROME + "</td></tr>";			allResults += "<tr><td>Is_SAF: </td><td>" + User_agents[runner].Is_SAF + "</td></tr>";			allResults += "<tr><td>Is_OPERA: </td><td>" + User_agents[runner].Is_OPERA + "</td></tr>";			allResults += "<tr><td>OS_ver: </td><td>" + User_agents[runner].OS_ver + "</td></tr>";			allResults += "<tr><td>Browser_ver: </td><td>" + User_agents[runner].Browser_ver + "</td></tr>";			allResults += "<tr><td>Browser_subver: </td><td>" + User_agents[runner].Browser_subver + "</td></tr>";			allResults += "<tr><td>Browser: </td><td>" + User_agents[runner].Browser + "</td></tr>";			allResults += "<tr><td>Display_line: </td><td>" + User_agents[runner].Display_line + "</td></tr>";			allResults += "</table>";		}else			allResults += User_agents[runner].Display_line + "<br />";		if(User_agents[runner].shouldFail == !User_agents[runner].validAccess)			allResults += User_agents[runner].shouldFail + ' == !' + User_agents[runner].validAccess + "<br />";		else			allResults += '<span style="color:red;">' + User_agents[runner].shouldFail + ' == !' + User_agents[runner].validAccess + "</span><br />";		allResults += "<br />";		if(User_agents[runner].inTesting)			allResults += '</span>';	};	document.getElementById('testResults').innerHTML = allResults;};
