function rechercheAvance() {
	findObj('avancee').value=1;	
	findObj('modegeoloc').value=0;
	findObj('formulaireRecherche')['rechercher'].value = 0;
	findObj('formulaireRecherche').submit();
}
function rechercheSimple() {
	findObj('avancee').value=0;	
	findObj('modegeoloc').value=0;
	findObj('formulaireRecherche')['rechercher'].value = 0;
	findObj('formulaireRecherche').submit();
}
function rechercheGeoloc() {
	envoiclicked = 1;	
	if (editionVilleDepflag == 0 ) { 
		if (findObj('cpVilleDep').value.length == 0 ) {
			findObj('cdIns').value='';
			findObj('cdIns_ville').value='';
			findObj('cp').value='';
		}
		if (readSelection('idvilles','villes').length  == 0 ) {
			/** Pas de ville cochée, effacer value des champs departements,IDdepartements,villes**/
			findObj('departements').value='';
			findObj('IDdepartements').value='';
			findObj('villes').value='';
		}
		if (validationOk() == 1 ) {		
			findObj('modegeoloc').value=1;		
			findObj('rechercher').value = '1';
			findObj('formulaireRecherche').submit();		
		}		
	}
	else {
		editionVilleDepflag = 0;
	}
}
function gotocat(catNum) {
 	findObj('categorie').value=catNum;	
	findObj('formulaireRecherche')['rechercher'].value = 0;
	findObj('formulaireRecherche').submit();
}

function readSelection(fieldname,objTxtname){
	/*retourne une liste contenant les valeurs des checkbox dont l'id est fieldname*/
	var obj = findObj(fieldname);
	var objTxt = findObj(objTxtname);
	var selectedTypes = '';
	var selectedTypesIds = '';
	var retval = new Array();
	if (obj.length) { // collection de checkbox
		for (var x=0; x < obj.length ; x++) {
			var nodetexte = '';
			var nodeVal = '';
			if (obj[x].checked == true){
					nodeVal =  obj[x].value + ',';
					var parentDiv = obj[x].parentNode;
					if (parentDiv) {
						if (isIE) {nodetexte =  parentDiv.innerText + ', ';}
						else {nodetexte =parentDiv.innerHTML ;	
							if (nodetexte.indexOf('>') > -1 ) 
							nodetexte = nodetexte.substring(nodetexte.indexOf('>') + 1,nodetexte.length ); 
							nodetexte = nodetexte + ', ';
						}		
					}
			}
			selectedTypesIds = selectedTypesIds + nodeVal;
			selectedTypes = selectedTypes + nodetexte;
		}
	}
	else {	/* si une seul checkvbos, pas une collection, lire son etat*/
		var nodetexte = '';
		var nodeVal = '';
		if (obj.checked == true ) {
			nodeVal =  obj.value;
			var parentDiv = obj.parentNode;
			if (parentDiv) {
				if (isIE) {nodetexte =  parentDiv.innerText + ', ';}
				else {
					nodetexte =parentDiv.innerHTML ;	
					if (nodetexte.indexOf('>') > -1 ) 
					nodetexte = nodetexte.substring(nodetexte.indexOf('>') + 1,nodetexte.length ); 
					nodetexte = nodetexte + ', ';
				}	
			}
			selectedTypesIds = nodeVal;
			selectedTypes =  nodetexte;
		}
	}
	if (selectedTypes.length > 0) selectedTypes = selectedTypes.substring(0,selectedTypes.length - 2);
	var selectedtypeTexte = selectedTypes;	
	if (selectedTypes.length > 30 ) selectedTypes = selectedTypes.substring(0,27) + '...';
	if (selectedTypesIds.indexOf(',') > 0) selectedTypesIds = selectedTypesIds.substring(0,selectedTypesIds.length - 1);
	objTxt.value=selectedtypeTexte ;
	return selectedTypesIds;
}
function setTypeBien(){
	readSelection('idtypebien','typebien');		
}
function setNombreDePieces(){
	readSelection('id_piece','nombreDePieces');			
}
function setNombreDeChambres(){
	readSelection('id_nbrChambre','nombreDeChambre');		
}
function setNatureDuBien() {
	var natureObj = findObj('natureduBien');	
	var nature = natureObj[natureObj.selectedIndex].text;
	findObj('natureBien').value=nature;
}
function setDepartement(chemin){
	siteurl = chemin;
	var depObj = findObj('IDdepartements');	
	var dep = depObj[depObj.selectedIndex].value;
	findObj('arrondissementsTD').innerHTML = '';
	findObj('quartiersTD').innerHTML ='';
	findObj('departements').value=depObj[depObj.selectedIndex].text;
	GetVilles(dep);
}
function setVille(chemin) {
	siteurl = chemin;
	readSelection('idvilles','villes');		
	if (findObj('villes').value.length > 0 ){		
		GetArrondissements(chemin);		
	}
	else
	{
		findObj('arrondissementsTD').innerHTML = '';
		findObj('arrondissements').value = '';
		findObj('quartiersTD').innerHTML ='';
		quartiersArray = new Array();
		loadQuartiers();
		if (editionVilleDepflag == 1 ) ecrireCritereRecherche();
	}	
}

