var currentSubmenuDisplayed = "";

window.onload = function()
{
	setOpacity ( 'mainArea' , 0.85 );
}


// Gestion du système de focus
function setOpacity ( divId , opacity )
{
	document.getElementById ( divId ).style.opacity = opacity;
}


// Gestion du système Google Maps

var map;
var markersArray = [];
var markersDataArray = new Array();
var marker;
var latLng;

markersDataArray.push ( new Array ( "Europe Habitat, Les bureaux du Lac II Rue Robert Caumont Immeuble P 33049 Bordeaux Cedex" ,  44.874195 , -0.57543 ));

function initializeGoogleMaps()
{
	var mapOptions =
	{
		zoom: 6,
		center: new google.maps.LatLng ( 44.874195 , -0.57543 ),
		mapTypeId: google.maps.MapTypeId.ROADMAP
	};

	map = new google.maps.Map ( document.getElementById ( "map_canvas" ) , mapOptions );

	for ( i in markersDataArray )
	{
		addProductMarker ( new google.maps.LatLng ( markersDataArray[i][1] , markersDataArray[i][2] ) , markersDataArray[i][0] );
	}

	google.maps.event.addListener ( map , 'click' , function ( event )
	{
		deleteOverlays();
		addMarker ( event.latLng );

		var coordinate = event.latLng;
		var lat = coordinate.lat();
		var lng = coordinate.lng();
		
		document.getElementById ( "latitude" ).value = lat;
		document.getElementById ( "longitude" ).value = lng;
	});
}

function deleteOverlays()
{
	if (markersArray)
	{
		for (i in markersArray)
		{
			markersArray[i].setMap(null);
		}
		markersArray.length = 0;
	}
}
  
function addProductMarker ( location , name )
{
	marker = new google.maps.Marker
	({
		position: location,
		map: map,
		title: name
	});
	markersArray.push ( marker );
}
  
function addMarker ( location )
{
	marker = new google.maps.Marker
	({
		position: location,
		map: map,
		title: "Centre de votre recherche"
	});
	markersArray.push ( marker );
}


// étapes d'affichage de l'onglet achetez

function setAchetezButtonAction ( state )
{
	switch ( state )
	{
		case 1:
		{
			document.getElementById ( "submitSubarea" ).onclick = function() { setAchetezTailleTerrainChoisi(); };
			break;
		}
		case 2:
		{
			document.getElementById ( "submitSubarea" ).onclick = function() { setAchetezBudgetChoisi(); };
			break;
		}
		case 3:
		{
			document.getElementById ( "submitSubarea" ).onclick = function() { setAchetezCoordonneesChoisi(); };
			break;
		}
		case 4:
		{
			document.getElementById ( "submitSubarea" ).onclick = function() { submitAchetezNormalForm(); };
			break;
		}
		case 5:
		{
			document.getElementById ( "submitSubarea" ).onclick = function() { submitAchetezGeographicForm(); };
			break;
		}
	}
}

function setAchetezTypeBienChoisi()
{
	document.getElementById ( "achetez_rechercheTitre" ).innerHTML = 'RECHERCHE DE BIENS IMMOBILIERS - ÉTAPE 1/3 (suite)';

	objet = document.getElementById ( "typeProduit" );

	if (( objet.value == "maison" ) || ( objet.value == "appartement" ))
	{
		document.getElementById('achetez_typeDeBien_2').style.display='block';
		document.getElementById('achetez_typeDeBien_3').style.display='block';
	}
	else
	{
		document.getElementById('achetez_typeDeBien_2').style.display='none';
		document.getElementById('achetez_typeDeBien_3').style.display='none';
	}
	document.getElementById('achetez_typeDeBien_4').style.display='block';
	setAchetezButtonAction ( 1 );
}

function setAchetezTailleTerrainChoisi()
{
	document.getElementById ( "achetez_rechercheTitre" ).innerHTML = 'RECHERCHE DE BIENS IMMOBILIERS - ÉTAPE 2/3 : Définition de votre budget';
	document.getElementById('achetez_budget').style.display='block';
	setAchetezButtonAction ( 2 );
}

function setAchetezBudgetChoisi()
{
	requiredNumberData = new Array( "prixMinimum" , "prixMaximum" );

	var result = checkFormValue (  requiredNumberData , true , false );

	if ( result )
	{
/*		document.getElementById ( "achetez_rechercheTitre" ).innerHTML = 'RECHERCHE DE BIENS IMMOBILIERS - ÉTAPE 3/4 : Vos coordonnées';
		document.getElementById('achetez_coordonnees').style.display='block';
		setAchetezButtonAction ( 3 );*/

		document.getElementById ( "achetez_rechercheTitre" ).innerHTML = 'RECHERCHE DE BIENS IMMOBILIERS - ÉTAPE 3/3 : Localisation du bien';
		document.getElementById('achetez_localiser').style.display='block';
		document.getElementById('localisationSearch').style.display='block';
		document.getElementById ( "submitArea" ).style.display='none';
	}
}

function setAchetezCoordonneesChoisi()
{
	requiredNanData = new Array( "nom" , "prenom" , "adresse" , "villeAcheteur", "email" );
	requiredNumberData = new Array( "codePostalAcheteur" , "telephone" );
	numberData = new Array( "telephoneSecondaire" , "telephoneProfessionnel" );
	undefinedData = new Array( "titre" , "heureDeRappel" );

	var result = checkFormValue ( requiredNanData , true , true , false );
	result &= checkFormValue ( requiredNumberData , true , false , false );
	result &= checkFormValue ( numberData , false , false , false );
	result &= checkFormValue ( undefinedData , false , false , true );

	if ( result )
	{
		document.forms['achetezForm'].submit();
	}
}

function setAchetezNormalSearchChoisi()
{
	document.getElementById ( "distance" ).value="";
	document.getElementById ( "geographicSearch" ).style.display='none';
	document.getElementById ( "normalSearch" ).style.display='block';
	document.getElementById ( "achetez_rechercheTitre" ).innerHTML = 'RECHERCHE DE BIENS IMMOBILIERS - ÉTAPE 3/4 : Localisation normale du bien puis validation';
	setAchetezButtonAction ( 4 );
	
	document.getElementById ( "distanceArea" ).style.display='block';
	document.getElementById ( "submitArea" ).style.display='block';
}

function setAchetezGeographicSearchChoisi()
{
	document.getElementById ( "achetez_rechercheTitre" ).innerHTML = 'RECHERCHE DE BIENS IMMOBILIERS - ÉTAPE 3/4 : Localisation géographique du bien puis validation';
	document.getElementById ( "ville" ).value=-1;
	document.getElementById ( "normalSearch" ).style.display='none';
	document.getElementById ( "geographicSearch" ).style.display='block';
	initializeGoogleMaps();
	setAchetezButtonAction ( 5 );

	document.getElementById ( "distanceArea" ).style.display='block';
	document.getElementById ( "submitArea" ).style.display='block';
}

function submitAchetezNormalForm()
{
	requiredNumberData = new Array( "prixMinimum" , "prixMaximum" , "ville" );
//	numberData = new Array( "telephoneSecondaire" , "telephoneProfessionnel" );
//	undefinedData = new Array( "titre" , "heureDeRappel" );

	var result = checkFormValue ( requiredNumberData , true , false , false );
	result &= checkFormValue ( numberData , false , false , false );
	result &= checkFormValue ( undefinedData , false , false , true );

	if ( result )
	{
		document.forms['achetezForm'].submit();
	}
}

function submitAchetezGeographicForm()
{
//	requiredNanData = new Array( "nom" , "prenom" , "adresse" , "villeAcheteur", "email" );
	requiredNumberData = new Array( "prixMinimum" , "prixMaximum" , "distance" );
//	numberData = new Array( "telephoneSecondaire" , "telephoneProfessionnel" );
//	undefinedData = new Array( "titre" , "heureDeRappel" );

	var result = checkFormValue ( requiredNanData , true , true , false );
	result &= checkFormValue ( requiredNumberData , true , false , false );
	result &= checkFormValue ( numberData , false , false , false );
	result &= checkFormValue ( undefinedData , false , false , true );

	if ( result )
	{
		document.forms['achetezForm'].submit();
	}
}

// étapes d'affichage de l'onglet vendez

