All pastes #656100 Raw Edit

Miscellany

public text v1 · immutable
#656100 ·published 2007-08-13 20:52 UTC
rendered paste body
function submit_comment() {
    if ($('id_question') && $('id_question').value !=$('id_answer').value) {
        alert("Sorry, you answered the question incorrectly.");
        return false;
    }
    for (var e=this.parentNode;e.tagName!='FORM';e=e.parentNode) {}
    var form_contents = formContents(e);
    var content=queryString(form_contents[0], form_contents[1]);
    var d = doXHR("/comments/post/?xhr", {  method: "POST",
                                            mimeType : 'application/x-www-form-urlencoded',
                                            sendContent : content,
                                            headers : { 'Content-Type' :
                                                        'application/x-www-form-urlencoded'}
                        });
    var gotData = function (xhr) {
        var z;
        var data = evalJSONRequest(xhr);
        if (data['errors']) {
            new_errors = DIV({'id':'errors'}, null);
            for (k in data['errors']) {
                appendChildNodes(new_errors, P(null, 'Error in '+k+': '+data['errors'][k]));
            }
            swapDOM($('errors'), new_errors);
            return;
        }
        var toggle = false;
        tbody=TBODY(null, null);
        for (var i=0;i<data.length;i++) {
z = TR( {'class': (toggle ? 'odd':'even')}, TH({'valign':'top'}, data[i]['username']+' said:'), TD(null, data[i]['text']));
            appendChildNodes(tbody, z);
            toggle = !toggle;
        }
        var newTable = TABLE({'cellpadding':"0", 'cellspacing':"0", 'class':"comments", 'id':"comments-list"}, tbody);
        swapDOM($('comments-list'), newTable);
    };
    var dataFetchFailed = function (err) {
        alert("ajax error");
    };
    d.addCallbacks(gotData, dataFetchFailed);
    return false;
}

function setup_comments() {
    var submit_buttons = $$('input.submit');
    for (var i=0;i<submit_buttons.length;i++) {
        submit_buttons[i].onclick=submit_comment;
    }
}
addLoadEvent(setup_comments);