function isDate(sDate) {
   var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/
   if (re.test(sDate)) {
      var dArr = sDate.split("/");
      var d = new Date(sDate);
      return d.getMonth() + 1 == dArr[0] && d.getDate() == dArr[1] && d.getFullYear() == dArr[2];
   }
   else {
      return false;
   }
}

function echeck(str) {
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
	   return false
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return false
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false
	}
	if (str.indexOf(at,(lat+1))!=-1){
		return false
	}
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false
	}
	if (str.indexOf(dot,(lat+2))==-1){
		return false
	}
	if (str.indexOf(" ")!=-1){
		return false
	}
	return true
}

function passFieldAfterNumChars(str, size, field) {
	if (str.length==size) field.focus();
}

function checkCadastro(frm, action) {
	var errors = 0;
	var label_color = '#4D4D4D';
	var label_error = 'red';

	if (action=='cadastro') {
		if (frm['cadastro[nome]'].value=="") {
			document.getElementById('nome').style.color=label_error;
			errors++;
		} else document.getElementById('nome').style.color=label_color;
		
		if (frm['cadastro[sobrenome]'].value=="") {
			document.getElementById('sobrenome').style.color=label_error;
			errors++;
		} else document.getElementById('sobrenome').style.color=label_color;
	}
	
	if ((frm['cadastro[email]'].value=="") || (!echeck(frm['cadastro[email]'].value))) {
		document.getElementById('email').style.color=label_error;
		errors++;
	} else document.getElementById('email').style.color=label_color;
	
	if (action=='cadastro') {
		if (frm['cadastro[login]'].value=="") {
			document.getElementById('logincadastro').style.color=label_error;
			errors++;
		} else document.getElementById('logincadastro').style.color=label_color;	
		if ((frm['cadastro[senha]'].value=="") || (frm['cadastro[resenha]'].value=="")) {
			document.getElementById('senha').style.color=label_error;
			document.getElementById('resenha').style.color=label_error;
			errors++;
		} else if ((frm['cadastro[senha]'].value != frm['cadastro[resenha]'].value)) {
			document.getElementById('senha').style.color=label_error;
			document.getElementById('resenha').style.color=label_error;
			errors++;
		} else {
			document.getElementById('senha').style.color=label_color;
			document.getElementById('resenha').style.color=label_color;
		}
	} else {
		if (frm['cadastro[senha]'].value!="") {
			if ((frm['cadastro[senha]'].value != frm['cadastro[resenha]'].value)) {
				document.getElementById('senha').style.color=label_error;
				document.getElementById('resenha').style.color=label_error;
				errors++;
			} else {
				document.getElementById('senha').style.color=label_color;
				document.getElementById('resenha').style.color=label_color;
			}
		}
	}
	
	var date = frm['cadastro[mes]'].value+'/'+frm['cadastro[dia]'].value+'/'+frm['cadastro[ano]'].value;
	if (!isDate(date)) {
		document.getElementById('nascimento').style.color=label_error;
		errors++;
	} else document.getElementById('nascimento').style.color=label_color;
	
	var radio_checked = false;
	for (i=0;i<2;i++) {
		if (frm['cadastro[sexo]'][i].checked==true) radio_checked = true;
	}

	if (!radio_checked) {
		document.getElementById('sexo').style.color=label_error;
		errors++;
	} else document.getElementById('sexo').style.color=label_color;

	if (action=='cadastro') {	
		if (frm['cadastro[idusuario_tipo]'].value=='0') {
			document.getElementById('idusuario_tipo').style.color=label_error;
			errors++;
		} else document.getElementById('idusuario_tipo').style.color=label_color;
	
		if (frm['cadastro[idusuario_relacao]'].value=='0') {
			document.getElementById('idusuario_relacao').style.color=label_error;
			errors++;
		} else document.getElementById('idusuario_relacao').style.color=label_color;
	
		if (frm['cadastro[idpredio]'].value=='0') {
			document.getElementById('idpredio').style.color=label_error;
			errors++;
		} else document.getElementById('idpredio').style.color=label_color;
		
		if (frm['cadastro[idapartamento]'].value=='0') {
			document.getElementById('idapartamento').style.color=label_error;
			errors++;
		} else document.getElementById('idapartamento').style.color=label_color;
	}
	if (errors>0) alert('Por favor, preencha corretamente o(s) campo(s) marcado(s) em vermelho');
	else {
		if (action=='cadastro')
			xajax_sendCadastro(xajax.getFormValues('frmCadastroUsuario'));
		else
			xajax_sendCadastroEdit(xajax.getFormValues('frmCadastroUsuario'));
	}
}
