$(function() {
	$('textarea[display], input[display]').each(function() {
		$(this).val($(this).attr('display'));
		$(this).focus(function() {
			if($(this).attr('value') == $(this).attr('display')) $(this).val('');
		});
		$(this).blur(function() {
			if($(this).val() == '') $(this).val($(this).attr('display'));
		});
	});
	
	$('.form_monitored').submit(function() {
		var result = true;
		var reqs = $('.form_required');
		var uniqueMessage = $(this).hasClass('unique_message');

		reqs.each(function() {
			var r = $(this);
			if(!oldBorderColor) {
				var oldBorderColor = r.css('border-color');
			}
			var msg;
			
			if(!r.hasClass('form_fck_editor') && !r.val() || r.val() == r.attr('display')) {
				result = result && false;
				msg = 'Campo obrigat&oacute;rio n&atilde;o preenchido';
			} else if(r.hasClass('form_fck_editor')) {
				var fck = CKEDITOR.instances[r.attr('name')];
				fck.on('key', function(e) {
					$('.' + r.attr('name')).slideUp();
				});
				if(!fck.getData()) {
					result = result && false;
					msg = 'Campo obrigat&oacute;rio n&atilde;o preenchido';
				}
			} else if(r.hasClass('form_cpf') && !isCPF(r.val())) {
				result = result && false;
				msg = 'CPF inv&aacute;lido';
			} else if(r.hasClass('form_cnpj') && !isCNPJ(r.val())) {
				result = result && false;
				msg = 'CNPJ inv&aacute;lido';
			} else if(r.hasClass('form_email') && !isEmail(r.val())) {
				result = result && false;
				msg = 'E-mail inv&aacute;lido';
			}  else if(r.hasClass('form_login') && !isLogin(r.val())) {
				result = result && false;
				msg = 'Login Inv&aacute;lido. Digite apenas letras, n&uacute;meros, underline (_) e h&iacute;fen (-)';
			}
			
			if(msg) {
				if(uniqueMessage) {
					r.css('border-color', 'red');
				}
				
				$('.' + r.attr('name')).html(msg).slideDown();
				r.change(function() { hideMsg(r); });
				r.keypress(function() { hideMsg(r); });
			} else {
				if(uniqueMessage) {
					r.css('border-color', oldBorderColor);
				}
				
				$('.' + r.attr('name')).slideUp();
			}
		});
		
		if(!result) {
			if(uniqueMessage) {
				$('.unique_message_error').show();
			}
			
			return false;
		} else {
			$('textarea[display], input[display]').each(function() {
				if($(this).attr('value') == $(this).attr('display')) $(this).val('');
			});
			return true;
		}
	});
});

function hideMsg(r) { if(r.val()) { $('.' + r.attr('name')).slideUp(); }}
function isCPF(a){a=a.replace('.', '').replace('.', '').replace('-', '');if(a.length!=11||a=="00000000000"||a=="11111111111"||a=="22222222222"||a=="33333333333"||a=="44444444444"||a=="55555555555"||a=="66666666666"||a=="77777777777"||a=="88888888888"||a=="99999999999")return false;soma=0;for(i=0;i<9;i++)soma+=parseInt(a.charAt(i))*(10-i);resto=11-(soma%11);if(resto==10||resto==11)resto=0;if(resto!=parseInt(a.charAt(9)))return false;soma=0;for(i=0;i<10;i++)soma+=parseInt(a.charAt(i))*(11-i);resto=11-(soma%11);if(resto==10||resto==11)resto=0;if(resto!=parseInt(a.charAt(10)))return false;return true}
function isCNPJ(c){var b=[6,5,4,3,2,9,8,7,6,5,4,3,2];if((c=c.replace(/[^\d]/g,"").split("")).length!=14)return false;for(var i=0,n=0;i<12;n+=c[i]*b[++i]);if(c[12]!=(((n%=11)<2)?0:11-n))return false;for(var i=0,n=0;i<=12;n+=c[i]*b[i++]);if(c[13]!=(((n%=11)<2)?0:11-n))return false;return true;}
function isEmail(a){f=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;return f.test(a);}
function isLogin(a){f=/^[a-zA-Z][a-zA-Z0-9\_\-]*$/;return f.test(a);}
