// JavaScript: Validacao e formatacao dos formularios
// Autora: Andressa K. Pires (Cinte)

function limpaCampo(item, msg) {
	var cmp = item;
	var txt = msg;

	if (cmp.value == txt) {
		cmp.value = "";
	}
}

function preencheCampo(item, msg) {
	var cmp = item;
	var txt = msg;

	if (cmp.value == "") {
		cmp.value = txt;
	}
}

function verifLimp() {
	document.getElementById("nome").value = 'Nome';
	document.getElementById("email").value = 'E-mail';
	document.getElementById("assunto").value = 'Assunto';
	document.getElementById("mensagem").value = 'Mensagem';
}

// -------------------------------- Funcoes para os campos -------------------------------- //
// Separadores
function separadorTexto(item) {
	var texto = item.value;
	var tam = texto.length;
	var temp = '';
	var x = 0;
	for(x=0; x<tam; x++) {
	  if (isNaN(texto.charAt(x)) || (texto.charAt(x) == " "))
		temp = temp + texto.charAt(x);
	}

	return temp;
}

function separadorNumero(item) {
	var textonum = "";
	var texto = item.value;
	var tam = texto.length;
	var x = 0;
	for(x=0; x<tam; x++) {
		if ((!isNaN(texto.charAt(x))) && (texto.charAt(x) != " "))
			textonum = textonum + texto.charAt(x);
	}
	return textonum;
}

function separadorPreco(texto) {
	var textonum = "";
	var tam = texto.length;
	var x;
	for(x = 0; x < tam; x++) {
		if (!isNaN(texto.charAt(x)) || texto.charAt(x) == ",")
		   textonum = textonum + texto.charAt(x);
	}
	return textonum;
}

function separadorPonto(item) {
	var textonum = "";
	var texto = item.value;
	var tam = texto.length;
	var x = 0;
	for(x=0; x<tam; x++) {
		if ((!isNaN(texto.charAt(x))) || (texto.charAt(x) == "."))
			textonum = textonum + texto.charAt(x);
	}
	return textonum;
}

function separadorDigito(texto) {
	var textonum = "";
	var tam = texto.length;
	var x = 0;
	for(x=0; x<tam; x++) {
		if (!isNaN(texto.charAt(x)))
			textonum = textonum + texto.charAt(x);
	}
	return textonum;
}

// Numero
function formataNumero(item) {
	var num = separadorNumero(item);
   	item.value = num;
	return true;
}

// Numero com ponto
function formataNumeroPonto(item) {
	var num = separadorPonto(item);
   	item.value = num;
	return true;
}

// Texto
function formataTexto(item) {
	var num = separadorTexto(item);
   	item.value = num;
	return true;
}

// CPF
function formataCPF(item) {
	var cpf = "";
	var cpfsemsep = separadorNumero(item);
	var x;
	for(x = 0; x < cpfsemsep.length; x++){
		switch(x) {
			case 3 :
			case 6 :
				cpf = cpf + "." + cpfsemsep.charAt(x);
				break;
			case 9 :
				cpf = cpf + "-" + cpfsemsep.charAt(x);
				break
			default :
				cpf = cpf + cpfsemsep.charAt(x);
				break;
		}
	}

	item.value = cpf;
	return true;
}

function verificaCPF(item) {
	var str = item.value;
	var digitos_iguais = 1;
	var erro = "O CPF está inválido!";

	if(str != "") {
		if (str.length < 14) {
			alert(erro);
			item.value = "";
			return false;
		} else {
			if ((str.charAt(3) != ".") || (str.charAt(7) != ".") || (str.charAt(11) != "-")) {
				alert(erro);
				item.value = "";
				return false;
			} else {
				if ((str=="000.000.000-00") || (str=="111.111.111-11") || (str=="222.222.222-22") || (str=="333.333.333-33") || (str=="444.444.444-44") || (str=="555.555.555-55") || (str=="666.666.666-66") || (str=="777.777.777-77") || (str=="888.888.888-88") || (str=="999.999.999-99")) {
					alert(erro);
					item.value = "";
					return false;
			   } else {
					str = separadorDigito(str);
					var numeros = str.substring(0,9);
					var digitos = str.substring(9);
					var soma = 0;
					var i = 0;
					for (i = 10; i > 1; i--)
						soma += numeros.charAt(10 - i) * i;

					var resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
					if (resultado != digitos.charAt(0)) {
						alert(erro);
						item.value = "";
						return false;
					} else {
						numeros = str.substring(0,10);
						soma = 0;
						for (i = 11; i > 1; i--)
							soma += numeros.charAt(11 - i) * i;

						resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
						if (resultado != digitos.charAt(1)) {
							alert(erro);
							item.value = "";
							return false;
						} else
							return true;
					}
				}
			}
		}
	} else
		return true;
}