function setArrondissements(chemin) {
	siteurl = chemin;
	readSelection('idarrondissements','arrondissements');	
	GetQuartiers();
	//debug('line 102:1');
	if (editionVilleDepflag == 1 )
		ecrireCritereRecherche();
}
function setQuartiers() {
	var sel = readSelection('idquartiers','quartiers');	
	//alert(sel);
	setEncartQuartier();
}
/************************************************************
Fonctions AJAX
************************************************************/
var Arrondissementarray= new Array();
var quartiersArray = new Array();
var Villesarray = new Array();
var siteurl='';
function getCheckedVal(fieldname) {
	var val= '';
	//val= findObj(fieldname).value;
	var obj= findObj(fieldname);
	if (obj != null) {
		if(obj.length) {for (x=0 ; x < obj.length; x++) {if ( obj[x].checked == true ) {	val = val + obj[x].value + ',';	}}}
		else if(obj != null) {	if ( obj.checked == true ) 	val = val + obj.value + ',';}
	}
	if (val.length > 0) val = val.substring(0,val.length - 1);	
	return val;
}
function GetVilles(dep){
	var moduleURL = siteurl + '/AjaxFiles/getVilles.cfm?dep=' + dep ;
	var arrayName = 'Villesarray';	
	var functiontoCall='loadVilles();';
	getArrondissement_quartiers('villes',moduleURL,arrayName,functiontoCall);
}
function GetArrondissements(URLSite){
	siteurl = URLSite;
	/* lit la selection stockée dans le select obj ville*/
	var ville= getCheckedVal('idvilles')
	if ( ville.length > 0 ) {
		var moduleURL = siteurl + '/AjaxFiles/getArrondissements.cfm?villes=' + ville ;
		var arrayName = 'Arrondissementarray';	
		var functiontoCall='loadArrondissement();';
		getArrondissement_quartiers('villes',moduleURL,arrayName,functiontoCall);
	}else{ /*pas de ville selectionné, effacer les td*/
		findObj('arrondissementsTD').innerHTML = '';
		findObj('quartiersTD').innerHTML ='';
	}
}
function GetQuartiers(){
	 /* lit la selection stockée dans le select obj ville*/
	 ////debug('line 147 entering get quartier, quartiersArray.length = ' + quartiersArray.length);
	var arrs = '';
	var ville= getCheckedVal('idvilles');	
	if (findObj('arrondissements') )arrs =  getCheckedVal('idarrondissements');
	var moduleURL = siteurl + '/AjaxFiles/getQuartiers.cfm?villes=' + ville  + '&arrondissements=' + arrs;
	var arrayName = 'quartiersArray';	
	var functiontoCall='loadQuartiers();'
	//debug('line 154 entering get quartier, quartiersArray.length = ' + quartiersArray.length + ' et calling '  + moduleURL);
	getArrondissement_quartiers('villes',moduleURL,arrayName,functiontoCall);
}
function getArrondissement_quartiers(champville,moduleURL,arrayName,functiontoCall) {
		debug(moduleURL);
		/* récupère une réference à l'array concernant les champs affecté et réinitialise celle-ci*/
		eval(arrayName + '= new Array();');
		var theArray = eval(arrayName);
		/*instantiation de l'objet XMLHttpRequest*/
		if (window.XMLHttpRequest) { /* Mozilla, Safari, ...*/
		  httpRequest = new XMLHttpRequest();
			if (!document.all)
				httpRequest.overrideMimeType('text/xml');		
		}
		else if (window.ActiveXObject) { // IE
		  httpRequest = new ActiveXObject("MSXML2.XMLHTTP.3.0");
		}
		/* appel de la fonction de traitement de réponse à l'appel XMLHttpRequest*/
		httpRequest.onreadystatechange = function (){
			if (httpRequest.readyState == 4) {
				var xmldoc = httpRequest.responseXML;
				var root_node = xmldoc.getElementsByTagName('root').item(0);
				
				if (root_node && root_node.hasChildNodes()){
					var docnodes = root_node.childNodes;
					 //debug ('line 178 :getArrondissement_quartiers,' + docnodes.length + ' elements retourne  quand  ' + theArray.length  + '<p>');
					for (var i =0 ; i< docnodes.length; i++){  
						if (docnodes[i].hasChildNodes()){
							for (var d=0; d < docnodes[i].childNodes.length; d++) {									
								/* lecture de l'arrondissement	*/				
								if (docnodes[i].childNodes[d].nodeName == 'label'){
									if (docnodes[i].childNodes[d].hasChildNodes()) {
										var label = docnodes[i].childNodes[d].childNodes[0].nodeValue;									
									}
									label = decodeURI(label);	
								}
								/* lecture du code postal de l'arrondissement*/					
								if (docnodes[i].childNodes[d].nodeName == 'codepostal'){
									if (docnodes[i].childNodes[d].hasChildNodes()) {
										var codeval = docnodes[i].childNodes[d].childNodes[0].nodeValue;									
									}
								}
								/* lecture du code postal de la ville*/			
								if (docnodes[i].childNodes[d].nodeName == 'ville'){
									if (docnodes[i].childNodes[d].hasChildNodes()) {
										var villeval = docnodes[i].childNodes[d].childNodes[0].nodeValue;									
									}
									villeval = decodeURI(villeval);
								}
							}		
						/* cré un nouvelle objet cpville*/
							var quartierOuarrondissement = new quartier_arrondissement(codeval,villeval,label,0);
						/* ajout l'objet a l'array contenant les villes*/
							theArray.push(quartierOuarrondissement);								
						}	
				  	}
				 }
				  //debug('line 208 :getArrondissement_quartiers theArray.length = ' + theArray.length);
				 /*appel la fucntion qui affiche les résultats */
				eval(functiontoCall);				
			}				
		};
		httpRequest.open('GET', moduleURL, true);
		httpRequest.send(null) ;	
}
function quartier_arrondissement(cp,ville,label,derechercheEtendu){
			this.label=label;
			this.cp=cp;
			this.ville=ville;
			this.derechercheEtendu = derechercheEtendu;
}

