/*! ATOGOV - SPA 2025-03-18, Copyright (c) 2025 Australian Taxation Office */
window.atoPreCheckTool={constants:{result:{pass:'OK',fail:'!',warning:'!'},test:{webBrowser:{requirement:"",support:'
Some functionality may not work as expected using your current browser.
Refer to our list of supported browsers.
',supportBlocked:'Your browser is not supported.
Update to one of our supported browsers.
'},javascript:{requirement:"Enabled",support:"Update your browser settings or try another browser."},cookies:{requirement:"Enabled",support:"Update your browser settings or try another browser."},internetSpeed:{requirement:"Download ≥ 0.5Mbps",support:"Your experience may be impacted and some pages may fail to load.",minSpeedThresholdMbit:.5,fileSizeBytes:1048576,testFile:"./test1.bin",testFileFullPath:"/misc/SPA/systemrequirementscheck/ui/anonymous/test1.bin"}},browserSupport:{desktop:{min:{"microsoft edge":">=132",firefox:">=128",chrome:">=132",safari:">=16"},blocked:{"microsoft edge":">=109",firefox:">=102",chrome:">=109",safari:">=13",ie:">11"}},mobile:{min:{safari:">=16",chrome:">=132"},blocked:{safari:">=13",chrome:">=109"}},webviewMinimum:"15.0.0"},emptyValue:' —empty cell
',spinner:'
'},speedTest:function(r,o,s){var i=this,a=(r&&(document.getElementById(r).innerHTML=i.constants.spinner),(new Date).getTime()),e=new XMLHttpRequest;e.open("GET",i.getSpeedTestUrl()),e.onload=function(){var e,t,n;200<=this.status&&this.status<400?(e=(new Date).getTime()-a,n=(t=Math.round(8*i.constants.test.internetSpeed.fileSizeBytes/(e/1e3)))/1e6,console.log(e+" ms "+t+" bits per second "+n+" MBit"),window.ato.preCheck.result.speed=n>i.constants.test.internetSpeed.minSpeedThresholdMbit,window.ato.preCheck.meta.speedTestString=n+" Mbit",window.ato.preCheck.meta.speedTestDateTime=(new Date).toISOString()):(console.log("speedtest failed"),window.ato.preCheck.result.speed=!1,window.ato.preCheck.result.speedTestMbit="failed to run speed test"),r&&(document.getElementById(r).innerHTML=""),o&&o.call(i),s&&s.call(i)},e.send()},testJavascriptSupport:function(){return window.ato.preCheck.result.javascript=!0},testCookieSupport:function(){return window.ato.preCheck.result.cookies=navigator.cookieEnabled,window.ato.preCheck.result.cookies},getFriendlyName:function(e){return e?(e=e.replace("_"," ").replace("mobile","Mobile"))[0].toUpperCase()+e.substring(1):"Unknown browser"},detectBrowserFromUserAgent:function(){var e=new RegExp(/.*\((.*?)\).*\(.*\).*/,"i").exec(window.navigator.userAgent);return e&&e.length?e[1]:"Unknown"},detectOddBrowsers:function(e){var t,n;"safari"===e.name&&-1!==e.os.toLowerCase().indexOf("android")&&window.navigator.userAgent.indexOf("Chrome")&&(e.name="Chrome",e.mobile=!0,t=new RegExp(/.*Chrome\/([0123456789.]*) .*/,"i").exec(window.navigator.userAgent))&&t.length&&(e.version=t[1],e.versionNumber=Number(t[1].split(".")[0])),"crios"===e.name&&(e.name="Chrome",e.mobile=!0,n=new RegExp(/.*CriOS\/([0123456789.]*) .*/,"i").exec(window.navigator.userAgent))&&n.length&&(e.version=n[1],e.versionNumber=Number(n[1].split(".")[0]))},browserDetectWithFixes:function(){var e=window.bowser210.getParser(window.navigator.userAgent),t=e.getOS(),n=e.getBrowserVersion()||"",r=(0