function isEmpty(str){
	var l;
	var i;
	var c;
	if((str==null)||(str=='null')||(str=="")) return true;
	else{
		//verifica se os caracteres nao sao apenas espacos em branco
		l = str.length;
		c = 0;
		for(i=0;i<l;i++){
			if(str.charAt(i)==" ") c++;
		}
		if(c==l) return true;
	}
	return false;
}

function removeSeparator(str){
	var l;
	var i;
	var str2;
	if((str==null)||(str=='null')||(str=="")) return str;
	else{
		//substitui qualquer ; por ,
		l = str.length;
		str2 = '';
		for(i=0;i<l;i++){
			if(str.charAt(i)==";") str2 = str2 + ",";
			else str2 = str2 + str.charAt(i);
		}
		return str2;
	}
}

function isDate(s){
	var d;
	var m;
	var y;
	s = s.replace(/\D/g,""); //remove todos os caracteres que nao forem digitos
	if(s.length!=8) return false; //verifica se existem 8 digitos
	//separa o dia, mes e ano
	d = parseInt(s.substring(0,2), 10);
	m = parseInt(s.substring(2,4), 10);
	y = parseInt(s.substring(4), 10);	
	if((m<1)||(m>12)) return false; //verifica a validade do mes
	if(y==0) return false; //verifica a validade do ano
	//verifica a validade do dia
	if((d<1)||(d>31)) return false;
	if((d>30)&&((m==4)||(m==6)||(m==9)||(m==11))) return false; //verifica os meses que tem 30 dias
	if((d>29)&&(m==2)) return false; //verifica o mes de fevereiro
	if(!((y%4==0)&&((!(y%100==0))||(y%400==0)))&&(d>28)&&(m==2)) return false; //verifica o mes de fevereiro para os anos bissextos
	return true;
}

function dateMask(frmField){
	frmField.value = frmField.value.replace(/\D/g,"");				//Remove tudo o que nao eh digito
	frmField.value = frmField.value.replace(/(\d{2})(\d)/,"$1/$2");	//Coloca a / entre o segundo e terceiro digito
	frmField.value = frmField.value.replace(/(\d{2})(\d)/,"$1/$2");	//Coloca a / entre o quinto e sexto digito
}

function numberMask(frmField){
	frmField.value = frmField.value.replace(/\D/g,"");				//Remove tudo o que nao eh digito
}

function cepMask(frmField){
	frmField.value = frmField.value.replace(/\D/g,"");				//Remove tudo o que nao eh digito
	frmField.value = frmField.value.replace(/(\d{5})(\d)/,"$1-$2");	//Coloca o - entre o quinto e sexto digito
}

function phoneMask(frmField){
	frmField.value = frmField.value.replace(/\D/g,"");				//Remove tudo o que nao eh digito
	frmField.value = frmField.value.replace(/(\d{0})(\d)/,"$1($2");	//Coloca o ( antes do primeiro digito
	frmField.value = frmField.value.replace(/(\d{2})(\d)/,"$1)$2");	//Coloca o ) entre o segundo e terceiro digito
	frmField.value = frmField.value.replace(/(\d{4})(\d)/,"$1-$2");	//Coloca o - entre o quinto e sexto digito
}

function cpfMask(frmField){
	frmField.value = frmField.value.replace(/\D/g,"");				//Remove tudo o que nao eh digito
	frmField.value = frmField.value.replace(/(\d{3})(\d)/,"$1.$2");	//Coloca o . depois do terceiro digito
	frmField.value = frmField.value.replace(/(\d{3})(\d)/,"$1.$2");	//Coloca o . entre o sexto e setimo digito
	frmField.value = frmField.value.replace(/(\d{3})(\d)/,"$1-$2");	//Coloca o - entre o nono e decimo digito
}

