﻿// JavaScript Document
function ChangeClass(id, maclass)
{
	//alert(maclass);
	document.getElementById(id).setAttribute('className', maclass);//IE
	document.getElementById(id).setAttribute('class', maclass);//gecko
}
function Ar_DeuxDecimal(nombre)
{
	var resultat = Math.round(nombre*100) / 100; // Retournera un chiffre à 2 decimal
	return resultat;
}


function simul_LMNP()
{	
	//alert("lancement de la simulation");
	///// on masque le formulaire et on affiche le loader pour faire patienter
	ChangeClass('formulaire', 'invisible');
	ChangeClass('loader', 'visible');

		
		var IdAppel = String(document.getElementById('IdAppel').value);
		//// ici pInvestisseur  -  pFinancement  -  pInvestissementLmnp  -   
		var effortSouhaite = document.getElementById('effortSouhaite').value;
		var dureeSimulation = document.getElementById('dureePretAns').value;
		
		/////  details investisseur
		var idSituationFamiliale = document.getElementById('idSituationFamiliale').value;
		var nbPartsFiscales = document.getElementById('nbPartsFiscales').value;
		var revenuMensuelNet = document.getElementById('revenuMensuelNet').value;
		var revalRevenu =  document.getElementById('revalRevenu').value;
		var apportPerso = document.getElementById('apportPerso').value;
		var dureePretAns = document.getElementById('dureePretAns').value;
		var libTypePret = document.getElementById('libTypePret').value;
		var tauxPret = document.getElementById('tauxPret').value;
		var tauxCapiAdoss = document.getElementById('tauxCapiAdoss').value;
		var tauxChargeAdoss = document.getElementById('tauxChargeAdoss').value;
		//////   details financement investissement
		var revalImmoAnnu = document.getElementById('revalImmoAnnu').value;
		var rentabiliteLocative = document.getElementById('rentabiliteLocative').value;
		var revalLoyerAnnu = document.getElementById('revalLoyerAnnu').value;
		var pctChargesLocative = document.getElementById('pctChargesLocative').value;
		var pctFraisCommerciaux = document.getElementById('pctFraisCommerciaux').value;
		var pctFraisEtablissement = document.getElementById('pctFraisEtablissement').value;
		var pctNotaireActe = document.getElementById('pctNotaireActe').value;
		var typeDeductionFrais = document.getElementById('typeDeductionFrais').value;
		var dureeAmortImmobilier = document.getElementById('dureeAmortImmobilier').value;
		var dureeAmortMobilier = document.getElementById('dureeAmortMobilier').value;
		var pctRepartitionTerrain = document.getElementById('pctRepartitionTerrain').value;
		var pctRepartitionImmobilier = document.getElementById('pctRepartitionImmobilier').value;
		var pctRepartitionMobilier = document.getElementById('pctRepartitionMobilier').value;
		var pctTaxeFonciereAnnu = document.getElementById('pctTaxeFonciereAnnu').value;
		var dureeExoTaxeFoncAn = document.getElementById('dureeExoTaxeFoncAn').value;
		var tauxExoTaxeFonc = document.getElementById('tauxExoTaxeFonc').value;
		<!--COORDONNEES-->
		var nom = document.getElementById('nom').value;
		var prenom = document.getElementById('prenom').value;
		var cp = document.getElementById('cp').value;
		var tel = document.getElementById('tel').value;		
		var email = document.getElementById('email').value;		
		
		
		// xmlHttp=new XMLHttpRequest();
		 ///////////  creation du hhttprequest pour les deux navagateur
		var xmlHttp = null;
        if (window.XMLHttpRequest) {                                // Firefox
            xmlHttp = new XMLHttpRequest();
        } else {
            if (window.ActiveXObject) {                             // Internet Explorer
                xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
            } else {                                                // XMLHttpRequest non supporté par le navigateur
                alert('Votre navigateur ne supporte pas les objets XMLHTTPRequest...');
                return;
            }
        } 
		 xmlHttp.open("POST","simulIDsoft/requestIDsoft_LMNP.php",true);
		 xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		
		////// verification des données avant expédition
		var arrayForm = Array(effortSouhaite,							   
		idSituationFamiliale,
		nbPartsFiscales,
		revenuMensuelNet,
		revalRevenu,
		apportPerso,
		dureePretAns,
		libTypePret,
		tauxPret,
		tauxCapiAdoss,
		tauxChargeAdoss,
		revalImmoAnnu,
		rentabiliteLocative,
		revalLoyerAnnu,
		pctChargesLocative,
		pctFraisCommerciaux,
		pctFraisEtablissement,
		pctNotaireActe,
		typeDeductionFrais,
		dureeAmortImmobilier,
		dureeAmortMobilier,
		pctRepartitionTerrain,
		pctRepartitionImmobilier,
		pctRepartitionMobilier,
		pctTaxeFonciereAnnu,
		dureeExoTaxeFoncAn,
		tauxExoTaxeFonc,
		nom,
		prenom,
		cp,
		tel,
		email
		);
		
		function verif(arrayForm)
		{
			var nbChamp = arrayForm.length;
			
			for(i=0; i<nbChamp; i++)
			{
				if(arrayForm[i] == null || arrayForm[i] == '')
				{
					alert('veuillez remplir tous les champs');
					return false;
				}
			}
			return true;
		}

		if(verif(arrayForm))
		{
			xmlHttp.send("IdAppel=Investas"+
				"&effortSouhaite="+parseFloat(effortSouhaite)+
				"&dureeSimulation="+parseInt(dureeSimulation)+								   
				"&idSituationFamiliale="+parseInt(idSituationFamiliale)+
				"&nbPartsFiscales="+parseFloat(nbPartsFiscales)+
				"&revenuMensuelNet="+parseFloat(revenuMensuelNet)+
				"&revalRevenu="+revalRevenu+
				"&apportPerso="+parseFloat(apportPerso)+
				"&dureePretAns= "+parseFloat(dureePretAns)+
				"&libTypePret="+parseFloat(libTypePret)+
				"&tauxPret="+parseFloat(tauxPret)+
				"&tauxCapiAdoss="+parseFloat(tauxCapiAdoss)+
				"&tauxChargeAdoss="+parseFloat(tauxChargeAdoss)+
				"&revalImmoAnnu="+parseFloat(revalImmoAnnu)+
				"&rentabiliteLocative="+parseFloat(rentabiliteLocative)+
				"&revalLoyerAnnu="+parseFloat(revalLoyerAnnu)+
				"&pctChargesLocative="+parseFloat(pctChargesLocative)+
				"&pctFraisCommerciaux="+parseFloat(pctFraisCommerciaux)+
				"&pctFraisEtablissement="+parseFloat(pctFraisEtablissement)+
				"&pctNotaireActe="+parseFloat(pctNotaireActe)+
				"&typeDeductionFrais="+parseFloat(typeDeductionFrais)+
				"&dureeAmortImmobilier="+parseFloat(dureeAmortImmobilier)+
				"&dureeAmortMobilier="+parseFloat(dureeAmortMobilier)+
				"&pctRepartitionTerrain="+parseFloat(pctRepartitionTerrain)+
				"&pctRepartitionImmobilier="+ parseFloat(pctRepartitionImmobilier)+
				"&pctRepartitionMobilier="+parseFloat(pctRepartitionMobilier)+
				"&pctTaxeFonciereAnnu="+parseFloat(pctTaxeFonciereAnnu)+
				"&dureeExoTaxeFoncAn="+parseFloat(dureeExoTaxeFoncAn)+
				"&tauxExoTaxeFonc="+parseFloat(tauxExoTaxeFonc)+"&nom="+nom+"&prenom="+prenom+"&cp="+cp+"&tel="+tel+"&email="+email);
		}
		
		else
		{
			alert('Calcul impossible. Veuillez vérifier vos données.');	
			
			ChangeClass('resultats', 'invisible');
			ChangeClass('loader', 'invisible');
			ChangeClass('formulaire', 'visible');
		}
		 
		 
		 
		 xmlHttp.onreadystatechange=function()
			{
				
				//alert('yes'+xmlHttp.readyState);
			if(xmlHttp.readyState==4)
			  {
			   // Get the data from the server's response
			   var xmlString = xmlHttp.responseText;
			  	//alert('-->ok 1 :'+xmlString);
			   
				function xmlFromString(CodexmlString)
				{
					//alert("dernière etape");
					var doc;
					// code for IE
					if (window.ActiveXObject)
						{
							//alert('-->ok 3 IE :'+xmlString);
							var doc = new ActiveXObject("Microsoft.XMLDOM");
							
							doc.async="true";
							doc.loadXML(xmlString);
						}
						// code for Mozilla, Firefox, Opera, etc.
					else
						{
							//alert('-->ok 3 AUTRE :'+xmlString);
							var parser=new DOMParser();
							doc=parser.parseFromString(CodexmlString,"text/xml");
						} 
					
					var flagSolutionExiste = doc.getElementsByTagName('flagSolutionExiste')[0].childNodes[0].nodeValue;
					//alert('test');
					if(flagSolutionExiste == 'true' || flagSolutionExiste != 'unfefined')
					{
							
						var valeurBien = doc.getElementsByTagName('valeurBien')[0].childNodes[0].nodeValue;
						
						//alert(	"valeur bien "+valeurBien);		
						//var ecoImpotMaxi = doc.getElementsByTagName('ecoImpotMaxi')[0].childNodes[0].nodeValue;
						//var ecoImpotGlobale = doc.getElementsByTagName('ecoImpotGlobale')[0].childNodes[0].nodeValue;
						var valeurRevente = doc.getElementsByTagName('valeurRevente')[0].childNodes[0].nodeValue;
						var revenuMensuelTerme = doc.getElementsByTagName('revenuMensuelTerme')[0].childNodes[0].nodeValue;
						var recupTVA = doc.getElementsByTagName('recupTVA')[0].childNodes[0].nodeValue;
						/*var TRIOperation = doc.getElementsByTagName('TRIOperation')[0].childNodes[0].nodeValue;
						var TMI = doc.getElementsByTagName('TMI')[0].childNodes[0].nodeValue;
						var revenuNetImposable = doc.getElementsByTagName('revenuNetImposable')[0].childNodes[0].nodeValue;
						var loyerInitial = doc.getElementsByTagName('loyerInitial')[0].childNodes[0].nodeValue;
						var impotInitial = doc.getElementsByTagName('impotInitial')[0].childNodes[0].nodeValue;
						var revenuNetImpotsChargesTerme = doc.getElementsByTagName('revenuNetImpotsChargesTerme')[0].childNodes[0].nodeValue;
						var revenuMensuelTermeNet = doc.getElementsByTagName('revenuMensuelTermeNet')[0].childNodes[0].nodeValue;
						//var messageResultat = doc.getElementsByTagName('valeurBien')[0].childNodes[0].nodeValue;
						var ecoImpot1 = doc.getElementsByTagName('ecoImpot1')[0].childNodes[0].nodeValue;
						var nomRegime = doc.getElementsByTagName('nomRegime')[0].childNodes[0].nodeValue;
						var periodeTotalDefisc = doc.getElementsByTagName('periodeTotalDefisc')[0].childNodes[0].nodeValue;
						var periodePartielDefisc = doc.getElementsByTagName('periodePartielDefisc')[0].childNodes[0].nodeValue;
						var periodeRendement = doc.getElementsByTagName('periodeRendement')[0].childNodes[0].nodeValue;
						var prixRevient = doc.getElementsByTagName('prixRevient')[0].childNodes[0].nodeValue;
						var revenuNetAnnuels = doc.getElementsByTagName('revenuNetAnnuels')[0].childNodes[0].nodeValue;
						*/
					//---///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
						//var tabSyntheseRendTotalDefisc = doc.getElementsByTagName('tabSyntheseRendTotalDefisc')[0].childNodes.length;
						/*var nbResultats = doc.getElementsByTagName('tabSyntheseRendTotalDefisc')[0].childNodes.length;
						var tabSyntheseRendTotalDefisc = "<table style='text-align:left;'>";
						if(nbResultats == 0) { tabSyntheseRendPartielDefisc='aucun' }
						else{
							for(i=0;i<nbResultats; i++)
							{
								var annee = doc.getElementsByTagName('tabSyntheseRendTotalDefisc')[0].childNodes[i].childNodes[0].childNodes[0].nodeValue;
								var revenuNetDispo = doc.getElementsByTagName('tabSyntheseRendTotalDefisc')[0].childNodes[i].childNodes[1].childNodes[0].nodeValue;
								var resultatFiscal = doc.getElementsByTagName('tabSyntheseRendTotalDefisc')[0].childNodes[i].childNodes[2].childNodes[0].nodeValue;
								var incidenceRevenu = doc.getElementsByTagName('tabSyntheseRendTotalDefisc')[0].childNodes[i].childNodes[3].childNodes[0].nodeValue;
								
								tabSyntheseRendTotalDefisc += "<tr><td>Année</td><td>"+Ar_DeuxDecimal(annee)+"</td></tr>";
								tabSyntheseRendTotalDefisc += "<tr><td>Revenu net dispo</td><td>"+Ar_DeuxDecimal(revenuNetDispo)+"</td></tr>";
								tabSyntheseRendTotalDefisc += "<tr><td>Resultat fiscal</td><td>"+Ar_DeuxDecimal(resultatFiscal)+"</td></tr>";
								tabSyntheseRendTotalDefisc += "<tr><td>Incidence sur revenu</td><td>"+Ar_DeuxDecimal(incidenceRevenu)+"</td></tr>";
							}
						}
						tabSyntheseRendTotalDefisc += "</table>";
					//---	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
						//var tabSyntheseRendPartielDefisc = doc.getElementsByTagName('tabSyntheseRendPartielDefisc')[0].childNodes[0].nodeValue;
						var nbResultats = doc.getElementsByTagName('tabSyntheseRendPartielDefisc')[0].childNodes.length;
						var tabSyntheseRendPartielDefisc = "<table style='text-align:left;'>";
						if(nbResultats == 0) { tabSyntheseRendPartielDefisc='aucun' }
						else{
							for(i=0;i<nbResultats; i++)
							{
								var annee = doc.getElementsByTagName('tabSyntheseRendPartielDefisc')[0].childNodes[i].childNodes[0].childNodes[0].nodeValue;
								var revenuNetDispo = doc.getElementsByTagName('tabSyntheseRendPartielDefisc')[0].childNodes[i].childNodes[1].childNodes[0].nodeValue;
								var resultatFiscal = doc.getElementsByTagName('tabSyntheseRendPartielDefisc')[0].childNodes[i].childNodes[2].childNodes[0].nodeValue;
								var incidenceRevenu = doc.getElementsByTagName('tabSyntheseRendPartielDefisc')[0].childNodes[i].childNodes[3].childNodes[0].nodeValue;
								
								tabSyntheseRendPartielDefisc += "<tr><td>Année</td><td>"+Ar_DeuxDecimal(annee)+"</td></tr>";
								tabSyntheseRendPartielDefisc += "<tr><td>Revenu net dispo</td><td>"+Ar_DeuxDecimal(revenuNetDispo)+"</td></tr>";
								tabSyntheseRendPartielDefisc += "<tr><td>Resultat fiscal</td><td>"+Ar_DeuxDecimal(resultatFiscal)+"</td></tr>";
								tabSyntheseRendPartielDefisc += "<tr><td>Incidence sur revenu</td><td>"+Ar_DeuxDecimal(incidenceRevenu)+"</td></tr>";
							}
							tabSyntheseRendPartielDefisc += "</table>";
						}
						///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
						///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
						var rentabiliteSommeInvestie = doc.getElementsByTagName('rentabiliteSommeInvestie')[0].childNodes[0].nodeValue;
						var rentabiliteSommeInvestie = doc.getElementsByTagName('rentabiliteSommeInvestie')[0].childNodes[0].nodeValue;
						
						var rentabiliteSommeInvestie = doc.getElementsByTagName('rentabiliteSommeInvestie')[0].childNodes[0].nodeValue;
						var totalRevenusNetsDispoTotalDefisc = doc.getElementsByTagName('totalRevenusNetsDispoTotalDefisc')[0].childNodes[0].nodeValue;
						var totalResultatFiscalTotalDefisc = doc.getElementsByTagName('totalResultatFiscalTotalDefisc')[0].childNodes[0].nodeValue;
						var totalIncidenceRevenuTotalDefisc = doc.getElementsByTagName('totalIncidenceRevenuTotalDefisc')[0].childNodes[0].nodeValue;
						var totalRevenusNetsDispoPartielDefisc = doc.getElementsByTagName('totalRevenusNetsDispoPartielDefisc')[0].childNodes[0].nodeValue;
						var totalResultatFiscalPartielDefisc = doc.getElementsByTagName('totalResultatFiscalPartielDefisc')[0].childNodes[0].nodeValue;
						var totalIncidenceRevenuPartielDefisc = doc.getElementsByTagName('totalIncidenceRevenuPartielDefisc')[0].childNodes[0].nodeValue;
						var partFisc = doc.getElementsByTagName('partFisc')[0].childNodes[0].nodeValue;
						*/
						////   insertion des valeurs dans la page
						document.getElementById('valeurBien').innerHTML =  Ar_DeuxDecimal(valeurBien);
						//document.getElementById('ecoImpotMaxi').innerHTML =  Ar_DeuxDecimal(ecoImpotMaxi);
						//document.getElementById('ecoImpotGlobale').innerHTML =  Ar_DeuxDecimal(ecoImpotGlobale);
						document.getElementById('valeurRevente').innerHTML =  Ar_DeuxDecimal(valeurRevente);
						document.getElementById('revenuMensuelTerme').innerHTML =  Ar_DeuxDecimal(revenuMensuelTerme);
						document.getElementById('recupTVA').innerHTML =  Ar_DeuxDecimal(recupTVA);
						
						//alert('test avant affichage');
						///// on affiche les resultats et on masque le loader
						ChangeClass('resultats', 'visible');
						ChangeClass('loader', 'invisible');

						
						//document.getElementById('TRIOperation').innerHTML =  Ar_DeuxDecimal(TRIOperation);
						//document.getElementById('TMI').innerHTML =  Ar_DeuxDecimal(TMI);
						//document.getElementById('revenuNetImposable').innerHTML = Ar_DeuxDecimal(revenuNetImposable);
						//document.getElementById('loyerInitial').innerHTML =  Ar_DeuxDecimal(loyerInitial);
						//document.getElementById('impotInitial').innerHTML =  Ar_DeuxDecimal(impotInitial);
						//document.getElementById('revenuNetImpotsChargesTerme').innerHTML =  Ar_DeuxDecimal(revenuNetImpotsChargesTerme);
						//document.getElementById('revenuMensuelTermeNet').innerHTML =  Ar_DeuxDecimal(revenuMensuelTermeNet);
						//document.getElementById('messageResultat').innerHTML =  valeurBien;
						//document.getElementById('ecoImpot1').innerHTML =  Ar_DeuxDecimal(ecoImpot1);
						//document.getElementById('nomRegime').innerHTML =  nomRegime;
						//document.getElementById('periodeTotalDefisc').innerHTML =  periodeTotalDefisc;
						//document.getElementById('periodePartielDefisc').innerHTML =  periodePartielDefisc;
						//document.getElementById('periodeRendement').innerHTML =  periodeRendement;
						//document.getElementById('prixRevient').innerHTML =  Ar_DeuxDecimal(prixRevient);
						//document.getElementById('revenuNetAnnuels').innerHTML =  Ar_DeuxDecimal(revenuNetAnnuels);
						
						//document.getElementById('tabSyntheseRendTotalDefisc').innerHTML =  tabSyntheseRendTotalDefisc;
						
						//document.getElementById('tabSyntheseRendPartielDefisc').innerHTML =  tabSyntheseRendPartielDefisc;
						//document.getElementById('rentabiliteSommeInvestie').innerHTML =  Ar_DeuxDecimal(rentabiliteSommeInvestie);
						//document.getElementById('totalRevenusNetsDispoTotalDefisc').innerHTML =  Ar_DeuxDecimal(totalRevenusNetsDispoTotalDefisc);
						//document.getElementById('totalResultatFiscalTotalDefisc').innerHTML =  Ar_DeuxDecimal(totalResultatFiscalTotalDefisc);
						//document.getElementById('totalIncidenceRevenuTotalDefisc').innerHTML =  Ar_DeuxDecimal(totalIncidenceRevenuTotalDefisc);
						//document.getElementById('totalRevenusNetsDispoPartielDefisc').innerHTML =  Ar_DeuxDecimal(totalRevenusNetsDispoPartielDefisc);
						//document.getElementById('totalResultatFiscalPartielDefisc').innerHTML =  Ar_DeuxDecimal(totalResultatFiscalPartielDefisc);
						//document.getElementById('totalIncidenceRevenuPartielDefisc').innerHTML =  Ar_DeuxDecimal(totalIncidenceRevenuPartielDefisc);
						//document.getElementById('partFisc').innerHTML =  partFisc;
						
						
					}
					else
					{
						alert('Calcul impossible. Veuillez vérifier vos données.');	
						
						ChangeClass('resultats', 'invisible');
						ChangeClass('loader', 'invisible');
						ChangeClass('formulaire', 'visible');
					}
					
				}
			  xmlFromString(xmlString);
			  }
			}
}

