var scriptaculousForm = document.forms[0];
var __scriptaculousFormPostData;
var __scriptaculousFormPostCollection;

function InitScriptaculousCallback() {

    // critical in order to get fresh client-side values every time a callback is triggered
    __scriptaculousFormPostData = "";
    __scriptaculousFormPostCollection = new Array();

    var count = scriptaculousForm.elements.length;
    var element;
    for (var i = 0; i < count; i++) {
        element = scriptaculousForm.elements[i];
        var tagName = element.tagName.toLowerCase();
        if (tagName == "input") {
            var type = element.type;
            if ((type == "text" || type == "hidden" || type == "password" ||
                ((type == "checkbox" || type == "radio") && element.checked)) &&
                (element.id != "__EVENTVALIDATION")) {
                InitScriptaculousCallbackAddField(element.name, element.value);
            }
        }
        else if (tagName == "select") {
            var selectCount = element.options.length;
            for (var j = 0; j < selectCount; j++) {
                var selectChild = element.options[j];
                if (selectChild.selected == true) {
                    InitScriptaculousCallbackAddField(element.name, element.value);
                }
            }
        }
        else if (tagName == "textarea") {
            InitScriptaculousCallbackAddField(element.name, element.value);
        }
    }
}
function InitScriptaculousCallbackAddField(name, value) {
    var nameValue = new Object();
    nameValue.name = name;
    nameValue.value = value;
    __scriptaculousFormPostCollection[__scriptaculousFormPostCollection.length] = nameValue;
    __scriptaculousFormPostData += name + "=" + encodeURIComponent(value) + "&";
}