// JavaScript Document

// Código para o sexo do Bebê:
// 0 - Feminino e 1 - Masculino
sexo = new Array(27);
//                   Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez
sexo[0]  = new Array( 0 , 1 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ); // 18 anos
sexo[1]  = new Array( 1 , 0 , 1 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 0 , 0 ); // 19 anos
sexo[2]  = new Array( 0 , 1 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 1 , 1 ); // 20 anos
sexo[3]  = new Array( 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ); // 21 anos
sexo[4]  = new Array( 0 , 1 , 1 , 0 , 1 , 0 , 0 , 1 , 0 , 0 , 0 , 0 ); // 22 anos
sexo[5]  = new Array( 1 , 1 , 0 , 1 , 1 , 0 , 1 , 0 , 1 , 1 , 1 , 0 ); // 23 anos
sexo[6]  = new Array( 1 , 0 , 1 , 1 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0 ); // 24 anos
sexo[7]  = new Array( 0 , 1 , 1 , 0 , 0 , 1 , 0 , 1 , 1 , 1 , 1 , 1 ); // 25 anos
sexo[8]  = new Array( 1 , 0 , 1 , 0 , 0 , 1 , 0 , 1 , 0 , 0 , 0 , 0 ); // 26 anos
sexo[9]  = new Array( 0 , 1 , 0 , 1 , 0 , 0 , 1 , 1 , 1 , 1 , 0 , 1 ); // 27 anos
sexo[10] = new Array( 1 , 0 , 1 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 0 , 0 ); // 28 anos
sexo[11] = new Array( 0 , 1 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 ); // 29 anos
sexo[12] = new Array( 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 ); // 30 anos
sexo[13] = new Array( 1 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 ); // 31 anos
sexo[14] = new Array( 1 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 ); // 32 anos
sexo[15] = new Array( 0 , 1 , 1 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 ); // 33 anos
sexo[16] = new Array( 1 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 ); // 34 anos
sexo[17] = new Array( 1 , 1 , 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 1 , 1 ); // 35 anos
sexo[18] = new Array( 0 , 1 , 1 , 0 , 1 , 0 , 0 , 0 , 1 , 1 , 1 , 1 ); // 36 anos
sexo[19] = new Array( 1 , 0 , 1 , 1 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 1 ); // 37 anos
sexo[20] = new Array( 0 , 1 , 0 , 1 , 1 , 0 , 1 , 0 , 1 , 0 , 1 , 0 ); // 38 anos
sexo[21] = new Array( 1 , 0 , 1 , 1 , 1 , 0 , 0 , 1 , 0 , 1 , 0 , 0 ); // 39 anos
sexo[22] = new Array( 0 , 1 , 0 , 1 , 0 , 1 , 1 , 0 , 1 , 0 , 1 , 0 ); // 40 anos
sexo[23] = new Array( 1 , 0 , 1 , 0 , 1 , 0 , 1 , 1 , 0 , 1 , 0 , 1 ); // 41 anos
sexo[24] = new Array( 0 , 1 , 0 , 1 , 0 , 1 , 0 , 1 , 1 , 0 , 1 , 0 ); // 42 anos
sexo[25] = new Array( 1 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 1 , 1 , 1 , 1 ); // 43 anos
sexo[26] = new Array( 1 , 1 , 0 , 1 , 1 , 1 , 0 , 1 , 0 , 1 , 0 , 0 ); // 44 anos

function checkDate(date) {
	if (date.length != 10) return false;
	else {
		dia = parseInt(date.substr(0,2),10);
		mes = parseInt(date.substr(3,2),10);
		ano = parseInt(date.substr(6,4),10);
		if (isNaN(dia) || isNaN(mes) || isNaN(ano)) return false;
		if (mes < 1 || mes > 12 || dia < 1 || dia > 31) return false;
		if (mes == 2 && dia > 28) return false;
	}
	return true;
}

