function getXmlHttpReq() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    }
    if (window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
    return null;
}
function ajax(args,fOnComplete) {
    var req = getXmlHttpReq();
    var url= ajax_url + 'dev_id=' + ajax_dev_id + '&time=' + ajax_time + '&sig=' + ajax_sig + '&' + args;
    req.open("GET",url,true);
    req.onreadystatechange = function() {
        if (4 == req.readyState) {
            if (fOnComplete) {
                fOnComplete();
            }
        }
    }
    req.send(null);
}
function showMessage(s) {
    document.getElementById('message').innerHTML=s;
}
function vote(left,relation,right,up,fOnComplete) {
    var is_up = '0';
    if (up) {
        is_up = '1';
    }
    args = 'method=vote&left=' + escape(left) + '&relation=' + escape(relation) + '&right=' + escape(right) + '&up=' + escape(is_up);
    ajax(args,fOnComplete);
}
function cleanHtml(s) {
    return s.replace('&','&amp;').replace('<','&lt;').replace('>','&gt;');
}
function onClick_put(item_name,is_left) {
    var left = null;
    var right = null;
    var relation = null;
    if (is_left) {
        left = item_name;
        right = document.getElementById('input_left_right').value;
        relation = document.getElementById('input_left_relation').value;
        document.getElementById('input_left_right').value = '';
        document.getElementById('input_left_relation').value = '';
        var html = '<td colspan="2">' + cleanHtml(item_name) + ' <i>' + cleanHtml(relation) + '</i> ' + ' <a href="http://www.millipedia.org/' + escape(right) + '">' + cleanHtml(right) + '</a></td>';
        var o = document.getElementById('table_left').insertRow(2);
        o.innerHTML = html;
        document.getElementById('input_left_relation').focus();
    }
    else {
        right = item_name;
        left = document.getElementById('input_right_left').value;
        relation = document.getElementById('input_right_relation').value;
        document.getElementById('input_right_left').value = '';
        document.getElementById('input_right_relation').value = '';
        var html = '<td colspan="2"><a href="http://www.millipedia.org/' + escape(left) + '">' + cleanHtml(left) + '</a> <i>' + cleanHtml(relation) + '</i> ' + cleanHtml(right) + '</td>';
        var o = document.getElementById('table_right').insertRow(2);
        o.innerHTML = html;
        document.getElementById('input_right_left').focus();
    }

    showMessage('saving fact ...');
    var f = function() {
        showMessage('fact saved');
    }
    vote(left,relation,right,1,f);
}
function onClick_vote(left,relation,right,up,arrows_id) {
    var s_vote = 'down';
    if (up) {
        s_vote = 'up';
    }
    var span = "<span style='color:white'><b>&uarr;</b></span><b>&darr;</b>";
    if (up) {
        span = "<b>&uarr;</b><span style='color:white'><b>&darr;</b></span>";
    }
    document.getElementById('span_vote_' + arrows_id).innerHTML = span;
    showMessage('saving ' + s_vote + ' vote ...');
    var f = function() {
        showMessage(s_vote + ' vote saved');
    }
    vote(left,relation,right,up,f);
}
function onClick_addFact() {
    var left = document.getElementById('input_left').value;
    var right = document.getElementById('input_right').value;
    var relation = document.getElementById('input_relation').value;
    document.getElementById('input_right').value = '';
    document.getElementById('input_left').value = '';
    document.getElementById('input_relation').value = '';
    var html = '<li><a href="http://www.millipedia.org/' + escape(left) + '">' + cleanHtml(left) + '</a> <i>' + cleanHtml(relation) + '</i> ' + ' <a href="http://www.millipedia.org/' + escape(right) + '">' + cleanHtml(right) + '</a></li>';
    var o = document.createElement('fact');
    o.innerHTML = html;
    var ul = document.getElementById('ul_added');
    ul.insertBefore(o,ul.firstChild);
    o.innerHTML = html;
    document.getElementById('input_left').focus();

    showMessage('saving fact ...');
    var f = function() {
        showMessage('fact saved');
    }
    vote(left,relation,right,1,f);
}