function clearQuartierrechercheEtendu() {
	var newquartierArray = new Array();
	for (var l=0 ; l<quartiersArray.length ; l++ ) {
		//debug('line 227 element' + l + ' etendu = ' + quartiersArray[l].derechercheEtendu );
		if (quartiersArray[l].derechercheEtendu == 0 ) {
			newquartierArray.push(quartiersArray[l]);		
		}	
	}
	quartiersArray = newquartierArray;
	//debug('line 234 quartiersArray.length = ' + quartiersArray.length);
	//loadQuartiers();
}
function loadVilles() {
	var fieldname = 'villes';
	var fieldLabel = 'Villes';
	var arrayname = 'Villesarray';
	var onclickFunction = 'setVille(\''+siteurl+'\')';
	loadDropDown(fieldname,fieldLabel,arrayname,onclickFunction);
	GetQuartiers();
}
function loadArrondissement() {
	var fieldname = 'arrondissements';
	var fieldLabel = 'Arrondissements';
	var arrayname = 'Arrondissementarray';
	var onclickFunction ='setArrondissements(\''+siteurl+'\')';
	loadDropDown(fieldname,fieldLabel,arrayname,onclickFunction);
	GetQuartiers();
}
function loadQuartiers() {
	var fieldname = 'quartiers';
	var fieldLabel = 'Quartiers';
	var arrayname = 'quartiersArray';	
	var onclickFunction ='setQuartiers()';
	//debug('line 256 ' + quartiersArray.length);
	loadDropDown(fieldname,fieldLabel,arrayname,onclickFunction);
	//alert('line 242 ' + quartiersArray.length);
}
var preselectionQuariers = '';


