// JavaScript Document
// Timer
var startupCount = 0;
if(startupCount == 0)
{
	timer = setTimeout("calculCoutEssence()", 1000);
	startupCount++;
}

function resetForm()
{
	document.getElementById("conso1").value = "";
	document.getElementById("conso2").value = "";
	document.getElementById("prixlt1").value = "";
	document.getElementById("prixlt2").value = "";
	document.getElementById("achat1").value = "";
	document.getElementById("achat2").value = "";
	document.getElementById("bonusmalus1").value = "";
	document.getElementById("bonusmalus2").value = "";
	document.getElementById("cgrise1").value = "";
	document.getElementById("cgrise2").value = "";
	document.getElementById("ownerPeriod").selectedIndex = 2;
	document.getElementById("assurAn1").value = "";
	document.getElementById("assurAn2").value = "";
	document.getElementById("coutsAn1").value = "";
	document.getElementById("coutsAn2").value = "";
	calculCoutEssence();
}

function showExample()
{
	document.getElementById("conso1").value = "5.9";
	document.getElementById("conso2").value = "4.5";
	document.getElementById("prixlt1").value = "1.317";
	document.getElementById("prixlt2").value = "1.074";
	document.getElementById("achat1").value = "13500";
	document.getElementById("achat2").value = "15300";
	document.getElementById("bonusmalus1").value = "0";
	document.getElementById("bonusmalus2").value = "-500";
	document.getElementById("cgrise1").value = "230.75";
	document.getElementById("cgrise2").value = "184.60";
	document.getElementById("ownerPeriod").selectedIndex = 2;
	document.getElementById("assurAn1").value = "";
	document.getElementById("assurAn2").value = "";
	document.getElementById("coutsAn1").value = "";
	document.getElementById("coutsAn2").value = "";
	document.getElementById("inputVehic1").value = "";
	document.getElementById("inputVehic2").value = "";
	calculCoutEssence();
}

// Replace ',' by '.'
function replaceComma(obj)
{	
	// Initialize
	var ValidChars = "-+0123456789.,";
	var isNumber=true;	
	obj.style.backgroundColor='#FFFFFF';
	
	// Replace "," by "."
	obj.value = obj.value.replace(/,/g, '\.');	
	// Replace "+" by ""
	obj.value = obj.value.replace(/\+/g, '');
	
	// Check if prix is numeric value or float value
	isNumber=true;	
	for (i = 0; i < obj.value.length; i++) 
	{ 
		Char = obj.value.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) 
		{
			isNumber = false;
		}
	}
	if(isNumber == false)
	{
		obj.style.backgroundColor='#FF0000';
		alert("Erreur: une des valeurs fournies n'est pas une valeur numérique valide!");
		return false; // Do not submit form
	}
}

function calculCoutEssence()
{
	var avantage = 0;
	var cout = 0;
	
	if(startupCount == 1)
	{
		// Desactivation timer
		clearTimeout(timer);
		startupCount++;
	}
	
	for(i=1; i <= 2; i++)
	{
		coutEssCar = '--.--';
		eval("conso =\"conso"+i+"\";");
		eval("prixlt = \"prixlt"+i+"\";");
		if((document.getElementById(conso).value != "") && (document.getElementById(prixlt).value != ""))
		{
			cout = (document.getElementById(conso).value * document.getElementById(prixlt).value);
			coutEssCar = sprintf("%.2f", cout);
		}
		eval("dispCoutEssCar = \"dispCoutEssCar"+i+"\"");
		document.getElementById(dispCoutEssCar).innerHTML = coutEssCar;
		
		// Calcul avantage
		if((avantage == 0) && (i == 1)) 		{ avantage = cout;  }
		else if((avantage == 0) && (i == 2))	{ avantage = 0;		}
		else 									{ avantage -= cout; }
	}
	
	// Affichage avantage
	// ------------------	
	if(avantage > 0)
	{
		document.getElementById("dispConsoSurcout1").innerHTML = sprintf("%.02f", avantage);
		document.getElementById("dispConsoSurcout2").innerHTML = "x";
	}
	else if(avantage < 0)
	{
		document.getElementById("dispConsoSurcout1").innerHTML = "x";
		document.getElementById("dispConsoSurcout2").innerHTML = sprintf("%.02f", (-avantage));
	}
	else
	{
		document.getElementById("dispConsoSurcout1").innerHTML = "x";
		document.getElementById("dispConsoSurcout2").innerHTML = "x";
	}
	
	// Mise à jour des infos suivantes
	calculAmortAchat();
	calcAnnuel();
	changeVehicNames();
}

