// 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;
	}
}

// -------------------------------- Funcoes para os campos -------------------------------- //
// Separadores
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;
}

// 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 verifEmail(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;
}

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));

		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;	
		}
	}
}
// ---------------------------------------------------------------------------------------- //

// Newsletter
function abreNews() {
	var top, esq, alt, lar;

	if (document.all) {
		top = 290;
		esq = 430;
		lar = 384;
		alt = 200;
	} else {
		top = 310;
		esq = 445;
		lar = 384;
		alt = 200;
	}

	window.open("cancela_informativo.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_informativo.php');
}

// Agendamento
function verifAgenda() {
	var nom = $('input[@id=nome_agenda]').val();
	var tel = $('input[@id=telefone]').val();
	var ema = $('input[@id=email]').val();
	var dat = $('input[@id=data]').val();
	var hor = $('input[@id=horario]').val();
	var men = $('textarea[@id=mensagem]').val();

	if (nom == "" || tel == "" || ema == "")
		alert('Informe os seus dados!');
	else if (dat == "" || hor == "")
			alert('Informe a data e a hora que deseja ser atendido!');
		else if (men == "")
				alert('Informe o tipo de serviço!');
			else {
				e = document.getElementById("email");
				d = document.getElementById("data");

				if ((verifEmail(e) != false) && (verificaData(d) != false)) {
					$('#formAgenda').submit();
				}
			}
}

// Contato
function verifContato() {
	var nom = $('input[@id=nome_contato]').val();
	var ema = $('input[@id=email]').val();
	var ass = $('input[@id=assunto]').val();
	var men = $('textarea[@id=mensagem]').val();

	if (nom == "" || ema == "")
		alert('Informe os seus dados!');
	else if (ass == "" || men == "")
			alert('Informe o assunto e a mensagem!');
		else {
			e = document.getElementById("email");

			if (verifEmail(e) != false) {
				$('#formContato').submit();
			}
		}
}
