// Copyright (c) 2008 Carlos Alan P. Alves (carlosalan86@gmail.com)
//
// Plugin Resonsavel pela validação de formulário.
// O mesmo é totalmente free. Foi feito no intuito de ajudar novatos que queiram aprender.
// Peço apenas que não tire a minha autoria.
// Muito Obrigado, Carlos Alan.

jQuery.fn.validacao = function(options) {
    var form = this;
    var settings = {
        elementos_form: 'input[type="text"]'
	};

	if(options) {
		jQuery.extend(settings, options);
	}

    jQuery('button[id="submit"]').click(function() {
        jQuery("#aviso").html('');
        if(form.is('form'))
		{
            var x = 0;
            var ca = "";
            jQuery(settings.elementos_form, form).each(function() {
                var elemento = jQuery(this);
                if(elemento.attr('title'))
                {
                    if(elemento.val() == "")
            		{
            		    if(ca == "")
            		     ca = elemento;
                        ca.focus();
            		    x = (x + 1);
                        if(jQuery('#'+elemento.attr('name')).attr('id') == null)
                            jQuery('<span id="'+elemento.attr('name')+'" class="msgErro">'+elemento.attr('title')+'</span>').insertAfter(elemento);
                        elemento.addClass("erro");
            		}
                }

                jQuery(elemento).keypress(function (e) {
                    var campo = jQuery(this);
                    if(campo.attr('class') == 'erro')
                    {
                        campo.removeClass("erro");
				        jQuery('#'+campo.attr('name')).remove();
                    }
                });
            });

        	if (settings.email)
        	{
    			if(x == 0)
    			{
            		if (jQuery(settings.email).val()) {
                        if ((jQuery(settings.email).val().indexOf("@") == -1) || (jQuery(settings.email).val().indexOf(".") == -1) || (jQuery(settings.email).val().indexOf("@.") != -1) || (jQuery(settings.email).val().indexOf('.') < 5))
                        {
                            x = 1;
                            jQuery(settings.email).focus();
                            jQuery(settings.email).addClass("erro");
                            if(jQuery('#'+jQuery(settings.email).attr('name')).attr('id') == null)
                                jQuery('<span id="'+jQuery(settings.email).attr('name')+'" class="msgErro">Por favor digite seu e-mail corretamente</span>').insertAfter(jQuery(settings.email));

                        }
            		}
    			}
        	}
			
			if(x == 0)
			{
				switch(settings.envio)
				{
					case 'form':
					    jQuery("#aviso").html('Aguarde...');
					    jQuery.ajax({
					        type: "POST",
		                    url: settings.pagina,
		                    data: jQuery("form").serialize(),
		                    success: function(msg) {
		                        jQuery("#aviso").html(jQuery("#aviso").attr('title'));
		                        jQuery(settings.elementos_form, form).each(function() {
		                            var elemento = jQuery(this);
		                            elemento.val('');
		                        });
		                    }
		                })
					break;
				}
			}
		}
	 return false;
    });
};