var req;
var xtype;
function loadXMLDoc(ssid, site) {
    if (site)
    {
       ssite='server='+site+'&';
    }
    url='progress.php'+'?sid='+ssid+'&'+ssite+Math.random();
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        xtype='xml';
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        xtype='ms';
        if (req) {
            req.onreadystatechange = processReqChange;
            req.open("POST", url, true);
            req.send();
        }
    } else {
        //not supported
        document.getElementById('progressinfo').innerHTML='Cant load progress monitor';
    }
    //document.getElementById('progressbar').innerHTML=xtype+' loaded';

}


function processReqChange()
{
    // only if req shows "complete"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
            //document.getElementById('progressbar').innerHTML =req.responseText;
            var response;
            eval('response = ' + req.responseText);
            if (parseInt(response['good']) == 1) {
                document.getElementById('progresstable').style.visibility = 'visible';
                var percentage = Math.floor(100 * parseInt(response['progress']) / parseInt(response['size']));
                $("#uploadprogressbar").progressBar(percentage);
                var eta, etaStr, progressInfoStr;
                eta = Math.floor((parseInt(response['size']) - parseInt(response['progress'])) / parseFloat(response['speed']));
                etaStr = "";
                if (eta > 60*60*24) {
                    etaStr += Math.floor(eta / (60*60*24)) + "д ";
                    eta -= Math.floor(eta / (60*60*24)) * 60*60*24;
                }
                if (eta > 60*60) {
                    etaStr += Math.floor(eta / (60*60)) + "ч "
                    eta -= Math.floor(eta / (60*60)) * 60*60;
                }
                if (eta > 60) {
                    etaStr += Math.floor(eta / (60)) + "м "
                    eta -= Math.floor(eta / (60)) * 60;
                }
                if (eta > 0) {
                    etaStr += eta + "с"
                }
                progressInfoStr = "" + percentage + "% ( " + response['progress_str'] + " / " + response['size_str'] + " ) @ " + response['speed_str'] +
                    ", ETA " + etaStr;
                document.getElementById('progressinfo').innerHTML = progressInfoStr;
            } else {
                document.getElementById('progresstable').style.visibility = 'hidden';
            }
        } else {
                document.getElementById('progressinfo').innerHTML = "Ошибка монитора, попытаемся восстановить...\n" + req.statusText;
        }
    }
    //window.setTimeout(loadXMLDoc,500);
}

function startMonitor(ssid, site) {
    if (site)
        {
      window.setInterval("loadXMLDoc('"+ssid+"', '"+site+"')",1000);
    } else
    {
      window.setInterval("loadXMLDoc('"+ssid+"')",1000);
    }
}

function checkaccept(sid, site) {

    if(upform.accepted.checked == false) {
        alert('Вы должны согласиться с Правилами!');
        return false;
    } else {
        upform.go.value='Ждите...';
        upform.go.disabled=true;
        startMonitor(sid, site);
        upform.submit();
        return true;
    }
}

function startnocheck(sid) {
        upform.go.value='Ждите...';
        upform.go.disabled=true;
        startMonitor(sid);
        upform.submit();
        return true;
}