
(function($){
    $.fn.validateField = function(opt){
	
		var defaults = {  
			load	: '.loading',  
			erro	: '.error',  
			sucesso	: '.sucess',  
			url		: 'inc/action/enviar.php'
		};  
			var opt = $.extend(defaults, opt);	
        return this.each(function(){
			var form 		= '#'+this.id;
			var spanLoad 	= opt.load.replace(/[^a-zA-Z]+/g,'');
			var load		= ' '+opt.load;
			var spanErro 	= opt.erro.replace(/[^a-zA-Z]+/g,'');
			var erro		= ' '+opt.erro;
			var spanSucess 	= opt.sucesso.replace(/[^a-zA-Z]+/g,'');
			var sucesso		= ' '+opt.sucesso;
			var error		= ' #error';
			var msgError	= '<img src="img/icon-error.png" alt="" /><strong>Erro:</strong> Parece que alguns dos campos não foram preenchidos corretamentes ! Favor verifique-as.';
			var submit		= ' input[type="submit"]';
			$(form + ' #error').hide();
            $(form).submit(function(){
				$(form + sucesso).hide();
				$(form + erro).animate({opacity: 'hide', height: 'hide'}, 'normal');
				$(form + ' textarea, ' +form+ ' select, ' +form+ ' input').css('border-color', '');
				$.ajax({
					type: 		'POST',    
					url: 		opt.url,  
					data: 		$(this).serialize(),
					dataType : 	'json',	
					beforeSend: function () {
						$(form + ' <span class="'+spanLoad+'"></span>').insertAfter(form + submit).hide().fadeIn(1000);	
						$(form + submit).attr('disabled', 'disabled');
						$(form + submit).css({ opacity: 0.5 });
					},
					complete: function(){
						$(form + load).fadeOut('slow');
						$(form + submit).removeAttr('disabled');
						$(form + submit).css({ opacity: 1 });
					},		
					success: function(json){ 							
						$.each(json.rs, function(i,data){ 	
							if(data.status == 'erro')
							{	
								$(form + sucesso).fadeOut(1000);								
								$(form + ' <span class="'+spanErro+'">'+data.msg+'</span>').insertAfter(form + ' #'+data.id).hide().animate({height: 'toggle', opacity: 'toggle'}, 'normal');
								$(form + error).html(msgError).show();
								$(form + ' #'+data.id).css('border-color', '#FF0000');
							}
							else if(data.status == 'sucesso')
							{	
								if(data.redirect == undefined || data.redirect == ''){
									$(form + load).hide();
									$(form + erro).animate({opacity: 'hide', height: 'hide'}, 'slow');	
									$(form + sucesso).html(data.msg).hide().fadeIn(1000);
									$(form + sucesso).animate({opacity: 1.0}, 3000).fadeOut(1000);
									$(form)[0].reset();		
								}else{
									$(form + load).hide();
									$(form + erro).animate({opacity: 'hide', height: 'hide'}, 'slow');	
									$(form + sucesso).html(data.msg).hide().fadeIn(1000);
									$(form)[0].reset();	
									setTimeout(function(){window.location.href = data.redirect;}, 3000);							
								}							
							}			
						});	
					}             
				});
				return false; 		
			});
        });
    };
})(jQuery);