function loadDropDown(fieldname,fieldLabel,arrayname,onclickFunction){		
	/*** vérifié si il s'agit du tableau de quartiers
	si oui, alors lire les quartiers et les rajouter au tableau des quartiers recement créé
	**************************/
	if ( cpvilledepIn && cpvilledepIn.choixQuartier) {
		/****************     Afficher les quartier si il y en a       ******************/
			//debug('line 270 ' + quartiersArray.length);
			var loadquartierFlag = 0;
			var vilcdInseetableau = cpvilledepIn.villesinsee.split(',');
			var choixQuartiertableau = cpvilledepIn.choixQuartier.split(',');
			var choixQuartierCodetableau = cpvilledepIn.choixQuartierCode.split(',');
			var choixQuartierCodeInseetableau = cpvilledepIn. choixQuartierCodeInsee.split(',');
			for (v=0; v< choixQuartierCodetableau.length ; v++ ) {
				for ( t=0; t< vilcdInseetableau.length; t ++ ) {
					if (vilcdInseetableau[t] == choixQuartierCodeInseetableau[v]) {/*** afficher les quartiers des villes choisies***/
						var dejaPresentFlag = 0;
						for (var s=0; s < quartiersArray.length ; s++ ) {
							if (quartiersArray[s].cp == choixQuartierCodeInseetableau[v]) {
								dejaPresentFlag = 1;
							}
						}
						if (dejaPresentFlag == 0 ) {
							var quartierElement = new quartier_arrondissement(choixQuartierCodetableau[v],choixQuartierCodeInseetableau[v],choixQuartiertableau[v],1);
							//var quartierElement = new quartier_arrondissement(choixQuartierCodetableau[v],'',choixQuartiertableau[v]);
							/*** s'assurer au préalable que ce quartier n'est pas déjà dans la liste ******/
							quartiersArray.push(quartierElement);	
						}
					}	
				}
			}
			//alert('line 275 ' + quartiersArray.length);
		}
	/***********fin ajout quartier recherche etendue *********************/
			var numofCol = 5;
	if (fieldname == 'quartiers') numofCol = 1;
	var array = new Array();
	array = eval(arrayname);
	var arrondissementHtml ='';	
	/**************************************************************************************
	 cré la liste de checkboxs	
	****************************************************************************************/
	if (array.length > 0 ) {
			numofCol = parseInt(array.length / numofCol);
			arrondissementHtml = '<div class=label>'+fieldLabel + '</div>'
								+ '<div id='+fieldname+'Text> <table><tr><td>';	
			for (var d=0; d < array.length; d++) {
				if (d %  numofCol == 0 ){
					if (d > 0) arrondissementHtml = arrondissementHtml +'</td>';
					arrondissementHtml = arrondissementHtml +'<td valign="top">';
				}
				var quartierArrondissement =  new quartier_arrondissement();
				quartierArrondissement = array[d];
				arrondissementHtml = arrondissementHtml 
									+ '<div><nobr><input type="checkbox" id="id'	+fieldname+'" name="id'	+fieldname+'"option onclick="' + onclickFunction + '"  value="'	+array[d].cp+'" >'
									+ array[d].label  ;
				////debug('line 312:' + quartierArrondissement.cp);
				
				if (	fieldname == 'quartiers'  && array[d].derechercheEtendu != 1 ) {/**
							array[d].ville contiend le code insee de la ville ou de l'arrondissement lorsque le quartier est recupéré par via la recherche etendu
							    && ( 
								findObj('villes').value.indexOf(',') > 0  
				  				|| 
								( findObj('arrondissements')  && findObj('arrondissements').value && findObj('arrondissements').value.indexOf(',') > 0 )
							)**/
									arrondissementHtml = arrondissementHtml +' (' +  array[d].ville + ')';
									
				}
				arrondissementHtml = arrondissementHtml + '</nobr></div>';
				 /**/
			}arrondissementHtml = arrondissementHtml +'</td>';										
			arrondissementHtml = arrondissementHtml +'</tr></table></div></p>';
		}
	
	/**************************************************************************************
	 	si arrondissements , sauve les sélections quartier précedentes si il y en avait
	****************************************************************************************/
	var preselection  ='';
		var arrObj = findObj('id'+fieldname);
		if (arrObj) 
			preselection = 	getCheckedVal('id'+fieldname); //arrObj.value;
	/**************************************************************************************
	 	ecrit la liste des chackbox
	****************************************************************************************/
	if (fieldname == 'quartiers' && !findObj('arrondissements')){
		findObj('arrondissementsTD').innerHTML = arrondissementHtml;
		findObj('quartiersTD').innerHTML ='';		
	}
	else if ( fieldname == 'arrondissements' 
				&&  findObj('idquartiers') 
				&& findObj('quartiersTD').innerHTML.length < 20) 
	{
			if (arrondissementHtml.length > 0)
				findObj('quartiersTD').innerHTML = findObj('arrondissementsTD').innerHTML;
			findObj(fieldname +'TD').innerHTML = arrondissementHtml;	
	}
	else{
			try{findObj(fieldname +'TD').innerHTML = arrondissementHtml;	}catch(exception){}
	}
	/**************************************************************************************
	 	compare la nouvelle liste avec  les préselections, les cocher si il y a match
	****************************************************************************************/
	if (preselection.length > 0) {
		var selectedcheck ='' ;
		var selectedcheckIds='';
		/*il y avait une préselection, balayer la nouvelle collection de checkbox, et si la préselection est dans cette collection, la reselectionner*/
		var checkboxCollection = findObj('id'+fieldname);
		if (checkboxCollection) {
			var preselectionArray = preselection.split(',');
			for (var ind = 0; ind < checkboxCollection.length; ind ++) {
				for (var p = 0 ; p < preselectionArray.length; p ++ ) {
					if (checkboxCollection[ind].value == preselectionArray[p]) {
						checkboxCollection[ind].checked = true;
						selectedcheckIds = selectedcheckIds +  checkboxCollection[ind].value + ',';
						var parentDiv = checkboxCollection[ind].parentNode;
						if (isIE)
							selectedcheck = selectedcheck + parentDiv.innerText + ', ';
						else {
							var innerHtmltxt =parentDiv.innerHTML ;
							var nodetexte =innerHtmltxt;
							if (innerHtmltxt.indexOf('>') > -1 ) 
								nodetexte = nodetexte.substring(innerHtmltxt.indexOf('>') + 1,innerHtmltxt.length );
								selectedcheck = selectedcheck + nodetexte + ', ';
						}
					}
				
				}
			
			}		
		}
		if (selectedcheck.length > 0) selectedcheck = selectedcheck.substring(0,selectedcheck.length - 2);
		var selectedtypeTexte = selectedcheck;
		if (selectedcheck.length > 40) selectedcheck = selectedcheck.substring(0,27) + '...';
		if (selectedcheckIds.length > 0) selectedcheckIds = selectedcheckIds.substring(0,selectedcheckIds.length - 1);
		if (findObj(fieldname)) {
			findObj(fieldname).value=selectedtypeTexte ;
		}	
	}
	setEncartQuartier();	
}

function debug (mess){
	if (findObj('debug'))
	findObj('debug').innerHTML = findObj('debug').innerHTML + '<br>' + mess;
}

function checkNumeric(obj,mess) {
	var val = findObj(obj).value;
	if (val.length> 0) {
		if ( isNaN(parseInt(val))== true ) {
			alert(mess);
			findObj(obj).value='';
			findObj(obj).focus();		
		}
	}
	return true;
}

