//*******************************************
// variaveis que armazenam valores numericos
var fLinha = 0.0;
var fMedida1 = 0.0;
var fMedida2 = 0.0;
var fCaixaPerfilT = 0.0;
var fCaixaPerfilRodape = 0.0;
var fRoloManta = 0.0;
var fModoInstalacao = 0.0;
var fArea = 0.0;
var fTuboCola = 0.0;
// variaveis q guardam os valores recebidos
var sLinhaPiso = "";
var sMetragemAmbiente1 = "";
var sMetragemAmbiente2 = "";
var sPerimetroParede = "";
var sPerimetroPortaPassagem = "";
var sModoInstalacao = "";
var sPerfil = "";
var sManta = "";
// variaveis que contem os controles de formulario
var oPerimetroParede;
//*******************************************

function fazCalculo()
{
	// variaveis que contem os controles de formulario
	var oLinhaPiso = document.getElementsByName("rdLinha");
	var oMetragemAmbiente1 = document.getElementById("txtLado1");
	var oMetragemAmbiente2 = document.getElementById("txtLado2");
	
	var oPerimetroPortaPassagem = document.getElementById("txtPerimetroPorta");
	var oModoInstalacao = document.getElementsByName("radModoInstalacao");
	var oPerfil = document.getElementsByName("rdPerfis");
	var oManta = document.getElementsByName("rdManta");
	// variaveis que verificam o preenchimento dos controles;
	var bLinhaPiso = false;
	var bMetragemAmbiente1 = false;
	var bMetragemAmbiente2 = false;
	var bPerimetroParede = false;
	var bPerimetroPortaPassagem = false;
	var bModoInstalacao = false;
	var bPerfil = false;
	var bManta = false;
	// contem a msg de erro e controle de erros
	var sErrorMessage = "É necessário preencher os seguintes campos:\n";
	var bErro = false;
	
	oPerimetroParede = document.getElementById("txtPerimetroParede");
	// verifica a linha selecionada
	for(var i=0;i<oLinhaPiso.length;i++)
	{
		if(oLinhaPiso[i].checked)
		{
			sLinhaPiso = oLinhaPiso[i].title;
			MetragemLinhaSelecionada(sLinhaPiso);
			bLinhaPiso = true;
			break;
		}
	}
	
	// verifica se os text da metragem do ambiente foram preenchidos
	if((oMetragemAmbiente1.value != "") && (oMetragemAmbiente2.value != ""))
	{
		sMetragemAmbiente1 = oMetragemAmbiente1.value;
		sMetragemAmbiente2 = oMetragemAmbiente2.value;
		bMetragemAmbiente1 = true;
		bMetragemAmbiente2 = true;
	}
	else
	{
		bMetragemAmbiente1 = false;
		bMetragemAmbiente2 = false;
	}
/*	descomentar se o perimetro da parede for input de usuario
	// verifica se o text perimetro da parede esta preenchido
	if(oPerimetroParede.value != "")
	{
		sPerimetroParede = parseFloat(oPerimetroParede.value.replace(",","."));
		bPerimetroParede = true;
	}
	else
	{
		bPerimetroParede = false;
	}
*/
	// verifica se o text perimetro da parede esta preenchido
	if(oPerimetroPortaPassagem.value != "")
	{
		sPerimetroPortaPassagem = parseFloat(oPerimetroPortaPassagem.value.replace(",","."));
		bPerimetroPortaPassagem = true;
	}
	else
	{
		bPerimetroPortaPassagem = false;
	}
	
	// verifica o modo de instalacao selecionado
	for(var i=0;i<oModoInstalacao.length;i++)
	{
		if(oModoInstalacao[i].checked)
		{
			sModoInstalacao = oModoInstalacao[i].title;
			SobraModoInstalacao(sModoInstalacao);
			bModoInstalacao = true;
			break;
		}
	}

	// verifica o perfil selecionado
	for(var i=0;i<oPerfil.length;i++)
	{
		if(oPerfil[i].checked)
		{
			sPerfil = oPerfil[i].title;
			CaixaPerfilT(sPerfil);
			bPerfil = true;
			break;
		}
	}
	
	// verifica a manta selecionada
	for(var i=0;i<oManta.length;i++)
	{
		if(oManta[i].checked)
		{
			sManta = oManta[i].title;
			MetragemRoloManta(sManta);
			bManta = true;
			break;
		}
	}
	
	// calcula a area
	CalculaArea(sMetragemAmbiente1, sMetragemAmbiente2);

	// verifica se preencheu a metragem e o perimetroPortaPassagem
	if(bMetragemAmbiente1 && bMetragemAmbiente2 && bPerimetroPortaPassagem)
	{
		oPerimetroParede.value = (fMedida1 * 2) + (fMedida2 * 2) - sPerimetroPortaPassagem;
		sPerimetroParede = parseFloat(oPerimetroParede.value.replace(",","."));
		bPerimetroParede = true;
	}

	// verifica o preenchimento dos controles
	if(!bLinhaPiso)
	{
		sErrorMessage += "\n* Selecione uma linha.";
		bErro = true;
	}
	if(!bMetragemAmbiente1 || !bMetragemAmbiente2)
	{
		sErrorMessage += "\n* Preencha a metragem do ambiente.";
		bErro = true;
	}
	if(!bPerimetroParede)
	{
		sErrorMessage += "\n* Preencha o perímetro da parede.";
		bErro = true;
	}
	if(!bPerimetroPortaPassagem)
	{
		sErrorMessage += "\n* Preencha o perímetro de porta ou passagem para outro ambiente.";
		bErro = true;
	}
	if(!bModoInstalacao)
	{
		sErrorMessage += "\n* Selecione o modo de instalação.";
		bErro = true;
	}
	if(!bPerfil)
	{
		sErrorMessage += "\n* Selecione um perfil.";
		bErro = true;
	}
	if(!bManta)
	{
		sErrorMessage += "\n* Selecione uma manta.";
		bErro = true;
	}
	
	// verifica se ocorreu erro
	if(bErro)
	{
		alert(sErrorMessage);
	}
	else
	{
		exibeResultadoCalculo();
	}
}

