$(document).ready(function () {
    $("#btnContacto").click(function(){
        validarForm();
    });
});

function validarForm(){
    $("#errorContainer").html("");
    $("#contacto-formulario").find(".has-error").removeClass("has-error");
    try{
        validateEmpty($("#tbxNombre"));
        validateEmpty($("#tbxMail"));
        validateMail($("#tbxMail"));
        validateEmpty($("#tbxFono"));
        validateEmpty($("#tbxRut"));
        validateRUT($("#tbxRut"));
        validateSelect($("#selAsunto"));
        validateEmpty($("#tbxMensaje"));
        
    }catch(e){
        e.input.focus().closest(".form-group").addClass("has-error");
        var $error = $("<div class='alert alert-danger collapse' role='alert'><i class='fa fa-exclamation-triangle'></i> "+e.message+"</div>");
        $("#errorContainer").append($error); 
        $error.fadeIn(500);
        return false;
    }
    
    $.ajax({
        url: "mailer.php",
        method:"POST",
        data: {nombre:$("#tbxNombre").val(),rut:$("#tbxRut").val(),
        fono:$("#tbxFono").val()
        ,asunto:$("#selAsunto option:selected").text()
        ,mail:$("#tbxMail").val()
        ,mensaje:$("#tbxMensaje").val()}
    });
    
    
    $("#tbxNombre").val("");
    $("#tbxMail").val("");
    $("#tbxFono").val("");
    $("#tbxRut").val("");
    $("#tbxMensaje").val("");
    $("#selAsunto").val("0");
    var $mensaje = $("<div class='alert alert-success collapse' role='alert'><i class='fa fa-circle'></i> El mensaje fue enviado correctamente.</div>");
        $("#errorContainer").append($mensaje); 
        $mensaje.fadeIn(500);
}


function validateEmpty($input) {
    $input.val($.trim($input.val()));
    if ("" === $input.val()) {
        throw {input: $input, message: "El campo '" + $input.attr("placeholder") + "' no puede estar vacío."};
    }
}
function validateSelect($input) {
    if ($input.val() === "0") {
        throw {input: $input, message: "Debe seleccionar un item del listado 'Asunto'."};
    }
}
function validateMail($input) {
    $input.val($.trim($input.val()));
    var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
    if (!pattern.test($input.val())) {
        throw {input: $input, message: "La dirección de correo ingresada en el campo '" + $input.attr("placeholder") + "' es incorrecto."};
    }
}
function validateRUT($input){
    if(!ValidarRut($input.val())){
            throw {input : $input,message : "El RUT ingresado es incorrecto."};
        }
}