(function($) {
    $.fn.newsletter = function(options) {
        var defaults = {
            errorClass: "error"
        };
        var o = jQuery.extend(defaults, options);
        
        return this.each(function() {

            var form = $(this);
            if(!form.is ("form")) return;
            
            //$('div.errorTopCorreoJs').css('visibility','hidden');
            
            $('button#btnsend').click(function() {
                var errorFlag = false;
                form.find("input").each(function(index, element) {
                    
                    e = $(element);
                    //alert(e.val());
                    e.removeClass(o.errorClass);
                    
                    if(e.hasClass("required") && e.val() == '') {
                        errorFlag = true;
                        e.addClass(o.errorClass);
                    }
                    if(e.hasClass("nombre") && e.val() == 'nombre') {
                        errorFlag = true;
                        e.addClass(o.errorClass);
                    }
                    if(e.hasClass("empresa") && e.val() == 'empresa') {
                        errorFlag = true;
                        e.addClass(o.errorClass);
                    }
                    if(e.hasClass("correo") && e.val() == 'e-mail') {
                        errorFlag = true;
                        e.addClass(o.errorClass);
                    }
                    if(e.hasClass("email") && !/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/.test(e.val()) && e.val().length > 0) {
                        errorFlag = true;
                        e.addClass(o.errorClass);
                    }
                    if(e.hasClass("numbers") && !/^\d+$/.test(e.val()) && e.val().length > 0) {
                        errorFlag = true;
                        e.addClass (o.errorClass);
                    }
                    var p = this.className.match(/min(\d+)/i);
                    if (p && e.val().length < p[1] ) {
                        errorFlag = true;
                        e.addClass (o.errorClass);
                    }
                    var p = this.className.match(/max(\d+)/i);
                    if (p && e.val().length > p[1] ) {
                        errorFlag = true;
                        e.addClass (o.errorClass);
                    }
                    var q = this.className.match(/exact(\d+)/i);
                    if (q && e.val().length != q[1] ) {
                        errorFlag = true;
                        e.addClass (o.errorClass);
                    }
                });
                if(errorFlag){
                    alert('The e-mail is not valid');
                }else{

                    $.ajax({
                            type: "POST",
                            url: "/index/newsletter?action=newslet",
                            data: "correo="+$('input#newsletter').val(),
                            dataType: "json",
                            success: function(msg){

                                    if(msg == true){
                                              alert('We have received your request. Thank You.');
                                              $('input#newsletter').val('Thank You').css('color','#666');
                                              
                                    }
                                    else{
                                              alert("There's been an error. Please try again.");
                                              $('input#newsletter').val('e-mail error').css('color','#666');
                                    }
                                    
                            }
                    });
                }
            });


        });
    };
})(jQuery)
