$(function(){

    async_contact = function(url){
        var jqxhr = $.ajax({url: url,
            type: "POST",
            data: {
                      name: $('#id_name').val(),
                      email: $('#id_email').val(),
                      phone: $('#id_phone').val(),
                      message: $('#id_message').val(),
                      csrfmiddlewaretoken: $('input[name="csrfmiddlewaretoken"]').eq(0).val()
                  },
            dataType:"json",
        })
        return jqxhr;
    }

    $(".btn_enviar").click(function(e){
        e.preventDefault();

        $span = $('#spanContact')
        display_contact_msg = function(success, msg){
            timeout = 2000;
            span_class = (success) ? 'msgEnviada' : 'msgNaoEnviada';
            $span.hide()
                .html(msg)
                .removeClass()
                .addClass(span_class)
                .fadeIn(timeout)
                .delay(timeout/2)
                .fadeOut(timeout);
        }
        
        url = $('#contact_form').attr('action');
        var jqxhr = async_contact(url)
            .done(function(data){
                display_contact_msg(data.success, data.msg);
            })
            .fail(function(){
                var patt1=/en/gi;
                if (url.match(patt1)){
                    msg = 'A problem ocurred and your email could not be sent, try it later.';
                } else{
                    msg = 'Um problema ocorreu e seu email não pôde ser enviado, tente novamente mais tarde.';
                }
                display_contact_msg(false, msg);
            });
    });

});