function isCpf(str){
	var POSICAO, I, SOMA, DV, DV_INFORMADO;
	var DIGITO = new Array(10);
	
	if(isEmpty(str)) return false;
	
	//remove tudo o que nao eh digito
	str = str.replace(/\D/g,"");

	// Aqui começa a checagem do CPF
	DV_INFORMADO = str.substr(9, 2); // Retira os dois últimos dígitos do número informado
	// Desemembra o número do CPF na array DIGITO
	for (I=0; I<=8; I++) {
  		DIGITO[I] = str.substr( I, 1);
	}
	// Calcula o valor do 10º dígito da verificação
	POSICAO = 10;
	SOMA = 0;
   	for (I=0; I<=8; I++) {
    	SOMA = SOMA + DIGITO[I] * POSICAO;
      	POSICAO = POSICAO - 1;
   	}
	DIGITO[9] = SOMA % 11;
   	if (DIGITO[9] < 2) {
    	DIGITO[9] = 0;
	}
   	else DIGITO[9] = 11 - DIGITO[9];
	// Calcula o valor do 11º dígito da verificação
	POSICAO = 11;
	SOMA = 0;
   	for (I=0; I<=9; I++) {
    	SOMA = SOMA + DIGITO[I] * POSICAO;
    	POSICAO = POSICAO - 1;
   	}
	DIGITO[10] = SOMA % 11;
   	if (DIGITO[10] < 2) {
   		DIGITO[10] = 0;
   	}
   	else DIGITO[10] = 11 - DIGITO[10];
	// Verifica se os valores dos dígitos verificadores conferem
	DV = DIGITO[9] * 10 + DIGITO[10];
  	if (DV != DV_INFORMADO) return false;
  	return true;
}

function validate(frm){
	var ok = true;
	
	if(isEmpty(frm.nome.value) && ok){
		alert('O campo nome é obrigatório.');
	 	frm.nome.focus();
	 	ok = false;
	}
	if((isEmpty(frm.dataNascimento.value)||(!isDate(frm.dataNascimento.value))) && ok){
		alert('O campo data de nascimento é obrigatório.');
	 	frm.dataNascimento.focus();
	 	ok = false;
	}
	if(isEmpty(frm.rg.value) && ok){
		alert('O campo rg é obrigatório.');
	 	frm.rg.focus();
	 	ok = false;
	}	
	if(isEmpty(frm.rgExpedicao.value) && ok){
		alert('O campo rg é obrigatório.');
	 	frm.rgExpedicao.focus();
	 	ok = false;
	}	
	if((!isCpf(frm.cpf.value)) && ok){
		alert('O campo cpf é obrigatório.');
	 	frm.cpf.focus();
	 	ok = false;
	}
	if(isEmpty(frm.endereco.value) && ok){
		alert('O campo endereço é obrigatório.');
	 	frm.endereco.focus();
	 	ok = false;
	}	
	if(isEmpty(frm.bairro.value) && ok){
		alert('O campo bairro é obrigatório.');
	 	frm.bairro.focus();
	 	ok = false;
	}	
	if(isEmpty(frm.cidade.value) && ok){
		alert('O campo cidade é obrigatório.');
	 	frm.cidade.focus();
	 	ok = false;
	}
	if(isEmpty(frm.estado.value) && ok){
		alert('O campo estado é obrigatório.');
	 	frm.estado.focus();
	 	ok = false;
	}		
	if(isEmpty(frm.cep.value) && ok){
		alert('O campo cep é obrigatório.');
	 	frm.cep.focus();
	 	ok = false;
	}
	if(isEmpty(frm.telefoneResidencial.value) && ok){
		alert('O campo telefone residencial é obrigatório.');
	 	frm.telefoneResidencial.focus();
	 	ok = false;
	}
	if(isEmpty(frm.contatoResidencial.value) && ok){
		alert('O campo contato residencial é obrigatório.');
	 	frm.contatoResidencial.focus();
	 	ok = false;
	}
	if(isEmpty(frm.telefoneCelular.value) && ok){
		alert('O campo telefone celular é obrigatório.');
	 	frm.telefoneCelular.focus();
	 	ok = false;
	}
	if(isEmpty(frm.contatoCelular.value) && ok){
		alert('O campo contato celular é obrigatório.');
	 	frm.contatoCelular.focus();
	 	ok = false;
	}	
	if(isEmpty(frm.email.value) && ok){
		alert('O campo e-mail é obrigatório.');
	 	frm.email.focus();
	 	ok = false;
	}
	if(isEmpty(frm.situacaoMedio.value) && ok){
		alert('O campo situação do ensino médio é obrigatório.');
	 	frm.situacaoMedio.focus();
	 	ok = false;
	}
	if(isEmpty(frm.codCurso.value) && ok){
		alert('O campo curso é obrigatório.');
	 	frm.codCurso.focus();
	 	ok = false;
	}
	if(ok) frm.submit();
}