function calculAmortAchat()
{
	var delta = 0;
	var bonusmalus1 = 0;
	var bonusmalus2 = 0;

	if((document.getElementById("achat1").value) && (document.getElementById("achat2").value))
	{	
		delta = (document.getElementById("achat1").value - document.getElementById("achat2").value);
	}
	if((document.getElementById("bonusmalus1").value != "") || (document.getElementById("bonusmalus2").value != ""))
	{
		if(document.getElementById("bonusmalus1").value != "") 
		{
			bonusmalus1 = document.getElementById("bonusmalus1").value;
		}
		if(document.getElementById("bonusmalus2").value != "") 
		{
			bonusmalus2 = document.getElementById("bonusmalus2").value;
		}
		delta += bonusmalus1 - bonusmalus2;
	}
	
	if((document.getElementById("cgrise1").value) && (document.getElementById("cgrise2").value))
	{
	
		delta += document.getElementById("cgrise1").value - document.getElementById("cgrise2").value;
	}
	else if((!document.getElementById("cgrise1").value) && (document.getElementById("cgrise2").value) ||
			 (document.getElementById("cgrise1").value) && (!document.getElementById("cgrise2").value))
	{
		// Ne pas prendre en compte l'info carte grise
	}
	
	if(delta > 0)
	{		
		document.getElementById("dispAchatSurcout1").innerHTML =  sprintf("%.2f", delta);
		document.getElementById("dispAchatSurcout2").innerHTML =  "x";
		document.getElementById("dispAmortissementAchat2").innerHTML = "x";
		
		if(document.getElementById("dispConsoSurcout2").innerHTML != "x")
		{
			// Amortissement possible
			document.getElementById("dispAmortissementAchat1").innerHTML = sprintf("%.0f", (delta/document.getElementById("dispConsoSurcout2").innerHTML*100));
		}
		else
		{
			// Amortissement impossible
			document.getElementById("dispAmortissementAchat1").innerHTML = "impossible!";
		}
	}
	else if(delta < 0) 
	{
		document.getElementById("dispAchatSurcout1").innerHTML =  "x";
		document.getElementById("dispAchatSurcout2").innerHTML =  sprintf("%.2f", -delta);		
		document.getElementById("dispAmortissementAchat1").innerHTML = "x";
		
		if(document.getElementById("dispConsoSurcout1").innerHTML != "x")
		{
			// Amortissement possible
			document.getElementById("dispAmortissementAchat2").innerHTML = sprintf("%.0f", ((-delta)/parseFloat(document.getElementById("dispConsoSurcout1").innerHTML)*100));
		}
		else
		{
			// Amortissement impossible
			document.getElementById("dispAmortissementAchat2").innerHTML = "impossible!";
		}
	}
	else
	{
		// Prix identiques
		if((document.getElementById("achat1").value) && (document.getElementById("achat2").value))
		{
			document.getElementById("dispAchatSurcout1").innerHTML = "=";
			document.getElementById("dispAchatSurcout2").innerHTML =  "=";
		}
		else
		{
			document.getElementById("dispAchatSurcout1").innerHTML = "--.--";
			document.getElementById("dispAchatSurcout2").innerHTML =  "--.--";
		}
		document.getElementById("dispAmortissementAchat1").innerHTML = "-----";
		document.getElementById("dispAmortissementAchat2").innerHTML = "-----";
	}
	
	// Mise à jour des infos suivantes
	calcAnnuel();
}