function setVendezButtonAction ( state )
{
	switch ( state )
	{
		case 1:
		{
			document.getElementById ( "submitSubarea" ).onclick = function() { setVendezTailleTerrainChoisi(); };
			break;
		}
		case 2:
		{
			document.getElementById ( "submitSubarea" ).onclick = function() { setVendezBudgetChoisi(); };
			break;
		}
		case 3:
		{
			document.getElementById ( "submitSubarea" ).onclick = function() { setVendezCoordonneesChoisi(); };
			break;
		}
		case 4:
		{
			document.getElementById ( "submitSubarea" ).onclick = function() { submitVendezForm(); };
			break;
		}
	}
}

function setVendezTypeBienChoisi()
{
	document.getElementById ( "vendez_rechercheTitre" ).innerHTML = 'VENTE DE BIENS IMMOBILIERS - ÉTAPE 1/4';

	objet = document.getElementById ( "typeProduit" );

	if (( objet.value == "maison" ) || ( objet.value == "appartement" ))
	{
		document.getElementById('vendez_typeDeBien_2').style.display='block';
		document.getElementById('vendez_typeDeBien_3').style.display='block';
	}
	else
	{
		document.getElementById('vendez_typeDeBien_2').style.display='none';
		document.getElementById('vendez_typeDeBien_3').style.display='none';
	}
	document.getElementById('vendez_typeDeBien_4').style.display='block';
	setVendezButtonAction ( 1 );
}

function setVendezTailleTerrainChoisi()
{
	document.getElementById ( 'vendez_rechercheTitre' ).innerHTML = 'VENTE DE BIENS IMMOBILIERS - ÉTAPE 2/4 : Définition de votre budget';
	document.getElementById('vendez_budget').style.display='block';
	setVendezButtonAction ( 2 );
}

function setVendezBudgetChoisi()
{
	requiredNumberData = new Array( "prixMinimum" , "prixMaximum" );
	var result = checkFormValue ( requiredNumberData , true , false );

	if ( result )
	{
			document.getElementById ( 'vendez_rechercheTitre' ).innerHTML = 'VENTE DE BIENS IMMOBILIERS - ÉTAPE 3/4 : Localisation du bien';
			initializeGoogleMaps();
			setVendezButtonAction ( 3 );
			document.getElementById('vendez_localiser').style.display='block';
	}
}

function setVendezCoordonneesChoisi()
{
	requiredNanData = new Array( "ville" );
	requiredNumberData = new Array( "prixMinimum" , "prixMaximum" , "codePostal" );

	var result = checkFormValue ( requiredNanData , true , true );
	result &= checkFormValue ( requiredNumberData , true , false );

	if ( result )
	{
		document.getElementById('vendez_coordonnees').style.display='block';
		document.getElementById ( 'vendez_rechercheTitre' ).innerHTML = 'VENTE DE BIENS IMMOBILIERS - ÉTAPE 4/4 : Vos coordonnées';
		setVendezButtonAction ( 4 );
	}
}

var checkFormOk = "#fff";
var checkFormKo = "#f88";
var requiredNanData = new Array();
var requiredNumberData = new Array();
var numberData = new Array();
var nanData = new Array();
var undefinedData = new Array();

function checkFormValue ( data , isRequired , isNanValue , isUndefined )
{
	var result = true;	// c'est ok à moins de rencontrer une erreur
	var dataEntry;
	var dataValue;

	for ( i in data )
	{
		dataEntry = document.getElementById ( data[i] );
/**/
		if ( dataEntry == null )
		{
			alert ( data[i] );
			break;
		}
/**/
		dataValue = dataEntry.value;

		// est-ce requis mais non inséré ?
		if (( dataValue.length < 1 ) && ( isRequired ))
		{
			dataEntry.style.background = checkFormKo;
			result = false;
/*
alert ( data[i] );
*/
			continue;
		}

		// est-ce un nombre ?
		if (( !isNaN ( dataValue )) && ( !isNanValue ) && ( dataValue >= 0 ))
		{
			dataEntry.style.background = checkFormOk;
		}
		else if ((( isNaN ( dataValue )) || ( dataValue.length == 0 )) && ( isNanValue ))
		{
			dataEntry.style.background = checkFormOk;
		}
		else if (( dataValue != "Non défini" ) && ( isUndefined ))
		{
			dataEntry.style.background = checkFormOk;
		}
		else
		{
			dataEntry.style.background = checkFormKo;
			result = false;
/**/
alert ( data[i] );
/**/
		}
	}
	return result;
}

function removeFromArray ( arrayToModify , valueToRemove )
{
	var max = arrayToModify.length
	for ( i = 0 ; i < max ; ++i )
	{
		if ( arrayToModify [i] == valueToRemove )
		{
			arrayToModify[i] = arrayToModify[max - 1];
			arrayToModify.pop();
			break;
		}
	}
}

function addToArray ( arrayToModify , valueToAdd )
{
	var max = arrayToModify.length
	for ( i = 0 ; i < max ; ++i )
	{
		if ( arrayToModify [i] == valueToAdd )
		{
			return false;
		}
	}
	arrayToModify.push ( valueToAdd );
	return true;
}



function submitVendezForm()
{
	requiredNanData = new Array( "ville", "nom" , "prenom" , "adresse" , "villeVendeur", "email" );
	requiredNumberData = new Array( "prixMinimum" , "prixMaximum" , "codePostal" , "codePostalVendeur" , "telephone" );
	numberData = new Array( "telephoneSecondaire" , "telephoneProfessionnel" );
	undefinedData = new Array( "titre" , "heureDeRappel" );
	
	var result = checkFormValue ( requiredNanData , true , true , false );
	result &= checkFormValue ( requiredNumberData , true , false , false );
	result &= checkFormValue ( numberData , false , false , false );
	result &= checkFormValue ( undefinedData , false , false , true );
	if ( result )
		document.forms['vendezForm'].submit();
}


// étapes d'affichage de l'onglet rénovez

function setRenovezButtonAction ( state )
{
	switch ( state )
	{
		case 1:
		{
			document.getElementById ( "submitSubarea" ).onclick = function() { setZone1Choisi(); };
			break;
		}
		case 2:
		{
			document.getElementById ( "submitSubarea" ).onclick = function() { setZone2Choisi(); };
			break;
		}
		case 3:
		{
			document.getElementById ( "submitSubarea" ).onclick = function() { setZone3Choisi(); };
			break;
		}
		case 4:
		{
			document.getElementById ( "submitSubarea" ).onclick = function() { submitRenovezForm(); };
			break;
		}
	}
}



function submitRenovezForm()
{
	addToArray ( requiredNanData , "nom" );
	addToArray ( requiredNanData , "prenom" );
	addToArray ( requiredNanData , "adresse" );
	addToArray ( requiredNanData , "ville" );
	addToArray ( requiredNanData , "email" );
	addToArray ( requiredNanData , "detailsDuProjet" );
	
	addToArray ( requiredNumberData , "codePostal" );
	addToArray ( requiredNumberData , "telephone" );

	addToArray ( numberData , "telephonePortable" );
	addToArray ( numberData , "telephoneProfessionnel" );
	
	addToArray ( undefinedData , "particulierOuProfessionnel" );
	addToArray ( undefinedData , "particulierOuProfessionnel" );
	addToArray ( undefinedData , "proprietaireOuLocataire" );
	addToArray ( undefinedData , "travauxARealiserDans" );
	addToArray ( undefinedData , "typeDeProjet" );
	addToArray ( undefinedData , "gammeDeMateriaux" );
	addToArray ( undefinedData , "architecte" );
	addToArray ( undefinedData , "sujetFinancement" );
	addToArray ( undefinedData , "titre" );
	addToArray ( undefinedData , "heureDeRappel" );
	addToArray ( undefinedData , "chantierSitueALaMemeAdresse" );

	var result = checkFormValue ( requiredNanData , true , true , false );
	result &= checkFormValue ( requiredNumberData , true , false , false );
	result &= checkFormValue ( numberData , false , false , false );
	result &= checkFormValue ( nanData , false , true , false );
	result &= checkFormValue ( undefinedData , false , false , true );

	if ( result )
		document.forms['renovezForm'].submit();
}



