
function setTown() {

	vTowns = trim(document.getElementById('town').value);
	
	vTowns = vTowns.toLowerCase();
	vTowns = document.getElementById('town').value 
	vTowns = vTowns.replace(/sainte /g, 'ste ');
	vTowns = vTowns.replace(/saint /g, 'st ');
    vTowns = vTowns.replace(/[àâäåãáÂÄÀÅÃÁæÆ]/g, 'A');
    vTowns = vTowns.replace(/[çÇ]/g, 'C');
    vTowns = vTowns.replace(/[éèêëÉÊËÈ]/g, 'E');
    vTowns = vTowns.replace(/[ïîìíÏÎÌÍ]/g, 'I');
    vTowns = vTowns.replace(/[ñÑ]/g, 'N');
    vTowns = vTowns.replace(/[öôóòõÓÔÖÒÕ]/g, 'O');
    vTowns = vTowns.replace(/[š]/g, 'S');
    vTowns = vTowns.replace(/[ùûüúÜÛÙÚ]/g, 'U');
    vTowns = vTowns.replace(/[ýÿ]/g, 'Y');
    vTowns = vTowns.replace(/[ž]/g, 'Z');
	
	vTowns = vTowns.toUpperCase();
	vTowns = vTowns.replace(/PARIS(?=[1-9]\b)/, 'PARIS0')		
	vTowns = vTowns.replace(/LYON(?=[1-9]\b)/, 'LYON0')		
	vTowns = vTowns.replace(/MARSEILLE(?=[1-9]\b)/, 'MARSEILLE0')		
	vTowns = vTowns + ',';

	//cleanup
	vTowns = vTowns.replace(/^,+/, '')				//remove commas at the beginning
	vTowns = vTowns.replace(/,+/g, ',')				//remove multiple commas
    vTowns = vTowns.replace(/[^A-Z0-9,\s]/g, ' ');  //remove non alphas
    vTowns = vTowns.replace(/\s*,\s*/g, ', ');		//set the seperator	
    vTowns = vTowns.replace(/\s+/g, ' ');			//remove multiple spaces 
    vTowns = vTowns.replace(/(,\s)+/g, ', ');		//remove multiple spaces 
    vTowns = trim(vTowns);
	vTowns = ', ' + vTowns;
    	
	if (vTowns.match(/[A-Z0-9]/) == null) {
		vTowns = '';
	}
	document.getElementById('town').value = vTowns;
	vTownsOrig = vTowns;
	//alert('vTowns = ' + vTowns);

	//now we have a list of towns with no comma at the beginning, 1 comma at the end  and all other commas as comma followed by a space.
	//Town > 400 chars ?
	if (vTowns.length > 400) {
		strError = strError + 'Codes Postaux / Villes : Vous dépassez le maximum de 400 caractères. Réduisez le nombre de caractères et essayez à nouveau.<BR>';
	} else if (vTowns.length > 0) {
	
		tempTownArray = vTowns.split(',');
		lenTownArray = tempTownArray.length
		customString = ',' + customarray.join('¬')
		customString = customString.replace(/¬/g, '')
		customString = customString.replace(/, /g, ',')
		//alert(customString);

		for ( var i = 0; i < lenTownArray; i++ ){
			if (tempTownArray[i] != '') {
			
				testString = '';
				townErrorMessage = '';
				townOrig = trim(tempTownArray[i]);
				
				//only 5 digit postcode
				if ( townOrig.match(/^\d{5}$/) ) {
					
					//alert('5 DIGIT POSTCODE = ' + townOrig);
					townToTest = ',' + townOrig + ' TOUTES COMMUNES,';
					
					if (customString.match(townToTest)) {
						vTowns = vTowns.replace(', ' + townOrig + ',', ', ' + townOrig + ' TOUTES COMMUNES,')
						document.getElementById('town').value = vTowns;
					} else {
						townToTest = ',' + townOrig + ' ';
						if (customString.match(townToTest)) {
							obj = new RegExp('^.*?'+townToTest)
							testString = customString.replace(obj, '')	
							obj = new RegExp(',.*')
							testString = testString.replace(obj, '')	
							vTowns = vTowns.replace(', ' + townOrig + ',', ', ' + townOrig + ' ' + testString + ',')
							document.getElementById('town').value = vTowns;
							//alert(customString)	
						} else {
							townErrorMessage = 'error';
						}
					
					}

				//2 or 3 digit postcode
				} else if ( townOrig.match(/^\d{2}$/) || townOrig.match(/^\d{3}$/) ) {

					//alert('DEP =' + townOrig);
					townToTest = ',' + townOrig + ' TOUT LE DEPARTEMENT,';
					
					if (customString.match(townToTest)) {
						//alert('OK');
						vTowns = vTowns.replace(', ' + townOrig + ',', ', ' + townOrig + ' TOUT LE DEPARTEMENT,')
						document.getElementById('town').value = vTowns;
					} else {
						townErrorMessage = 'error';
					}

				//only letters eg. LE BAR SUR LOUP
				} else if ( townOrig.match(/^[A-Z ]+$/) ) {
				
					//alert('only letters');
					townToTest = townOrig + ',';
					//alert('townToTest =' + townToTest);
					obj = new RegExp('\\d{2,5} ' + townToTest);

					if (customString.match(obj)) {
						//alert('town exists');
						obj = new RegExp('^.*?(?=\\d{2,5} ' + townToTest + ')')
						testString = customString.replace(obj, '')	
						obj = new RegExp(' .*')
						testString = testString.replace(obj, '')	
						vTowns = vTowns.replace(', ' + townOrig + ',', ', ' + testString + ' ' + townOrig + ',')
						document.getElementById('town').value = vTowns;
					} else {
						townErrorMessage = 'error';
					}
				
				//normal entry - 06620 LE BAR SUR LOUP
				} else {
				
					//alert('last check');
					townToTest = ',' + townOrig + ',';
					if (customString.match(townToTest)==null) {
						townErrorMessage = 'error';
					}
					
				}
				
				if (townErrorMessage == 'error') {
					strError= strError + townOrig + ' ne s\'affiche pas  car il n\'existe pas OU il ne fait pas partie des codes postaux de votre secteur ou de votre abonnement.<br>';
					//if (vTownsOrig.match(/\s+/)) {
						strError = strError + '<br><b>Assurez-vous que les codes postaux + villes, que vous entrez, sont bien séparés d\'une virgule.</b><br>'
					//}
					//alert(townOrig);
					vTowns = vTowns.replace(townOrig, ',')
					document.getElementById('town').value = vTowns;
				}	
				
				//clean up
				vTowns = vTowns.replace(/^,+/, '')				//remove commas at the beginning
				vTowns = vTowns.replace(/,+/g, ',')				//remove multiple commas
		        vTowns = vTowns.replace(/[^A-Z0-9,\s]/g, ' ');  //remove non alphas
		        vTowns = vTowns.replace(/\s*,\s*/g, ', ');		//set the seperator	
		        vTowns = vTowns.replace(/\s+/g, ' ');			//remove multiple spaces 
		        vTowns = vTowns.replace(/(,\s)+/g, ', ');		//remove multiple commas followed by spaces 
		        vTowns = trim(vTowns)	
				if (vTowns.match(/[A-Z0-9]/) == null) {
					vTowns = '';
				}
				document.getElementById('town').value = vTowns;
				
			}
		}				
	
	}

}	