// CEP
function formataCEP(item) {
	var cep = "";
	var cepsemsep = separadorNumero(item);
	var x = 0;
	for(x = 0; x < cepsemsep.length; x++) {
		switch(x) {
			case 5 :
				cep = cep + "-" + cepsemsep.charAt(x);
				break
			default :
				cep = cep + cepsemsep.charAt(x);
		}
	}

	item.value = cep;
	return true;
}

function verificaCEP(item) {
	var str = item.value;
	var cep1 = new String(str);
	var erro = "O CEP está inválido!";
	if (str != "") {
		if(cep1.length != 9 || cep1.substring(5,6) != "-") {
			alert(erro);
			item.value = "";
			return false;
		} else {
			cep_1 = cep1.substring(0,5);
			cep_2 = cep1.substring(6,9);
			if(isNaN(cep_1) || isNaN(cep_2)) {
				alert(erro);
				item.value = "";
				return false;
			} else
				return true;
		}
	} else
		return true;
}

// Telefone
function formataFone(item) {
	var fone = "";
	var fonesemsep = separadorDigito(item.value);
	var x = 0;
	for (x = 0; x < fonesemsep.length; x++){
		switch(x) {
			case 4 :
				fone = fone + "-" + fonesemsep.charAt(x);
				break
			default :
				fone = fone + fonesemsep.charAt(x);
		}
	}

	item.value = fone;
	return true;
}

function verificaFone(item) {
	var str = item.value;
	var erro = "O número para contato está inválido!";

	if(str != "") {
		parte1 = str.indexOf("-");
		parte2 = str.length;

		if (!((parte1 == 4) && (parte2 == 9))) {
			alert(erro);
			item.value = "";
			return false;
		} else {
			for(x = 0; x < parte2; x++) {
				if (x != 4) {
					if (isNaN(str.substring(x,x+1)) == true) {
						alert(erro);
						item.value = "";
						return false;
					} else
						return true;
				}
			}
		}
	}
	else
		return true;
}

// E-mail
function verificaEmail(item) {
	var email = item.value;
	var erro = "O e-mail deve conter um endereço eletrônico válido!";

	if (email != '') {
		//Expressao Regular utilizada para validar o endereço de email
		var expressaoRegular = /^[a-zA-Z0-9_\.-]{2,}@([A-Za-z0-9_-]{2,}\.)+[A-Za-z]{2,4}$/;
		if ( !expressaoRegular.test(email) ) {
			verAlerta(erro);
			item.value = "";
			return false;
		}
		return true;
	}
}

// Data
function formataData(item) {
	var data = "";
	var datasemsep = separadorDigito(item.value);
	var x = 0;
	for (x = 0; x < datasemsep.length; x++){
		switch(x) {
			case 2 :
			case 4 :
				data = data + "/" + datasemsep.charAt(x);
				break;
			default :
				data = data + datasemsep.charAt(x);
		}
	}

	item.value = data;
	return true;
}