function onTravauxARealiserDansChange()
{
	if ( document.getElementById('travauxARealiserDans').value == 'Autre' )
	{
		document.getElementById('travauxARealiserDansDetailsArea').style.display='block';
		nanData.push ( "travauxARealiserDansDetails" );
	}
	else
	{
		document.getElementById('travauxARealiserDansDetailsArea').style.display='none';
		removeFromArray ( nanData , "travauxARealiserDansDetails" );
	}
}

function onTypeDeProjetEnDetailsChange()
{
	if ( document.getElementById('typeDeProjet').value == 'Autre' )
	{
		document.getElementById('typeDeProjetEnDetailsArea').style.display='block';
		nanData.push ( "typeDeProjetEnDetails" );
	}
	else
	{
		document.getElementById('typeDeProjetEnDetailsArea').style.display='none';
		removeFromArray ( nanData , "typeDeProjetEnDetails" );
	}
}

function onChantierSitueALaMemeAdresseChange()
{
	if ( document.getElementById('chantierSitueALaMemeAdresse').value == 'Non' )
	{
		document.getElementById('adresseDuChantierArea').style.display='block';
		document.getElementById('codePostalEtVilleDuChantier').style.display='block';
		requiredNanData.push ( "adresseDuChantier" );
		requiredNumberData.push ( "codePostalChantier" );
		requiredNanData.push ( "villeChantier" );
	}
	else
	{
		document.getElementById('adresseDuChantierArea').style.display='none';
		document.getElementById('codePostalEtVilleDuChantier').style.display='none';
		removeFromArray ( requiredNanData , "adresseDuChantier" );
		removeFromArray ( requiredNumberData , "codePostalChantier" );
		removeFromArray ( requiredNanData , "villeChantier" );
	}
}

function onBesoinArchitecteChange()
{
	if ( document.getElementById('architecte').value == 'Non' )
	{
		document.getElementById('besoinArchitecteArea').style.display = 'block';
		undefinedData.push ( "besoinArchitecte" );
	}
	else
	{
		document.getElementById('besoinArchitecteArea').style.display = 'none';
		removeFromArray ( undefinedData , "besoinArchitecte" );

	}
}

function onSearchClick()
{
	if ( document.getElementById('recherche').value == 'Rechercher...' )
		document.getElementById('recherche').value = '';
}

function getProductDetails ( productId )
{
	window.location.href = "spip.php?page=produit&productId=" + productId;
}

function submitAndGetProductDetails ( productId )
{
	document.forms['achetezForm'].action="spip.php?page=produit&productId=" + productId;
	document.forms['achetezForm'].submit();
}

function getProductDetailsFromIdNegociateur ( productId , idNegociateur )
{
	window.location.href = "spip.php?page=produit&productId=" + productId + "&id_negociateur=" + idNegociateur;
}

function onNombreEmprunteursChange()
{
	if ( document.getElementById('nombreEmprunteurs').value == 'coemprunteur' )
	{
		var values = new Array ( "titreDuCoemprunteur" , "nomDuCoemprunteur" , "prenomDuCoemprunteur" , "adresseDuCoemprunteur" , "codePostalDuCoemprunteur" , "villeDuCoemprunteur" , "paysDuCoemprunteur" , "residanceDuCoemprunteur" , "emailDuCoemprunteur" , "telephoneDuCoemprunteur" , "telephonePortableDuCoemprunteur" , "telephoneProfessionnelDuCoemprunteur" , "dateDeNaissanceDuCoemprunteur" , "lieuDeNaissanceDuCoemprunteur" , "nationaliteDuCoemprunteur" , "revenusAnnuelsDuCoemprunteur" , "montantAnnuelDesPrimesDuCoemprunteur" , "banquePrincipalDuCoemprunteur" , "categorieProfessionnelleDuCoemprunteur" , "precisionSurLaCategorieProfessionnelleDuCoemprunteur" , "contratDeTravailDuCoemprunteur" , "typeDeContratDuCoemprunteur" , "precisionSurLeTypeDeContratDuCoemprunteur" , "mutuelleDeLaFonctionPubliqueDuCoemprunteur" , "nomEmployeurDuCoemprunteur" , "intituleDeLaProfessionDuCoemprunteur" , "ancienneteDuTravailDuCoemprunteur" , "travailAEtrangerDuCoemprunteur" , "codePostalDuTravailDuCoemprunteur" , "coordonneesDuCoemprunteurTitle" , "revenusDuCoemprunteurTitle" , "financementsDuCoemprunteurTitle" , "informationsProfessionnellesDuCoemprunteurTitle" , "revenusAnnuelsDuCoemprunteurLabel" , "montantAnnuelDesPrimesDuCoemprunteurLabel" );
		
		for ( i in values )
		{
			document.getElementById( values[i] ).style.display='inline';
		}

		undefinedData.push ( "titreDuCoemprunteur" );
		requiredNanData.push ( "nomDuCoemprunteur" );
		requiredNanData.push ( "prenomDuCoemprunteur" );
		requiredNanData.push ( "adresseDuCoemprunteur" );
		requiredNumberData.push ( "codePostalDuCoemprunteur" );
		requiredNanData.push ( "villeDuCoemprunteur" );
		requiredNanData.push ( "paysDuCoemprunteur" );
		undefinedData.push ( "residanceDuCoemprunteur" );
		requiredNanData.push ( "emailDuCoemprunteur" );
		requiredNumberData.push ( "telephoneDuCoemprunteur" );
		requiredNumberData.push ( "telephonePortableDuCoemprunteur" );
		requiredNumberData.push ( "telephoneProfessionnelDuCoemprunteur" );
		requiredNanData.push ( "dateDeNaissanceDuCoemprunteur" );
		requiredNanData.push ( "lieuDeNaissanceDuCoemprunteur" );
		requiredNanData.push ( "nationaliteDuCoemprunteur" );
		requiredNumberData.push ( "revenusAnnuelsDuCoemprunteur" );
		requiredNumberData.push ( "montantAnnuelDesPrimesDuCoemprunteur" );
		undefinedData.push ( "banquePrincipalDuCoemprunteur" );
		undefinedData.push ( "categorieProfessionnelleDuCoemprunteur" );
		undefinedData.push ( "precisionSurLaCategorieProfessionnelleDuCoemprunteur" );
		undefinedData.push ( "contratDeTravailDuCoemprunteur" );
		undefinedData.push ( "typeDeContratDuCoemprunteur" );
		undefinedData.push ( "precisionSurLeTypeDeContratDuCoemprunteur" );
		undefinedData.push ( "mutuelleDeLaFonctionPubliqueDuCoemprunteur" );
		requiredNanData.push ( "nomEmployeurDuCoemprunteur" );
		requiredNanData.push ( "intituleDeLaProfessionDuCoemprunteur" );
		requiredNanData.push ( "ancienneteDuTravailDuCoemprunteur" );
		requiredNumberData.push ( "codePostalDuTravailDuCoemprunteur" );
		undefinedData.push ( "travailAEtrangerDuCoemprunteur" );
	}
	else
	{
		var values = new Array ( "titreDuCoemprunteur" , "nomDuCoemprunteur" , "prenomDuCoemprunteur" , "adresseDuCoemprunteur" , "codePostalDuCoemprunteur" , "villeDuCoemprunteur" , "paysDuCoemprunteur" , "residanceDuCoemprunteur" , "emailDuCoemprunteur" , "telephoneDuCoemprunteur" , "telephonePortableDuCoemprunteur" , "telephoneProfessionnelDuCoemprunteur" , "dateDeNaissanceDuCoemprunteur" , "lieuDeNaissanceDuCoemprunteur" , "nationaliteDuCoemprunteur" , "revenusAnnuelsDuCoemprunteur" , "montantAnnuelDesPrimesDuCoemprunteur" , "banquePrincipalDuCoemprunteur" , "categorieProfessionnelleDuCoemprunteur" , "precisionSurLaCategorieProfessionnelleDuCoemprunteur" , "contratDeTravailDuCoemprunteur" , "typeDeContratDuCoemprunteur" , "precisionSurLeTypeDeContratDuCoemprunteur" , "mutuelleDeLaFonctionPubliqueDuCoemprunteur" , "nomEmployeurDuCoemprunteur" , "intituleDeLaProfessionDuCoemprunteur" , "ancienneteDuTravailDuCoemprunteur" , "travailAEtrangerDuCoemprunteur" , "codePostalDuTravailDuCoemprunteur" , "coordonneesDuCoemprunteurTitle" , "revenusDuCoemprunteurTitle" , "financementsDuCoemprunteurTitle" , "informationsProfessionnellesDuCoemprunteurTitle" , "revenusAnnuelsDuCoemprunteurLabel" , "montantAnnuelDesPrimesDuCoemprunteurLabel" );
		
		for ( i in values )
		{
			document.getElementById( values[i] ).style.display='none';
		}
		
		removeFromArray ( undefinedData , "titreDuCoemprunteur" );
		removeFromArray ( requiredNanData , "nomDuCoemprunteur" );
		removeFromArray ( requiredNanData , "prenomDuCoemprunteur" );
		removeFromArray ( requiredNanData , "adresseDuCoemprunteur" );
		removeFromArray ( requiredNumberData , "codePostalDuCoemprunteur" );
		removeFromArray ( requiredNanData , "villeDuCoemprunteur" );
		removeFromArray ( requiredNanData , "paysDuCoemprunteur" );
		removeFromArray ( undefinedData , "residanceDuCoemprunteur" );
		removeFromArray ( requiredNanData , "emailDuCoemprunteur" );
		removeFromArray ( requiredNumberData , "telephoneDuCoemprunteur" );
		removeFromArray ( requiredNumberData , "telephonePortableDuCoemprunteur" );
		removeFromArray ( requiredNumberData , "telephoneProfessionnelDuCoemprunteur" );
		removeFromArray ( requiredNanData , "dateDeNaissanceDuCoemprunteur" );
		removeFromArray ( requiredNanData , "lieuDeNaissanceDuCoemprunteur" );
		removeFromArray ( requiredNanData , "nationaliteDuCoemprunteur" );
		removeFromArray ( requiredNumberData , "revenusAnnuelsDuCoemprunteur" );
		removeFromArray ( requiredNumberData , "montantAnnuelDesPrimesDuCoemprunteur" );
		removeFromArray ( undefinedData , "banquePrincipalDuCoemprunteur" );
		removeFromArray ( undefinedData , "categorieProfessionnelleDuCoemprunteur" );
		removeFromArray ( undefinedData , "precisionSurLaCategorieProfessionnelleDuCoemprunteur" );
		removeFromArray ( undefinedData , "contratDeTravailDuCoemprunteur" );
		removeFromArray ( undefinedData , "typeDeContratDuCoemprunteur" );
		removeFromArray ( undefinedData , "precisionSurLeTypeDeContratDuCoemprunteur" );
		removeFromArray ( undefinedData , "mutuelleDeLaFonctionPubliqueDuCoemprunteur" );
		removeFromArray ( requiredNanData , "nomEmployeurDuCoemprunteur" );
		removeFromArray ( requiredNanData , "intituleDeLaProfessionDuCoemprunteur" );
		removeFromArray ( requiredNanData , "ancienneteDuTravailDuCoemprunteur" );
		removeFromArray ( requiredNumberData , "codePostalDuTravailDuCoemprunteur" );
		removeFromArray ( undefinedData , "travailAEtrangerDuCoemprunteur" );
	}
}