// calcula a area do ambiente
function CalculaArea(sMetragemAmbiente1,sMetragemAmbiente2)
{
	fMedida1 = parseFloat(sMetragemAmbiente1.replace(",","."));
	fMedida2 = parseFloat(sMetragemAmbiente2.replace(",","."));
	fArea = fMedida1 * fMedida2;
	fArea = fArea + (fArea * fModoInstalacao);
}

// define a medida da linha a ser utilizada no calculo
function MetragemLinhaSelecionada(sLinhaPiso)
{
	switch(sLinhaPiso.toLowerCase())
	{
		case "home":
		case "life":
		case "pro":
		case "premium":
		case "studio":
			fLinha = 1.824;
			break;
		case "design":
		case "vintage":
		case "nature":
			fLinha = 1.795;
			break;
		default:
			fLinha = 0.0;
			break;
	}
}

// define a medida do rolo da manta
function MetragemRoloManta(sManta)
{
	switch(sManta.toLowerCase())
	{
		case "lisa":
		case "duraero":
			fRoloManta = 60.0;
			fTuboCola = 10.0;
			break;
		case "durasilent":
			fRoloManta = 7.2;
			fTuboCola = 5.0;
			break;
		default:
			fRoloManta = 0.0;
			break;
	}
}

// define a folga para a instalacao
function SobraModoInstalacao(sModoInstalacao)
{
	switch(sModoInstalacao.toLowerCase())
	{
		case "reta":
			fModoInstalacao = 0.1;
			break;
		case "diagonal":
			fModoInstalacao = 0.15;
			break;
	}
}

// calcula a cobertura da caixa qnd é mdf ou slim
function CaixaPerfilT(sPerfil)
{
	switch(sPerfil.toLowerCase())
	{
		case "mdf":
//			fCaixaPerfilT = 2.5 * 5; esta medida é a antiga
			fCaixaPerfilT = 2.1 * 5;
			fCaixaPerfilRodape = 2.1;
			break;
		case "slim":
//			fCaixaPerfilT = 2.5 * 6; esta medida é a antiga
			fCaixaPerfilT = 2.1 * 6;
//			fCaixaPerfilRodape = 2.2; esta medida é a antiga
			fCaixaPerfilRodape = 2.1;
			break;
		default:
			fCaixaPerfilT = 0.0;
			fCaixaPerfilRodape = 0.0;
			break;
	}
}