// Data
function verificaData(item) {
	var hoje = new Date();
	var anoAtual = hoje.getFullYear();
	var barras = item.value.split("/");
	var erro = "A data está inválida!";

	if (barras.length == 3) {
		var dia = barras[0];
		var mes = barras[1];
		var ano = barras[2];
		var resultado;
		resultado = (!isNaN(dia) && (dia > 0) && (dia < 32)) && (!isNaN(mes) && (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano.length == 4) && (ano >= (anoAtual-50) && ano < (anoAtual+5)));

		if (!resultado) {
			alert(erro);
			item.value = "";
			return false;
		}
		else {
			if (((ano % 4) == 0) && ((ano % 100) == 0) && ((ano % 400) == 0)) {
				if (mes == 2) {
					if (dia > 29) {
						alert(erro + " O mês de fevereiro não possui mais de 29 dias nesse ano.");
						item.value = "";
						return false;
					}
					else
						return true;
				}
				else
					return true;
			}
			else {
				if ((ano % 100) != 0){
					if ((ano % 4) == 0){
						if (mes == 2) {
							if (dia > 29) {
								alert(erro + " O mês de fevereiro não possui mais de 29 dias.");
								item.value = "";
								return false;
							}
							else
								return true;
						}
						else
							return true;
					}
					else {
						if (mes == 2) {
							if (dia > 28) {
								alert(erro + " O mês de fevereiro não possui mais de 28 dias nesse ano.");
								item.value = "";
								return false;
							}
							else
								return true;
						}
						else
							return true;
					}
				}
				else {
					if (mes == 2) {
						if (dia > 28) {
							alert(erro + " O mês de fevereiro não possui mais de 28 dias nesse ano.");
							item.value = "";
							return false;
						}
						else
							return true;
					}
					else
						return true;
				}
			}
		}
	}
	else {
		if (item.value == "") {
			return true;
		} else {
			alert(erro);
			item.value = "";
			return false;
		}
	}
}

//Nascimento
function verificaNasc(item) {
	var hoje = new Date();
	var anoAtual = hoje.getFullYear();
	var barras = item.value.split("/");
	var erro = "A data de nascimento está inválida!";

	if (barras.length == 3) {
		var dia = barras[0];
		var mes = barras[1];
		var ano = barras[2];
		var resultado = (!isNaN(dia) && (dia > 0) && (dia < 32)) && (!isNaN(mes) && (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano.length == 4) && (ano <= anoAtual && ano >= (anoAtual-100)));
		if (!resultado) {
			alert(erro);
			item.value = "";
			return false;
		} else {
			if (((ano%4)==0) && ((ano%100)==0) && ((ano%400)==0)) {
				if (mes == 2) {
					if (dia > 29) {
						alert(erro + " O mês de fevereiro não possui mais de 29 dias nesse ano.");
						item.value = "";
						return false;
					} else
						return true;
				} else
					return true;
			} else {
				if ((ano%100)!=0){
					if ((ano%4)==0){
						if (mes == 2) {
							if (dia > 29) {
								alert(erro + " O mês de fevereiro não possui mais de 29 dias.");
								item.value = "";
								return false;
							} else
								return true;
						} else
							return true;
					} else {
						if (mes == 2) {
							if (dia > 28) {
								alert(erro + " O mês de fevereiro não possui mais de 28 dias nesse ano.");
								item.value = "";
								return false;
							} else
								return true;
						} else
							return true;
					}
				} else {
					if (mes == 2) {
						if (dia > 28) {
							alert(erro + " O mês de fevereiro não possui mais de 28 dias nesse ano.");
							item.value = "";
							return false;
						} else
							return true;
					} else
						return true;
				}
			}
		}
	} else {
		if (item.value == "") {
			return true;
		} else {
			alert(erro);
			item.value = "";
			return false;
		}
	}
}
// ---------------------------------------------------------------------------------------- //

// Busca
function verifBusca() {
	var bus = $('input[@id=busca]').val();

	if (bus == "Procurar...")
		alert('Informe a palavra chave da busca!');
	else
		$('#formBusca').submit();
}

// Newsletter
function abreNews() {
	var top, esq, alt, lar;

	if (document.all) {
		top = 290;
		esq = 430;
		lar = 389;
		alt = 195;
	} else {
		top = 310;
		esq = 445;
		lar = 389;
		alt = 195;
	}

	window.open("cancela_newsletter.php","","toolbar=no, location=no, directories=yes, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, fullscreen=no, top="+ top +", left="+ esq +", width="+ lar +", height="+ alt +"");
}

