// GeC
// Fonctions de mise en forme liées au code postal ou à la ville




// normaliserVille() standardise le param ville.
// Le but est de faire disparaître les légères variations de saisie.
// Les transformations sont (dans cet ordre):
// e pris dans l'a devient ae
// e pris dans l'o devient oe
// le sz allemand devient ss
// les lettres accentuées françaises deviennent non-accentuees (ne pas oublier le y ou Y trema pour l'hay les roses, ainsi que la cédille)
// les lettres minuscules deviennent majuscules
// Les noms "SAINT" et "SAINTE" doivent être écrits "ST" et "STE" à l'exception de "SAINTES" et "SAINTS" (dixit La Poste qui s'exprime mal  puisque par exemple Corsaint ou Sainteny ne changent pas)
// le premier chiffre est précédé d'un espace (paris(15) devient paris( 15))
// ce qui suit le dernier chiffre est supprimé (paris 15ème arrondissement devient PARIS 15)
// l'apostrophe est remplacée par un espace (dixit La Poste)
// le non-alphanumérique est remplacé par un espace
// les blancs consécutifs sont réduits à un seul espace
// le résultat est trimé

function normaliserVille(ville)
{
	var s, re;
	s = ville;
	
	re = /(\u00e6)|(\u00c6)/g; //lettre latine AE min ou maj
	s = s.replace(re, 'ae');
	
	re = /(\u0152)|(\u0153)/g; //digramme soudé latin OE min ou maj
	s = s.replace(re, 'oe');
	
	re = /(\u00df)/g; //lettre minuscule latine s dur ("sz" allemand)
	s = s.replace(re, 'ss');

	re = /à|ä|â|À|Â|Ä/g; //lettres A accentuées
	s = s.replace(re, 'A');

	re = /é|è|ê|ë|É|È|Ê|Ë/g; //lettres E accentuées
	s = s.replace(re, 'E');

	re = /î|ï|Î|Ï/g; //lettres I accentuées
	s = s.replace(re, 'I');

	re = /ô|ö|Ô|Ö/g; //lettres O accentuées
	s = s.replace(re, 'O');

	re = /ù|û|ü|Ù|Û|Ü/g; //lettres U accentuées
	s = s.replace(re, 'U');

	re = /\u00ff|\u0178/g; //lettres Y accentuées
	s = s.replace(re, 'Y');

	re = /ç|Ç/g; //C cédille
	s = s.replace(re, 'C');

	s = s.toUpperCase(); //passage en majuscules

	re = /SAINTE([^A-Z]+)/g; //SAINTE suivi d'une non-lettre devient STE espace
	s = s.replace(re, 'STE $1');

	re = /SAINT([^A-Z]+)/g; //SAINT suivi d'une non-lettre devient ST espace
	s = s.replace(re, 'ST $1');

	re = /^(\D*)(\d)/; //faire précéder le premier chiffre d'un espace
	s = s.replace(re, '$1 $2');

	re = /^(.*\d)\D*$/; //supprimer ce qui suit le dernier chiffre
	s = s.replace(re, '$1');

	//l'apostrophe est remplacée par un espace
	re = /\W|_/g; //le non-alphanumérique est remplacé par un espace
	s = s.replace(re, ' ');
	
	re = /\s+/g; //les blancs consécutifs sont réduits à un espace
	s = s.replace(re, ' ');

	re =  /(^\s*)|(\s*$)/g; //trim
	s = s.replace(re, '');

	return s;
}