function calcAnnuel()
{
	var nbYear = document.getElementById("ownerPeriod").value;
	var amortAnnuelAchat = 0;	

	// Avantage achat / an
	if(parseFloat(document.getElementById("dispAchatSurcout1").innerHTML) > 0)
	{
		document.getElementById("dispAchatSurcoutAn1").innerHTML = sprintf("%.0f", (parseFloat(document.getElementById("dispAchatSurcout1").innerHTML) / nbYear));
		document.getElementById("dispAchatSurcoutAn2").innerHTML = "x";
	}
	else if(parseFloat(document.getElementById("dispAchatSurcout2").innerHTML) > 0)
	{
		document.getElementById("dispAchatSurcoutAn1").innerHTML = "x";
		document.getElementById("dispAchatSurcoutAn2").innerHTML = sprintf("%.0f", (parseFloat(document.getElementById("dispAchatSurcout2").innerHTML) / nbYear));
	}
	else
	{
		document.getElementById("dispAchatSurcoutAn1").innerHTML = "--.--";
		document.getElementById("dispAchatSurcoutAn2").innerHTML = "--.--";
	}
	
	// kilométrage annuel de base
	if(parseFloat(document.getElementById("dispAmortissementAchat1").innerHTML) > 0)
	{
		//amortAnnuelAchat = sprintf("%.0f", (parseFloat(document.getElementById("dispAmortissementAchat1").innerHTML) / nbYear));
		amortAnnuelAchat = sprintf("%.0f", (parseFloat(document.getElementById("dispAchatSurcoutAn1").innerHTML)/parseFloat(document.getElementById("dispConsoSurcout2").innerHTML)*100));
		document.getElementById("dispAmortissementAchatAn1").innerHTML = amortAnnuelAchat;
		document.getElementById("dispAmortissementAchatAn2").innerHTML = "x";
	}
	else if(parseFloat(document.getElementById("dispAmortissementAchat2").innerHTML) > 0)
	{
		document.getElementById("dispAmortissementAchatAn1").innerHTML = "x";
		//amortAnnuelAchat = sprintf("%.0f", (parseFloat(document.getElementById("dispAmortissementAchat2").innerHTML) / nbYear));
		amortAnnuelAchat = sprintf("%.0f", (parseFloat(document.getElementById("dispAchatSurcoutAn2").innerHTML)/parseFloat(document.getElementById("dispConsoSurcout1").innerHTML)*100));
		document.getElementById("dispAmortissementAchatAn2").innerHTML = amortAnnuelAchat;
	}
	else
	{
		document.getElementById("dispAmortissementAchatAn1").innerHTML = "-----";
		document.getElementById("dispAmortissementAchatAn2").innerHTML = "-----";
	}
	
	// Avantage couts / an
	var coutsVoitureAn1 = 0;
	var coutsVoitureAn2 = 0;
	var assurAn1 = 0;
	var assurAn2 = 0;
	var coutsAn1 = 0;
	var coutsAn2 = 0;	
	if(document.getElementById("assurAn1").value != "") { 
		assurAn1 = parseFloat(document.getElementById("assurAn1").value); }
	if(document.getElementById("assurAn2").value != "") {
		assurAn2 = parseFloat(document.getElementById("assurAn2").value); }	
	if(document.getElementById("coutsAn1").value != "") {
		coutsAn1 = parseFloat(document.getElementById("coutsAn1").value); }	
	if(document.getElementById("coutsAn2").value != "") {
		coutsAn2 = parseFloat(document.getElementById("coutsAn2").value); }	
		
	if((document.getElementById("dispAchatSurcoutAn1").innerHTML == "x") || (document.getElementById("dispAchatSurcoutAn1").innerHTML == "--.--"))
	{
		coutsVoitureAn1 = (assurAn1 + coutsAn1);	
	}
	else
	{
		coutsVoitureAn1 = (parseFloat(document.getElementById("dispAchatSurcoutAn1").innerHTML) + (assurAn1 + coutsAn1));
	}
	
	if((document.getElementById("dispAchatSurcoutAn2").innerHTML == "x") || (document.getElementById("dispAchatSurcoutAn2").innerHTML == "--.--"))
	{
		coutsVoitureAn2 = (assurAn2 + coutsAn2);
	}
	else
	{
		coutsVoitureAn2 = (parseFloat(document.getElementById("dispAchatSurcoutAn2").innerHTML) + (assurAn2 + coutsAn2));
	}
	
	var delta = (coutsVoitureAn1 - coutsVoitureAn2);

	if(delta > 0)
	{
		document.getElementById("dispSurcoutAn1").innerHTML = sprintf("%.0f", delta);
		document.getElementById("dispSurcoutAn2").innerHTML = "x";	
		if(document.getElementById("dispConsoSurcout2").innerHTML != "x")
		{
			document.getElementById("dispAmortissementCoutsAn1").innerHTML = sprintf("%.0f", (delta/parseFloat(document.getElementById("dispConsoSurcout2").innerHTML)*100));
		}
		else
		{
			document.getElementById("dispAmortissementCoutsAn1").innerHTML = "impossible!";
		}
		document.getElementById("dispAmortissementCoutsAn2").innerHTML = "x";
	}
	else if(delta < 0)
	{
		document.getElementById("dispSurcoutAn1").innerHTML = "x";
		document.getElementById("dispSurcoutAn2").innerHTML = sprintf("%.0f", -delta);
		document.getElementById("dispAmortissementCoutsAn1").innerHTML = "x";
		if(document.getElementById("dispConsoSurcout1").innerHTML != "x")
		{
			document.getElementById("dispAmortissementCoutsAn2").innerHTML = sprintf("%.0f", ((-delta)/parseFloat(document.getElementById("dispConsoSurcout1").innerHTML)*100));
		}
		else
		{
			document.getElementById("dispAmortissementCoutsAn2").innerHTML = "impossible!";
		}
	}
	else
	{
		document.getElementById("dispSurcoutAn1").innerHTML = "--.--";
		document.getElementById("dispSurcoutAn2").innerHTML = "--.--";
		document.getElementById("dispAmortissementCoutsAn1").innerHTML = "x";
		document.getElementById("dispAmortissementCoutsAn2").innerHTML = "x";		
	}
	
	// Mise à jour url
	urlSpecifique();
}

