function voteError(request)
{
    alert('Unable to record your vote.');
}

function vote(id) {
    var url = '/cgi-bin/vote.cgi';
    var params = 'id='+id;

    var a = new Ajax.Updater(
        { success: 'vote_'+id },
        url,
        { method: 'post',
          parameters: params,
          onFailure: voteError
        });
}

function getVotes(transport) {
    var jsonRaw = transport.responseText;
    var ids_to_update = eval('(' + jsonRaw + ')');

    for (var i = 0; i < ids_to_update.length; i++) {
        var el = document.getElementById('vr_'+ids_to_update[i]);
        if (el) {
            el.innerHTML = '&nbsp;';
        }
    }
}

function checkVotes() {
    var form = document.getElementById('saform');
    var req = '';

    for (var i = 0; i < form.childNodes.length; i++) {
        var div = form.childNodes[i];
        if (div.className == 's_article') {
            if (req.length == 0) {
                req = req + '[';
            }
            else {
                req = req + ',';
            }
            for (var j = 0; j < div.childNodes.length; j++) {
                var el = div.childNodes[j];
                if (el.className == 's_requests') {
                    var id = div.childNodes[1].id;
                    if (id) {
                        req = req + id.split('_')[1];
                    }
                }
            }
        }
    }
    req = req + ']';

    var url = '/cgi-bin/get_voted.cgi';
    var params = 'idlist='+req;
    new Ajax.Request(url, {
        method: 'post',
        parameters: params,
        onSuccess: getVotes
    });
}

function member_post(cmd, article)
{
    if (document.getElementById) {
        var frm = document.getElementById('member_post_form');
        if (frm && frm.cmd && frm.article_id && frm.submit) {
            frm.cmd.name = cmd;
            frm.article_id.value = article;
            frm.submit();
        }
    }
    return false;
}

function getSubCategories(transport)
{
    var jsonRaw = transport.responseText;
    var subcats = eval('(' + jsonRaw + ')');

    var sub = document.forms[1].sub_category;
    sub.options.length = 0;
    sub.options[0] = new Option('* Use main category *', 0);
    for (var i = 0; i < subcats.length; i++) {
        var cat = subcats[i];
        sub.options[i+1] = new Option(cat.name, cat.id);
    }
    sub.disabled = false;
}

function populateSubCategories(sel)
{
    if (!sel) return;

    var sub = document.javaform.sub_category;
    if (sub)
        sub.disabled = true;
    new Ajax.Request('/cgi-bin/sub_category.cgi', {
        method: 'post', parameters: 'id=' + sel.value, onComplete: getSubCategories });
}

function getSubCategoryDirs(transport)
{
    var jsonRaw = transport.responseText;
    var subcats = eval('(' + jsonRaw + ')');

    var sub = document.javaform.sub_category;
    
    sub.options.length = 0;
    for (var i = 0; i < subcats.length; i++) {
        var cat = subcats[i];
        sub.options[i] = new Option(cat.name, cat.dir);
    }
    sub.disabled = false;
    SetFileName();
}

function populateSubCategoryDirs(sel)
{
    if (!sel) return;

    var sub = document.javaform.sub_category;
    if (sub)
        sub.disabled = true;
    new Ajax.Request('/cgi-bin/sub_category_dirs.cgi', {
        method: 'post', parameters: 'id=' + sel.value, onComplete: getSubCategoryDirs });
}