function exibeResultadoCalculo()
{
	var sMsg = "";
	var fCaixas = 0.0;
	
	
	fCaixas = fArea / fLinha;
	
/*	
	alert
		("area: " + fArea + "\n" +
		 "linha: " + fLinha + "\n" +
		 "manta: " + fRoloManta + "\n" +
		 "caixas: " + fCaixas + "\n" +
		 "modo instalacao: " + fModoInstalacao + "\n" +
		 "tubo cola: " + fArea/fTuboCola + "\n" +
		 "perfil t: " + sPerimetroPortaPassagem/fCaixaPerfilT * 6 + "\n" +
		 "rodape: " + sPerimetroParede/fCaixaPerfilRodape + "\n" +
		"");
*/
	
	sMsg += Math.ceil(fCaixas) + " caixas de piso Durafloor linha " + sLinhaPiso + "<br>";
	// verifica se selecionou a manta durasilent e linha vintage ou design
	if	(
			(sManta.toLowerCase() == "durasilent") && (
				(sLinhaPiso.toLowerCase() == "design") || 
				(sLinhaPiso.toLowerCase() == "vintage") ||
				(sLinhaPiso.toLowerCase() == "nature")
			)
	)
	{
		fTuboCola = 10.0;
		sMsg += Math.ceil(fArea/fTuboCola) + " tubos de cola<br> ";
	}
	// verifica se selecionou design ou vintage
	else if((sLinhaPiso.toLowerCase() == "design") || (sLinhaPiso.toLowerCase() == "vintage") || (sLinhaPiso.toLowerCase() == "nature"))
	{
		sMsg += "00 tubos de cola<br> ";
	}
	// se selecionar qq linha com excessao da design e vintage e não selecionar durasilent
	else
	{
		sMsg += Math.ceil(fArea/fTuboCola) + " tubos de cola<br> ";
	}
	sMsg += Math.ceil(sPerimetroPortaPassagem/fCaixaPerfilT * 6) + " barras de perfis T ou redutor " + sPerfil + "<br>";
	sMsg += Math.ceil(sPerimetroParede/fCaixaPerfilRodape) + " barras de perfis piso-parede ou rodape " + sPerfil + "<br>";
	sMsg += Math.ceil(fArea/fRoloManta) + " rolos(embalagens) de Manta " + sManta;
		
	document.getElementById("divResultadoCalculo").innerHTML = sMsg;
	document.getElementById("divResultadoCalculo").style.cursor = "pointer";
	document.getElementById("divResultadoCalculo").style.visibility = "visible";
	document.getElementById("divResultadoCalculo").style.display = "block";
	document.getElementById("divResultadoCalculo").style.paddingLeft = "5px";
	document.getElementById("divResultadoCalculo").style.paddingRight = "5px";
	document.getElementById("divResultadoCalculo").style.paddingTop = "5px";
	document.getElementById("divResultadoCalculo").style.paddingBottom = "5px";
	document.getElementById("divResultadoCalculo").style.lineHeight = "20px";
	document.getElementById("divResultadoCalculo").style.border = "2px solid #b9b9b3";
	document.getElementById("divResultadoCalculo").onclick = function(){
			document.getElementById("divResultadoCalculo").innerHTML = "";
			document.getElementById("divResultadoCalculo").style.visibility = "hidden";
			document.getElementById("divResultadoCalculo").style.display = "none";
		}
}

/************************************************
	Função q permite digitação apenas de numeros
************************************************/
function validaNumero(e)
{
	var iTecla = (window.event)?event.keyCode:e.which;

	if(
		((iTecla >= 48) && (iTecla <= 57))
		|| ((iTecla == 44) || (iTecla == 8)))
		return true;
	else
		return false;
}
//##################################//










