<?php
header('Content-Type: text/javascript');
?>
var http_request = false;
function speed_requisitar(url) {
    http_request = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/plain');
            // See note below about this line
        }
    }
    else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {}
        }
    }
    if (!http_request) {
        alert('Giving up :( Cannot create an XMLHTTP instance');
        return false;
    }
    http_request.onreadystatechange = speed_conteudo; http_request.open('GET', url, true);
    http_request.send(null);
}
function speed_conteudo() {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            var speed_checa;
            var conteudo = http_request.responseText;
            document.getElementById('resultado_velocimetro_lixeira').innerHTML = '<!--'+conteudo+'-->';;
            tamanho_arquivo = conteudo.length;
            if (conteudo.length == 102400) {
                finalTesteVelocidade();
            }
            else {
                alert('Erro durante o texto.\n\nRetorno:\n- Tamanho de arquivo inválido!');
            }
        } else {
            alert("Há um problema na comunicação com o servidor.\nNão foi possível recuperar seu endereço.");
        }
    }
}

function speed_executar() {
    speed_requisitar(dominio_ajax+'gera_byte.php')
}

function inicioTesteVelocidade () {
    document.getElementById('resultado_velocimetro').innerHTML = '<i>Calculando a velocidade de sua internet...</i>';
    var data1 = new Date()
    speed_inicio = data1.getTime();
    speed_executar();
}

function finalTesteVelocidade () {
    var data2 = new Date()
    var speed_final = data2.getTime();
    var speed_tempo_decorrido = (speed_final - speed_inicio) / 1000;
    var speed_tamanho_arquivo = ""+tamanho_arquivo+""; speed_tamanho_arquivo = speed_tamanho_arquivo.substr(0, 3)+'.'+speed_tamanho_arquivo.substr(-3);
    //var speed_tamanho_arquivo = 100/3.4;
    var linha_do_tempo = (speed_tamanho_arquivo / speed_tempo_decorrido);
    var speed_kbps = Math.round(linha_do_tempo * 8 * 100) / 100;    //var speed_kbps = (tamanho_arquivo / 100 / 8) / speed_tempo_decorrido;
    var speed_kb = Math.round(linha_do_tempo * 100) / 100;    //var speed_kb = (speed_kbps / 8);
    var resultado_velocimetro = '';
    //resultado_velocimetro += 'tamanho do arquivo: '+speed_tamanho_arquivo+'<br />';
    //resultado_velocimetro += 'linha do tempo: '+linha_do_tempo+'<br />';
    //resultado_velocimetro += 'iniciou em: '+speed_inicio+'<br />';
    //resultado_velocimetro += 'terminou em: '+speed_final+'<br />';
    //resultado_velocimetro += 'demorou: '+speed_tempo_decorrido+' segundos<br />';
    resultado_velocimetro += 'Sua velocidade de internet é: <big><big><b>'+speed_kbps+'</b></big></big> kbps<br />';
    resultado_velocimetro += 'E sua taxa de download é : <b>'+speed_kb+'</b> KB/s<br />';
    document.getElementById('resultado_velocimetro').innerHTML = resultado_velocimetro;
}

function arredonda (numero, decimal) {
    var numero = numero;
    alert(numero);
    numero_array = numero.split('.');
    numero_array[1] = numero_array[1].substr(0,2);
    return numero_array[0]+'.'+numero_array[1];
}