function onUsageBienChange ( trigger )
{
	if ( trigger.value == 'mixte' )
	{
		document.getElementById( 'preciserLeProjetArea' ).style.display='inline';
		undefinedData.push ( "preciserLeProjet" );
	}
	else
	{
		document.getElementById( 'preciserLeProjetArea' ).style.display='none';
		removeFromArray ( undefinedData , "preciserLeProjet" );
	}
}

function onSituationActuelleChange ( trigger )
{
	if ( trigger.value == 'proprietaire' )
	{
		document.getElementById( 'futurDeLaResidencePrincipaleArea' ).style.display='inline';
		undefinedData.push ( "futurDeLaResidencePrincipale" );
	}
	else
	{
		document.getElementById( 'futurDeLaResidencePrincipaleArea' ).style.display='none';
		removeFromArray ( undefinedData , "futurDeLaResidencePrincipale" );
	}
}

function onNiveauAvancementChange ( trigger )
{
	if ( trigger.value == 'signatureProche' )
	{
		document.getElementById( 'dateFutureSignatureCompromisArea' ).style.display='block';
		document.getElementById( 'dateSignatureCompromisArea' ).style.display='none';
		undefinedData.push ( "dateFutureSignatureCompromis" );
		removeFromArray ( requiredNanData , "dateSignatureCompromis" );
	}
	else if ( trigger.value == 'dejaSigne' )
	{
		document.getElementById( 'dateSignatureCompromisArea' ).style.display='block';
		document.getElementById( 'dateFutureSignatureCompromisArea' ).style.display='none';
		undefinedData.push ( "dateSignatureCompromis" );
		removeFromArray ( undefinedData , "dateFutureSignatureCompromis" );
	}
	else
	{
		document.getElementById( 'dateFutureSignatureCompromisArea' ).style.display='none';
		document.getElementById( 'dateSignatureCompromisArea' ).style.display='none';
		removeFromArray ( undefinedData , "dateFutureSignatureCompromis" );
		removeFromArray ( requiredNanData , "dateSignatureCompromis" );
	}
}

function onResidencePrincipaleChange ( trigger )
{
	if ( trigger.checked == true )
	{
		document.getElementById( 'valeurTotaleDeLaResidencePrincipalArea' ).style.display='block';
		requiredNumberData.push ( "valeurTotaleDeLaResidencePrincipal" );
		requiredNumberData.push ( "capitalRestantDuPourLaResidencePrincipal" );
	}
	else
	{
		document.getElementById( 'valeurTotaleDeLaResidencePrincipalArea' ).style.display='none';
		removeFromArray ( requiredNumberData , "valeurTotaleDeLaResidencePrincipal" );
		removeFromArray ( requiredNumberData , "capitalRestantDuPourLaResidencePrincipal" );
	}
}

function onResidenceSecondaireChange ( trigger )
{
	if ( trigger.checked == true )
	{
		document.getElementById( 'valeurTotaleDesResidencesSecondairesArea' ).style.display='block';
		requiredNumberData.push ( "valeurTotaleDesResidencesSecondaires" );
		requiredNumberData.push ( "capitalRestantDuPourLesResidencesSecondaires" );
	}
	else
	{
		document.getElementById( 'valeurTotaleDesResidencesSecondairesArea' ).style.display='none';
		removeFromArray ( requiredNumberData , "valeurTotaleDesResidencesSecondaires" );
		removeFromArray ( requiredNumberData , "capitalRestantDuPourLesResidencesSecondaires" );
	}
}

function onInvestissementLocatifChange ( trigger )
{
	if ( trigger.checked == true )
	{
		document.getElementById( 'valeurTotaleDeLInvestissementLocatifArea' ).style.display='block';
		requiredNumberData.push ( "valeurTotaleDeLInvestissementLocatif" );
		requiredNumberData.push ( "capitalRestantDuPourLInvestissementLocatif" );
	}
	else
	{
		document.getElementById( 'valeurTotaleDeLInvestissementLocatifArea' ).style.display='none';
		removeFromArray ( requiredNumberData , "valeurTotaleDeLInvestissementLocatif" );
		removeFromArray ( requiredNumberData , "capitalRestantDuPourLInvestissementLocatif" );
	}
}

function onAutrePatrimoineChange ( trigger )
{
	if ( trigger.checked == true )
	{
		document.getElementById( 'valeurTotaleDesAutresPatrimoinesArea' ).style.display='block';
		requiredNumberData.push ( "valeurTotaleDesAutresPatrimoines" );
		requiredNumberData.push ( "capitalRestantDuPourLesAutresPatrimoines" );
	}
	else
	{
		document.getElementById( 'valeurTotaleDesAutresPatrimoinesArea' ).style.display='none';
		removeFromArray ( requiredNumberData , "valeurTotaleDesAutresPatrimoines" );
		removeFromArray ( requiredNumberData , "capitalRestantDuPourLesAutresPatrimoines" );
	}
}

function onEpargneChange ( trigger )
{
	if ( trigger.checked == true )
	{
		document.getElementById( 'financierTresorerieArea' ).style.display='block';
		requiredNumberData.push ( "financierTresorerie" );
	}
	else
	{
		document.getElementById( 'financierTresorerieArea' ).style.display='none';
		removeFromArray ( requiredNumberData , "financierTresorerie" );
	}
}