// Afficher l'url vers feuille de calcul en cours
// ----------------------------------------------
function urlSpecifique()
{
	var arguments = "";
	document.getElementById("urlSpecifique").value = "http://www.deficonso.com/rentabilite.php?"; 
	
	// conso1 & conso2
	for(i=1; i <= 2; i++)
	{
		eval("conso =\"conso"+i+"\";");
		if(document.getElementById(conso).value != "")
		{
			arguments += conso+"="+document.getElementById(conso).value+"&";
		}
	}
	// prixlt1 & prixlt2
	for(i=1; i <= 2; i++)
	{
		eval("prixlt = \"prixlt"+i+"\";");
		if(document.getElementById(prixlt).value != "")
		{
			arguments += prixlt+"="+document.getElementById(prixlt).value+"&";
		}
	}
	// achat1 & achat2
	for(i=1; i <= 2; i++)
	{
		eval("achat = \"achat"+i+"\";");
		if(document.getElementById(achat).value != "")
		{
			arguments += achat+"="+document.getElementById(achat).value+"&";
		}
	}
	// bonusmalus1 & bonusmalus2
	for(i=1; i <= 2; i++)
	{
		eval("bonusmalus = \"bonusmalus"+i+"\";");
		if(document.getElementById(bonusmalus).value != "")
		{
			arguments += bonusmalus+"="+document.getElementById(bonusmalus).value+"&";
		}
	}
	// cgrise1 & cgrise2
	for(i=1; i <= 2; i++)
	{
		eval("cgrise = \"cgrise"+i+"\";");
		if(document.getElementById(cgrise).value != "")
		{
			arguments += cgrise+"="+document.getElementById(cgrise).value+"&";
		}
	}
	// ownerPeriod
	if(document.getElementById("ownerPeriod").value != "")
	{
		arguments += "ownerPeriod="+document.getElementById("ownerPeriod").value+"&";
	}
	// assurAn1 & assurAn2
	for(i=1; i <= 2; i++)
	{
		eval("assurAn = \"assurAn"+i+"\";");
		if(document.getElementById(assurAn).value != "")
		{
			arguments += assurAn+"="+document.getElementById(assurAn).value+"&";
		}
	}
	// coutsAn1 & coutsAn2
	for(i=1; i <= 2; i++)
	{
		eval("coutsAn = \"coutsAn"+i+"\";");
		if(document.getElementById(coutsAn).value != "")
		{
			arguments += coutsAn+"="+document.getElementById(coutsAn).value+"&";
		}
	}
	
	// nom vehic1 & vehic2
	for(i=1; i <= 2; i++)
	{
		eval("vehic = \"v"+i+"\";");
		eval("inputVehic = \"inputVehic"+i+"\";");
		if(document.getElementById(inputVehic).value != "")
		{
			arguments += vehic+"="+encodeURI(document.getElementById(inputVehic).value)+"&";
		}
	}
	
	// Concatenation url
	document.getElementById("urlSpecifique").value = "http://www.deficonso.com/rentabilite.php";
	if(arguments != "")
	{
		document.getElementById("urlSpecifique").value += "?" + arguments;
	}
	
}

function openExampleDescription()
{ 
 direction = './rentabiliteExDesc.php';
 window.open(direction,'Description','toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=0, copyhistory=0, menuBar=0, width=500, height=360, left=100, top=100');
}

function changeVehicNames()
{
	for(i=1; i <= 2; i++)
	{
		eval("inputVehic = \"inputVehic"+i+"\";");
		eval("nameVehic = \"nameVehic"+i+"\";");
		if(document.getElementById(inputVehic).value != "")
		{
			document.getElementById(inputVehic).value = document.getElementById(inputVehic).value.replace(/\&/g, '');
			document.getElementById(inputVehic).value = document.getElementById(inputVehic).value.replace(/\"/g, '');
			document.getElementById(inputVehic).value = document.getElementById(inputVehic).value.replace(/\+/g, '');
			document.getElementById(nameVehic).innerHTML = document.getElementById(inputVehic).value;
		}
		else
		{
			document.getElementById(nameVehic).innerHTML = "Véhicule #"+i;
		}
	}
	
	urlSpecifique();
}