function setEncartQuartier(){
	var q_val='';
	var ar_val='';
	var v_val='';
	var d_val='';
	var q = findObj('idquartiers');
	if (q){	q_val = readSelection('idquartiers','quartiers');}
	var ar = findObj('idarrondissements');
	if (ar) {ar_val=readSelection('idarrondissements','arrondissements');}
	var vl = findObj('idvilles');
	if (vl){v_val = readSelection('idvilles','villes');}
	var dp = findObj('IDdepartements');
	if (dp){d_val = dp.value;}
	var imgNum = '';
	var imgtitle = '';
	var imgtexte = '';
	var nomQuartier = '';
	var call =  'quartierid='+ q_val + '&arrid='+ ar_val + '&villeid='+ v_val + '&depid='+ d_val;
	editionVilleDepflag = 0;
	get_EncartQuartier(call) ; /*** affiche l'encart en haut à droite ***/	
}
/***************************************************************************************
****************************************************************************************
				 fonctions destinées à la validation du champ cpVilleDep  
****************************************************************************************
****************************************************************************************/
function noaccent(chaine) {
  temp = '';
  for (var ic=0; ic < chaine.length; ic++ )
	{fl = 0;
	 carval = chaine.charCodeAt(ic);
	 if (carval == 232 || carval == 233 || carval == 234 || carval == 235) {fl = 1; temp = temp + 'e';}
	 if (carval == 224 || carval == 226 || carval == 228) {fl = 1; temp = temp + 'a';}
	 if (carval == 244 || carval == 246) {fl = 1; temp = temp + 'o';}
	 if (carval == 238 || carval == 239) {fl = 1; temp = temp + 'i';}
	 if (carval == 249 || carval == 251 || carval == 252) {fl = 1; temp = temp + 'u';}
	 if (carval == 255) {fl = 1; temp = temp + 'y';}
	 if (carval == 231) {fl = 1; temp = temp + 'c';}
	 if (fl == 0) {temp = temp + String.fromCharCode(carval)}
	}
  return temp
}

function validationVilleDep(objname,champCodesInsee) {
 	var val = findObj(objname).value;
	checkSiCorrect(val,champCodesInsee);
}
var editionVilleDepflag = 0;

var envoiclicked = 0;

function validationKeyVilleDep (event,objname,champCodesInsee) {	
	var key =event.keyCode|| event.which;
	editionVilleDepflag = 1;
	if (key==13){
		var val = findObj(objname).value;
		val = noaccent(val);
		checkSiCorrect(val,champCodesInsee);
	}
	return false;
}

function checkChanges(objname,champCodesInsee) {
	var val = findObj(objname).value;
	val = noaccent(val);
	if(val.length == 0) {
		resetRechercheEtendu();
		resetRechercheEtendu();
		initcpvilledepIn() ;
		GetQuartiers();		
	}
	//if (editionVilleDepflag == 1) {
		/** besoin de valider les champs de recherche*/
		checkSiCorrect(val,champCodesInsee);
	//}
}
function anullerSubmit(event){	
	var key=event.keyCode || event.which;	
	if (key==13) {				
		return false;	
	}	
}
function sendInfo() {	
	envoiclicked = 1;	
	if (editionVilleDepflag == 0 ) { 
		if (findObj('cpVilleDep').value.length == 0 ) {
			findObj('cdIns').value='';
			findObj('cdIns_ville').value='';
			findObj('cp').value='';
		}
		if (readSelection('idvilles','villes').length  == 0 ) {
			/** Pas de ville cochée, effacer value des champs departements,IDdepartements,villes**/
			findObj('departements').value='';
			findObj('IDdepartements').value='';
			findObj('villes').value='';
		}
		if (validationOk() == 1 ) {			
			findObj('rechercher').value = "1";
			findObj('formulaireRecherche').submit();		
		}		
	}
	else {
		editionVilleDepflag = 0;
	}
}
function validationOk() {
if ( findObj('cdIns').value.length > 0
	|| findObj('departements_cpVilleDep').value.length > 0
	|| findObj('departements_cpVilleDepName').value.length > 0
	|| findObj('cp').value.length > 0
	|| findObj('villes').value.length > 0
	||findObj('cpVilleDep').value.length > 0
	) {
		return 1;
	}else {
		alert('Vous devez preciser un lieu de recherche!');
		return 0;
	}
}
function bloque()
{  
	return(false); 
}