function onBourseChange ( trigger )
{
	if ( trigger.checked == true )
	{
		document.getElementById( 'financierBoursierArea' ).style.display='block';
		requiredNumberData.push ( "financierBoursier" );
	}
	else
	{
		document.getElementById( 'financierBoursierArea' ).style.display='none';
		removeFromArray ( requiredNumberData , "financierBoursier" );
	}
}

function onPlacementsChange ( trigger )
{
	if ( trigger.checked == true )
	{
		document.getElementById( 'financierPlacementsArea' ).style.display='block';
		requiredNumberData.push ( "financierPlacements" );
	}
	else
	{
		document.getElementById( 'financierPlacementsArea' ).style.display='none';
		removeFromArray ( requiredNumberData , "financierPlacements" );
	}
}

function onAutresPatrimoinesFinanciersChange ( trigger )
{
	if ( trigger.checked == true )
	{
		document.getElementById( 'financierAutreArea' ).style.display='block';
		requiredNumberData.push ( "financierAutre" );
	}
	else
	{
		document.getElementById( 'financierAutreArea' ).style.display='none';
		removeFromArray ( requiredNumberData , "financierAutre" );
	}
}

function onFinancierTotauxChange()
{
	var total = 0;
	
	var valeur = document.getElementById( 'financierBoursier' ).value;
	if ( !isNaN ( valeur ))
		total += parseInt ( valeur );

	valeur = document.getElementById( 'financierPlacements' ).value;
	if ( !isNaN ( valeur ))
		total += parseInt ( valeur );

	valeur = document.getElementById( 'financierTresorerie' ).value;
	if ( !isNaN ( valeur ))
		total += parseInt ( valeur );

	valeur = document.getElementById( 'financierAutre' ).value;
	if ( !isNaN ( valeur ))
		total += parseInt ( valeur );

	document.getElementById( 'financierTotaux' ).value = total;
}

function onValeurTotaleDesBiensChange()
{
	var total = 0;

	var valeur = document.getElementById( 'valeurTotaleDeLaResidencePrincipal' ).value;
	if ( !isNaN ( valeur ))
		total += parseInt ( valeur );

	valeur = document.getElementById( 'valeurTotaleDesResidencesSecondaires' ).value;
	if ( !isNaN ( valeur ))
		total += parseInt ( valeur );

	valeur = document.getElementById( 'valeurTotaleDeLInvestissementLocatif' ).value;
	if ( !isNaN ( valeur ))
		total += parseInt ( valeur );

	valeur = document.getElementById( 'valeurTotaleDesAutresPatrimoines' ).value;
	if ( !isNaN ( valeur ))
		total += parseInt ( valeur );

	document.getElementById( 'valeurTotaleDesBiens' ).value = total;
}


function onCapitalRestantDuTotalChange()
{
	var total = 0;
	
	var valeur = document.getElementById( 'capitalRestantDuPourLaResidencePrincipal' ).value;
	if ( !isNaN ( valeur ))
		total += parseInt ( valeur );

	valeur = document.getElementById( 'capitalRestantDuPourLesResidencesSecondaires' ).value;
	if ( !isNaN ( valeur ))
		total += parseInt ( valeur );

	valeur = document.getElementById( 'capitalRestantDuPourLInvestissementLocatif' ).value;
	if ( !isNaN ( valeur ))
		total += parseInt ( valeur );

	valeur = document.getElementById( 'capitalRestantDuPourLesAutresPatrimoines' ).value;
	if ( !isNaN ( valeur ))
		total += parseInt ( valeur );

	document.getElementById( 'capitalRestantDuTotal' ).value = total;
}


function oncreditDeLaResidencePrincipaleChange ( trigger )
{
	if ( trigger.checked == true )
	{
		document.getElementById( 'creditDelaResidencePrincipaleArea' ).style.display='block';
		requiredNumberData.push ( "mensualiteDuCreditDelaResidencePrincipale" );
		requiredNumberData.push ( "dureeDuCreditDelaResidencePrincipale" );
	}
	else
	{
		document.getElementById( 'creditDelaResidencePrincipaleArea' ).style.display='none';
		removeFromArray ( requiredNumberData , "mensualiteDuCreditDelaResidencePrincipale" );
		removeFromArray ( requiredNumberData , "dureeDuCreditDelaResidencePrincipale" );
	}
}

function oncreditDesResidencesSecondairesChange ( trigger )
{
	if ( trigger.checked == true )
	{
		document.getElementById( 'creditDesResidencesSecondairesArea' ).style.display='block';
		requiredNumberData.push ( "mensualiteDuCreditDesResidencesSecondairesMensualite" );
		requiredNumberData.push ( "dureeDuCreditDesResidencesSecondairesMensualite" );
	}
	else
	{
		document.getElementById( 'creditDesResidencesSecondairesArea' ).style.display='none';
		removeFromArray ( requiredNumberData , "mensualiteDuCreditDesResidencesSecondairesMensualite" );
		removeFromArray ( requiredNumberData , "dureeDuCreditDesResidencesSecondairesMensualite" );
	}
}

function oncreditDeLInvestissementLocatifChange ( trigger )
{
	if ( trigger.checked == true )
	{
		document.getElementById( 'creditDeLInvestissementLocatifArea' ).style.display='block';
		requiredNumberData.push ( "mensualiteDuCreditDeLInvestissementLocatif" );
		requiredNumberData.push ( "dureeDuCreditDeLInvestissementLocatif" );
	}
	else
	{
		document.getElementById( 'creditDeLInvestissementLocatifArea' ).style.display='none';
		removeFromArray ( requiredNumberData , "mensualiteDuCreditDeLInvestissementLocatif" );
		removeFromArray ( requiredNumberData , "dureeDuCreditDeLInvestissementLocatif" );
	}
}

function onCreditDuTerrainChange ( trigger )
{
	if ( trigger.checked == true )
	{
		document.getElementById( 'creditDuTerrainArea' ).style.display='block';
		requiredNumberData.push ( "mensualiteDuCreditDuTerrain" );
		requiredNumberData.push ( "dureeDuCreditDuTerrain" );
	}
	else
	{
		document.getElementById( 'creditDuTerrainArea' ).style.display='none';
		removeFromArray ( requiredNumberData , "mensualiteDuCreditDuTerrain" );
		removeFromArray ( requiredNumberData , "dureeDuCreditDuTerrain" );
	}
}

function onCreditALaConsommationChange ( trigger )
{
	if ( trigger.checked == true )
	{
		document.getElementById( 'creditALaConsommationArea' ).style.display='block';
		requiredNumberData.push ( "mensualiteDuCreditALaConsommation" );
		requiredNumberData.push ( "dureeDuCreditALaConsommation" );
	}
	else
	{
		document.getElementById( 'creditALaConsommationArea' ).style.display='none';
		removeFromArray ( requiredNumberData , "mensualiteDuCreditALaConsommation" );
		removeFromArray ( requiredNumberData , "dureeDuCreditALaConsommation" );
	}
}

function onCreditVoitureChange ( trigger )
{
	if ( trigger.checked == true )
	{
		document.getElementById( 'creditVoitureArea' ).style.display='block';
		requiredNumberData.push ( "mensualiteDuCreditVoiture" );
		requiredNumberData.push ( "dureeDuCreditVoiture" );
	}
	else
	{
		document.getElementById( 'creditVoitureArea' ).style.display='none';
		removeFromArray ( requiredNumberData , "mensualiteDuCreditVoiture" );
		removeFromArray ( requiredNumberData , "dureeDuCreditVoiture" );
	}
}

function onCreditDeReserveDArgentChange ( trigger )
{
	if ( trigger.checked == true )
	{
		document.getElementById( 'creditDeReserveDArgentArea' ).style.display='block';
		requiredNumberData.push ( "mensualiteDuCreditDeReserveDArgent" );
		requiredNumberData.push ( "dureeDuCreditDeReserveDArgent" );
	}
	else
	{
		document.getElementById( 'creditDeReserveDArgentArea' ).style.display='none';
		removeFromArray ( requiredNumberData , "mensualiteDuCreditDeReserveDArgent" );
		removeFromArray ( requiredNumberData , "dureeDuCreditDeReserveDArgent" );
	}
}

