// 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 verifEmail(item) {
	var str = item.value;

	if (str != "") {
		parte1 = str.indexOf("@");
		parte2 = str.indexOf(".");
		parte3 = str.length;
		if (!(parte1 >= 3 && parte2 >= 6 && parte3 >= 9)) {
			alert('O e-mail deve conter um endereco eletronico valido!');
			return false;
		}
		else {
			var carater = new Array();
			carater[0] = "."; carater[1] = "@"; carater[2] = "_"; carater[3] = "-"; carater[4] = "a"; carater[5] = "b";
			carater[6] = "c"; carater[7] = "d"; carater[8] = "e"; carater[9] = "f"; carater[10] = "g"; carater[11] = "h"; 
			carater[12] = "i"; carater[13] = "j"; carater[14] = "k"; carater[15] = "l"; carater[16] = "m"; carater[17] = "n"; 
			carater[18] = "o"; carater[19] = "p"; carater[20] = "q"; carater[21] = "r"; carater[22] = "s"; carater[23] = "t"; 
			carater[24] = "u"; carater[25] = "v"; carater[26] = "x"; carater[27] = "w"; carater[28] = "y"; carater[29] = "z"; 
			carater[30] = "A"; carater[31] = "B"; carater[32] = "C"; carater[33] = "D"; carater[34] = "E"; carater[35] = "F"; 
			carater[36] = "G"; carater[37] = "H"; carater[38] = "I"; carater[39] = "J"; carater[40] = "K"; carater[41] = "L"; 
			carater[42] = "M"; carater[43] = "N"; carater[44] = "O"; carater[45] = "P"; carater[46] = "Q"; carater[47] = "R"; 
			carater[48] = "S"; carater[49] = "T"; carater[50] = "U"; carater[51] = "V"; carater[52] = "X"; carater[53] = "W"; 
			carater[54] = "Y"; carater[55] = "Z"; carater[56] = "0"; carater[57] = "1"; carater[58] = "2"; carater[59] = "3";
			carater[60] = "4"; carater[61] = "5"; carater[62] = "6"; carater[63] = "7"; carater[64] = "8"; carater[65] = "9";
			
			for (x=0; x<parte3; x++) {
				cont = 0;
				for (y=0; y<=65; y++) {
					if (item.value.charAt(x) != carater[y])
						cont++;
				}
				if (cont != 65)
					break;
			}
			
			if (cont != 65) {
				alert('O e-mail deve conter um endereco eletronico valido!');
				return false;
			}
			else
				return true;
		}
	}
	else
		return true;
}

function retiraseparador(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;
}

function formataNum(item) {
	var num = retiraseparador(item.value);
	item.value = num;
	return true;
}

function formataData(item) {
	var data = "";
	var datasemsep = retiraseparador(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("/");
	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+1) && ano >= 1900));

		if (!resultado) {
			alert("A data para reserva esta invalida!");
			item.value="";
			item.focus();
			return false;
		}
		else {
			if (((ano%4)==0) && ((ano%100)==0) && ((ano%400)==0)) {
				if (mes == 2) {
					if (dia > 29) {
						alert("A data para reserva esta invalida! O mes de fevereiro nao possui mais de 29 dias nesse ano.");
						item.value="";
						item.focus();
						return false;
					}
					else
						return true;
				}
				else
					return true;
			}
			else {
				if ((ano%100)!=0){
					if ((ano%4)==0){
						if (mes == 2) {
							if (dia > 29) {
								alert("A data para reserva esta invalida! O mes de fevereiro nao possui mais de 29 dias.");
								item.value="";
								item.focus();
								return false;
							}
							else
								return true;
						}
						else
							return true;
					}
					else {
						if (mes == 2) {
							if (dia > 28) {
								alert("A data para reserva esta invalida! O mes de fevereiro nao possui mais de 28 dias nesse ano.");
								item.value="";
								item.focus();
								return false;
							}
							else
								return true;
						}
						else
							return true;
					}
				}
				else {
					if (mes == 2) {
						if (dia > 28) {
							alert("A data para reserva esta invalida! O mes de fevereiro nao possui mais de 28 dias nesse ano.");
							item.value="";
							item.focus();
							return false;
						}
						else
							return true;
					}
					else
						return true;
				}
			}
		}
	}
	else {
		if (item.value == "") {
			return true;
		} else {
			alert("A data para reserva esta invalida!");
			item.value="";
			item.focus();
			return false;	
		}
	}
}

// Contato
function verifContato() {
	var nom = $('input[@id=nome_contato]').val();
	var ema = $('input[@id=email_contato]').val();
	var men = $('textarea[@id=mensagem_contato]').val();

	if (nom == "" || ema == "")
		alert('Contato: Informe os seus dados!');
	else if (men == "")
			alert('Contato: Informe a mensagem!');
		else {
			e = document.getElementById("email_contato");

			if (verifEmail(e) != false) {
				$('#form_contato').submit();
			}
		}
}

// Reserva
function verifReserva() {
	var nom = $('input[@id=nome]').val();
	var cid = $('input[@id=cidade]').val();
	var ddd = $('input[@id=ddd]').val();
	var tel = $('input[@id=telefone]').val();
	var ema = $('input[@id=email]').val();
	var aps = $('input[@id=quant_aps]').val();
	var adu = $('input[@id=n_adultos]').val();
	var cri = $('input[@id=n_criancas]').val();
	var ida = $('input[@id=idade]').val();
	var de = $('input[@id=periodo_de]').val();
	var ate = $('input[@id=periodo_ate]').val();

	var cAr = document.getElementById("tipo_de_ap1").checked;
	var sAr = document.getElementById("tipo_de_ap2").checked;

	var men = $('textarea[@id=mensagem_reserva]').val();

	if (nom == "" || cid == "" || ddd == "" || tel == "" || ema == "")
		alert('Reserva: Informe os seus dados!');
	else if (aps == "" || adu == "" || cri == "" || ida == "" || de == "" || ate == "")
			alert('Reserva: Especifique os dados sobre a hospedagem!');
		else if (cAr == false && sAr == false)
				alert('Reserva: Escolha o tipo do apartamento!');
			else if (men == "")
					alert('Reserva: Informe a mensagem!');
				else {
					e = document.getElementById("email");
		
					if (verifEmail(e) != false) {
						$('#form_reservas').submit();
					}
				}
}