function addTofieldList(val,nomChamp) {
	var Field = findObj(nomChamp);
	var InFlag = 0;
	if (Field.value.length > 0){
		/***check si  value dejà dans liste  ***/
		var fieldElemTableau = Field.value.split(',');
		for (var b=0; b < fieldElemTableau.length ; b++ ) {
			if (fieldElemTableau[b]== val)
				InFlag = 1;
		}
		if (InFlag == 0) {
			Field.value= Field.value + ',' + val;		
		}		
	}
	else
		Field.value=  val;
}
var cpvilledepIn = null;
function cpvilledep(dep,depname,cp,villes,villesinsee,villeschoix,villeschoixinsee,ChoixQuartierCode,ChoixQuartier, choixQuartierCodeInsee){
	this.dep=dep;
	this.nomdep=depname;
	this.cp=cp;
	this.villes=villes;
	this.villesinsee=villesinsee;
	this.villeschoix=villeschoix;
	this.villeschoixinsee=villeschoixinsee;
	this.choixQuartier=ChoixQuartier;
	this.choixQuartierCode=ChoixQuartierCode;
	this.choixQuartierCodeInsee= choixQuartierCodeInsee;
}
function resetRechercheEtendu() {
	findObj('departements_cpVilleDep').value = '';
	findObj('departements_cpVilleDepName').value = '';
	findObj('cp').value = ''; 
	findObj('cdIns_ville').value = '';
	findObj('cdIns').value = '';
	cpvilledepIn = null;
}
function initcpvilledepIn(ChoixQuartierCode,ChoixQuartier, choixQuartierCodeInsee) {
	var dep = findObj('departements_cpVilleDep').value;
	var depname = findObj('departements_cpVilleDepName').value;
	var cp = findObj('cp').value; 
	var villes = findObj('cdIns_ville').value;
	var villesinsee = findObj('cdIns').value;
	//choixQuartier
	var villeschoix ='' ;
	var villeschoixinsee ='' ;	
	cpvilledepIn = new cpvilledep(dep,depname,cp,villes,villesinsee,villeschoix,villeschoixinsee,ChoixQuartierCode,ChoixQuartier, choixQuartierCodeInsee);
	//loadQuartiers();
}
function cpvilleAddVille(ind){
	if (cpvilledepIn.villes.length > 0){
		cpvilledepIn.villes= cpvilledepIn.villes + ',';
	}
	if (cpvilledepIn.villesinsee.length > 0){
		cpvilledepIn.villesinsee= cpvilledepIn.villesinsee + ',';
	}
	var viltableau = cpvilledepIn.villeschoix.split(',');
	var vilcdInseetableau = cpvilledepIn.villeschoixinsee.split(',');
	cpvilledepIn.villes= cpvilledepIn.villes + viltableau[ind];
	var cdinsee = vilcdInseetableau[ind];
	cpvilledepIn.villesinsee= cpvilledepIn.villesinsee + cdinsee;	
}
/*
function addCheckedVilleToCDins() {
 	if (findObj('idvilles') ) {
		var villeChecked = readSelection('idvilles','villes');
		if (villeChecked.length > 0) {
			var villeCheckedtableau = villeChecked.split(',');
			for (var s=0; s < villeCheckedtableau.length; s++ ) {
					addTofieldList(villeCheckedtableau[s],'cdIns');
			}				
		}
	}
}
*/