function onAutresCreditsChange ( trigger )
{
	if ( trigger.checked == true )
	{
		document.getElementById( 'autresCreditsArea' ).style.display='block';
		requiredNumberData.push ( "mensualiteDesAutresCredits" );
		requiredNumberData.push ( "dureeDesAutresCredits" );
	}
	else
	{
		document.getElementById( 'autresCreditsArea' ).style.display='none';
		removeFromArray ( requiredNumberData , "mensualiteDesAutresCredits" );
		removeFromArray ( requiredNumberData , "dureeDesAutresCredits" );
	}
}

function onCelChange ( trigger )
{
	if ( trigger.checked == true )
	{
		document.getElementById( 'montantCELArea' ).style.display='block';
		requiredNumberData.push ( "montantCEL" );
	}
	else
	{
		document.getElementById( 'montantCELArea' ).style.display='none';
		removeFromArray ( requiredNumberData , "montantCEL" );
	}
}

function onPelChange ( trigger )
{
	if ( trigger.checked == true )
	{
		document.getElementById( 'montantPELArea' ).style.display='block';
		requiredNumberData.push ( "montantPEL" );
	}
	else
	{
		document.getElementById( 'montantPELArea' ).style.display='none';
		removeFromArray ( requiredNumberData , "montantPEL" );
	}
}

function onUnPourcentPatronalChange ( trigger )
{
	if ( trigger.checked == true )
	{
		document.getElementById( 'montantUnPourcentPatronalArea' ).style.display='block';
		requiredNumberData.push ( "montantUnPourcentPatronal" );
	}
	else
	{
		document.getElementById( 'montantUnPourcentPatronalArea' ).style.display='none';
		removeFromArray ( requiredNumberData , "montantUnPourcentPatronal" );
	}
}

function onPretsSubventionnesChange ( trigger )
{
	if ( trigger.checked == true )
	{
		document.getElementById( 'montantPretsSubventionnesArea' ).style.display='block';
		requiredNumberData.push ( "montantPretsSubventionnes" );
	}
	else
	{
		document.getElementById( 'montantPretsSubventionnesArea' ).style.display='none';
		removeFromArray ( requiredNumberData , "montantPretsSubventionnes" );
	}
}

function onAutresPretsAidesChange ( trigger )
{
	if ( trigger.checked == true )
	{
		document.getElementById( 'montantAutresPretsAidesArea' ).style.display='block';
		requiredNumberData.push ( "montantAutresPretsAides" );
	}
	else
	{
		document.getElementById( 'montantAutresPretsAidesArea' ).style.display='none';
		removeFromArray ( requiredNumberData , "montantAutresPretsAides" );
	}
}

function onCategorieProfessionnelleChange()
{
	var valeur = document.getElementById( 'categorieProfessionnelle' ).value;
	
	if ( valeur == 'salariePublic' )
	{
		document.getElementById( 'typeDeContrat' ).style.display='block';
		document.getElementById( 'precisionSurLeTypeDeContrat' ).style.display='block';
		document.getElementById( 'mutuelleDeLaFonctionPublique' ).style.display='block';
	}
	else
	{
		document.getElementById( 'typeDeContrat' ).style.display='none';
		document.getElementById( 'precisionSurLeTypeDeContrat' ).style.display='none';
		document.getElementById( 'mutuelleDeLaFonctionPublique' ).style.display='none';
	}
}

function onCategorieProfessionnelleChange()
{
	var valeur = document.getElementById( 'categorieProfessionnelle' ).value;
	
	if ( valeur == 'salariePublic' )
	{
		document.getElementById( 'typeDeContratArea' ).style.display='block';
		document.getElementById( 'precisionSurLeTypeDeContratArea' ).style.display='block';
		document.getElementById( 'mutuelleDeLaFonctionPubliqueArea' ).style.display='block';
		document.getElementById( 'typeDeContrat' ).style.display='inline';
		document.getElementById( 'precisionSurLeTypeDeContrat' ).style.display='inline';
		document.getElementById( 'mutuelleDeLaFonctionPublique' ).style.display='inline';
	}
	else
	{
		if ( document.getElementById( 'categorieProfessionnelleDuCoemprunteur' ).value != 'salariePublic' )
		{
			document.getElementById( 'typeDeContratArea' ).style.display='none';
			document.getElementById( 'precisionSurLeTypeDeContratArea' ).style.display='none';
			document.getElementById( 'mutuelleDeLaFonctionPubliqueArea' ).style.display='none';
		}
		document.getElementById( 'typeDeContrat' ).style.display='none';
		document.getElementById( 'precisionSurLeTypeDeContrat' ).style.display='none';
		document.getElementById( 'mutuelleDeLaFonctionPublique' ).style.display='none';
	}
}

function onCategorieProfessionnelleDuCoemprunteurChange()
{
	var valeur = document.getElementById( 'categorieProfessionnelleDuCoemprunteur' ).value;
	
	if ( valeur == 'salariePublic' )
	{
		document.getElementById( 'typeDeContratArea' ).style.display='block';
		document.getElementById( 'typeDeContratDuCoemprunteur' ).style.display='inline';
		document.getElementById( 'precisionSurLeTypeDeContratArea' ).style.display='block';
		document.getElementById( 'precisionSurLeTypeDeContratDuCoemprunteur' ).style.display='inline';
		document.getElementById( 'mutuelleDeLaFonctionPubliqueArea' ).style.display='block';
		document.getElementById( 'mutuelleDeLaFonctionPubliqueDuCoemprunteur' ).style.display='inline';
	}
	else
	{
		if ( document.getElementById( 'categorieProfessionnelle' ).value != 'salariePublic' )
		{
			document.getElementById( 'typeDeContratArea' ).style.display='none';
			document.getElementById( 'precisionSurLeTypeDeContratArea' ).style.display='none';
			document.getElementById( 'mutuelleDeLaFonctionPubliqueArea' ).style.display='none';
		}
		document.getElementById( 'typeDeContratDuCoemprunteur' ).style.display='none';
		document.getElementById( 'precisionSurLeTypeDeContratDuCoemprunteur' ).style.display='none';
		document.getElementById( 'mutuelleDeLaFonctionPubliqueDuCoemprunteur' ).style.display='none';
	}
}

function eraseProjetImmobilier()
{
	document.getElementById( 'niveauAvancementArea' ).style.display='none';
	document.getElementById( 'typeDeBienArea' ).style.display='none';
	document.getElementById( 'montantRembourserArea' ).style.display='none';
	document.getElementById( 'penalitesRemboursementAnticipeArea' ).style.display='none';
	document.getElementById( 'fraisGarantiesArea' ).style.display='none';
	removeFromArray ( undefinedData , "niveauAvancement" );
	removeFromArray ( undefinedData , "typeDeBien" );
	removeFromArray ( requiredNumberData , "montantRembourserArea" );
	removeFromArray ( requiredNumberData , "penalitesRemboursementAnticipeArea" );
	removeFromArray ( requiredNumberData , "fraisGarantiesArea" );
}

function onProjetImmobilierChange ( trigger )
{
	// On remet tout à plat
	eraseProjetImmobilier();

	// On force l'utilisateur à définir le type de bien
	document.getElementById('typeDeBien').value = "Non défini";
	eraseTypeDeBien();
	
	if ( trigger.value == "acquisition" )
	{
		document.getElementById( 'niveauAvancementArea' ).style.display='block';
		document.getElementById( 'typeDeBienArea' ).style.display='block';
		addToArray ( undefinedData , "niveauAvancement" );
		addToArray ( undefinedData , "typeDeBien" );
	}
	else if ( trigger.value == "construction" )
	{
		document.getElementById( 'niveauAvancementArea' ).style.display='block';
		document.getElementById( 'montantDesTravauxArea' ).style.display='block';
		document.getElementById( 'montantConstructionArea' ).style.display='block';
		addToArray ( undefinedData , "niveauAvancement" );
		addToArray ( requiredNumberData , "montantDesTravaux" );
		addToArray ( requiredNumberData , "montantConstruction" );
	}
	else if ( trigger.value == "travaux" )
	{
		document.getElementById( 'typeDeBienArea' ).style.display='block';
		document.getElementById( 'niveauAvancementArea' ).style.display='block';
		document.getElementById( 'montantDesTravauxArea' ).style.display='block';
		addToArray ( undefinedData , "typeDeBien" );
		addToArray ( undefinedData , "niveauAvancement" );
		addToArray ( requiredNumberData , "montantDesTravaux" );

	}
	else if ( trigger.value == "rachat" )
	{
		document.getElementById( 'montantRembourserArea' ).style.display='block';
		document.getElementById( 'penalitesRemboursementAnticipeArea' ).style.display='block';
		document.getElementById( 'fraisGarantiesArea' ).style.display='block';
		document.getElementById( 'typeDeBienArea' ).style.display='block';

		addToArray ( undefinedData , "typeDeBien" );
		addToArray ( requiredNumberData , "montantRembourserArea");
		addToArray ( requiredNumberData , "penalitesRemboursementAnticipeArea");
		addToArray ( requiredNumberData , "fraisGarantiesArea");
	}
}


