
function sendAjax(button) {
    // Formulario
    var f = button.form;

    // Dirección de envío
    var url = (f.action) ? f.action : 'form.sendAjax';

    // Deshabilitar el botón
    var caption = button.value;
	button.disabled = true;
	button.value = 'Espere por favor...';

	// Enviar
	new Ajax.Request(url, {
        method : 'POST',
		parameters: $(f.id).serialize(true),

		onSuccess: function(transport){
		    if(transport.responseText.isJSON()) {
                var resp = transport.responseText.evalJSON();
                if(Object.isArray(resp.messages)) {     // Array vacío - Ningún mensaje
                    alert('El formulario se ha enviado correctamente. Muchas gracias.');
                    f.reset();
                } else {
    				var errores = [];
    				$H(resp.messages).each(function (pair) {
    				    errores.push('  - ' + pair.value.title + ' - ' + pair.value.description);
    				});
    				alert('Por favor, compruebe los siguientes datos:\n\n' + errores.join('\n'));
                }
		    } else {
                alert('Ha habido un error al enviar el formulario, por favor inténtelo de nuevo');
		    }

			button.disabled = false;
			button.value = caption;
		},

		onFailure: function(){
			alert('Ha habido un error al enviar el formulario, por favor inténtelo de nuevo');
			button.disabled = false;
			button.value = caption;
		}
	});

	// Cancelar el submit
	return false;
}

