	/*
	Retourne un echaine sans espace, tabulation etc
	*/
	function trimString (str) 
	{
		try
		{
			str = this != window? this : str;
			return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
		}
		catch (ex) {}
	}

	/* 
		simuDept.aspx
		Retourne l'index du département 'departement' s'il se trouve
		dans le tableau 'tableau'
		-1 s'il n'y est pas
	*/
	function existe(departement,tableau)
	{
		try
		{
			for(var i=0;i<tableau.length;i++)
			{
				if(	tableau[i] != null &&
					tableau[i].toLowerCase() != undefined && 
						trimString (departement.toLowerCase()) == trimString (tableau[i].toLowerCase())
					)
					return i;
			}
			return -1;
		}
		catch (ex) {}
	}

	/* 
		simuDept.aspx
		Retourne la div contenant les départements du tableau de la page
	*/		
	function GetElement(element)
	{
		try
		{
			//Récupération de la div contenant la liste des départements
			var elt;
			
			if (document.getElementById)
				elt = document.getElementById(element);
			else if (document.all)
				elt = document.all[element];
			
			return elt;
		}
		catch (ex) {}
	}

	/* 
		simuDept.aspx
		Retourne un tableau contenant les départements du tableau de la page
		de la forme "000 - dept"
		null s'il n'y a rien dans le tableau 
	*/
	function GetTableauDepartement()
	{
		try
		{
			var listeDpt = GetElement("tableDepartement");
			
			//Récupère le texte de la div
			var chaineDpt = listeDpt.innerHTML;	
			
			//récupère les départements dans un tableau sous la forme DEPT
			var exp=new RegExp("[0-9]{2,3} - ([^<])*","g");
			var tableau=chaineDpt.match(exp);
			
			return tableau;
		}
		catch (ex) {}
	}

	/* 
		simuDept.aspx
		Retourne un tableau contenant le nombre de pli pour les départements sélectionnés
		de la forme "000 - dept"
		null s'il n'y a rien dans le tableau 
	*/
	function GetNbPliDepartement(tableauDept)
	{
		try
		{
			var tableauNbPli = tableauDept;
			
			for(var i=0;i<tableauDept.length;i++)
			{
				var numeroDepartement = tableauDept[i].substring(0,3).replace(" ","");
				var nbPli = GetElement("plis_dpt_"+numeroDepartement);
				tableauNbPli[i] = nbPli.value;
			}
			
			return tableauNbPli;
		}
		catch (ex) {}
	}

	/* 
		simuDept.aspx
		Rempli la div contenant les départements avec la nouvelle liste de départements
		contenu dans tableau
	*/
	function RempliDivTableau(tableau/*,departementAjoute*/)
	{			
		try
		{
			var chaineDpt = "<table id='tableauDepartement' summary = 'Départements sélectionnés'>"+
							"<caption>Départements sélectionnés</caption>"+
							"<tr><th id='departement' colspan='2'>Départements</th><th id='nombrePli'>Nombre de plis</th><th id='Erreur'>&nbsp;</th></tr>";
			var aDpt = 0;
			
			for(var i=0;i<=tableau.length;i++)
			{
			
				
				if(tableau[i] != null && tableau[i] != "")
				{
					aDpt = 1;
					var numeroDepartement = tableau[i].substring(0,3).replace(" ","");
					
					//On remet la valeur du nombre de plis
					var nbPli = GetElement("plis_dpt_"+numeroDepartement);
					var valuePli="";
					if(nbPli != null)
						valuePli = nbPli.value;
						
					//On remet la valeur du message d'erreur
					var divMessageErreur = GetElement("divMessageErreur"+numeroDepartement);
					var valueMessageErreur="";
					if(divMessageErreur != null && divMessageErreur.innerText != undefined)
						valueMessageErreur = divMessageErreur.innerText;
						
					/*	Gestion de la population mis en commentaire au cas où il y aurait un changement d'avis
						//On récupère la population si on est sur le département qu'on vient d'ajouter
						if(departementAjoute == tableau[i])
						{
							var population = GetElement("population"+numeroDepartement);
							valuePli = population.value;
						}
					*/
					chaineDpt = chaineDpt + "<td headers='departement' >"+
								"<td headers='departement'><label for='plis_dpt_"+numeroDepartement+"'>" + tableau[i] +"</label></td>"+
								"<td headers='nombrePli'>"+
								"<input type='text' id='plis_dpt_"+numeroDepartement+"' value='"+valuePli+"' onBlur='javascript:controleFormatEntier(\""+numeroDepartement+"\")'/></td>"+
								"<td headers='Erreur'><div class='divMessageErreur' id='divMessageErreur"+numeroDepartement+"'>"+valueMessageErreur+"</div></td></tr>";
				}
			}
			
			var listeDpt = GetElement("tableDepartement");
			if(aDpt == 1)
			{				
				listeDpt.innerHTML = chaineDpt + "<tr><td colspan='3'><a href='javascript:EffacerNbPli()' title='Effacer les valeurs du nombre de plis' class='lbEffacerNbPli' >Effacer les valeurs</a></td></tr></table>";			
				GetElement("divSupprimerDept").style.display = "block";
				
				//Si c le 1° département on met le focus dessus
				if(tableau.length == 1) 
					self.scrollBy(0,1000);
			}
			else
			{
				listeDpt.innerHTML = "";
				GetElement("divSupprimerDept").style.display = "none";
			}
		}
		catch (ex) {}
	}
	/* 
		simuDept.aspx
		Appelé lors du clic sur la carte ou sur le bouton d'ajout de la liste (unitairement)
		Attribut à la div 'tableDepartement' le nouveau tableau avec le département
		cliqué, ne fait rien si le département existe déjà
	*/
	function AjouteDpt(departement,evt)
	{	
		try
		{
			
			//La valeur de departement est null quand on vient du clic sur la case à cocher
			if(departement == "")
			{
				//cas Firefox ||IE
				evt = evt || window.event;
				target = evt.target || evt.srcElement;
				departement = target.parentNode.lastChild.innerHTML;
			}
			var tableau=GetTableauDepartement();
						
			if(tableau == null) tableau = new Array();
			
			var index = existe(departement,tableau)
			//si le département n'existe pas on l'ajoute sinon on l'enlève
			if(index < 0)
			{						
				index = tableau.length - 1;
							
				//cherche la place du nouveau département en testant les chaines de caractères	
				while(index >= 0 && tableau[index] > departement)
				{				
					tableau[index+1] = tableau[index]; 
					index --;
				}
							
				//Ajoute le département dans la liste
				tableau[index+1] = departement;
				
			}
			else
				tableau[index] = "";
			
			//re rempli la liste
			RempliDivTableau(tableau/*,departement*/);
		
		}
		catch (ex) {}
	}
	
	function AttacheEventCheckBox(nbmax)
	{
		try
		{		
			for (i=0 ; i<nbmax; i++)
			{
				//Récupère la checkbox
				var check = GetElement('chListeDept_'+ i);
				
				//Attache l'évènement et passe en paramètre le nom du département
				check.onclick = function(evt) {AjouteDpt("",evt);};				
			}
		
		}
		catch (ex) {}
	}

	/*
		simuDept.aspx
		Appelé lors du clic sur le bouton Effacer les valeurs
		remet à vide les inputs du nombre de plis
	*/
	function EffacerNbPli()
	{
		try
		{
			var tableauDept = GetTableauDepartement();
			
			for(var i=0;i<tableauDept.length;i++)
			{
				var numeroDepartement = tableauDept[i].substring(0,3).replace(" ","");
				GetElement("plis_dpt_"+numeroDepartement).value="";
				GetElement("divMessageErreur"+numeroDepartement).innerText="";
			}
		}
		catch (ex) {}
	}
	/*
		simuDept.aspx
		Appelé lors du clic sur la carte de france
		coche la liste des départments
		et ajoute dans la liste le département sélectionné
	*/	
	function CocheDept(departement)
	{			
		try
		{
			//On construit l'id de la checkbox
			//On récupère le numéro du département
			var numeroDept = departement.substring(0,departement.indexOf("-")-1);
						
			//Si on a 3 chiffres on est dans les DOM -> traitement spécial
			if(numeroDept.length == 3)
			{
				switch(numeroDept)
				{
					case "971":
						numeroDept = "96";
						break;						
					case "972":
						numeroDept = "97";
						break;
					case "973":
						numeroDept = "98";
						break;
					case "974":
						numeroDept = "99";
						break;
				}
			}
			else if(numeroDept == "98")
				numeroDept = "100";
				
			//si le 1° chiffre est un 0 il faut l'enlever
			else if(numeroDept.substring(0,1) == '0')numeroDept = numeroDept.substring(1,2);
			
			var idDept = 'chListeDept_' + (numeroDept-1);
			if(GetElement(idDept) != null)	
			{
				if(GetElement(idDept).checked)
					GetElement(idDept).checked = false;
				else
					GetElement(idDept).checked = true;
			}
			AjouteDpt(departement,null);
		}
		catch (ex) {}
	}

	/*
		simuDept.aspx
		Appelé lors du clic sur le bouton valider
		récupère les départements sélectionnés ainsi que le nombre de plis associés
		et les envoi coté serveur
	*/	
	function ValiderDept()
	{			
		try
		{
			var tableauDept=GetTableauDepartement();
			
			//sauvegarde les valeurs dans les champs cachés
			var formDept = GetElement("formDept");			
			
			formDept.Validation.value = "OK";
			if(tableauDept != null)
				formDept.ListeNbPli.value = GetNbPliDepartement(tableauDept);
			
			//envoi le formulaire
			formDept.submit();
		}
		catch (ex) {}
	}
	/*
		simuDept.aspx
		Appelé lors du changement des champs plis de la page département
		que du numérique de 8 caractères maximum
	*/	
	function controleFormatEntier(idEntier)
	{
		try
		{
			var entier = document.getElementById("plis_dpt_"+idEntier);
			entier.value = trimString(entier.value);
				
			var divErreur = document.getElementById("divMessageErreur"+idEntier);
					
			if(entier.value != "")
			{			
				var exp=new RegExp("^([0-9])*$");
				
				if (! exp.test(entier.value)) 
				{
					//entier.innerText = "";
					divErreur.innerText = "Le format n'est pas valide";
				}
				else
				{
					divErreur.innerText = "";
					//vérifie la taille max
					if((entier.value).length > 7)
						entier.innerText = entier.value.substring(0,7);
						//divErreur.innerText = "La longueur n'est pas valide (maximum 7 chiffres)";
			
				}
			}
			else
					divErreur.innerText = "";
		}
		catch (ex) {}
	}

	/*
		simuDept.aspx
		Appelé lors du clic sur le mode de sélection des départements
		affiche et cache la div appropriée
	*/	
	function ChangeMode()
	{
		try
		{
			if(GetElement('Graphique').checked)
			{
				GetElement('divCarteFrance').style.display = "block";
				GetElement('divListeDept').style.display = "none";
			}
			else
			{
				GetElement('divCarteFrance').style.display = "none";
				GetElement('divListeDept').style.display = "block";
				GetElement('Liste').checked = true;
			}
		}
		catch (ex) {}
	}
	function Focus(nom)
	{
		try
		{
			GetElement(nom).focus();
		}
		catch (ex) {}
	}
	document.onkeydown=VerifieTouche;
	function VerifieTouche(evt)
	{		
		try
		{
			var code;
			if(evt == null)	evt = window.event;
				
			if(evt != null)
			{
				if (evt.keyCode) code = evt.keyCode;
				else if (evt.which) code = evt.which;
				
				switch(code)
				{
					case  116 :
					{
						//On met la div carte ou liste comme elle est sélectionnée sur les radios
						var graph = GetElement('Graphique')
						if(graph != null)	graph.checked = true;
						break;
					}
					case 13 :
					{
						var lbValider = GetElement('lbValider')
						if(lbValider != null)	lbValider.focus();
						break;
					}
				}
			}
		}
		catch (ex) {}
	}
	
	/* 
		BasePage
		Ouvre un fichier avec le mode ouvrir/enregistrer
	*/
	function OuvrirFichierAide()
	{
		try
		{
			var sArg = 'height=600,width=800,status=yes,toolbar=no,menubar=no,location=no,top=0,left=0,resizable=yes';
			tabin = window.open('../aide/telechargement.aspx', 'CourrierPdf', sArg);
			if(tabin != null)	tabin.focus();				
		}
		catch (ex) {}
	}