function eraseTypeDeBien()
{
	removeFromArray ( requiredNumberData , "prixTerrain" );
	removeFromArray ( undefinedData , "etatDuBien" );
	removeFromArray ( requiredNumberData , "montantDesTravaux" );
	removeFromArray ( requiredNumberData , "montantConstruction" );
	removeFromArray ( requiredNumberData , "montantAcquisition" );
	removeFromArray ( requiredNumberData , "fraisDeNotaire" );
	document.getElementById( 'etatDuBienArea' ).style.display='none';
	document.getElementById( 'montantDesTravauxArea' ).style.display='none';
	document.getElementById( 'montantConstructionArea' ).style.display='none';
	document.getElementById( 'montantAcquisitionArea' ).style.display='none';
	document.getElementById( 'fraisDeNotaireArea' ).style.display='none';
	document.getElementById( 'prixTerrainArea' ).style.display='none';
}

function onTypeDeBien ( trigger )
{
	var projetImmobilier = document.getElementById( 'projetImmobilier' ).value;
	if (( projetImmobilier != "rachat" ) && ( projetImmobilier != "travaux" ))
	{
		eraseTypeDeBien();

		// Section terrain
		if ( trigger.value == "terrain" )
		{
			document.getElementById( 'prixTerrainArea' ).style.display='block';
			document.getElementById( 'fraisDeNotaireArea' ).style.display='block';
			addToArray ( requiredNumberData , "prixTerrain" );
			addToArray ( requiredNumberData , "fraisDeNotaire" );
		}
		else if ( trigger.value == "terrainConstruction" )
		{
			document.getElementById( 'prixTerrainArea' ).style.display='block';
			document.getElementById( 'montantDesTravauxArea' ).style.display='block';
			document.getElementById( 'montantConstructionArea' ).style.display='block';
			document.getElementById( 'fraisDeNotaireArea' ).style.display='block';
			addToArray ( requiredNumberData , "prixTerrain" );
			addToArray ( requiredNumberData , "montantDesTravaux" );
			addToArray ( requiredNumberData , "montantConstruction" );
			addToArray ( requiredNumberData , "fraisDeNotaire" );
		}

		// Section bien hors terrain
		if (( trigger.value == "maison" ) || ( trigger.value == "appartement" ))
		{
			document.getElementById( 'etatDuBienArea' ).style.display='block';
			document.getElementById( 'montantDesTravauxArea' ).style.display='block';
			document.getElementById( 'montantAcquisitionArea' ).style.display='block';
			document.getElementById( 'fraisDeNotaireArea' ).style.display='block';
			addToArray ( undefinedData , "etatDuBien" );
			addToArray ( requiredNumberData , "montantDesTravaux" );
			addToArray ( requiredNumberData , "montantAcquisition" );
			addToArray ( requiredNumberData , "fraisDeNotaire" );
		}
		else if ( trigger.value == "autres" )
		{
			document.getElementById( 'etatDuBienArea' ).style.display='block';
			document.getElementById( 'montantAcquisitionArea' ).style.display='block';
			addToArray ( undefinedData , "etatDuBien" );
			addToArray ( requiredNumberData , "montantAcquisition" );
		}
	}
}