function fechaNews() {
	var janela;
	janela = window.close('cancela_newsletter.php');
}

// Cadastro
function verifCad() {
	var nom = $('input[@id=nome]').val();
	/*var nas = $('input[@id=nascimento]').val();
	var cpf = $('input[@id=cpf]').val();
	var rg = $('input[@id=rg]').val();
	var org = $('input[@id=orgao]').val();
	var nat = $('input[@id=naturalidade]').val();
	var uf = $('select[@id=uf_naturalidade]').val();

	var insc = $('input[@id=inscricao]').val();*/

	var end = $('input[@id=endereco]').val();
	var num = $('input[@id=numero]').val();
	var cep = $('input[@id=cep]').val();
	var bai = $('input[@id=bairro]').val();
	var cid = $('input[@id=cidade]').val();
	var est = $('select[@id=estado]').val();
	var ddd = $('input[@id=ddd]').val();
	var tel = $('input[@id=telefone]').val();
	var ema = $('input[@id=email]').val();

	/*var gra = $('input[@id=curso_graduacao]').val();
	var conc = $('input[@id=conclusao]').val();
	var staG = $('select[@id=status_graduacao]').val();
	var inst = $('input[@id=instituicao]').val();

	var are = $('input[@id=area_atuacao]').val();*/

	var cur = $('select[@id=curso]').val();

	if (nom == "")
		alert('Informe o nome!');
	/*else if (nas == "")
			alert('Informe a data de nascimento!');
		else if (cpf == "")
				alert('Informe o cpf!');
			else if (rg == "")
					alert('Informe o registro geral!');
				else if (org == "")
						alert('Informe o orgão e o estado expedidor!');
					else if (nat == "")
							alert('Informe a naturalidade (Cidade)!');
						else if (uf == "")
								alert('Informe o estado de sua naturalidade!');
							else if (insc == "")
									alert('Informe o número de inscrição do conselho profissional!');*/
								else if (end == "")
										alert('Informe o endereço!');
									else if (num == "")
											alert('Informe o número!');
										else if (cep == "")
												alert('Informe o cep!');
											else if (bai == "")
													alert('Informe o bairro!');
												else if (cid == "")
														alert('Informe a cidade!');
													else if (est == "")
															alert('Informe o estado!');
														else if (ddd == "")
																alert('Informe o ddd!');
															else if (tel == "")
																	alert('Informe o telefone!');
																else if (ema == "")
																		alert('Informe o e-mail!');
																	/*else if (gra == "")
																			alert('Informe o curso de graduação!');
																		else if (conc == "")
																				alert('Informe a data de conclusão do curso!');
																			else if (staG == "")
																					alert('Escolha o status do curso!');
																				else if (inst == "")
																						alert('Informe o nome da instituição!');
																					else if (are == "")
																							alert('Informe a área de atuação!');*/
																						else if (cur == "")
																								alert('Escolha o curso que deseja ingressar aqui na CAFRN!');
																							else {
							
																								/*n = document.getElementById("nascimento");
																								c = document.getElementById("cpf");*/
																								e = document.getElementById("email");
																								t = document.getElementById("telefone");
																								/*if ((verificaNasc(n) != false) && (verificaCPF(c) != false) && (verificaEmail(e) != false) && (verificaFone(t) != false)) {*/
																								if ((verificaEmail(e) != false) && (verificaFone(t) != false)) {
																									$('#formCadastro').submit();
																								}
																							}
}

// Contato
function verifContato() {
	var nom = $('input[@id=nome]').val();
	var ema = $('input[@id=email]').val();
	var ass = $('input[@id=assunto]').val();
	var men = $('textarea[@id=mensagem]').val();

	if (nom == "Nome" || ema == "E-mail")
		alert('Informe os seus dados!');
	else if (ass == "Assunto" || men == "Mensagem")
			alert('Informe o assunto e a mensagem!');
		else {
			e = document.getElementById("email");

			if (verificaEmail(e) != false) {
				$('#formContato').submit();
			}
		}
}
