/*======================================================================*\
|| #################################################################### ||
|| # Asirra module for ConfirmEdit by Bachsau                         # ||
|| # ---------------------------------------------------------------- # ||
|| # This code is released into public domain, in the hope that it    # ||
|| # will be useful, but without any warranty.                        # ||
|| # ------------ YOU CAN DO WITH IT WHATEVER YOU LIKE! ------------- # ||
|| #################################################################### ||
\*======================================================================*/

jQuery( function( $ ) {
	// Selectors for create account, login, and page edit forms.
	var asirraform = $( 'form#userlogin2, #userloginForm form, form#editform' );
	var submitButtonClicked = document.createElement("input");
	var passThroughFormSubmit = false;

	function PrepareSubmit() {
		submitButtonClicked.type = "hidden";
		var inputFields = asirraform.find( "input" );
		for (var i=0; i<inputFields.length; i++) {
			if (inputFields[i].type === "submit") {
				inputFields[i].onclick = function(event) {
					submitButtonClicked.name = this.name;
					submitButtonClicked.value = this.value;
				}
			}
		}

		asirraform.submit( function() {
			return MySubmitForm();
		} );
	}

	function MySubmitForm() {
		if (passThroughFormSubmit) {
			return true;
		}
		Asirra_CheckIfHuman(HumanCheckComplete);
		return false;
	}

	function HumanCheckComplete(isHuman) {
		if (!isHuman) {
			window.alert( mediaWiki.msg( 'asirra-failed' ) );
		} else {
			asirraform.append(submitButtonClicked);
			passThroughFormSubmit = true;
			asirraform.submit();
		}
	}

	PrepareSubmit();

} );