function sexoBebe() {
	dataMae = document.formSexoBebe.txtDataMae.value;
	if (document.formSexoBebe.radioGroup[0].checked) dataBebe = document.formSexoBebe.txtNascBebe.value;
	else dataBebe = document.formSexoBebe.txtConcBebe.value;
	if (!checkDate(dataMae)) {
		alert("A 'Data de Nascimento da Mãe' está incorreta. Por favor, corrija!");
		return "";
	}
	if (!checkDate(dataBebe)) {
		if (document.formSexoBebe.radioGroup[0].checked) alert("A 'Data de Nascimento do Bebê' está incorreta. Por favor, corrija!");
		else alert("A 'Data da Concepção do Bebê' está incorreta. Por favor, corrija!");
		return "";
	}
	if (document.formSexoBebe.radioGroup[0].checked){
		dia = parseInt(dataBebe.substr(0,2),10);
		mes = parseInt(dataBebe.substr(3,2),10);
		ano = parseInt(dataBebe.substr(6,4),10);
		dia -= document.formSexoBebe.sltDias.value;
		if (dia <= 0) {
			dia += 30;
			mes--;
		}
		mes -= document.formSexoBebe.sltMeses.value;
		if (mes <= 0) {
			mes += 12;
			ano--;
		}
		if (mes == 2 & dia > 28) {
			dia = dia - 28;
			mes = 3;
		}
		if (dia < 10) dataConc = "0" + dia + "/";
		else dataConc = dia + "/";
		if (mes < 10) dataConc += "0" + mes + "/" + ano;
		else dataConc += mes + "/" + ano;
	}
	else dataConc = dataBebe;
	a1 = parseInt(dataConc.substr(6,4),10);
	a2 = parseInt(dataMae.substr(6,4),10);
	m1 = parseInt(dataConc.substr(3,2),10);
	m2 = parseInt(dataMae.substr(3,2),10);
	d1 = parseInt(dataConc.substr(0,2),10);
	d2 = parseInt(dataMae.substr(0,2),10);
	idade = a1 - a2;
	if (m1 < m2) idade--;
	else if (m1 == m2 && d1 < d2) idade--;
	idade -= 18;
	if (idade < 0 || idade > 26) {
		alert("Só é possível inferir o sexo do Bebê para mulheres que o tenham concebido entre 18 e 44 anos!");
		return "";
	}
	s = sexo[idade][m1-1];
	document.formSexoBebe.txtIdadeMae.value = (idade + 18);
	document.formSexoBebe.txtDataConc.value = dataConc;
	if (s == 0) document.formSexoBebe.txtSexo.value = "FEMININO";
	else document.formSexoBebe.txtSexo.value = "MASCULINO";
}

function setNullSexo() {
	document.formSexoBebe.txtIdadeMae.value = "";
	document.formSexoBebe.txtDataConc.value = "";
	document.formSexoBebe.txtSexo.value = "";
}

function enableGestacao(v) {
	if (v == 0) {
		document.formSexoBebe.sltMeses.disabled = true;
		document.formSexoBebe.sltDias.disabled = true;
		document.formSexoBebe.txtNascBebe.disabled = true;
		document.formSexoBebe.txtConcBebe.disabled = false;
		data = document.formSexoBebe.txtNascBebe.value;
		if (data != "") {
			document.formSexoBebe.txtConcBebe.value = data;
			document.formSexoBebe.txtNascBebe.value = "";
		}
	}
	else {
		document.formSexoBebe.sltMeses.disabled = false;
		document.formSexoBebe.sltDias.disabled = false;
		document.formSexoBebe.txtConcBebe.disabled = true;
		document.formSexoBebe.txtNascBebe.disabled = false;
		data = document.formSexoBebe.txtConcBebe.value;
		if (data != "") {
			document.formSexoBebe.txtNascBebe.value = data;
			document.formSexoBebe.txtConcBebe.value = "";
		}
	}
}