function ecrireCritereRecherche() {
	var rechtxt = '';
	var virgule='';
	findObj('cdIns').value ='';
	findObj('departements_cpVilleDep').value = '';
	findObj('departements_cpVilleDepName').value = '';
	findObj('cp').value = '';	
	/***verify si idvilles exist, si oui, alors ajouter aussi les ids de idsville  *****/
	if (cpvilledepIn ) {
		if (cpvilledepIn.dep.length > 0) {
			rechtxt = rechtxt + cpvilledepIn.dep; virgule=', ';
		}
		if (cpvilledepIn.cp.length > 0) {
			rechtxt = rechtxt+ virgule + cpvilledepIn.cp; virgule=', ';
		}
		if (cpvilledepIn.villes.length > 0) {
			rechtxt = rechtxt+ virgule + cpvilledepIn.villes; virgule=', ';
		}		
		/****ajouter le code insee au champ caché cdIns*******/
		var vilcdInseetableau = cpvilledepIn.villesinsee.split(',');
		for (var f=0; f < vilcdInseetableau.length; f++ ) {
				addTofieldList(vilcdInseetableau[f],'cdIns');			
		}		
		/****ajouter les au champ caché IDdepartements*******/
		var deptableau = cpvilledepIn.dep.split(',');
		var depNametableau = cpvilledepIn.nomdep.split(',');
		/***re init les champd departement ***/
		for (var f=0; f < deptableau.length; f++ ) {
				addTofieldList(deptableau[f],'departements_cpVilleDep');
				addTofieldList(depNametableau[f],'departements_cpVilleDepName');			
		}	
		/************  cp   ****************/
		var cptableau = cpvilledepIn.cp.split(',');
		for (var f=0; f < cptableau.length; f++ ) {
				addTofieldList(cptableau[f],'cp');
		}
		if ( cpvilledepIn.choixQuartier) {
		/****************     Afficher les quartier si il y en a       ******************/
			var loadquartierFlag = 0;
			var choixQuartiertableau = cpvilledepIn.choixQuartier.split(',');
			var choixQuartierCodetableau = cpvilledepIn.choixQuartierCode.split(',');
			var choixQuartierCodeInseetableau = cpvilledepIn. choixQuartierCodeInsee.split(',');
			var dejaPresentFlag = 0;						
			for (v=0; v< choixQuartierCodetableau.length ; v++ ) {
				if( v == 0 ) {
					for (var s=0; s < quartiersArray.length ; s++ ) {
						if (quartiersArray[s].ville == choixQuartierCodeInseetableau[v]) {
							dejaPresentFlag = 1;
						}
					}
				}
				for ( t=0; t< vilcdInseetableau.length; t ++ ) {
					if (vilcdInseetableau[t] == choixQuartierCodeInseetableau[v]) {/*** afficher les quartiers des villes choisies***/
						if (dejaPresentFlag == 0 ) {
							var quartierElement = new quartier_arrondissement(choixQuartierCodetableau[v],choixQuartierCodeInseetableau[v],choixQuartiertableau[v],1);
							/*** s'assurer au préalable que ce quartier n'est pas déjà dans la liste ******/
							//alert('ajout ' + choixQuartiertableau[v]);
							//quartiersArray.push(quartierElement);	
							loadquartierFlag = 1;
						}
					}	
				}
			}
			editionVilleDepflag = 0;
			//if (loadquartierFlag == 1 ) {
				/***** Appel de la fonction qui affiche les quartiers*****/
				
			//}
		}
		/*********************************************************************************/		
	}	
	findObj('cpVilleDep').value=rechtxt;
	GetQuartiers();
	//loadQuartiers();
}
function checkSiCorrect(val,champCodesInsee){
//debug('line 650 ' + quartiersArray.length);
		editionVilleDepflag = 1;	
		cpvilledepIn = null;
		//alert('line 633 ' + quartiersArray.length);
		clearQuartierrechercheEtendu();
		var moduleURL = siteurl + '/AjaxFiles/validationCpVilleDep.cfm?UNIQUE=0&CPVILLEDEP=' + val;
		debug(moduleURL);
		cpvilledepIn = null;
		if (val.length > 0 ) {
			/************ creation de l'objet httpRequest**************/
			if (window.XMLHttpRequest) { /* Mozilla, Safari, ...*/
			  httpRequest = new XMLHttpRequest();
				if (!document.all)
					httpRequest.overrideMimeType('text/xml');		
			}
			else if (window.ActiveXObject) { // IE
			  httpRequest = new ActiveXObject("MSXML2.XMLHTTP.3.0");
			}		
			// appel de la fonction de traitement de réponse à l'appel XMLHttpRequest
			httpRequest.onreadystatechange = function (){				
				if (httpRequest.readyState == 4) {
					// récupére le document xml
					var xmldoc = httpRequest.responseXML;
					//parse le document xml
					var root_node = xmldoc.getElementsByTagName('root').item(0);
					if (root_node && root_node.hasChildNodes()){
						var docnodes = root_node.childNodes;						
						var erreur = '';
						var codeInsee = '';
						var choixcodeInsee='';
						var departementsval = '';
						var codeval = '';
						var villeval = '';
						var Choixvillesval ='';
						var nomsDepartementsval='';
						var ChoixQuartier='';
						var ChoixQuartierCode='';
						var ChoixQuartierCodeVillename = '';
						var choixQuartierVilleInsee = '';
						for (var i =0 ; i< docnodes.length; i++){ 		
								if (docnodes[i].hasChildNodes()){
								for (var d=0; d < docnodes[i].childNodes.length; d++) {									
									// lecture de(s)code(s) insee					
									if (docnodes[i].childNodes[d].nodeName == 'codeInsee'){
										// atteindre le text node contenant le texte
										if (docnodes[i].childNodes[d].hasChildNodes()) {
											var codeInsee = docnodes[i].childNodes[d].childNodes[0].nodeValue;									
										}
										codeInsee = decodeURIComponent(codeInsee);	
									}
									if (docnodes[i].childNodes[d].nodeName == 'ChoixcodesInsee'){
										// atteindre le text node contenant le texte
										if (docnodes[i].childNodes[d].hasChildNodes()) {
											var choixcodeInsee = docnodes[i].childNodes[d].childNodes[0].nodeValue;									
										}
										choixcodeInsee = decodeURIComponent(choixcodeInsee);	
									}
									
									// lecture des departements				
									if (docnodes[i].childNodes[d].nodeName == 'departements'){
										if (docnodes[i].childNodes[d].hasChildNodes()) {
											var departementsval = docnodes[i].childNodes[d].childNodes[0].nodeValue;									
										}
										departementsval = decodeURIComponent(departementsval);
									}
									// lecture des noms de départements				
									if (docnodes[i].childNodes[d].nodeName == 'nomsDepartements'){
										if (docnodes[i].childNodes[d].hasChildNodes()) {
											var nomsDepartementsval = docnodes[i].childNodes[d].childNodes[0].nodeValue;									
										}
										nomsDepartementsval = decodeURIComponent(nomsDepartementsval);
									}
									// lecture des la ville				
									if (docnodes[i].childNodes[d].nodeName == 'ville'){
										if (docnodes[i].childNodes[d].hasChildNodes()) {
											var villeval = docnodes[i].childNodes[d].childNodes[0].nodeValue;									
										}
										villeval = decodeURIComponent(villeval);
									}
									// lecture des ville parmi lesquel l'internaute doit choisir 			
									if (docnodes[i].childNodes[d].nodeName == 'Choixvilles'){
										if (docnodes[i].childNodes[d].hasChildNodes()) {
											var Choixvillesval = docnodes[i].childNodes[d].childNodes[0].nodeValue;									
										}
										Choixvillesval = decodeURIComponent(Choixvillesval);
									}
									
									// lecture du code postal des codes postaux				
									if (docnodes[i].childNodes[d].nodeName == 'codesPostaux'){
										if (docnodes[i].childNodes[d].hasChildNodes()) {
											var codeval = docnodes[i].childNodes[d].childNodes[0].nodeValue;																
										}
									}
									//ChoixQuartier
									if (docnodes[i].childNodes[d].nodeName == 'ChoixQuartier'){
										if (docnodes[i].childNodes[d].hasChildNodes()) {
											ChoixQuartier = decodeURIComponent(docnodes[i].childNodes[d].childNodes[0].nodeValue);															
										}
									}
									//ChoixQuartierCode
									if (docnodes[i].childNodes[d].nodeName == 'ChoixQuartierCode'){
										if (docnodes[i].childNodes[d].hasChildNodes()) {
											ChoixQuartierCode = decodeURIComponent(docnodes[i].childNodes[d].childNodes[0].nodeValue);		
																								
										}
									}
									//ChoixQuartierCode
									if (docnodes[i].childNodes[d].nodeName == 'choixQuartierVilleInsee'){
										if (docnodes[i].childNodes[d].hasChildNodes()) {
											choixQuartierVilleInsee = decodeURIComponent(docnodes[i].childNodes[d].childNodes[0].nodeValue);		
																								
										}
									}
									// lecture de erreur			
									if (docnodes[i].childNodes[d].nodeName == 'erreur'){
										if (docnodes[i].childNodes[d].hasChildNodes()) {
											var erreur = docnodes[i].childNodes[d].childNodes[0].nodeValue;		
											erreur = decodeURIComponent(erreur);
																	
										}
									}
									
								}					
							}	
					  	}
						if (erreur.length > 0 ) {
							alert(erreur);	
							
						}				
						cpvilledepIn = new cpvilledep(departementsval,nomsDepartementsval,codeval,villeval,codeInsee,Choixvillesval,choixcodeInsee,ChoixQuartierCode,ChoixQuartier,choixQuartierVilleInsee);
						ecrireCritereRecherche() ;
						if (choixcodeInsee.indexOf(',') > 0) {
							afficherChoixVille();
						}		
						else {
							if (erreur.length == 0 &&  choixQuartierVilleInsee.indexOf(',') < 0  ) {
									editionVilleDepflag = 0;	
									if (envoiclicked == 1) {
									//alert('pas de selection, soumettre');
									envoiclicked = 0 ;
										if (validationOk() == 1 ) {
										findObj('formulaireRecherche')['rechercher'].value = "1";
										findObj('formulaireRecherche').submit();
										}
									}
							}
							else if ( choixQuartierVilleInsee.indexOf(',') > 0) {
								//alert('1');
								editionVilleDepflag = 1;
								envoiclicked = 0 ;
						}
						}
						
									
	 				}
					else {
						editionVilleDepflag = 0;
					}
				}
			};
			httpRequest.open('GET', moduleURL, true);
			httpRequest.send(null) ;
		}
		else
		 {
		 	// champ vide, réafficher les quartiers
			//cpvilledepIn = null;
			//loadQuartiers();
		 	editionVilleDepflag = 1;
			resetRechercheEtendu();
			initcpvilledepIn() ;
			GetQuartiers();
		 }
}
function afficherChoixVille() {
	var posmarker= findObj('poscpvilledep');
	var coord = findPos(posmarker);
	var x = coord[0];
	var y = coord[1];
	//alert('x=' + x + ' and y=' + y);
	var divObj = findObj('cpvilledep');
	//alert(divObj);	
	divObj.style.left = x;
	divObj.style.visibility = 'visible';	
	divObj.innerHTML = writeChoixVille();
	var divheight = cpvilledepIn.villeschoix.split(',').length * 10 + 40
	divObj.style.height = divheight;
	divObj.style.top = y - divheight;
}
function writeChoixVille(){
	var tableauVilles = cpvilledepIn.villeschoix.split(',');
	var tbText = "<table><tr><td width=230>";
	var t = tableauVilles.length;
	var md = Math.ceil(t/2);	
	for ( var f=0 ; f < t; f++ ) {
	if(f == md && f > 0) tbText = tbText +'</td><td width=230 valign=top>';
		tbText = tbText + writeVilleCheckbox(tableauVilles[f],f) + '<br>';
	}	
	tbText = tbText +'</td></tr><td colspan="2"><br>&nbsp;&nbsp;&nbsp;<a href="javascript:selectVille()"><image src="' + siteurl + 'images/boutons/OK.jpg" border=0></a> <br></td></tr>';
	tbText = tbText +"</table>";
	return tbText;
}
function writeVilleCheckbox(ville,ind){
	var opttext ='<input type=checkbox name=choixVille id=choixVille  value=' + ind + ' >' + ville + '</option>';
	return opttext;
}
function selectVille() {
	if (cpvilledepIn != null) {
		var checkboxcollection = findObj('choixVille');
		if (checkboxcollection) {
			/****** au moins une ville à selectionner *******/
			if(checkboxcollection.length){
					/*****c'est une collection : plus d'une ville présentée , doit toujours etre le cas ***/
					for ( var z=0; z < checkboxcollection.length; z++) {
						if( checkboxcollection[z].checked == true ) {
						/********* ville selectionnée, ajouter a la liste des villes ***/
						cpvilleAddVille(z);
						}
					}
					ecrireCritereRecherche();
					editionVilleDepflag = 0;
			}			
		}
	}
	var divObj = findObj('cpvilledep');
	divObj.style.visibility = 'hidden';
	;
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return [curleft,curtop];
}

