
var mediacoder = {
    "xmlhttp": new XMLHttpRequest(),
    "job": function (context)
    {
        xmlhttp.open("POST", "/mc/transcoder", false);
        xmlhttp.send(JSON.stringify(context));
        if (xmlhttp.status != 200) return false;
        var ret = JSON.parse(xmlhttp.responseText);
        if (ret.result == "done") {
            return true;
        } else {
            alert(ret.error);
            return false;
        }
    },
    "prefs": function (prefs)
    {
        xmlhttp.open('POST', "/mc/prefs", false);
        xmlhttp.send(JSON.stringify(prefs));
        if (xmlhttp.status != 200) return false;
        var ret = JSON.parse(xmlhttp.responseText);
        alert(ret.success);
        return true;
    }
}

function startJob()
{
    mediacoder.job({
        "worker": document.getElementById("worker").value,
        "input":document.getElementById("input").value,
        "begin":0,
        "end":0,
        "output": document.getElementById("output").value,
        "preset": document.getElementById("preset").value,
        "state": "encoding",
        "prefs": {
            "overall": {
                "video": {
                    "enabled": true,
                    "bitrate": 1000,
                },
                "audio": {
                    "enabled": true,
                }
            }
        }
    });
}

function stopJob()
{
    mediacoder.job({
        "state": "stopping",
    });
}

function pauseJob() {
    mediacoder.job({
        "state": "paused",
    });
}

function resumeJob() {
    mediacoder.job({
        "state": "encoding",
    });
}

function setPrefs()
{
    mediacoder.prefs({
        "overall": {
            "video": {
                "enabled": true,
            },
            "audio": {
                "enabled": false
            }
        }
    });
}

function loadPrefs(xmlPrefs)
{
    var ret = postText("/mc/prefs", xmlPrefs);
    if (ret.result == "done") {
        alert(ret.info);
        return true;
    } else {
        alert(ret.error);
        return false;
    }
}
