﻿function fixEktronValidators() {
    $$("input.backend_submit").each(function(el) {
        el.onclick = function() {
            if (EkFmValidate(this._form)) {

                if (showRecaptcha == "True") {

                    challengeField = $F("recaptcha_challenge_field");
                    responseField = $F("recaptcha_response_field");

                    var recaptchaResult = new Ajax.Request("/ajax.recaptcha.aspx", {
                        method: "POST",
                        parameters: "recaptcha_challenge_field=" + challengeField + "&recaptcha_response_field=" + responseField,
                        asynchronous: false
                    }).transport.responseText;

                    if (recaptchaResult == "True") {
                        raiseFlagSubmitted();
                        return true;
                    }
                    else {
                        //Sets the error message
                        if (typeof Recaptcha.old_finish_reload === 'undefined') {
                            Recaptcha.old_finish_reload = Recaptcha.finish_reload;
                            Recaptcha.finish_reload = function(a, b, c, d) {
                                Recaptcha.old_finish_reload(a, b, c, d);
                                $('recaptcha_widget_div').removeClassName('recaptcha_nothad_incorrect_sol');
                                $('recaptcha_widget_div').addClassName('recaptcha_had_incorrect_sol');
                            };
                        }

                        Recaptcha.reload();
                        return false;
                    }
                }

                raiseFlagSubmitted();
                return true;
            }
            return false;
        };
    });
}

function raiseFlagSubmitted() {
    var hiddenSubmittedFlag = $$("input.backend_hiddenSubmittedFlag");
    if (hiddenSubmittedFlag.length > 0) {
        hiddenSubmittedFlag[0].value = "true";
    }
}


document.observe("dom:loaded", function() {
        fixEktronValidators(); // Corrects issue with ektron generated call to validate fields
}); 