function submitFinancezForm()
{
/*	addToArray ( requiredNumberData , "prixTerrain" );
	addToArray ( requiredNumberData , "montantConstruction" );
	addToArray ( requiredNumberData , "montantRembourser" );
	addToArray ( requiredNumberData , "penalitesRemboursementAnticipe" );
	addToArray ( requiredNumberData , "fraisGaranties" );
	addToArray ( requiredNumberData , "budgetTotal" );
	addToArray ( requiredNumberData , "codePostal" );
	addToArray ( requiredNumberData , "telephone" );

	/*
addToArray ( requiredNumberData , "codePostalDuCoemprunteur" );
addToArray ( requiredNumberData , "telephoneDuCoemprunteur" );
addToArray ( requiredNumberData , "telephonePortableDuCoemprunteur" );
addToArray ( requiredNumberData , "telephoneProfessionnelDuCoemprunteur" );
addToArray ( requiredNumberData , "revenusAnnuelsDuCoemprunteur" );
addToArray ( requiredNumberData , "montantAnnuelDesPrimesDuCoemprunteur" );
addToArray ( requiredNumberData , "codePostalDuTravailDuCoemprunteur" );
addToArray ( requiredNanData , "prenomDuCoemprunteur" );
addToArray ( requiredNanData , "adresseDuCoemprunteur" );
addToArray ( requiredNanData , "villeDuCoemprunteur" );
addToArray ( requiredNanData , "paysDuCoemprunteur" );
addToArray ( requiredNanData , "emailDuCoemprunteur" );
addToArray ( requiredNanData , "lieuDeNaissanceDuCoemprunteur" );
addToArray ( requiredNanData , "dateDeNaissanceDuCoemprunteur" );
addToArray ( requiredNanData , "nationaliteDuCoemprunteur" );
addToArray ( requiredNanData , "nomEmployeurDuCoemprunteur" );
addToArray ( requiredNanData , "intituleDeLaProfessionDuCoemprunteur" );
addToArray ( requiredNanData , "ancienneteDuTravailDuCoemprunteur" );
addToArray ( undefinedData , "titreDuCoemprunteur" );
addToArray ( undefinedData , "residanceDuCoemprunteur" );
addToArray ( undefinedData , "banquePrincipalDuCoemprunteur" );
addToArray ( undefinedData , "categorieProfessionnelleDuCoemprunteur" );
addToArray ( undefinedData , "precisionSurLaCategorieProfessionnelleDuCoemprunteur" );
addToArray ( undefinedData , "contratDeTravailDuCoemprunteur" );
addToArray ( undefinedData , "typeDeContratDuCoemprunteur" );
addToArray ( undefinedData , "precisionSurLeTypeDeContratDuCoemprunteur" );
addToArray ( undefinedData , "mutuelleDeLaFonctionPubliqueDuCoemprunteur" );
addToArray ( undefinedData , "travailAEtrangerDuCoemprunteur" );
	addToArray ( requiredNanData , "dateSignatureCompromis" );

*/

/*
//	addToArray ( requiredNumberData , "telephonePortable" );
//	addToArray ( requiredNumberData , "telephoneProfessionnel" );
	addToArray ( requiredNumberData , "valeurTotaleDeLaResidencePrincipal" );
	addToArray ( requiredNumberData , "capitalRestantDuPourLaResidencePrincipal" );
	addToArray ( requiredNumberData , "valeurTotaleDesResidencesSecondaires" );
	addToArray ( requiredNumberData , "capitalRestantDuPourLesResidencesSecondaires" );
	addToArray ( requiredNumberData , "valeurTotaleDeLInvestissementLocatif" );
	addToArray ( requiredNumberData , "capitalRestantDuPourLInvestissementLocatif" );
	addToArray ( requiredNumberData , "valeurTotaleDesAutresPatrimoines" );
	addToArray ( requiredNumberData , "capitalRestantDuPourLesAutresPatrimoines" );
	addToArray ( requiredNumberData , "valeurTotaleDesBiens" );
	addToArray ( requiredNumberData , "capitalRestantDuTotal" );
	addToArray ( requiredNumberData , "creditActuelTaux" );
	addToArray ( requiredNumberData , "creditActuelMensualites" );
	addToArray ( requiredNumberData , "financierBoursier" );
	addToArray ( requiredNumberData , "financierPlacements" );
	addToArray ( requiredNumberData , "financierTresorerie" );
	addToArray ( requiredNumberData , "financierAutre" );
	addToArray ( requiredNumberData , "financierTotaux" );
	addToArray ( requiredNumberData , "revenusAnnuel" );
	addToArray ( requiredNumberData , "montantAnnuelDesPrimes" );
	addToArray ( requiredNumberData , "revenusLocatif" );
	addToArray ( requiredNumberData , "loyerAPercevoir" );
	addToArray ( requiredNumberData , "loyerPercu" );
	addToArray ( requiredNumberData , "allocationFamiliale" );
	addToArray ( requiredNumberData , "apl" );
	addToArray ( requiredNumberData , "pensionAlimentaireRecu" );
	addToArray ( requiredNumberData , "mensualiteDucreditDelaResidencePrincipale" );
	addToArray ( requiredNumberData , "dureeDucreditDelaResidencePrincipale" );
	addToArray ( requiredNumberData , "mensualiteDuCreditDesResidencesSecondaires" );
	addToArray ( requiredNumberData , "dureeDuCreditDesResidencesSecondaires" );
	addToArray ( requiredNumberData , "mensualiteDuCreditDeLInvestissementLocatif" );
	addToArray ( requiredNumberData , "dureeDuCreditDeLInvestissementLocatif" );
	addToArray ( requiredNumberData , "mensualiteDuCreditDuTerrain" );
	addToArray ( requiredNumberData , "dureeDuCreditDuTerrain" );
	addToArray ( requiredNumberData , "mensualiteDuCreditALaConsommation" );
	addToArray ( requiredNumberData , "dureeDuCreditALaConsommation" );
	addToArray ( requiredNumberData , "mensualiteDuCreditVoiture" );
	addToArray ( requiredNumberData , "dureeDuCreditVoiture" );
	addToArray ( requiredNumberData , "mensualiteDuCreditDeReserveDArgent" );
	addToArray ( requiredNumberData , "dureeDuCreditDeReserveDArgent" );
	addToArray ( requiredNumberData , "mensualiteDesAutresCredits" );
	addToArray ( requiredNumberData , "dureeDesAutresCredits" );
	addToArray ( requiredNumberData , "montantLoyerActuel" );
	addToArray ( requiredNumberData , "pensionAlimentaireVersee" );
	addToArray ( requiredNumberData , "localisationCodePostal" );
	addToArray ( requiredNumberData , "proprietaireDUnBienDontLaSurfaceEstDe" );
	addToArray ( requiredNumberData , "montantPretRelais" );
	addToArray ( requiredNumberData , "montantApportPersonnel" );
	addToArray ( requiredNumberData , "montantPTZ" );
	addToArray ( requiredNumberData , "montantCEL" );
	addToArray ( requiredNumberData , "montantPEL" );
	addToArray ( requiredNumberData , "montantUnPourcentPatronal" );
	addToArray ( requiredNumberData , "montantPretsSubventionnes" );
//	addToArray ( requiredNumberData , "montantAutresPretsAidesArea" );
	addToArray ( requiredNumberData , "montantPretSouhaite" );
	addToArray ( requiredNumberData , "remboursementMensuelSouhaite" );
	addToArray ( requiredNumberData , "remboursementDureeSouhaiteeMinimum" );
	addToArray ( requiredNumberData , "remboursementDureeSouhaiteeMaximum" );
	addToArray ( requiredNumberData , "codePostalDuTravail" );	
	addToArray ( requiredNanData , "nom" );
	addToArray ( requiredNanData , "prenom" );
	addToArray ( requiredNanData , "adresse" );
	addToArray ( requiredNanData , "ville" );
	addToArray ( requiredNanData , "pays" );
	addToArray ( requiredNanData , "email" );
	addToArray ( requiredNanData , "dateDeNaissance" );
	addToArray ( requiredNanData , "lieuDeNaissance" );
	addToArray ( requiredNanData , "nationalite" );
	addToArray ( requiredNanData , "creditActuelDateFin" );
//	addToArray ( requiredNanData , "ageEnfant" );
	addToArray ( requiredNanData , "localisationVille" );
	addToArray ( requiredNanData , "localisationAdresse" );
	addToArray ( requiredNanData , "nomEmployeur" );
	addToArray ( requiredNanData , "intituleDeLaProfession" );
	addToArray ( requiredNanData , "ancienneteDuTravail" );
	addToArray ( undefinedData , "projetImmobilier" );
	addToArray ( undefinedData , "usageDuBien" );
	addToArray ( undefinedData , "preciserLeProjet" );
	addToArray ( undefinedData , "situationActuelle" );
	addToArray ( undefinedData , "futurDeLaResidencePrincipale" );
	addToArray ( undefinedData , "niveauAvancement" );
	addToArray ( undefinedData , "dateFutureSignatureCompromis" );
	addToArray ( undefinedData , "nombreEmprunteurs" );
	addToArray ( undefinedData , "titre" );
	addToArray ( undefinedData , "residance" );
	addToArray ( undefinedData , "heureRapel" );
	addToArray ( undefinedData , "situationFamiliale" );
	addToArray ( undefinedData , "creditActuelBanque" );
	addToArray ( undefinedData , "localisationProprietaire" );
	addToArray ( undefinedData , "pretInFineSouhaite" );
	addToArray ( undefinedData , "banquePrincipalEmprunteur" );
	addToArray ( undefinedData , "dejaConsulte" );
	addToArray ( undefinedData , "banqueConsultee" );
	addToArray ( undefinedData , "pretChangerBanque" );
	addToArray ( undefinedData , "categorieProfessionnelle" );
	addToArray ( undefinedData , "precisionSurLaCategorieProfessionnelle" );
	addToArray ( undefinedData , "contratDeTravail" );
	addToArray ( undefinedData , "typeDeContrat" );
	addToArray ( undefinedData , "precisionSurLeTypeDeContrat" );
	addToArray ( undefinedData , "mutuelleDeLaFonctionPublique" );
	addToArray ( undefinedData , "travailAEtranger" );
*/
	
	var result = checkFormValue ( requiredNanData , true , true , false );
	result &= checkFormValue ( requiredNumberData , true , false , false );
	result &= checkFormValue ( numberData , false , false , false );
	result &= checkFormValue ( nanData , false , true , false );
	result &= checkFormValue ( undefinedData , false , false , true );

	if ( result )
		document.forms['financezForm'].submit();
}

function setButAchatChoisi( trigger )
{
	if ( trigger.value == 'pourInvestir' )
	{
		document.getElementById( 'butAchatLoiArea' ).style.display='block';
		document.getElementById( 'butAchatLoi2Area' ).style.display='block';
	}
	else
	{
		document.getElementById( 'butAchatLoiArea' ).style.display='none';
		document.getElementById( 'butAchatLoi2Area' ).style.display='none';
	}
}

function setAchetezResultatChoisi( idBien )
{
	document.getElementById('id_bien').value=idBien;
	document.getElementById('achetez_coordonnees').style.display='block';
}



function startAjax()
{
	var xhr_object = null;

	if( window.XMLHttpRequest ) // Firefox
		xhr_object = new XMLHttpRequest();
	else if( window.ActiveXObject ) // Internet Explorer
		xhr_object = new ActiveXObject( "Microsoft.XMLHTTP" );
	else
		alert( "Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
	return xhr_object;
}

function ajaxSelectUpdate( ajaxFile, sourceList , destinationList , addNewEntry )
{
	var l1 = document.getElementById( sourceList );
	var l2 = document.getElementById( destinationList );

	var index = l1.selectedIndex;

	l2.options.length = 0;
	var opt_courante = new Option( "Non défini" );
	opt_courante.value='0';
	l2.options[0] = opt_courante;
	
	if ( addNewEntry )
	{
		var opt_courante = new Option( "Nouvelle entrée" );
		opt_courante.value='-1';
		l2.options[1] = opt_courante;
	}
	
	var xhr_object = startAjax();

	xhr_object.open( "POST", ajaxFile, true );

	xhr_object.onreadystatechange = function anonymous()
	{
		if( xhr_object.readyState == 4 )
			eval( xhr_object.responseText );
	}
	xhr_object.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
	var data = "ajaxData=" + escape( l1.options[index].value ) + "&select=" + sourceList;

	xhr_object.send( data );
}

function onRegionChange()
{
	ajaxSelectUpdate( 'scripts/ajax/localisation.php' , 'region' , 'departement', false );
}

function onDepartementChange()
{
	ajaxSelectUpdate( 'scripts/ajax/localisation.php' , 'departement' , 'ville', false );
}

