var imageAddr = 'https://cmo2.livingbusiness.it/app/images/engage_logo.png'; var downloadSize = 81538; //bytes function ShowProgressMessage(msg) { if (console) { if (typeof msg == "string") { console.log(msg); } else { for (var i = 0; i < msg.length; i++) { console.log(msg[i]); } } } $('#internet_status').attr('title',msg); } function InitiateSpeedDetection() { //ShowProgressMessage("Loading the image, please wait..."); window.setTimeout(MeasureConnectionSpeed, 1); }; if (window.addEventListener) { window.addEventListener('load', InitiateSpeedDetection, false); } else if (window.attachEvent) { window.attachEvent('onload', InitiateSpeedDetection); } function MeasureConnectionSpeed() { var startTime, endTime; var download = new Image(); download.onload = function () { endTime = (new Date()).getTime(); showResults(); } download.onerror = function (err, msg) { ShowProgressMessage("Invalid image, or error downloading"); } startTime = (new Date()).getTime(); var cacheBuster = "?nnn=" + startTime; download.src = imageAddr + cacheBuster; function showResults() { var led_status = document.getElementById("internet_status"); var duration = (endTime - startTime); var bitsLoaded = downloadSize * 8; var speedBps = (downloadSize*8*1000/duration).toFixed(2); var speedKbps = (speedBps/1024).toFixed(2); var speedMbps = (speedKbps*20/2500).toFixed(2); $('#internet_status').attr('title',duration+"ms "+(downloadSize/1024).toFixed(2)+"kb "+speedMbps+"Mbps"); if (speedMbps>=7){ $('#internet_status').removeClass('fa-battery-0'); $('#internet_status').removeClass('fa-battery-1'); $('#internet_status').removeClass('fa-battery-2'); $('#internet_status').removeClass('fa-battery-3'); $('#internet_status').addClass('fa-battery-4'); $('#internet_status').css('color','#1CCC30'); } else if (speedMbps<7 && speedMbps>=4){ $('#internet_status').removeClass('fa-battery-0'); $('#internet_status').removeClass('fa-battery-1'); $('#internet_status').removeClass('fa-battery-2'); $('#internet_status').removeClass('fa-battery-4'); $('#internet_status').addClass('fa-battery-3'); $('#internet_status').css('color','#A1F244'); } else if (speedMbps<4 && speedMbps>=2){ $('#internet_status').removeClass('fa-battery-0'); $('#internet_status').removeClass('fa-battery-1'); $('#internet_status').removeClass('fa-battery-3'); $('#internet_status').removeClass('fa-battery-4'); $('#internet_status').addClass('fa-battery-2'); $('#internet_status').css('color','#F2DE5B'); } else if (speedMbps<2 && speedMbps>=1){ $('#internet_status').removeClass('fa-battery-0'); $('#internet_status').removeClass('fa-battery-2'); $('#internet_status').removeClass('fa-battery-3'); $('#internet_status').removeClass('fa-battery-4'); $('#internet_status').addClass('fa-battery-1'); $('#internet_status').css('color','#F26C2E'); } else { $('#internet_status').removeClass('fa-battery-1'); $('#internet_status').removeClass('fa-battery-2'); $('#internet_status').removeClass('fa-battery-3'); $('#internet_status').removeClass('fa-battery-4'); $('#internet_status').addClass('fa-battery-0'); $('#internet_status').css('color','#F20707'); } ShowProgressMessage([ //"Your connection speed is:", //speedBps + " bps", //speedKbps + " kbps", //""+speedMbps + " Mbps" duration+"ms "+(downloadSize/1024).toFixed(2)+"kb "+speedMbps+"Mbps" ]); } }