/*PTZ+*/
function format(valeur,decimal,separateur) {
	var deci = Math.round( Math.pow(10,decimal)*(Math.abs(valeur)-Math.floor(Math.abs(valeur)))); 
	var val = Math.floor(Math.abs(valeur));
	if((decimal==0)||(deci==Math.pow(10,decimal))) {
		val = Math.floor(Math.abs(valeur));
		deci = 0;
	}
	var val_format = val+"";
	var nb = val_format.length;
	for(var i=1;i<4;i++)
		if(val>=Math.pow(10,(3*i))) val_format = val_format.substring(0,nb-(3*i))+separateur+val_format.substring(nb-(3*i));
	if(decimal > 0) {
		var decim=""; 
		for (var j=0;j<(decimal-deci.toString().length);j++) decim+="0";
		deci=decim+deci.toString();
		val_format=val_format+"."+deci;
	}
	if(parseFloat(valeur)<0) val_format = "-"+val_format;
	return val_format;
}
function boutonHover(expr, image) {
	var image2 = $(expr).attr('src');
	$(expr).mouseover(function() {$(expr).attr('src',image)});
	$(expr).mouseout(function() {$(expr).attr('src',image2)});
}

//Supprime les espace d'une string
function sp(expr) {
	if(expr != null && expr != '' && $(expr).val() != null && $(expr).val() != '') {
		val = parseInt($(expr).val().replace(/ /g,''));
		return (isNaN(val)) ? 0 : val;
	}
	return 0;
}
function formatFloat(valeur, separateur){ return (separateur == ".") ? valeur.replace(/,/g, "\.") : valeur.replace(/\./g, ","); }
function empty(mixed_var) {
    var key;   
    if(mixed_var === "" || mixed_var === 0 || mixed_var === "0" || mixed_var === null || mixed_var === false || mixed_var === undefined) return true;
    if(typeof mixed_var == 'object') {
        for(key in mixed_var) return false;
        return true;
    } 
    return false;
}

//PTZ
$(function() {
	var plusGrand = 0;
	if($('#zone_droite').height() > $('#zone_gauche').height()) {
		plusGrand = $('#zone_droite').height();
	} else {
		plusGrand = $('#zone_gauche').height();	
	}
	if($('#zone_centre').height() > plusGrand)
		plusGrand = $('#zone_centre').height();
	
	if($('.zone_menu_partenaires').size() > 0) {
		plusGrand = $('#zone_gauche').height();
	}
	//if($.browser.safari || $.browser.msie) {
		plusGrand+=50;
	//}
	$('#zone_droite').height(plusGrand);
	$('#zone_gauche').height(plusGrand);
	$('#zone_centre').height(plusGrand);
	
	inputAssist('#NW_mail1','Indiquez votre mail');
	
	boutonHover('.hoverPerso','images/bouton_espace_perso_on.png');
	boutonHover('.hoverDeco','images/bouton_deconnexion_on.png');
	boutonHover('.hoverOk','images/bouton_ok_on.png');
	boutonHover('.hoverEnvPerso','images/bouton_envoyer_espace_perso_on.png');
	
	
	//Select pour IE
	var wSelect = new Array();
	var hasFocus = new Array();
	var isIE = (navigator.appName.indexOf("Microsoft")!=-1);

	
	$(document).ready(function(){
	    if(isIE){
	       
	        $(".selectLarge").each(function (i) {
	           
	            hasFocus[i] = false;
	            wSelect[i] = $(this).width()+2;

	            $(this).focus(function(){
	                hasFocus[i] = true;
	            });
	           
	      $(this).bind("mouseover", function(){
	                $(this).width('auto');
	                if($(this).width()<wSelect[i]){
	                    $(this).width(wSelect[i]);
	                }
	           });
	           
	            $(this).bind("mouseout", function(){
	            if(!hasFocus[i]){
	                $(this).width(wSelect[i]);
	            }
	           });
	          
	           $(this).blur(function(){
	             hasFocus[i] = false;
	             $(this).width(wSelect[i]);
	           });
	    });
	       
	    }
	});
	
	
});

function getVilleByCP() {
	var cp = $('#cp').val();
	
	$('#ville option').remove();
	if(cp != '') {
		$.get('index.php?ajax=getVilleByCP&cp='+cp, function(data) {
			$('#ville').attr('disabled',false);
			$('#ville').append(data);
		}); 
	} else {
		$('#ville').attr('disabled',true);
	}
}
function removeAccent(string) {
	var hash = new Array();
	var tmp  = "";
	var from = 'àáâãäçèéêëìíîïñòóôõöùúûüýÿ';
	var to = 'aaaaaceeeeiiiinooooouuuuyy';
	var length = ((from.length < to.length) ? from.length : to.length);
	for (var i=0; i<length; i++) hash[from.charAt(i)] = to.charAt(i);
	for (var i=0; i<string.length; i++) { var c = string.charAt(i); tmp = ((hash[c]) ? tmp+hash[c] : tmp+c); }
	return tmp;
}
function getCPByVille() {
	var ville = $('#ville > option:selected').html();
	var departement = $('#departement > option:selected').html();
		
	if(ville != '' && ville != '-- Autre --' && departement != '-- Autre --') {
		ville = removeAccent(ville);
		var reg = new RegExp("[^a-zA-Z]", "g");
		ville = ville.replace(reg, " ");
		$.get('index.php?ajax=getCPByVille&nom='+ville+'&cp='+departement.substr(0,departement.indexOf('-')-1), function(data) {
			$('#codePostal').val(data);
		});
	}
}
function displayResult(expr, title, width) {
	if($('#dialogPTZ').size() == 0 || $('#dialogPTZ #montant').html() == '') {
		if(width == 0) width = $(expr).width();
		$(expr).dialog({
			draggable: false,
			resizable: false,
			title: title,
			modal: true,
			width:500,
			close : function(){$(expr).dialog('destroy');}
		});
	} else {
		var montant = new String($('#dialogPTZ #montant').html());
		var reg =new RegExp("[^0-9]", "g");
		montant = montant.replace(reg, "");
		$('#inputPTZ').val(montant);
		$('#dialogPTZ').dialog('close');
		
		$('#codePostal').val($('#cp').val());
		$('#commune').val(
			$('#ville > option:selected').html().substr(0,$('#ville > option:selected').html().indexOf('-')-1)
			);
		$('#revenu_fiscal').val($('#revenuFiscalPTZ').val());
		$('#nb_pers_foyer_fiscal').val($('#nb_personne').val());
		
		calcMontantPret();
	}
}
function run_form() {
	init();
	calcul();
	var cout_achat = formatFloat($("#cout_achat").val(), ".");
	var revenuFiscalPTZ = formatFloat($("#revenuFiscalPTZ").val(), ".");
	if(isNaN(cout_achat) || cout_achat < 0 || empty(cout_achat) || isNaN(revenuFiscalPTZ) || revenuFiscalPTZ < 0 || empty(revenuFiscalPTZ) || $("#departement").val() == '') {
		$("#ErrorBox").dialog({autoOpen: false,width:400,title:'Certaines informations sont obligatoires'});
		$('#ErrorBox').css('display', 'block');
		$('#ErrorBox').dialog("open");
	}
	else {
		var montant = new String($('#dialogPTZ #montant_ptz').html());
		var reg =new RegExp("[^0-9\.]", "g");
		montant = montant.replace(reg, "");
		$('#inputPTZ').val(montant);
		$('#dialogPTZ').dialog('close');
		var ville = $('#ville > option:selected').html();
		if(ville != '-- Autre --') {
			$('#commune').attr('value', ville);
		}
		getCPByVille();
		$('#revenu_fiscal').attr('value', $('#revenuFiscalPTZ').val());
		$('#nb_pers_foyer_fiscal').attr('value', $('#nb_personne').val().substr(0,$('#nb_personne').val().indexOf('-')));
		calcMontantPret();
	}
	return false;
}
function run() {
	init();
	calcul();
	var cout_achat = formatFloat($("#cout_achat").val(), ".");
	var revenuFiscalPTZ = formatFloat($("#revenuFiscalPTZ").val(), ".");
	if(isNaN(cout_achat) || cout_achat < 0 || empty(cout_achat) || isNaN(revenuFiscalPTZ) || revenuFiscalPTZ < 0 || empty(revenuFiscalPTZ) || $("#departement").val() == '') {
		$("#ErrorBox").dialog({autoOpen: false,width:400,title:'Certaines informations sont obligatoires'});
		$('#ErrorBox').css('display', 'block');
		$('#ErrorBox').dialog("open");
	}
	else {
		$("#resultBox").dialog({autoOpen: false,width:400,title:'Résultat'});
		$('#resultBox').css('display', 'block');
		$('#resultBox').dialog("open");
	}
	return false;
}
function displayPTZ() {
	
	var expr = '#dialogPTZ';
	
	$('body').append('<div id="dialogPTZ"></div>');
	
	$(expr).load('index.php?ajax=getPTZFormAjax');
	
	width = 500;
	title = 'Calculez votre prêt à taux zero +';
	$(expr).dialog({
		draggable: false,
		resizable: false,
		title: title,
		modal: true,
		width:width,
		close : function(){
			$(expr).dialog('destroy');
		}
	});
}
function calcul() {
	init();
	var plafondsNeuf = new Array();
	plafondsNeuf["1-personne"] = new Array();
	plafondsNeuf["1-personne"]["zone-A"] = 156000;
	plafondsNeuf["1-personne"]["zone-B1"] = 117000;
	plafondsNeuf["1-personne"]["zone-B2"] = 86000;
	plafondsNeuf["1-personne"]["zone-C"] = 79000;

	plafondsNeuf["2-personnes"] = new Array();
	plafondsNeuf["2-personnes"]["zone-A"] = 218000;
	plafondsNeuf["2-personnes"]["zone-B1"] = 164000;

	plafondsNeuf["2-personnes"]["zone-B2"] = 120000;
	plafondsNeuf["2-personnes"]["zone-C"] = 111000;

	plafondsNeuf["3-personnes"] = new Array();
	plafondsNeuf["3-personnes"]["zone-A"] = 265000;
	plafondsNeuf["3-personnes"]["zone-B1"] = 199000;
	plafondsNeuf["3-personnes"]["zone-B2"] = 146000;
	plafondsNeuf["3-personnes"]["zone-C"] = 134000;

	plafondsNeuf["4-personnes"] = new Array();
	plafondsNeuf["4-personnes"]["zone-A"] = 312000;
	plafondsNeuf["4-personnes"]["zone-B1"] = 234000;
	plafondsNeuf["4-personnes"]["zone-B2"] = 172000;
	plafondsNeuf["4-personnes"]["zone-C"] = 158000;

	plafondsNeuf["5-personnes"] = new Array();
	plafondsNeuf["5-personnes"]["zone-A"] = 359000;
	plafondsNeuf["5-personnes"]["zone-B1"] = 269000;
	plafondsNeuf["5-personnes"]["zone-B2"] = 198000;
	plafondsNeuf["5-personnes"]["zone-C"] = 182000;

	var plafondsAncien = new Array();
	plafondsAncien["1-personne"] = new Array();
	plafondsAncien["1-personne"]["zone-A"] = 124000;
	plafondsAncien["1-personne"]["zone-B1"] = 93000;
	plafondsAncien["1-personne"]["zone-B2"] = 86000;
	plafondsAncien["1-personne"]["zone-C"] = 79000;

	plafondsAncien["2-personnes"] = new Array();
	plafondsAncien["2-personnes"]["zone-A"] = 174000;
	plafondsAncien["2-personnes"]["zone-B1"] = 130000;
	plafondsAncien["2-personnes"]["zone-B2"] = 120000;
	plafondsAncien["2-personnes"]["zone-C"] = 111000;

	plafondsAncien["3-personnes"] = new Array();
	plafondsAncien["3-personnes"]["zone-A"] = 211000;
	plafondsAncien["3-personnes"]["zone-B1"] = 158000;
	plafondsAncien["3-personnes"]["zone-B2"] = 146000;
	plafondsAncien["3-personnes"]["zone-C"] = 134000;

	plafondsAncien["4-personnes"] = new Array();
	plafondsAncien["4-personnes"]["zone-A"] = 248000;
	plafondsAncien["4-personnes"]["zone-B1"] = 186000;
	plafondsAncien["4-personnes"]["zone-B2"] = 172000;
	plafondsAncien["4-personnes"]["zone-C"] = 158000;

	plafondsAncien["5-personnes"] = new Array();
	plafondsAncien["5-personnes"]["zone-A"] = 285000;
	plafondsAncien["5-personnes"]["zone-B1"] = 214000;
	plafondsAncien["5-personnes"]["zone-B2"] = 198000;
	plafondsAncien["5-personnes"]["zone-C"] = 182000;

	// Montant du PTZ+ pour l'achat d'un logement NEUF
	// Pourcentage du cout de l'operation
	var coutNeuf = new Array();
	coutNeuf["zone-A"] = new Array();
	coutNeuf["zone-A"]["oui-bbc"] = 40;
	coutNeuf["zone-A"]["non-bbc"] = 27;
	coutNeuf["zone-B1"] = new Array();
	coutNeuf["zone-B1"]["oui-bbc"] = 35;
	coutNeuf["zone-B1"]["non-bbc"] = 22;
	coutNeuf["zone-B2"] = new Array();
	coutNeuf["zone-B2"]["oui-bbc"] = 30;
	coutNeuf["zone-B2"]["non-bbc"] = 17;
	coutNeuf["zone-C"] = new Array();
	coutNeuf["zone-C"]["oui-bbc"] = 25;
	coutNeuf["zone-C"]["non-bbc"] = 15;

	// Coefficient familial du ptz+
	var coeff = new Array();
	coeff["1-personne"] = 1;
	coeff["2-personnes"] = 1.4;
	coeff["3-personnes"] = 1.7;
	coeff["4-personnes"] = 2;
	coeff["5-personnes"] = 2.3;
	coeff["6-personnes"] = 2.6;
	coeff["7-personnes"] = 2.9;
	coeff["8-personnes"] = 3.2;

	//Barèmes de la tranche de remboursement (logement NEUF)
	var tranchesNeuf = Array();
	tranchesNeuf["zone-A"] = new Array();
	tranchesNeuf["zone-A"][1] = 15000;
	tranchesNeuf["zone-A"][2] = 17500;
	tranchesNeuf["zone-A"][3] = 20500;
	tranchesNeuf["zone-A"][4] = 23000;
	tranchesNeuf["zone-A"][5] = 25500;
	tranchesNeuf["zone-A"][6] = 28500;
	tranchesNeuf["zone-A"][7] = 31000;
	tranchesNeuf["zone-A"][8] = 36000;
	tranchesNeuf["zone-A"][9] = 49500;

	tranchesNeuf["zone-B1"] = new Array();
	tranchesNeuf["zone-B1"][1] = 12000;
	tranchesNeuf["zone-B1"][2] = 14000;
	tranchesNeuf["zone-B1"][3] = 16000;
	tranchesNeuf["zone-B1"][4] = 18000;
	tranchesNeuf["zone-B1"][5] = 19500;
	tranchesNeuf["zone-B1"][6] = 21500;
	tranchesNeuf["zone-B1"][7] = 23500;
	tranchesNeuf["zone-B1"][8] = 26000;
	tranchesNeuf["zone-B1"][9] = 32500;

	tranchesNeuf["zone-B2"] = new Array();
	tranchesNeuf["zone-B2"][1] = 10000;
	tranchesNeuf["zone-B2"][2] = 11500;
	tranchesNeuf["zone-B2"][3] = 12500;
	tranchesNeuf["zone-B2"][4] = 14000;
	tranchesNeuf["zone-B2"][5] = 15000;
	tranchesNeuf["zone-B2"][6] = 16500;
	tranchesNeuf["zone-B2"][7] = 18000;
	tranchesNeuf["zone-B2"][8] = 20000;
	tranchesNeuf["zone-B2"][9] = 26500;

	tranchesNeuf["zone-C"] = new Array();
	tranchesNeuf["zone-C"][1] = 8000;
	tranchesNeuf["zone-C"][2] = 9500;
	tranchesNeuf["zone-C"][3] = 10500;
	tranchesNeuf["zone-C"][4] = 11500;
	tranchesNeuf["zone-C"][5] = 13000;
	tranchesNeuf["zone-C"][6] = 14000;
	tranchesNeuf["zone-C"][7] = 15000;
	tranchesNeuf["zone-C"][8] = 18500;
	tranchesNeuf["zone-C"][9] = 26500;

	//Barèmes de la tranche de remboursement (logement ANCIEN)
	var tranchesAncien = Array();
	tranchesAncien["zone-A"] = new Array();
	tranchesAncien["zone-A"][1] = 12000;
	tranchesAncien["zone-A"][2] = 15000;
	tranchesAncien["zone-A"][3] = 17500;
	tranchesAncien["zone-A"][4] = 20500;
	tranchesAncien["zone-A"][5] = 23000;
	tranchesAncien["zone-A"][6] = 25500;
	tranchesAncien["zone-A"][7] = 28500;
	tranchesAncien["zone-A"][8] = 31000;
	tranchesAncien["zone-A"][9] = 43500;

	tranchesAncien["zone-B1"] = new Array();
	tranchesAncien["zone-B1"][1] = 10000;
	tranchesAncien["zone-B1"][2] = 12000;
	tranchesAncien["zone-B1"][3] = 14000;
	tranchesAncien["zone-B1"][4] = 16000;
	tranchesAncien["zone-B1"][5] = 18000;
	tranchesAncien["zone-B1"][6] = 19500;
	tranchesAncien["zone-B1"][7] = 21500;
	tranchesAncien["zone-B1"][8] = 23500;
	tranchesAncien["zone-B1"][9] = 30500;

	tranchesAncien["zone-B2"] = new Array();
	tranchesAncien["zone-B2"][1] = 9000;
	tranchesAncien["zone-B2"][2] = 10000;
	tranchesAncien["zone-B2"][3] = 11500;
	tranchesAncien["zone-B2"][4] = 12500;
	tranchesAncien["zone-B2"][5] = 14000;
	tranchesAncien["zone-B2"][6] = 15000;
	tranchesAncien["zone-B2"][7] = 16500;
	tranchesAncien["zone-B2"][8] = 18000;
	tranchesAncien["zone-B2"][9] = 26500;

	tranchesAncien["zone-C"] = new Array();
	tranchesAncien["zone-C"][1] = 8000;
	tranchesAncien["zone-C"][2] = 9500;
	tranchesAncien["zone-C"][3] = 10500;
	tranchesAncien["zone-C"][4] = 11500;
	tranchesAncien["zone-C"][5] = 13000;
	tranchesAncien["zone-C"][6] = 14000;
	tranchesAncien["zone-C"][7] = 15000;
	tranchesAncien["zone-C"][8] = 16500;
	tranchesAncien["zone-C"][9] = 26500;

	// Remboursement : pourcentage du capital différé (par tranche)
	// tranches 5 a 10 => 0%
	var capital = new Array();
	capital[1] = 45;
	capital[2] = 35;
	capital[3] = 20;
	capital[4] = 15;

	// Durée du remboursement : periode 1 en années (par tranche)
	var periode1 = new Array();
	periode1[1] = 23;
	periode1[2] = 23;
	periode1[3] = 23;
	periode1[4] = 23;
	periode1[5] = 23;
	periode1[6] = 20;
	periode1[7] = 16;
	periode1[8] = 12;
	periode1[9] = 8;
	periode1[10] = 5;

	// Durée du remboursement : periode 2 en années (par tranche)
	// utilisé pour le capital différé
	// aucune periode pour les tranches 5 a 10
	var periode2 = new Array();
	periode2[1] = 7;
	periode2[2] = 5;
	periode2[3] = 3;
	periode2[4] = 2;

	var proprietaire = document.getElementById("proprietaire").value;
	var type_logement = document.getElementById("type_logement").value;

	var cout_achat = formatFloat(document.getElementById("cout_achat").value, ".");
	var nb_personne = document.getElementById("nb_personne").value;
	var revenu_fiscal = formatFloat(document.getElementById("revenuFiscalPTZ").value, ".");
	var zone = document.getElementById("zone").value;
	var bbc = document.getElementById("bbc").value;
	var categorie = document.getElementById("categorie").value;
	var hlm = document.getElementById("hlm").value;

	if (isNaN(cout_achat) || cout_achat < 0 || empty(cout_achat))
		return false;

	if(isNaN(revenu_fiscal) || revenu_fiscal < 0)
		return false;
	else if (empty(revenu_fiscal))
		revenu_fiscal = 0;

	// PTZ+ pour logement NEUF
	if (type_logement == "neuf") {

		// calcul du plafond
		// nb_personne > 5 => plafonds identiques a 5 personnes
		if (nb_personne == "6-personnes" || nb_personne == "7-personnes" || nb_personne == "8-personnes")
			nb_personne = "5-personnes";

		var plafond = plafondsNeuf[nb_personne][zone];
		var cout_operation = coutNeuf[zone][bbc];

		// calcul du ptz+
		if (cout_achat >= plafond)
			var ptz = plafond * cout_operation / 100;
		else
			var ptz = cout_achat * cout_operation / 100;

		// PTZ+ pour logement ANCIEN
	} else if(type_logement == "ancien") {

		// calcul du plafond
		// nb_personne > 5 => plafonds identiques a 5 personnes
		if (nb_personne == "6-personnes" || nb_personne == "7-personnes" || nb_personne == "8-personnes")
			nb_personne = "5-personnes";

		var plafond = plafondsAncien[nb_personne][zone];

		// calcul du cout de l'operation
		if(categorie == "cat-a-d")
			var cout_operation = 20;
		else if(categorie == "cat-e-f")
			var cout_operation = 10;
		else if (categorie == "cat-g")
			var cout_operation = 5;

		var coutHLM = (hlm == "oui-hlm") ?5 : 0;

		cout_operation += coutHLM;

		// calcul du ptz+
		if (cout_achat >= plafond)
			var ptz = plafond * cout_operation / 100;
		else
			var ptz = cout_achat * cout_operation / 100;
	}

	// Calcul du montant pour la tranche de remboursement
	if (revenu_fiscal >= cout_achat / 10)
		var montant_tranche = revenu_fiscal / coeff[nb_personne];
	else
		var montant_tranche = (cout_achat / 10) / coeff[nb_personne];

	// Déduction de la tranche de remboursement
	if (type_logement == "neuf") {
		for (i = 1; i <= 9; i++) {
			if (montant_tranche <= tranchesNeuf[zone][i]) {
				var tranche = i;
				break;
			} else if (i == 9) {
				var tranche = 10;
				break;
			}
		}
	} else if (type_logement == "ancien") {
		for (i = 1; i <= 9; i++) {
			if (montant_tranche <= tranchesAncien[zone][i]) {
				var tranche = i;
				break;
			} else if (i == 9) {
				var tranche = 10;
				break;
			}
		}
	}

	if (tranche < 5) {
		// Mensualites periode 1 (avec différé)
		var mensualites_periode1 = ptz * (100 - capital[tranche]) / 100 / periode1[tranche] / 12;

		// Mensualites periode 2
		var mensualites_periode2 = ptz * capital[tranche] / 100;
		mensualites_periode2 = mensualites_periode2 / periode2[tranche] / 12;
		var str = "Puis <strong>" + formatFloat(format(mensualites_periode2, 2, " "), ",")
			+ " &euro;/mois</strong> pendant <strong>" + periode2[tranche] + " ans</strong>.";
		$("#mensualites_periode2").css('display', 'block').html(str);

	} else {
		// Mensualites periode 1 (sans différé)
		var mensualites_periode1 = ptz / periode1[tranche] / 12;
	}

	// Affichage des resultats
	$("#montant_ptz").html(formatFloat(format(ptz, 2, " "), "."));
	document.getElementById("mensualites_periode1").innerHTML = formatFloat(format(mensualites_periode1, 2, " "), ".") + " &euro;";
	document.getElementById("periode1").innerHTML = periode1[tranche];

	return false;	// prevent form submit

}
function init() {
	$("#TypeLogementRow, #CoutAchatRow, #ErrorBox, #NbPersonneRow, #RevenuFiscalRow, #HLMRow, #DepartementRow, #PerformanceRow, #MessageBox, #resultBox, #mensualites_periode2").css('display', 'none');
	$("#CalculatorForm").css('display', 'block');

	var proprietaire = $("#proprietaire").val();
	var type_logement = $("#type_logement").val();

	// Affiche les questions suivantes en fonction
	// de la reponse a la 1ere question
	if (proprietaire == "non"){
		$("#TypeLogementRow, #CoutAchatRow, #NbPersonneRow, #RevenuFiscalRow, #DepartementRow, #PerformanceRow").css('display', 'block');
		$('#DepartementRow').change();
		$('#run, #run_form').removeAttr("disabled");
	} else if (proprietaire == "oui") {
		$("#MessageBox").dialog({autoOpen: false,width:400,title:'Conditions du prêt à taux zéro'});
		$("#MessageBox").css("display", 'block');
		$("#MessageBox").dialog("open");
		$("#VilleRow").css('display', 'none');
		$("#resultBox, #HLMRow").css('display', 'none');
		$('#run, #run_form').attr("disabled", true);
		type_logement = "";
	} else {
		$("#VilleRow").css('display', 'none');
		$("#HLMRow, #resultBox").css('display', 'none');
		$('#run, #run_form').attr("disabled", true);
	}

	// Affiche/cache les options de la BBCRow en fonction du type de logement
	// ainsi que le HLMRow
	if (type_logement == "neuf") {
		$("#categorie, , #HLMRow").css('display', 'none');
		$("#bbc").css('display', 'inline-block');
	} else if (type_logement == "ancien") {
		$("#bbc").css('display', 'none');
		$("#categorie, #HLMRow").show();
	}	
}
$(document).ready(function() {
	init();
	$('#departement').livequery('change', function() {
		$("#ville").html('');
		switch($(this).val()) {
			case "" : $('#zone').val("zone-A"); $("#VilleRow").css('display', 'none'); break;
			case "zone-B1" : $('#zone').val("zone-B1"); $("#VilleRow").css('display', 'none'); break;
			case "zone-C" : $('#zone').val("zone-C"); $("#VilleRow").css('display', 'none'); break;
			default :
				$("#ville").append('<option value="zone-A" selected="selected">-- Ville --</option>');
				if(!(typeof(zoneA[$(this).val()])=='undefined')){
					zoneA[$(this).val()] = zoneA[$(this).val()].sort();
					for(var i=0; i<zoneA[$(this).val()].length; i++) {
						$("#ville").append('<option value="zone-A">'+zoneA[$(this).val()][i]+'</option>');
					}
					$("#VilleRow").css('display', 'block');
				}
				if(!(typeof(zoneB1[$(this).val()])=='undefined')){
					zoneB1[$(this).val()] = zoneB1[$(this).val()].sort();
					for(var i=0; i<zoneB1[$(this).val()].length; i++) {
						$("#ville").append('<option value="zone-B1">'+zoneB1[$(this).val()][i]+'</option>');
					}
					$("#VilleRow").css('display', 'block');
				}
				if(!(typeof(zoneB2[$(this).val()])=='undefined')){
					zoneB2[$(this).val()] = zoneB2[$(this).val()].sort();
					for(var i=0; i<zoneB2[$(this).val()].length; i++) {
						$("#ville").append('<option value="zone-B2">'+zoneB2[$(this).val()][i]+'</option>');
					}
					$("#VilleRow").css('display', 'block');
				}
				else {
					$('#zone').val("zone-C");
					$("#VilleRow").css('display', 'none');
				}
				var mylist = $("#ville");
				var listitems = mylist.children('option').get();
				listitems.sort(function(a, b) {
				   var compA = $(a).text().toUpperCase();
				   var compB = $(b).text().toUpperCase();
				   return (compA < compB) ? -1 : (compA > compB) ? 1 : 0;
				})
				$.each(listitems, function(idx, itm) { mylist.append(itm); });
				$("#ville").append('<option value="zone-C">-- Autre --</option>');
			break;
		}
	});
	$('#ville').livequery('change', function() {
		$('#zone').attr('value', $("#ville").val());
	});
});

var zoneA = new Array();
zoneA['01'] = Array('Cessy', 'Challex', 'Chevry', 'Collonges', 'Crozet', 'Divonne-les-Bains', 'Echenevex', 'Farges', 'Ferney-Voltaire', 'Gex', 'Grilly', 'Léaz', 'Ornex', 'Péron', 'Pougny', 'Prévessin-Moëns', 'Saint-Genis-Pouilly', 'Saint-Jean-de-Gonville', 'Sauverny', 'Ségny', 'Sergy', 'Thoiry', 'Versonnex', 'Vesancy');
zoneA['06'] = Array('Antibes', 'Aspremont', 'Auribeau-sur-Siagne',' Le Bar-sur-Loup', 'Beaulieu-sur-Mer', 'Beausoleil', 'Bendejun', 'Berreles-Alpes', 'Biot', 'Le Broc', 'Cabris', 'Cagnes-sur-Mer', 'Cannes', 'Le Cannet', 'Cantaron', "Cap-d'Ail", 'Carros', 'Castagniers', 'Castellar', 'Castillon', 'Caussols', 'Châteauneuf-Grasse', 'Châteauneuf-Villevieille', 'Coaraze', 'La Collesur-Loup', 'Colomars', 'Contes', 'Courmes', 'Drap', 'Duranus', 'Eze', 'Falicon', 'Gattières', 'La Gaude', 'Gorbio', 'Gourdon', 'Grasse', 'Levens', 'Mandelieu-la-Napoule', 'Menton', 'Mouans-Sartoux', 'Mougins', 'Moulinet', 'Nice', 'Opio', 'Pégomas', 'Peille', 'Peillon', 'Peymeinade', 'Roquebrune-Cap-Martin', 'Roquefort-les-Pins', 'La Roquette-sur-Siagne', 'La Roquettesur-Var', 'Le Rouret', 'Sainte-Agnès', 'Saint-André-de-la-Roche', 'Saint-Blaise', 'Saint-Jean-Cap-Ferrat', 'Saint-Jeannet', 'Saint-Laurent-du-Var', 'Saint-Martin-du-Var', 'Saint-Paul', 'Sospel', 'Spéracèdes', 'Théoule-sur-Mer', 'Le Tignet', 'Tourrette-Levens', 'Tourrettes-sur-Loup', 'La Trinité', 'La Turbie', 'Valbonne', 'Vallauris', 'Vence', 'Villefranchesur-Mer', 'Villeneuve-Loubet');
zoneA['74'] = Array('Allonzier-la-Caille', 'Ambilly', 'Andilly', 'Annemasse', 'Arbusigny', 'Archamps', 'Arthaz-Pont-Notre-Dame', 'Beaumont', 'Bonne', 'Bossey', 'Cercier', 'Cernex', 'Chênex', 'Chevrier', 'Collonges-sous-Salève', 'Contamine-sur-Arve', 'Copponex', 'Cranves-Sales', 'Cruseilles', 'Cuvat', 'Dingy-en-Vuache', 'Etrembières', 'Feigères', 'Fillinges', 'Gaillard', 'Jonzier-Epagny', 'Juvigny', 'Loisin', 'Lucinges', 'Machilly', 'Marcellaz', 'Menthonnex-en-Bornes', 'Monnetier-Mornex', 'La Muraz', 'Nangy', 'Neydens', 'Pers-Jussy', 'Présilly', 'Reignier', 'Saint-Blaise', 'Saint-Cergues', 'Saint-Julien-en-Genevois', 'Le Sappey', 'Savigny', 'Scientrier', 'Valleiry', 'Veigy-Foncenex', 'Vers', 'Vétraz-Monthoux', 'Ville-la-Grand', 'Villy-le-Bouveret', 'Villy-le-Pelloux', 'Viry', 'Vovray-en-Bornes', 'Vulbens');
zoneA['75'] = Array('Paris');
zoneA['77'] = Array('Bailly-Romainvilliers', 'Boissettes', 'Boissise-la-Bertrand', 'Boissise-le-Roi', 'Brou-sur-Chantereine', 'Bussy-Saint-Georges', 'Bussy-Saint-Martin', 'Carnetin', 'Cesson', 'Chalifert', 'Champs-sur-Marne', 'Chanteloup-en-Brie', 'Chelles', 'Chessy', 'Collégien', 'Combs-la-Ville', 'Conches-sur-Gondoire', 'Coupvray', 'Courtry', 'Croissy-Beaubourg', 'Dammarieles-Lys', 'Dampmart', 'Emerainville', 'Ferrières-en-Brie', 'Gouvernes', 'Guermantes', 'Jossigny', 'Lagny-sur-Marne', 'Lésigny', 'Lieusaint', 'Livry-sur-Seine', 'Lognes', 'Magny-le-Hongre', 'Le Mée-sur-Seine', 'Melun', 'Mitry-Mory', 'Moissy-Cramayel', 'Montévrain', 'Nandy', 'Noisiel', 'Pomponne', 'Pontault-Combault', 'Pringy', 'Réau', 'La Rochette', 'Roissy-en-Brie', 'Rubelles', 'Saint-Fargeau-Ponthierry', 'Saint-Thibault-des-Vignes', 'Savigny-le-Temple', 'Seine-Port', 'Serris', 'Servon', 'Thorigny-sur-Marne', 'Torcy', 'Vaires-sur-Marne', 'Vaux-le-P&eacute;nil', 'Vert-Saint-Denis', 'Villeparisis');
zoneA['78'] = Array('Achères', 'Aigremont', 'Andrésy', 'Bazoches-sur-Guyonne', "Bois-d'Arcy", 'Bougival', 'Buc', 'Buchelay', 'Carrièressous-Poissy', 'Carrières-sur-Seine', 'La Celle-Saint-Cloud', 'Chambourcy', 'Chanteloup-les-Vignes', 'Chapet', 'Châteaufort', 'Chatou', 'Le Chesnay', 'Chevreuse', 'Les Clayes-sous-Bois', 'Coignières', 'Conflans-Sainte-Honorine', 'Croissy-sur-Seine', 'Elancourt', "L'Etang-la-Ville", 'Evecquemont', 'Follainville-Dennemont', 'Fontenay-le-Fleury', 'Fourqueux', 'Gaillon-sur-Montcient', 'Gargenville', 'Guyancourt', 'Hardricourt', 'Houilles', 'Issou', 'Jouars-Pontchartrain', 'Jouy-en-Josas', 'Juziers', 'Limay', 'Les Loges-en-Josas', 'Louveciennes', 'Magnanville', 'Magny-les-Hameaux', 'Maisons-Laffitte', 'Mantes-la-Jolie', 'Mantes-la-Ville', 'Mareil-Marly', 'Marly-le-Roi', 'Maurecourt', 'Maurepas', 'Médan', 'Le Mesnil-le-Roi', 'Le Mesnil-Saint-Denis', 'Meulan', 'Mézy-sur-Seine', 'Montesson', 'Montigny-le-Bretonneux', 'Les Mureaux', 'Neauphle-le-Château', 'Neauphle-le-Vieux', 'Orgeval', 'Le Pecq', 'Plaisir', 'Poissy', 'Porcheville', 'Le Port-Marly', 'Rocquencourt', "Saint-Cyr-l'Ecole", 'Saint-Germain-de-la-Grange', 'Saint-Germain-en-Laye', 'Saint-Rémy-lès-Chevreuse', "Saint-Rémy-l'Honoré", 'Sartrouville', 'Toussus-le-Noble', 'Trappes', 'Le Tremblay-sur-Mauldre', 'Triel-sur-Seine', 'Vaux-sur-Seine', 'Vélizy-Villacoublay', 'Verneuil-sur-Seine', 'Vernouillet', 'La Verrière', 'Versailles', 'Le Vésinet', 'Villennes-sur-Seine', 'Villepreux', 'Villiers-Saint-Fréderic', 'Viroflay', 'Voisins-le-Bretonneux');
zoneA['83'] = new Array('Bormes-les-Mimosas', 'Cavalaire-sur-Mer', 'Cogolin', 'La Croix-Valmer', 'Fréjus', 'La Garde-Freinet', 'Gassin', 'Grimaud', 'Hyères', 'Le Lavandou', 'La Londe-les-Maures', 'La Môle', 'Plan-de-la-Tour', 'Puget-sur-Argens', 'Ramatuelle', 'Roquebrune-sur-Argens', 'Sainte-Maxime', 'Saint-Raphaël', 'Saint-Tropez', 'Rayol-Canadel-sur-Mer');
zoneA['91'] = new Array('Arpajon', 'Athis-Mons', 'Ballainvilliers', 'Bièvres', 'Boissy-sous-Saint-Yon', 'Bondoufle', 'Boussy-Saint-Antoine', 'Brétigny-sur-Orge', 'Breuillet', 'Breux-Jouy', 'Brunoy', 'Bruyères-le-Châtel', 'Bures-sur-Yvette', 'Champlan', 'Chilly-Mazarin', 'Corbeil-Essonnes', 'Le Coudray-Montceaux', 'Courcouronnes', 'Crosne', 'Draveil', 'Egly', 'Epinay-sous-Sénart', 'Epinay-sur-Orge', 'Etiolles', 'Evry', 'Fleury-Mérogis', 'Fontenay-le-Vicomte', 'Gif-sur-Yvette', 'Gometz-le-Châtel', 'Grigny', 'Igny', 'Juvisy-sur-Orge', 'Leuville-sur-Orge', 'Linas', 'Lisses', 'Longjumeau', 'Longpont-sur-Orge', 'Marcoussis', 'Massy', 'Mennecy', 'Montgeron', 'Montlhéry', 'Morangis', 'Morsang-sur-Orge', 'Morsang-sur-Seine', 'La Norville', 'Nozay', 'Ollainville', 'Ormoy', 'Orsay', 'Palaiseau', 'Paray-Vieille-Poste', 'Le Plessis-Pâté', 'Quincy-sous-Sénart', 'Ris-Orangis', 'Saclay', 'Saint-Aubin', 'Sainte-Geneviève-des-Bois', 'Saint-Germain-lès-Arpajon', 'Saint-Germain-lès-Corbeil', 'Saint-Michel-sur-Orge', 'Saint-Pierre-du-Perray', 'Saintry-sur-Seine', 'Saint-Yon', 'Saulx-les-Chartreux', 'Savigny-sur-Orge', 'Soisy-sur-Seine', 'Tigery', 'Varennes-Jarcy', 'Vauhallan', 'Verrières-le-Buisson', 'Vigneux-sur-Seine', 'Villabé', 'Villebon-sur-Yvette', 'La Ville-du-Bois', 'Villejust', 'Villemoisson-sur-Orge', 'Villiers-le-Bâcle', 'Villiers-sur-Orge', 'Viry-Châtillon', 'Wissous', 'Yerres', 'Les Ulis');
zoneA['92'] = new Array('Antony', 'Asnières-sur-Seine', 'Bagneux', 'Bois-Colombes', 'Boulogne-Billancourt', 'Bourg-la-Reine', 'Châtenay-Malabry', 'Châtillon', 'Chaville', 'Clamart', 'Clichy', 'Colombes', 'Courbevoie', 'Fontenay-aux-Roses', 'Garches', 'La Garenne-Colombes', 'Gennevilliers', 'Issy-les-Moulineaux', 'Levallois-Perret', 'Malakoff', 'Marnes-la-Coquette', 'Meudon', 'Montrouge', 'Nanterre', 'Neuilly-sur-Seine', 'Le Plessis-Robinson', 'Puteaux', 'Rueil-Malmaison', 'Saint-Cloud', 'Sceaux', 'Sèvres', 'Suresnes', 'Vanves', 'Vaucresson', "Ville-d'Avray", 'Villeneuve-la-Garenne');
zoneA['93'] = new Array('Aubervilliers', 'Aulnay-sous-Bois', 'Bagnolet', 'Le Blanc-Mesnil', 'Bobigny', 'Bondy', 'Le Bourget', 'Clichy-sous-Bois', 'Coubron', 'La Courneuve', 'Drancy', 'Dugny', 'Epinay-sur-Seine', 'Gagny', 'Gournay-sur-Marne', "L'Ile-Saint-Denis", 'Les Lilas', 'Livry-Gargan', 'Montfermeil', 'Montreuil', 'Neuilly-Plaisance', 'Neuilly-sur-Marne', 'Noisy-le-Grand', 'Noisyle-Sec', 'Pantin', 'Les Pavillons-sous-Bois', 'Pierrefitte-sur-Seine', 'Le Pré-Saint-Gervais', 'Le Raincy', 'Romainville', 'Rosny-sous-Bois', 'Saint-Denis', 'Saint-Ouen', 'Sevran', 'Stains', 'Tremblay-en-France', 'Vaujours', 'Villemomble', 'Villepinte', 'Villetaneuse');
zoneA['94'] = new Array('Ablon-sur-Seine', 'Alfortville', 'Arcueil', 'Boissy-Saint-Léger', 'Bonneuil-sur-Marne', 'Bry-sur-Marne', 'Cachan', 'Champigny-sur-Marne', 'Charenton-le-Pont', 'Chennevières-sur-Marne', 'Chevilly-Larue', 'Choisy-le-Roi', 'Créteil', 'Fontenay-sous-Bois', 'Fresnes', 'Gentilly', "L'Haÿs-les-Roses", 'Ivry-sur-Seine', 'Joinville-le-Pont', 'Le Kremlin-Bicêtre', 'Limeil-Brévannes', 'Maisons-Alfort', 'Mandres-les-Roses', 'Marolles-en-Brie', 'Nogent-sur-Marne', 'Noiseau', 'Orly', 'Ormesson-sur-Marne', 'Périgny', 'Le Perreux-sur-Marne', 'Le Plessis-Trévise', 'La Queue-en-Brie', 'Rungis', 'Saint-Mandé', 'Saint-Maur-des-Fossés', 'Saint-Maurice', 'Santeny', 'Sucy-en-Brie', 'Thiais', 'Valenton', 'Villecresnes', 'Villejuif', 'Villeneuve-le-Roi', 'Villeneuve-Saint-Georges', 'Villiers-sur-Marne', 'Vincennes', 'Vitry-sur-Seine');
zoneA['95'] = new Array('Andilly', 'Argenteuil', 'Arnouville-lès-Gonesse', 'Auvers-sur-Oise', 'Beauchamp', 'Bessancourt', 'Bezons', 'Boisemont', 'Bonneuil-en-France', 'Bouffémont', 'Butry-sur-Oise', 'Cergy', 'Champagne-sur-Oise', 'Cormeilles-en-Parisis', 'Courdimanche', 'Deuil-la-Barre', 'Domont', 'Eaubonne', 'Ecouen', 'Enghien-les-Bains', 'Eragny', 'Ermont', 'Ezanville', 'Franconville', 'Frépillon', 'La Frette-sur-Seine', 'Garges-lès-Gonesse', 'Gonesse', 'Groslay', 'Herblay', "L'Isle-Adam", 'Jouy-le-Moutier', 'Margency', 'Menucourt', 'Mériel', 'Méry-sur-Oise', 'Montigny-lès-Cormeilles', 'Montlignon', 'Montmagny', 'Montmorency', 'Nesles-la-Vallée', 'Neuville-sur-Oise', 'Osny', 'Parmain', 'Pierrelaye', 'Piscop', 'Le Plessis-Bouchard', 'Pontoise', 'Puiseux-Pontoise', 'Roissy-en-France', 'Saint-Brice-sous-Forêt', 'Saint-Gratien', 'Saint-Leu-la-Forêt', "Saint-Ouen-l'Aumône", 'Saint-Prix', 'Sannois', 'Sarcelles', 'Soisy-sous-Montmorency', 'Taverny', 'Valmondois', 'Vauréal', 'Villiers-Adam', 'Villiers-le-Bel');
var zoneB1 = new Array();
zoneB1['01'] = new Array('Beynost', 'La Boisse', 'Dagneux', 'Massieux', 'Miribel', 'Misérieux', 'Montluel', 'Neyron', 'Parcieux', 'Reyrieux', 'Saint-Bernard', 'Saint-Didier-de-Formans', 'Sainte-Euphémie', 'Saint-Maurice-de-Beynost', 'Toussieux', 'Trévoux');
zoneB1['06'] = new Array('Bézaudun-les-Alpes', 'Blausasc', 'Bonson', 'Bouyon', 'Coursegoules', 'L\'Escarène', 'Gilette', 'Lucéram', 'Saint-Cézairesur-Siagne', 'Saint-Vallier-de-Thiey', 'Touët-de-l\'Escarène');
zoneB1['13'] = new Array('Aix-en-Provence', 'Allauch', 'Aubagne', 'Auriol', 'Barbentane', 'Beaurecueil', 'Belcodène', 'Berre-l\'Etang', 'Bouc-Bel-Air', 'La Bouilladisse', 'Cabriès', 'Cadolive', 'Carry-le-Rouet', 'Cassis', 'Ceyreste', 'Châteauneuf-le-Rouge', 'Châteauneuf-les-Martigues', 'Châteaurenard', 'La Ciotat', 'Cuges-les-Pins', 'La Destrousse', 'Eguilles', 'Ensuès-la-Redonne', 'Eyragues', 'La Fare-les-Oliviers', 'Fuveau', 'Gardanne', 'Gémenos', 'Gignac-la-Nerthe', 'Gréasque', 'Marignane', 'Marseille', 'Martigues', 'Meyreuil', 'Mimet', 'La Penne-sur-Huveaune', 'Les Pennes-Mirabeau', 'Peypin', 'Plan-de-Cuques', 'Port-de-Bouc', 'Rognac', 'Rognes', 'Rognonas', 'Roquefort-la-Bédoule', 'Roquevaire', 'Rousset', 'Le Rove', 'Saint-Cannat', 'Saint-Marc-Jaumegarde', 'Saint-Savournin', 'Saint-Victoret', 'Sausset-les-Pins', 'Septèmesles-Vallons', 'Simiane-Collongue', 'Le Tholonet', 'Vauvenargues', 'Velaux', 'Venelles', 'Ventabren', 'Vitrolles', 'Coudoux', 'Carnoux-en-Provence');
zoneB1['17'] = new Array('Ile-d\'Aix', 'Angoulins', 'Ars-en-Ré', 'Aytré', 'Le Bois-Plage-en-Ré', 'Le Château-d\'Oléron', 'Châtelaillon-Plage', 'La Couarde-sur-Mer', 'Dolus-d\'Oléron', 'La Flotte', 'Fouras', 'L\'Houmeau', 'Lagord', 'Loix', 'Nieul-sur-Mer', 'Périgny', 'Les Portes-en-Ré', 'Puilboreau', 'Rivedoux-Plage', 'La Rochelle', 'Saint-Clément-des-Baleines', 'Saint-Denis-d\'Oléron', 'Saint-Georges-d\'Oléron', 'Sainte-Marie-de-Ré', 'Saint-Martin-de-Ré', 'Saint-Pierre-d\'Oléron', 'Saint-Trojan-les-Bains', 'Yves', 'Le Grand-Village-Plage', 'La Brée-les-Bains');
zoneB1['22'] = new Array('Ile-de-Bréhat');
zoneB1['29'] = new Array('Ile-de-Batz', 'Ile-de-Sein', 'Ile-Molène', 'Ouessant');
zoneB1['30'] = new Array('Les Angles', 'Aramon', 'Pujaut', 'Saze', 'Villeneuve-lès-Avignon');
zoneB1['31'] = new Array('Aucamville', 'Aussonne', 'Auzeville-Tolosane', 'Auzielle', 'Balma', 'Beaupuy', 'Beauzelle', 'Belberaud', 'Blagnac', 'Brax', 'Bruguières', 'Castanet-Tolosan', 'Castelginest', 'Castelmaurou', 'Cépet', 'Colomiers', 'Cornebarrieu', 'Cugnaux', 'Daux', 'Deyme', 'Eaunes', 'Escalquens', 'Fenouillet', 'Fonbeauzard', 'Frouzins', 'Gagnac-sur-Garonne', 'Gratentour', 'Labarthesur-Lèze', 'Labastide-Saint-Sernin', 'Labège', 'Lacroix-Falgarde', 'Lapeyrouse-Fossat', 'Launaguet', 'Léguevin,Lespinasse', 'Mervilla', 'Mondonville', 'Montberon', 'Montrabé', 'Muret', 'Péchabou', 'Pechbonnieu', 'Pechbusque', 'Pibrac', 'Pin-Balma', 'Pinsaguel', 'Pins-Justaret', 'Plaisance-du-Touch', 'Pompertuzat', 'Portet-sur-Garonne', 'Quint-Fonsegrives', 'Ramonville-Saint-Agne', 'Roques', 'Roquettes', 'Rouffiac-Tolosan', 'Saint-Alban', 'Saint-Geniès-Bellevue', 'Saint-Jean', 'Saint-Jory', 'Saint-Loup-Cammas', 'Saint-Orens-de-Gameville', 'Saint-Sauveur', 'La Salvetat-Saint-Gilles', 'Saubens', 'Seilh', 'Seysses', 'Toulouse', 'Tournefeuille', 'L\'Union', 'Vieille-Toulouse', 'Vigoulet-Auzil', 'Villate', 'Villeneuve-Tolosane');
zoneB1['33'] = new Array('Ambarès-et-Lagrave', 'Ambès', 'Artigues-près-Bordeaux', 'Arveyres', 'Bassens', 'Bègles', 'Blanquefort', 'Bonnetan', 'Bordeaux', 'Bouliac', 'Le Bouscat', 'Bruges', 'Cadaujac', 'Camblanes-et-Meynac', 'Canéjan', 'Carbon-Blanc', 'Carignan-de-Bordeaux', 'Cénac', 'Cenon', 'Cestas', 'Eysines', 'Fargues-Saint-Hilaire', 'Floirac', 'Gradignan', 'Le Haillan', 'Izon', 'Latresne', 'Léognan', 'Lignan-de-Bordeaux', 'Lormont', 'Martignas-sur-Jalle', 'Mérignac', 'Montussan', 'Parempuyre', 'Pessac', 'Le Pian-Médoc', 'Pompignac', 'Quinsac', 'Saint-Aubin-de-Médoc', 'Sainte-Eulalie', 'Saint-Jean-d\'Illac', 'Saint-Loubès', 'Saint-Louis-de-Montferrand', 'Saint-Médard-en-Jalles', 'Saint-Sulpice-et-Cameyrac', 'Saint-Vincent-de-Paul', 'Salleboeuf', 'Le Taillan-Médoc', 'Talence', 'Tresses', 'Vayres', 'Villenave-d\'Ornon', 'Yvrac');
zoneB1['34'] = new Array('Agde', 'Castelnau-le-Lez', 'Clapiers', 'Le Crès', 'Frontignan', 'Grabels', 'Jacou', 'Juvignac', 'Lattes', 'Montferrier-sur-Lez', 'Montpellier', 'Palavas-les-Flots', 'Pérols', 'Saint-Clément-de-Rivière', 'Saint-Jean-de-Védas', 'Sète', 'Vendargues', 'La Grande-Motte');
zoneB1['35'] = new Array('Acigné', 'Betton', 'Bourgbarré', 'Brécé', 'Bruz', 'Cesson-Sévigné', 'Chantepie', 'La Chapelle-des-Fougeretz', 'La Chapelle-Thouarault', 'Chartres-de-Bretagne', 'Chavagne', 'Chevaigné', 'Cintré', 'Clayes', 'Corps-Nuds', 'Dinard', 'Gévezé', 'L\'Hermitage', 'Montgermont', 'Mordelles', 'Nouvoitou', 'Noyal-Châtillon-sur-Seiche', 'Noyal-sur-Vilaine', 'Orgères', 'Pacé', 'Parthenay-de-Bretagne', 'Rennes', 'Le Rheu', 'Saint-Armel', 'Saint-Erblon', 'Saint-Gilles', 'Saint-Grégoire', 'Saint-Jacques-de-la-Lande', 'Saint-Malo', 'Saint-Sulpice-la-Forêt', 'Thorigné-Fouillard', 'Le Verger', 'Vernsur-Seiche', 'Vezin-le-Coquet', 'Pont-Péan');
zoneB1['37'] = new Array('Ballan-Miré', 'Chambray-lès-Tours', 'Fondettes', 'Joué-lès-Tours', 'Larçay', 'Luynes', 'La Membrolle-sur-Choisille', 'Mettray', 'Montbazon', 'Montlouis-sur-Loire', 'Noizay', 'Notre-Dame-d\'Oé', 'Parçay-Meslay', 'La Riche', 'Rochecorbon', 'Saint-Avertin', 'Saint-Cyr-sur-Loire', 'Saint-Etienne-de-Chigny', 'Saint-Genouph', 'Saint-Pierre-des-Corps', 'Tours', 'Veigné', 'Vernou-sur-Brenne', 'La Ville-aux-Dames', 'Vouvray');
zoneB1['38'] = new Array('Bernin', 'Biviers', 'Bresson', 'Le Champ-près-Froges', 'Chasse-sur-Rhône', 'Claix', 'Corenc', 'Crolles', 'Domène', 'Echirolles', 'Eybens', 'Fontaine', 'Fontanil-Cornillon', 'Froges', 'Gières', 'Grenoble', 'Meylan', 'Montbonnot-Saint-Martin', 'Murianette', 'Noyarey', 'La Pierre', 'Poisat', 'Le Pont-de-Claix', 'Saint-Egrève', 'Saint-Ismier', 'Saint-Martin-d\'Hères', 'Saint-Martin-le-Vinoux', 'Saint-Nazaire-les-Eymes', 'Sassenage', 'Seyssinet-Pariset', 'Seyssins', 'La Tronche', 'Varces-Allières-et-Risset', 'Le Versoud', 'Veurey-Voroize', 'Villard-Bonnot', 'Voreppe');
zoneB1['40'] = new Array('Capbreton', 'Labenne', 'Ondres', 'Soorts-Hossegor', 'Tarnos');
zoneB1['44'] = new Array('Basse-Goulaine', 'Bouaye', 'Bouguenais', 'Brains', 'Carquefou', 'La Chapelle-sur-Erdre', 'Couëron', 'Le Croisic', 'La Baule-Escoublac', 'Haute-Goulaine', 'Indre', 'Mauves-sur-Loire', 'Mesquer', 'La Montagne', 'Nantes', 'Orvault', 'Le Pellerin', 'Piriac-sur-Mer', 'Pornichet', 'Rezé', 'Saint-Aignan-Grandlieu', 'Saint-Herblain', 'Saint-Jean-de-Boiseau', 'Saint-Léger-les-Vignes', 'Sainte-Luce-sur-Loire', 'Saint-Sébastien-sur-Loire', 'Sautron', 'Les Sorinières', 'Thouaré-sur-Loire', 'La Turballe', 'Vertou');
zoneB1['45'] = new Array('Boigny-sur-Bionne', 'Bou', 'Chanteau', 'La Chapelle-Saint-Mesmin', 'Chécy', 'Combleux', 'Fleury-les-Aubrais', 'Ingré', 'Mardié', 'Marigny-les-Usages', 'Olivet', 'Orléans', 'Ormes', 'Saint-Cyr-en-Val', 'Saint-Denis-en-Val', 'Saint-Hilaire-Saint-Mesmin', 'Saint-Jean-de-Braye', 'Saint-Jean-de-la-Ruelle', 'Saint-Jean-le-Blanc', 'Saint-Pryvé-Saint-Mesmin', 'Saran', 'Semoy');
zoneB1['54'] = new Array('Art-sur-Meurthe', 'Bainville-sur-Madon', 'Bouxières-aux-Dames', 'Chaligny', 'Champigneulles', 'Chavigny', 'Custines', 'Dombasle-sur-Meurthe', 'Dommartemont', 'Essey-lès-Nancy', 'Eulmont', 'Fléville-devant-Nancy', 'Frouard', 'Heillecourt', 'Houdemont', 'Jarville-la-Malgrange', 'Laneuveville-devant-Nancy', 'Laxou', 'Lay-Saint-Christophe', 'Liverdun', 'Ludres', 'Malleloy', 'Malzéville', 'Maxéville', 'Messein', 'Nancy', 'Neuves-Maisons', 'Pompey', 'Pont-Saint-Vincent', 'Pulnoy', 'Rosières-aux-Salines', 'Saint-Max', 'Saint-Nicolas-de-Port', 'Saulxures-lès-Nancy', 'Seichamps', 'Tomblaine', 'Vandoeuvre-lès-Nancy', 'Varangéville', 'Villers-lès-Nancy');
zoneB1['56'] = new Array('Bangor', 'Groix', 'Hoedic', 'Ile-d\'Houat', 'Ile-aux-Moines', 'Ile-d\'Arz', 'Locmaria', 'Le Palais', 'Sauzon');
zoneB1['57'] = new Array('Ars-sur-Moselle', 'Augny', 'Le Ban-Saint-Martin', 'Châtel-Saint-Germain', 'Jussy', 'Lessy', 'Longeville-lès-Metz', 'Marly', 'Metz', 'Montigny-lès-Metz', 'Moulins-lès-Metz', 'Plappeville', 'Rozérieulles', 'Saint-Julien-lès-Metz', 'Sainte-Ruffine', 'Scy-Chazelles', 'Vantoux', 'Vaux', 'Woippy');
zoneB1['59'] = new Array('Villeneuve-d\'Ascq', 'Anstaing', 'Baisieux', 'Bondues', 'Bourghelles', 'Bousbecque', 'Bouvines', 'Capinghem', 'Chéreng', 'Comines', 'Croix', 'Cysoing', 'Douai', 'Emmerin', 'Englos', 'Faches-Thumesnil', 'Forest-sur-Marque', 'Gruson', 'Hallenneslez-Haubourdin', 'Halluin', 'Haubourdin', 'Hem', 'Lambersart', 'Lannoy', 'Leers', 'Lesquin', 'Lezennes', 'Lille', 'Linselles', 'Lompret', 'Loos', 'Louvil', 'Lys-lez-Lannoy', 'La Madeleine', 'Marcq-en-Baroeul', 'Marquette-lez-Lille', 'Mons-en-Baroeul', 'Mouvaux', 'Neuville-en-Ferrain', 'Noyelles-lès-Seclin', 'Pérenchies', 'Prémesques', 'Ronchin', 'Roncq', 'Roubaix', 'Sailly-lez-Lannoy', 'Sainghin-en-Mélantois', 'Saint-André-lez-Lille', 'Santes', 'Seclin', 'Sequedin', 'Templemars', 'Toufflers', 'Tourcoing', 'Tressin', 'Valenciennes', 'Vendeville', 'Verlinghem', 'Wambrechies', 'Wasquehal', 'Wattignies', 'Wattrelos', 'Wervicq-Sud', 'Willems');
zoneB1['60'] = new Array('Avilly-Saint-Léonard', 'Boran-sur-Oise', 'Chantilly', 'Coye-la-Forêt', 'Gouvieux', 'Lamorlaye', 'Vineuil-Saint-Firmin');
zoneB1['62'] = new Array('Béthune', 'Lens');
zoneB1['63'] = new Array('Chamalières', 'Clermont-Ferrand');
zoneB1['64'] = new Array('Ahetze', 'Anglet', 'Arbonne', 'Arcangues', 'Bassussarry', 'Bayonne', 'Biarritz', 'Bidart', 'Boucau', 'Ciboure', 'Guéthary', 'Hendaye', 'Lahonce', 'Mouguerre', 'Saint-Jean-de-Luz', 'Saint-Pierre-d\'Irube', 'Urcuit', 'Urrugne', 'Villefranque');
zoneB1['67'] = new Array('Achenheim', 'Bischheim', 'Bischoffsheim', 'Eckbolsheim', 'Eckwersheim', 'Entzheim', 'Eschau', 'Fegersheim', 'Geispolsheim', 'Hoenheim', 'Holtzheim', 'Illkirch-Graffenstaden', 'Lampertheim', 'Lingolsheim', 'Lipsheim', 'Mittelhausbergen', 'Molsheim', 'Mundolsheim', 'Niederhausbergen', 'Oberhausbergen', 'Obernai', 'Oberschaeffolsheim', 'Ostwald', 'Plobsheim', 'Reichstett', 'Schiltigheim', 'Souffelweyersheim', 'Strasbourg', 'Vendenheim', 'La Wantzenau', 'Wolfisheim');
zoneB1['69'] = new Array('Albigny-sur-Saône', 'Ambérieux', 'Anse', 'Belmont-d\'Azergues', 'Brignais', 'Brindas', 'Bron', 'Cailloux-sur-Fontaines', 'Caluire-et-Cuire', 'Champagne-au-Mont-d\'Or', 'Chaponost', 'Charbonnières-les-Bains', 'Charly', 'Chasselay', 'Chazayd\'Azergues', 'Les Chères', 'Civrieux-d\'Azergues', 'Collonges-au-Mont-d\'Or', 'Couzon-au-Mont-d\'Or', 'Craponne', 'Curis-au-Mont-d\'Or', 'Dardilly', 'Dommartin', 'Ecully', 'Fleurieu-sur-Saône', 'Fontaines-Saint-Martin', 'Fontaines-sur-Saône', 'Francheville', 'Givors', 'Grézieu-la-Varenne', 'Grigny', 'Irigny', 'Lentilly', 'Limonest', 'Lissieu', 'Loire-sur-Rhône', 'Lozanne', 'Lucenay', 'Lyon', 'Marcilly-d\'Azergues', 'Marcy-l\'Etoile', 'Millery', 'Montagny', 'Morancé', 'La Mulatière', 'Neuville-sur-Saône', 'Orliénas', 'Oullins', 'Pierre-Bénite', 'Poleymieux-au-Mont-d\'Or', 'Quincieux', 'Rochetaillée-sur-Sainte-Consorce', 'Saint-Cyr-au-Mont-d\'Or', 'Saint-Didier-au-Mont-d\'Or', 'Saint-Fons', 'Sainte-Foy-lès-Lyon', 'Saint-Genis-Laval', 'Saint-Genis-les-Ollières', 'Saint-Germain-au-Mont-d\'Or', 'Saint-Jean-des-Vignes', 'Saint-Romain-au-Mont-d\'Or', 'Tassin-la-Demi-Lune', 'La Tour-de-Salvagny', 'Vaugneray', 'Vaulx-en-Velin', 'Vénissieux', 'Vernaison', 'Villeurbanne', 'Vourles', 'Chassieu', 'Communay', 'Corbas', 'Décines-Charpieu', 'Feyzin', 'Genas', 'Genay', 'Jonage', 'Meyzieu', 'Mions', 'Montanay', 'Rillieux-la-Pape', 'Saint-Priest', 'Saint-Symphorien-d\'Ozon', 'Sathonay-Camp', 'Sathonay-Village', 'Sérézin-du-Rhône', 'Solaize', 'Ternay');
zoneB1['73'] = new Array('Aix-les-Bains', 'Barberaz', 'Barby', 'Bassens', 'Le Bourget-du-Lac', 'Brison-Saint-Innocent', 'Challes-les-Eaux', 'Chambéry', 'Chignin', 'Cognin', 'Drumettaz-Clarafond', 'Grésy-sur-Aix', 'Jacob-Bellecombette', 'Méry', 'Montagnole', 'La Motte-Servolex', 'Mouxy', 'Pugny-Chatenod', 'La Ravoire', 'Saint-Alban-Leysse', 'Saint-Baldoph', 'Saint-Jeand\'Arvey', 'Saint-Jeoire-Prieuré', 'Sonnaz', 'Tresserve', 'Vimines', 'Viviers-du-Lac', 'Voglans');
zoneB1['74'] = new Array('Allinges', 'Annecy', 'Annecy-le-Vieux', 'Anthy-sur-Léman', 'Argonay', 'Ayse', 'Bonneville', 'Châtillon-sur-Cluses', 'Chavanod', 'Chens-sur-Léman', 'Cluses', 'Cran-Gevrier', 'Douvaine', 'Duingt', 'Epagny', 'Evian-les-Bains', 'Excenevex', 'Lovagny', 'Lugrin', 'Margencel', 'Marignier', 'Marin', 'Marnaz', 'Massongy', 'Maxilly-sur-Léman', 'Messery', 'Metz-Tessy', 'Meythet', 'Montagny-les-Lanches', 'Nernier', 'Neuvecelle', 'Poisy', 'Pringy', 'Publier', 'Quintal', 'Saint-Jorioz', 'Saint-Pierre-en-Faucigny', 'Sciez', 'Scionzier', 'Sévrier', 'Seynod', 'Thyez', 'Thonon-les-Bains', 'Yvoire');
zoneB1['76'] = new Array('Amfreville-la-Mi-Voie', 'Belbeuf', 'Bihorel', 'Bonsecours', 'Bois-Guillaume', 'Boos', 'Canteleu', 'Darnétal', 'Déville-lès-Rouen', 'Fontaine-sous-Préaux', 'Grand-Couronne', 'Le Grand-Quevilly', 'Le Houlme', 'Malaunay', 'Maromme', 'Le Mesnil-Esnard', 'Mont-Saint-Aignan', 'Montville', 'Moulineaux', 'Notre-Dame-de-Bondeville', 'Franqueville-Saint-Pierre', 'Oissel', 'Petit-Couronne', 'Le Petit-Quevilly', 'Rouen', 'Saint-Etienne-du-Rouvray', 'Saint-Léger-du-Bourg-Denis', 'Saint-Martin-du-Vivier', 'Sotteville-lès-Rouen', 'Val-de-la-Haye', 'La Vaupalière');
zoneB1['77'] = new Array('Achères-la-Forêt', 'Annet-sur-Marne', 'Arbonne-la-Forêt', 'Avon', 'Barbizon', 'Barcy', 'Bois-le-Roi', 'Bouleurs', 'Bourron-Marlotte', 'Boutigny', 'Brie-Comte-Robert', 'Cély', 'Chailly-en-Bière', 'Chambry', 'Champagne-sur-Seine', 'Charmentray', 'Charny', 'Chartrettes', 'Le Châtelet-en-Brie', 'Chevry-Cossigny', 'Claye-Souilly', 'Compans', 'Condé-Sainte-Libiaire', 'Couilly-Pont-aux-Dames', 'Coulommes', 'Coutevroult', 'Crécy-la-Chapelle', 'Crégy-lès-Meaux', 'Cuisy', 'Dammartin-en-Goële', 'Ecuelles', 'Esbly', 'Evry-Grégy-sur-Yerre', 'Favières', 'Féricy', 'Férolles-Attilly', 'Fleuryen-Bière', 'Fontainebleau', 'Fontaine-le-Port', 'Forfry', 'Fresnes-sur-Marne', 'Fublaines', 'Gesvres-le-Chapitre', 'Gressy', 'Gretz-Armainvilliers', 'Grisy-Suisnes', 'Héricy', 'Isles-lès-Villenoy', 'Iverny', 'Jablines', 'Juilly', 'Lesches', 'Limoges-Fourches', 'Longperrier', 'Maincy', 'Marchémoret', 'Marcilly', 'Mareuil-lès-Meaux', 'Mauregard', 'Meaux', 'Le Mesnil-Amelot', 'Messy', 'Montereau-sur-le-Jard', 'Montgé-en-Goële', 'Monthyon', 'Montigny-sur-Loing', 'Montry', 'Moret-sur-Loing', 'Moussy-le-Neuf', 'Moussy-le-Vieux', 'Nanteuil-lès-Meaux', 'Nantouillet', 'Chauconin-Neufmontiers', 'Neufmoutiers-en-Brie', 'Noisy-sur-Ecole', 'Oissery', 'Othis', 'Ozoir-la-Ferrière', 'Penchard', 'Perthes', 'Le Pin', 'Le Plessisaux-Bois', 'Le Plessis-l\'Evêque', 'Poincy', 'Pontcarré', 'Précy-sur-Marne', 'Presles-en-Brie', 'Quincy-Voisins', 'Recloses', 'Rouvres', 'Saint-Germain-Laxis', 'Saint-Germain-sur-Ecole', 'Saint-Germain-sur-Morin', 'Saint-Mammès', 'Saint-Mard', 'Saint-Martin-en-Bière', 'Saint-Mesmes', 'Saint-Pathus', 'Saint-Sauveur-sur-Ecole', 'Saint-Soupplets', 'Samois-sur-Seine', 'Samoreau', 'Sivry-Courtry', 'Thieux', 'Thomery', 'Tournan-en-Brie', 'Trilbardou', 'Trilport', 'Ury', 'Veneux-les-Sablons', 'Vignely', 'Villeneuve-le-Comte', 'Villeneuve-Saint-Denis', 'Villeneuve-sous-Dammartin', 'Villenoy', 'Villeroy', 'Villevaudé', 'Villiers-en-Bière', 'Villiers-sur-Morin', 'Vinantes', 'Voisenon', 'Voulangis', 'Vulaines-sur-Seine');
zoneB1['78'] = new Array('Adainville', 'Les Alluets-le-Roi', 'Andelu', 'Arnouville-lès-Mantes', 'Aubergenville', 'Auffargis', 'Auffreville-Brasseuil', 'Aulnay-sur-Mauldre', 'Auteuil', 'Autouillet', 'Bailly', 'Bazainville', 'Bazemont', 'Béhoust', 'Beynes', 'Boinvilleen-Mantois', 'La Boissière-Ecole', 'Boissy-sans-Avoir', 'Bonnelles', 'Bouafle', 'Bourdonné', 'Breuil-Bois-Robert', 'Les Bréviaires', 'Bullion', 'La Celle-les-Bordes', 'Cernay-la-Ville', 'Chavenay', 'Choisel', 'Clairefontaine-en-Yvelines', 'Condé-sur-Vesgre', 'Crespières', 'Dampierre-en-Yvelines', 'Davron', 'Ecquevilly', 'Epône', 'Les Essarts-le-Roi', 'La Falaise', 'Favrieux', 'Feucherolles', 'Flexanville', 'Flins-sur-Seine', 'Fontenay-Mauvoisin', 'Galluis', 'Gambais', 'Gambaiseuil', 'Garancières', 'Gazeran', 'Goupillières', 'Goussonville', 'Grandchamp', 'Grosrouvre', 'Guernes', 'Guerville', 'Hargeville', 'La Hauteville', 'Herbeville', 'Hermeray', 'Jouy-Mauvoisin', 'Jumeauville', 'Lévis-Saint-Nom', 'Longvilliers', 'Marcq', 'Mareil-le-Guyon', 'Mareil-sur-Mauldre', 'Maule', 'Méré', 'Les Mesnuls', 'Mézières-sur-Seine', 'Millemont', 'Milon-la-Chapelle', 'Mittainville', 'Montainville', 'Montfort-l\'Amaury', 'Morainvilliers', 'Nézel', 'Noisy-le-Roi', 'Orcemont', 'Orgerus', 'Osmoy', 'Perdreauville', 'Le Perray-en-Yvelines', 'Poigny-la-Forêt', 'Ponthévrard', 'La Queue-les-Yvelines', 'Raizeux', 'Rambouillet', 'Rennemoulin', 'Rochefort-en-Yvelines', 'Rolleboise', 'Rosny-sur-Seine', 'Saint-Arnoult-en-Yvelines', 'Saint-Forget', 'Saint-Hilarion', 'Saint-Lambert', 'Saint-Léger-en-Yvelines', 'Saint-Martin-des-Champs', 'Saint-Martin-la-Garenne', 'Sainte-Mesme', 'Saint-Nom-la-Bretèche', 'Saulx-Marchais', 'Senlisse', 'Soindres', 'Sonchamp', 'Le Tartre-Gaudran', 'Tessancourt-sur-Aubette', 'Thiverval-Grignon', 'Thoiry', 'Vert', 'Vicq', 'Vieille-Egliseen-Yvelines', 'Villiers-le-Mahieu');
zoneB1['83'] = new Array('Les Adrets-de-l\'Estérel', 'Bagnols-en-Forêt', 'Bandol', 'Le Beausset', 'Belgentier', 'La Cadière-d\'Azur', 'Le Cannetdes-Maures', 'Carqueiranne', 'Le Castellet', 'Collobrières', 'La Crau', 'Cuers', 'Draguignan', 'Evenos', 'La Farlède', 'La Garde', 'Les Mayons', 'Montauroux', 'Le Muy', 'Néoules', 'Ollioules', 'Pierrefeu-du-Var', 'Le Pradet', 'Le Revestles-Eaux', 'Rocbaron', 'Saint-Cyr-sur-Mer', 'Saint-Zacharie', 'Sanary-sur-Mer', 'La Seyne-sur-Mer', 'Six-Fours-les-Plages', 'Solliès-Pont', 'Solliès-Toucas', 'Solliès-Ville', 'Tanneron', 'Toulon', 'Trans-en-Provence', 'La Valette-du-Var', 'Vidauban', 'Saint-Mandrier-sur-Mer');
zoneB1['84'] = new Array('Althen-des-Paluds', 'Aubignan', 'Avignon', 'Bédarrides', 'Carpentras', 'Caumont-sur-Durance', 'Entraigues-sur-la-Sorgue', 'Jonquerettes', 'Loriol-du-Comtat', 'Monteux', 'Morières-lès-Avignon', 'Pernes-les-Fontaines', 'Le Pontet', 'Saint-Saturnin-lès-Avignon', 'Sarrians', 'Sorgues', 'Vedène');
zoneB1['85'] = new Array('Barbâtre', 'Château-d\'Olonne', 'L\'Epine', 'La Guérinière', 'L\'Ile-d\'Yeu', 'Noirmoutier-en-l\'Ile', 'Olonne-sur-Mer', 'Les Sables-d\'Olonne');
zoneB1['91'] = new Array('Angervilliers', 'Auvernaux', 'Avrainville', 'Ballancourt-sur-Essonne', 'Baulne', 'Boullay-les-Troux', 'Bouray-sur-Juine', 'Boutigny-sur-Essonne', 'Briis-sous-Forges', 'Cerny', 'Chamarande', 'Champcueil', 'Chauffour-lès-Etréchy', 'Cheptainville', 'Chevannes', 'Courances', 'Courdimanche-sur-Essonne', 'Courson-Monteloup', 'Dannemois', 'D\'Huison-Longueville', 'Dourdan', 'Echarcon', 'Etréchy', 'La Ferté-Alais', 'Fontenay-lès-Briis', 'Forges-les-Bains', 'Gometz-la-Ville', 'Guibeville', 'Guigneville-sur-Essonne', 'Itteville', 'Janville-sur-Juine', 'Janvry', 'Lardy', 'Leudeville', 'Limours', 'Maisse', 'Marolles-en-Hurepoix', 'Mauchamps', 'Milly-la-Forêt', 'Moigny-sur-Ecole', 'Les Molières', 'Mondeville', 'Nainville-les-Roches', 'Oncy-sur-Ecole', 'Pecqueuse', 'Roinville', 'Saint-Chéron', 'Saint-Cyr-sous-Dourdan', 'Saint-Jeande-Beauregard', 'Saint-Maurice-Montcouronne', 'Saint-Sulpice-de-Favières', 'Saint-Vrain', 'Sermaise', 'Soisy-sur-Ecole', 'Souzy-la-Briche', 'Torfou', 'Le Val-Saint-Germain', 'Vaugrigneuse', 'Vayres-sur-Essonne', 'Vert-le-Grand', 'Vert-le-Petit', 'Videlles', 'Villeconin');
zoneB1['95'] = new Array('Ableiges', 'Arthies', 'Asnières-sur-Oise', 'Attainville', 'Avernes', 'Baillet-en-France', 'Banthelu', 'Beaumont-sur-Oise', 'Le Bellay-en-Vexin', 'Bellefontaine', 'Belloy-en-France', 'Bernes-sur-Oise', 'Béthemont-la-Forêt', 'Boissy-l\'Aillerie', 'Bouqueval', 'Brignancourt', 'Bruyères-sur-Oise', 'Charmont', 'Chars', 'Châtenay-en-France', 'Chaumontel', 'Chauvry', 'Chennevières-lès-Louvres', 'Cléry-en-Vexin', 'Commeny', 'Condécourt', 'Cormeilles-en-Vexin', 'Courcelles-sur-Viosne', 'Ennery', 'Epiais-lès-Louvres', 'Epiais-Rhus', 'Epinay-Champlâtreux', 'Fontenay-en-Parisis', 'Fosses', 'Frémainville', 'Frémécourt', 'Gadancourt', 'Genainville', 'Génicourt', 'Goussainville', 'Gouzangrez', 'Grisy-les-Plâtres', 'Guiry-en-Vexin', 'Hérouville', 'Hodent', 'Jagny-sous-Bois', 'Labbeville', 'Lassy', 'Livilliers', 'Longuesse', 'Louvres', 'Luzarches', 'Maffliers', 'Magny-en-Vexin', 'Mareil-en-France', 'Marines', 'Marly-la-Ville', 'Maudétour-en-Vexin', 'Le Mesnil-Aubry', 'Moisselles', 'Montgeroult', 'Montsoult', 'Mours', 'Moussy', 'Nerville-la-Forêt', 'Nointel', 'Noisysur-Oise', 'Nucourt', 'Le Perchay', 'Persan', 'Le Plessis-Gassot', 'Le Plessis-Luzarches', 'Presles', 'Puiseux-en-France', 'Ronquerolles', 'Sagy', 'Saint-Cyr-en-Arthies', 'Saint-Gervais', 'Saint-Martin-du-Tertre', 'Saint-Witz', 'Santeuil', 'Seraincourt', 'Seugy', 'Survilliers', 'Théméricourt', 'Le Thillay', 'Us', 'Vallangoujard', 'Vaudherland', 'Vémars', 'Vétheuil', 'Viarmes', 'Vienne-en-Arthies', 'Vigny', 'Villaines-sous-Bois', 'Villeron', 'Villiers-le-Sec', 'Wy-dit-Joli-Village');
var zoneB2 = new Array();
zoneB2['01'] = new Array('Ars-sur-Formans', 'Balan', 'Beauregard', 'Béligneux', 'Bellegarde-sur-Valserine', 'Bourg-en-Bresse', 'Bressolles', 'Chézery-Forens', 'Civrieux', 'Confort', 'Frans', 'Jassans-Riottier', 'Lancrans', 'Lélex', 'Meximieux', 'Mijoux', 'Mionnay', 'Niévroz', 'Péronnas', 'Pérouges', 'Pizay', 'Rancé', 'Saint-André-de-Corcy', 'Sainte-Croix', 'Saint-Denis-lès-Bourg', 'Saint-Jean-de-Thurigneux', 'Saint-Just', 'Thil', 'Tramoyes', 'Viriat');
zoneB2['02'] = new Array('Bézu-le-Guéry', 'Brumetz', 'Bussiares', 'Castres', 'La Celle-sous-Montmirail', 'Chézy-en-Orxois', 'Contescourt', 'Coupru', 'Courchamps', 'Coyolles', 'Crouttes-sur-Marne', 'Dallon', 'Dammard', 'Domptin', 'Essigny-le-Petit', 'Fayet', 'Fieulaine', 'Fonsommes', 'Fontaine-Notre-Dame', 'Gandelu', 'Gauchy', 'Grugies', 'Harly', 'Hautevesnes', 'Homblières', 'Largny-sur-Automne', 'Lesdins', 'Marcy', 'Marigny-en-Orxois', 'Mesnil-Saint-Laurent', 'Monnes', 'Montigny-l\'Allier', 'Montreuil-aux-Lions', 'Morcourt', 'Neuville-Saint-Amand', 'Omissy', 'Passy-en-Valois', 'Pavant', 'Priez', 'Remaucourt', 'Rouvroy', 'Saint-Gengoulph', 'Saint-Quentin', 'Veuilly-la-Poterie', 'Viels-Maisons');
zoneB2['03'] = new Array('Abrest', 'Bellerive-sur-Allier', 'Creuzier-le-Neuf', 'Creuzier-le-Vieux', 'Cusset', 'Désertines', 'Domérat', 'Hauterive', 'Lavault-Sainte-Anne', 'Montluçon', 'Prémilhat', 'Quinssaines', 'Saint-Victor', 'Saint-Yorre', 'Serbannes', 'Le Vernet', 'Vichy');
zoneB2['04'] = new Array('La Brillanne', 'Corbières', 'Esparron-de-Verdon', 'Forcalquier', 'Gréoux-les-Bains', 'Mane', 'Manosque', 'Les Mées', 'Oraison', 'Peyruis', 'Pierrevert', 'Saint-Martin-de-Brômes', 'Sainte-Tulle', 'Sisteron', 'Valensole', 'Villeneuve', 'Volx');
zoneB2['05'] = new Array('Gap');
zoneB2['06'] = new Array('Andon', 'La Bollène-Vésubie', 'Breil-sur-Roya', 'Cipières', 'Conségudes', 'Escragnolles', 'Les Ferres', 'Gréolières', 'Lantosque', 'Revest-les-Roches', 'Roquestéron-Grasse', 'Toudon', 'Tourette-du-Château', 'Utelle');
zoneB2['07'] = new Array('Cornas', 'Guilherand-Granges', 'Saint-Péray', 'Soyons');
zoneB2['08'] = new Array('Les Ayvelles', 'Charleville-Mézières', 'La Francheville', 'Montcy-Notre-Dame', 'Prix-lès-Mézières', 'Villers-Semeuse', 'Warcq');
zoneB2['10'] = new Array('Barberey-Saint-Sulpice', 'Bréviandes', 'Buchères', 'La Chapelle-Saint-Luc', 'Creney-près-Troyes', 'Lavau', 'Les Noësprès-Troyes', 'Pont-Sainte-Marie', 'La Rivière-de-Corps', 'Rosières-près-Troyes', 'Saint-André-les-Vergers', 'Saint-Germain', 'Saint-Julien-les-Villas', 'Sainte-Maure', 'Saint-Parres-aux-Tertres', 'Sainte-Savine', 'Troyes');
zoneB2['11'] = new Array('Armissan', 'Bages', 'Fleury', 'Gruissan', 'Leucate', 'Narbonne', 'Port-la-Nouvelle', 'Peyriac-de-Mer', 'Salles-d\'Aude', 'Sigean', 'Vinassan');
zoneB2['13'] = new Array('Arles', 'La Barben', 'Cornillon-Confoux', 'Fos-sur-Mer', 'Grans', 'Istres', 'Jouques', 'Lambesc', 'Lançon-Provence', 'Meyrargues', 'Miramas', 'Pélissanne', 'Peynier', 'Peyrolles-en-Provence', 'Port-Saint-Louis-du-Rhône', 'Puyloubier', 'Le Puy-Sainte-Réparade', 'La Roque-d\'Anthéron', 'Saint-Antonin-sur-Bayon', 'Saint-Chamas', 'Saint-Estève-Janson', 'Saintes-Maries-de-la-Mer', 'Saint-Martin-de-Crau', 'Saint-Mitre-les-Remparts', 'Saint-Paul-lès-Durance', 'Saint-Rémyde-Provence', 'Salon-de-Provence', 'Tarascon', 'Trets');
zoneB2['14'] = new Array('Ablon', 'Authie', 'Baron-sur-Odon', 'Benerville-sur-Mer', 'Bénouville', 'Bernières-sur-Mer', 'Biéville-Beuville', 'Blainville-sur-Orne', 'Blonville-sur-Mer', 'Bonneville-sur-Touques', 'Bretteville-sur-Odon', 'Caen', 'Cambes-en-Plaine', 'Canapville', 'Carpiquet', 'Colleville-Montgomery', 'Colombelles', 'Cormelles-le-Royal', 'Courseulles-sur-Mer', 'Cresserons', 'Cuverville', 'Deauville', 'Démouville', 'Douvres-la-Délivrande', 'Epron', 'Equemauville', 'Eterville', 'Fleurysur-Orne', 'Fontaine-Etoupefour', 'Giberville', 'Gonneville-sur-Honfleur', 'Hermanville-sur-Mer', 'Hérouville-Saint-Clair', 'Honfleur', 'Ifs', 'Langrune-sur-Mer', 'Lion-sur-Mer', 'Louvigny', 'Luc-sur-Mer', 'Mathieu', 'Mondeville', 'Ouistreham', 'Périers-sur-le-Dan', 'Plumetot', 'La Rivière-Saint-Sauveur', 'Rots', 'Saint-Arnoult', 'Saint-Aubind\'Arquenay', 'Saint-Aubin-sur-Mer', 'Saint-Contest', 'Saint-Germain-la-Blanche-Herbe', 'Sannerville', 'Touques', 'Tourgéville', 'Trouville-sur-Mer', 'Verson', 'Villers-sur-Mer', 'Villerville', 'Villons-les-Buissons');
zoneB2['16'] = new Array('Angoulême', 'La Couronne', 'Fléac', 'Gond-Pontouvre', 'L\'Isle-d\'Espagnac', 'Linars', 'Magnac-sur-Touvre', 'Mornac', 'Nersac', 'Puymoyen', 'Ruelle-sur-Touvre', 'Saint-Michel', 'Saint-Yrieix-sur-Charente', 'Soyaux', 'Touvre', 'Trois-Palis');
zoneB2['17'] = new Array('Arces', 'Arvert', 'Barzan', 'Boutenac-Touvent', 'Breuillet', 'Brie-sous-Mortagne', 'Chaillevette', 'Le Chay', 'Chenac-Saint-Seurin-d\'Uzet', 'Cozes', 'Dompierre-sur-Mer', 'L\'Eguille', 'Epargnes', 'Esnandes', 'Etaules', 'Floirac', 'Grézac', 'La Jarne', 'Marsilly', 'Les Mathes', 'Médis', 'Meschers-sur-Gironde', 'Mornac-sur-Seudre', 'Mortagne-sur-Gironde', 'Royan', 'Saint-Augustin', 'Saint-Georges-de-Didonne', 'Saint-Palais-sur-Mer', 'Saint-Rogatien', 'Saint-Romain-sur-Gironde', 'Sainte-Soulle', 'Saint-Sulpice-de-Royan', 'Saint-Vivien', 'Saint-Xandre', 'Salles-sur-Mer', 'Saujon', 'Semussac', 'Talmont-sur-Gironde', 'La Tremblade', 'Vaux-sur-Mer');
zoneB2['18'] = new Array('Annoix', 'Arçay', 'Berry-Bouy', 'Bourges', 'La Chapelle-Saint-Ursin', 'Fussy', 'Marmagne', 'Morthomiers', 'Plaimpied-Givaudins', 'Saint-Doulchard', 'Saint-Germain-du-Puy', 'Saint-Just', 'Saint-Michel-de-Volangis', 'Le Subdray', 'Trouy');
zoneB2['19'] = new Array('Brive-la-Gaillarde', 'Larche', 'Malemort-sur-Corrèze', 'Saint-Pantaléon-de-Larche', 'Ussac');
zoneB2['21'] = new Array('Ahuy', 'Bressey-sur-Tille', 'Bretenière', 'Chenôve', 'Chevigny-Saint-Sauveur', 'Crimolois', 'Daix', 'Dijon', 'Fénay', 'Fontaine-lès-Dijon', 'Hauteville-lès-Dijon', 'Longvic', 'Magny-sur-Tille', 'Marsannay-la-Côte', 'Neuilly-lès-Dijon', 'Ouges', 'Perrigny-lès-Dijon', 'Plombières-lès-Dijon', 'Quetigny', 'Saint-Apollinaire', 'Sennecey-lès-Dijon', 'Talant');
zoneB2['22'] = new Array('Hillion', 'Kermaria-Sulard', 'Lancieux', 'Langueux', 'Lannion', 'Louannec', 'La Méaugon', 'Penvénan', 'Perros-Guirec', 'Plédran', 'Plérin', 'Plestin-les-Grèves', 'Pleumeur-Bodou', 'Ploubalay', 'Ploubezre', 'Ploufragan', 'Ploulec\'h', 'Ploumilliau', 'Plouzélambre', 'Plufur', 'Pordic', 'Rospez', 'Saint-Brieuc', 'Saint-Donan', 'Saint-Julien', 'Saint-Michel-en-Grève', 'Saint-Quay-Perros', 'Trébeurden', 'Trédrez-Locquémeau', 'Tréduder', 'Trégastel', 'Trégueux', 'Trélévern', 'Trémel', 'Tréméloir', 'Trémuson', 'Trévou-Tréguignec', 'Yffiniac');
zoneB2['24'] = new Array('Bassillac', 'Bergerac', 'Boulazac', 'Champcevinel', 'Chancelade', 'Coulounieix-Chamiers', 'Cours-de-Pile', 'Creysse', 'La Feuillade', 'Gardonne', 'Ginestet', 'La Force', 'Lamonzie-Saint-Martin', 'Lembras', 'Marsac-sur-l\'Isle', 'Mouleydier', 'Notre-Dame-de-Sanilhac', 'Pazayac', 'Périgueux', 'Port-Sainte-Foy-et-Ponchapt', 'Prigonrieux', 'Saint-Antoine-de-Breuilh', 'Saint-Germain-et-Mons', 'Saint-Laurent-des-Vignes', 'Saint-Nexans', 'Saint-Pierre-d\'Eyraud', 'Saint-Sauveur', 'Trélissac');
zoneB2['25'] = new Array('Allenjoie', 'Amagney', 'Arbouans', 'Arguel', 'Audeux', 'Audincourt', 'Auxon-Dessous', 'Auxon-Dessus', 'Avanne-Aveney', 'Badevel', 'Bart', 'Bavans', 'Besançon', 'Bethoncourt', 'Beure', 'Boussières', 'Braillans', 'Brognard', 'Busy', 'Chalèze', 'Chalezeule', 'Champagney', 'Champoux', 'Champvans-les-Moulins', 'Châtillon-le-Duc', 'Chaucenne', 'Chaudefontaine', 'Chemaudin', 'La Chevillotte', 'Courcelles-lès-Montbéliard', 'Dambenois', 'Dampierre-les-Bois', 'Dannemarie-sur-Crète', 'Dasle', 'Deluz', 'Devecey', 'Ecole-Valentin', 'Etupes', 'Exincourt', 'Fesches-le-Châtel', 'Fontain', 'Franois', 'Gennes', 'Grand Charmont', 'Grandfontaine', 'Le Gratteris', 'Hérimoncourt', 'Larnod', 'Mamirolle', 'Mandeure', 'Marchaux', 'Mathay', 'Mazerolles-le-Salin', 'Métabief', 'Miserey-Salines', 'Montbéliard', 'Montfaucon', 'Montferrand-le-Château', 'Morre', 'Nancray', 'Noironte', 'Nommay', 'Novillars', 'Osselle', 'Pelousey', 'Pirey', 'Pouilley-les-Vignes', 'Pugey', 'Rancenay', 'Roche-lez-Beaupré', 'Routelle', 'Sainte-Suzanne', 'Saône', 'Seloncourt', 'Serre-les-Sapins', 'Sochaux', 'Taillecourt', 'Tallenay', 'Thise', 'Thoraise', 'Torpes', 'Vaire-Arcier', 'Vaire-le-Petit', 'Valentigney', 'Vandoncourt', 'Vaux-les-Prés', 'La Vèze', 'Vieux-Charmont', 'Vorges-les-Pins', 'Voujeaucourt');
zoneB2['26'] = new Array('Beauvallon', 'Bourg-de-Péage', 'Bourg-lès-Valence', 'Chatuzange-le-Goubet', 'Etoile-sur-Rhône', 'Génissieux', 'Montélimar', 'Mours-Saint-Eusèbe', 'Peyrins', 'Portes-lès-Valence', 'Romans-sur-Isère', 'Valence');
zoneB2['27'] = new Array('Aigleville', 'Alizay', 'Amécourt', 'Angerville-la-Campagne', 'Arnières-sur-Iton', 'Authevernes', 'Aviron', 'Les Baux-Sainte-Croix', 'Bazincourt-sur-Epte', 'Bernouville', 'Berthenonville', 'Bézu-la-Forêt', 'Bézu-Saint-Eloi', 'Bois-le-Roi', 'La Boissière', 'Boncourt', 'Le Bosc-Roger-en-Roumois', 'Bosnormand', 'Le Boulay-Morin', 'Bourgtheroulde-Infreville', 'Bretagnolles', 'Breuilpont', 'Bueil', 'Bus-Saint-Rémy', 'Cahaignes', 'Cantiers', 'Caugé', 'Chaignes', 'La Chapelle-du-Boisdes-Faulx', 'Château-sur-Epte', 'Chauvincourt-Provemont', 'Cierrey', 'Civières', 'Coudray', 'La Couture-Boussey', 'Criquebeuf-sur-Seine', 'Croth', 'Les Damps', 'Dampsmesnil', 'Dangu', 'Dardez', 'Doudeauville-en-Vexin', 'Ecos', 'Emalleville', 'Epieds', 'Etrépagny', 'Evreux', 'Ezy-sur-Eure', 'Farceaux', 'Fauville', 'Fontenay', 'Fourges', 'Fours-en-Vexin', 'Gadencourt', 'Gamaches-en-Vexin', 'Garennes-sur-Eure', 'Gauciel', 'Gauville-la-Campagne', 'Gisors', 'Gravigny', 'Guerny', 'Guichainville', 'L\'Habit', 'Hacqueville', 'Hébécourt', 'Hécourt', 'Heudicourt', 'Huest', 'Igoville', 'Irreville', 'Ivry-la-Bataille', 'Lignerolles', 'Longchamps', 'Mainneville', 'Le Manoir', 'Marcilly-sur-Eure', 'Martagny', 'Martot', 'Merey', 'Le Mesnil-Fuguet', 'Mesnil-sous-Vienne', 'Miserey', 'Mouettes', 'Mouflaines', 'Mousseaux-Neuville', 'Neaufles-Saint-Martin', 'Neuilly', 'La Neuve-Grange', 'Nojeon-en-Vexin', 'Normanville', 'Noyers', 'Parville', 'P&icirc;tres', 'Le Plessis-Grohan', 'Pont-de-l\'Arche', 'Puchay', 'Reuilly', 'Richeville', 'Sacquenville', 'Saint-Denis-le-Ferment', 'Saint-Germain-des-Angles', 'Saint-Laurent-des-Bois', 'Saint-Luc', 'Sainte-Marie-de-Vatimesnil', 'Saint-Martin-la-Campagne', 'Saint-Ouen-du-Tilleul', 'Saint-Sébastien-de-Morsent', 'Saint-Vigor', 'Sancourt', 'Sassey', 'Serez', 'Suzay', 'Le Thil', 'Les Thilliers-en-Vexin', 'Tourneville', 'La Trinité', 'Le Val-David', 'Les Ventes', 'Vesly', 'Le Vieil-Evreux', 'Villegats', 'Villers-en-Vexin', 'Villiers-en-Désoeuvre');
zoneB2['28'] = new Array('Abondant', 'Anet', 'Ardelu', 'Aunay-sous-Auneau', 'Auneau', 'Bailleau-Armenonville', 'Barjouville', 'Barmainville', 'Baudreville', 'Berchères-sur-Vesgre', 'Béville-le-Comte', 'Bleury', 'Boncourt', 'Bouglainval', 'Le Boullay-Thierry', 'Boutigny-Prouais', 'Bréchamps', 'Broué', 'B&ucirc;', 'Champagne', 'Champhol', 'Champseru', 'La Chapelle-d\'Aunainville', 'La Chapelle-Forainvilliers', 'Charpont', 'Chartainvilliers', 'Chartres', 'Châtenay', 'Chaudon', 'La Chaussée-d\'Ivry', 'Le Coudray', 'Coulombs', 'Croisilles', 'Denonville', 'Droue-sur-Drouette', 'Ecluzelles', 'Ecrosnes', 'Epernon', 'Faverolles', 'Gallardon', 'Garancières-en-Beauce', 'Gas', 'Germainville', 'Gilles', 'Gommerville', 'Gouillons', 'Goussainville', 'Guainville', 'Le Gué-de-Longroi', 'Hanches', 'Havelu', 'Houx', 'Intréville', 'Léthuin', 'Levainville', 'Lèves', 'Levesville-la-Chenard', 'Lormaye', 'Louville-la-Chenard', 'Lucé', 'Luisant', 'Maintenon', 'Mainvilliers', 'Maisons', 'Marchezais', 'Mérouville', 'Le Mesnil-Simon', 'Mévoisins', 'Moinville-la-Jeulin', 'Mondonville-Saint-Jean', 'Morainville', 'Morancez', 'Néron', 'Neuvy-en-Beauce', 'Nogent-le-Roi', 'Oinville-sous-Auneau', 'Orlu', 'Ormoy', 'Ouarville', 'Ouerre', 'Oulins', 'Oysonville', 'Pierres', 'Les Pinthières', 'Roinville', 'Rouvray-Saint-Denis', 'Rouvres', 'Saint-Laurent-la-Gâtine', 'Saint-Léger-des-Aubées', 'Saint-Lubin-de-la-Haye', 'Saint-Lucien', 'Saint-Martin-de-Nigelles', 'Saint-Ouen-Marchefroy', 'Saint-Piat', 'Saint-Symphorien-le-Château', 'Sainville', 'Santeuil', 'Saussay', 'Senantes', 'Serazereux', 'Serville', 'Sorel-Moussel', 'Soulaires', 'Umpeau', 'Vierville', 'Villemeux-sur-Eure', 'Villiers-le-Morhier', 'Voise', 'Yermenonville', 'Ymeray');
zoneB2['29'] = new Array('Bénodet', 'Bohars', 'Brest', 'Clohars-Fouesnant', 'Combrit', 'Concarneau', 'Ergué-Gabéric', 'La Forêt-Fouesnant', 'Fouesnant', 'Gouesnach', 'Gouesnou', 'Guengat', 'Guilers', 'Guilvinec', 'Guipavas', 'Ile-Tudy', 'Loctudy', 'Loperhet', 'Penmarch', 'Pleuven', 'Plobannalec-Lesconil', 'Plogonnec', 'Plomelin', 'Plomeur', 'Plonéis', 'Plougastel-Daoulas', 'Plouzané', 'Pluguffan', 'Pont-l\'Abbé', 'Quimper', 'Le Relecq-Kerhuon', 'Saint-Jean-Trolimon', 'Treffiagat', 'Trégunc');
zoneB2['30'] = new Array('Alès', 'Anduze', 'Aubord', 'Bagard', 'Bernis', 'Boisset-et-Gaujac', 'Bouillargues', 'Caissargues', 'Caveirac', 'Cendras', 'Clarensac', 'Fourques', 'Garons', 'Générac', 'Le Grau-du-Roi', 'Langlade', 'Marguerittes', 'Méjannes-lès-Alès', 'Milhaud', 'N&icirc;mes', 'Poulx', 'Rousson', 'Saint-Christol-lès-Alès', 'Saint-Hilaire-de-Brethmas', 'Saint-Jean-du-Pin', 'Saint-Julien-les-Rosiers', 'Saint-Martin-de-Valgalgues', 'Saint-Privat-des-Vieux', 'Salindres', 'Uchaud', 'Vestric-et-Candiac', 'Rodilhan');
zoneB2['33'] = new Array('Andernos-les-Bains', 'Arcachon', 'Arès', 'Aubie-et-Espessas', 'Audenge', 'Biganos', 'Cubzac-les-Ponts', 'Gujan-Mestras', 'Lanton', 'Lège-Cap-Ferret', 'Pineuilh', 'Saint-André-de-Cubzac', 'Saint-Antoine', 'Saint-Avit-Saint-Nazaire', 'Sainte-Foy-la-Grande', 'Saint-Philippe-du-Seignal', 'Le Teich', 'La Teste-de-Buch');
zoneB2['34']  = new Array('Assas', 'Baillargues', 'Balaruc-les-Bains', 'Balaruc-le-Vieux', 'Bassan', 'Béziers', 'Boujan-sur-Libron', 'Bouzigues', 'Castries', 'Cers', 'Corneilhan', 'Fabrègues', 'Gigean', 'Lavérune', 'Lieuran-lès-Béziers', 'Lignan-sur-Orb', 'Loupian', 'Lunel', 'Lunel-Viel', 'Maraussan', 'Marseillan', 'Mauguio', 'Mèze', 'Mireval', 'Portiragnes', 'Poussan', 'Prades-le-Lez', 'Saint-Aunès', 'Saint-Brès', 'Saint-Gély-du-Fesc', 'Saint-Georges-d\'Orques', 'Saint-Just', 'Saint-Nazaire-de-Pézan', 'Saint-Vincent-de-Barbeyrargues', 'Saussan', 'Sauvian', 'Sérignan', 'Teyran', 'Valras-Plage', 'Vendres', 'Vias', 'Vic-la-Gardiole', 'Villeneuvelès-Béziers', 'Villeneuve-lès-Maguelone');
zoneB2['35'] = new Array('Cancale', 'Châteauneuf-d\'Ille-et-Vilaine', 'La Fresnais', 'La Gouesnière', 'Hirel', 'Lillemer', 'Miniac-Morvan', 'Plerguer', 'Pleurtuit', 'La Richardais', 'Saint-Beno&icirc;t-des-Ondes', 'Saint-Briac-sur-Mer', 'Saint-Coulomb', 'Saint-Guinoux', 'Saint-Jouan-des-Guérets', 'Saint-Lunaire', 'Saint-Méloir-des-Ondes', 'Saint-Père', 'Saint-Suliac', 'La Ville-ès-Nonais', 'Le Tronchet');
zoneB2['36'] = new Array('Châteauroux', 'Déols', 'Le Poinçonnet', 'Saint-Maur');
zoneB2['38'] = new Array('Bourgoin-Jallieu', 'Domarin', 'Four', 'L\'Isle-d\'Abeau', 'Maubec', 'Nivolas-Vermelle', 'Ruy', 'Saint-Alban-de-Roche', 'Saint-Quentin-Fallavier', 'Satolas-et-Bonce', 'Vaulx-Milieu', 'La Verpillière', 'Villefontaine');
zoneB2['39'] = new Array('Bois-d\'Amont', 'Les Rousses');
zoneB2['40'] = new Array('Angresse', 'Bénesse-Maremne', 'Biscarrosse', 'Orx', 'Saint-André-de-Seignanx', 'Saint-Barthélemy', 'Saint-Martin-de-Seignanx', 'Sanguinet', 'Seignosse');
zoneB2['41'] = new Array('Averdon', 'Blois', 'Candé-sur-Beuvron', 'Cellettes', 'Chailles', 'La Chaussée-Saint-Victor', 'Cheverny', 'Chitenay', 'Cormeray', 'Cour-Cheverny', 'Fossé', 'Huisseau-sur-Cosson', 'Marolles', 'Menars', 'Monthou-sur-Bièvre', 'Les Montils', 'Saint-Bohaire', 'Saint-Denis-sur-Loire', 'Saint-Gervais-la-Forêt', 'Saint-Lubin-en-Vergonnois', 'Saint-Sulpice-de-Pommeray', 'Sambin', 'Seur', 'Valaire', 'Villebarou', 'Villerbon', 'Vineuil');
zoneB2['42'] = new Array('Cellieu', 'Le Chambon-Feugerolles', 'Châteauneuf', 'Commelle-Vernay', 'Le Coteau', 'L\'Etrat', 'Farnay', 'Firminy', 'Fraisses', 'La Grand-Croix', 'L\'Horme', 'Lorette', 'Mably', 'Pouilly-les-Nonains', 'Renaison', 'La Ricamarie', 'Riorges', 'Rive-de-Gier', 'Roanne', 'Roche-la-Molière', 'Saint-Alban-les-Eaux', 'Saint-André-d\'Apchon', 'Saint-Chamond', 'Saint-Etienne', 'Saint-Genest-Lerpt', 'Genilac', 'Saint-Haon-le-Châtel', 'Saint-Haon-le-Vieux', 'Saint-Jean-Bonnefonds', 'Saint-Joseph', 'Saint-Léger-sur-Roanne', 'Saint-Martin-la-Plaine', 'Saint-Paul-en-Jarez', 'Saint-Priest-en-Jarez', 'Sorbiers', 'La Talaudière', 'La Tour-en-Jarez', 'Unieux', 'Villars', 'Villerest');
zoneB2['43'] = new Array('Pont-Salomon', 'Saint-Ferréol-d\'Auroure');
zoneB2['44'] = new Array('Assérac', 'Batz-sur-Mer', 'La Bernerie-en-Retz', 'Besné', 'La Chapelle-des-Marais', 'Donges', 'Guérande', 'Herbignac', 'Montoir-de-Bretagne', 'Les Moutiers-en-Retz', 'La Plaine-sur-Mer', 'Pornic', 'Le Pouliguen', 'Préfailles', 'Saint-Andrédes-Eaux', 'Saint-Brevin-les-Pins', 'Saint-Joachim', 'Saint-Lyphard', 'Saint-Malo-de-Guersac', 'Saint-Michel-Chef-Chef', 'Saint-Molf', 'Saint-Nazaire', 'Trignac');
zoneB2['45'] = new Array('Amilly', 'Andonville', 'Autruy-sur-Juine', 'Boisseaux', 'Cepoy', 'Châlette-sur-Loing', 'Conflans-sur-Loing', 'Corquilleroy', 'Desmonts', 'Erceville', 'Malesherbes', 'Montargis', 'Morville-en-Beauce', 'Orville', 'Pannecières', 'Pannes', 'Paucourt', 'Rouvres-Saint-Jean', 'Thignonville', 'Villemandeur', 'Vimory');
zoneB2['47'] = new Array('Agen', 'Boé', 'Bon-Encontre', 'Brax', 'Castelculier', 'Colayrac-Saint-Cirq', 'Estillac', 'Foulayronnes', 'Lafox', 'Le Passage', 'Pont-du-Casse', 'Roquefort', 'Saint-Hilaire-de-Lusignan', 'Saint-Pierre-de-Clairac');
zoneB2['49'] = new Array('Angers', 'Avrillé', 'Beaucouzé', 'Béhuard', 'Bouchemaine', 'Briollay', 'Cantenay-Epinard', 'Chanteloup-les-Bois', 'Cholet', 'Ecouflant', 'Feneu', 'Juigné-sur-Loire', 'Le May-sur-Evre', 'Mazières-en-Mauges', 'La Meignanne', 'La Membrolle-sur-Longuenée', 'Montreuil-Juigné', 'M&ucirc;rs-Erigné', 'Nuaillé', 'Pellouailles-les-Vignes', 'Le Plessis-Grammoire', 'Le Plessis-Macé', 'Les Ponts-de-Cé', 'La Romagne', 'Saint-Barthélemy-d\'Anjou', 'Saint-Christophedu-Bois', 'Saint-Clément-de-la-Place', 'Sainte-Gemmes-sur-Loire', 'Saint-Jean-de-Linières', 'Saint-Lambert-la-Potherie', 'Saint-Léger-des-Bois', 'Saint-Léger-sous-Cholet', 'Saint-Martin-du-Fouilloux', 'Saint-Sylvain-d\'Anjou', 'Sarrigné', 'Savennières', 'La Séguinière', 'Soucelles', 'Soulaines-sur-Aubance', 'La Tessoualle', 'Toutlemonde', 'Trélazé', 'Trémentines', 'Vezins', 'Villevêque');
zoneB2['50'] = new Array('Bréville-sur-Mer', 'Cherbourg-Octeville', 'Donville-les-Bains', 'Equeurdreville-Hainneville', 'La Glacerie', 'Granville', 'Longueville', 'Martinvast', 'Querqueville', 'Tourlaville', 'Yquelon');
zoneB2['51'] = new Array('Bétheny', 'Bezannes', 'Châlons-en-Champagne', 'Compertrix', 'Coolus', 'Cormontreuil', 'Dizy', 'Epernay', 'L\'Epine', 'Fagnières', 'Mardeuil', 'Moncetz-Longevas', 'Moussy', 'Pierry', 'Recy', 'Reims', 'Réveillon', 'Saint-Brice-Courcelles', 'Saint-Etienne-au-Temple', 'Saint-Gibrien', 'Saint-Léonard', 'Saint-Martin-sur-le-Pré', 'Saint-Memmie', 'Sarry', 'Taissy', 'Tinqueux', 'Le Vézier', 'Villeneuve-la-Lionne', 'Witry-lès-Reims', 'Magenta');
zoneB2['53'] = new Array('Changé', 'Laval', 'Saint-Berthevin');
zoneB2['54'] = new Array('Auboué', 'Briey', 'Cosnes-et-Romain', 'Gorcy', 'Haucourt-Moulaine', 'Herserange', 'Homécourt', 'Hussigny-Godbrange', 'Joeuf', 'Lexy', 'Longlaville', 'Longwy', 'Mexy', 'Mont-Saint-Martin', 'Moutiers', 'Réhon', 'Saulnes', 'Thil', 'Villerupt');
zoneB2['56'] = new Array('Arradon', 'Arzon', 'Auray', 'Baden', 'Brandérion', 'Brech', 'Camoël', 'Carnac', 'Caudan', 'Cléguer', 'Crach', 'Elven', 'Férel', 'Gâvres', 'Gestel', 'Guidel', 'Hennebont', 'Le Hézo', 'Inzinzac-Lochrist', 'Lanester', 'Languidic', 'Larmor-Baden', 'Larmor-Plage', 'Locmariaquer', 'Locmiquélic', 'Lorient', 'Meucon', 'Monterblanc', 'Noyalo', 'Pénestin', 'Plescop', 'Ploemeur', 'Ploeren', 'Plougoumelen', 'Plouharnel', 'Pluneret', 'Pont-Scorff', 'Port-Louis', 'Quéven', 'Quiberon', 'Riantec', 'Saint-Armel', 'Saint-Avé', 'Saint-Gildas-de-Rhuys', 'Saint-Nolff', 'Saint-Philibert', 'Saint-Pierre-Quiberon', 'Sarzeau', 'Séné', 'Sulniac', 'Surzur', 'Theix', 'Trédion', 'Treffléan', 'La Trinité-sur-Mer', 'La Trinité-Surzur', 'Vannes', 'Bono');
zoneB2['57'] = new Array('Achen', 'Algrange', 'Alsting', 'Altviller', 'Amanvillers', 'Amnéville', 'Ancy-sur-Moselle', 'Angevillers', 'Ars-Laquenexy', 'Audun-le-Tiche', 'Behren-lès-Forbach', 'Béning-lès-Saint-Avold', 'Betting-lès-Saint-Avold', 'Bliesbruck', 'Blies-Ebersing', 'Blies-Guersviller', 'Bousbach', 'Bronvaux', 'Carling', 'Chieulles', 'Clouange', 'Cocheren', 'Coin-lès-Cuvry', 'Coin-sur-Seille', 'Creutzwald', 'Cuvry', 'Diebling', 'Ernestviller', 'Etting', 'Etzling', 'Falck', 'Fameck', 'Farébersviller', 'Farschviller', 'Fèves', 'Féy', 'Florange', 'Folkling', 'Folschviller', 'Fontoy', 'Forbach', 'Frauenberg', 'Freyming-Merlebach', 'Gandrange', 'Gravelotte', 'Grosbliederstroff', 'Grundviller', 'Guebenhouse', 'Guenviller', 'Hagondange', 'Basse-Ham', 'Ham-sous-Varsberg', 'Hambach', 'Hargarten-aux-Mines', 'Hauconcourt', 'Havange', 'Hayange', 'Henriville', 'Hombourg-Haut', 'L\'Hôpital', 'Hundling', 'Illange', 'Ippling', 'Jouy-aux-Arches', 'Kalhausen', 'Kerbach', 'Knutange', 'Kuntzig', 'Lachambre', 'Laquenexy', 'Laudrefang', 'Lixing-lès-Rouhling', 'Lommerange', 'Longeville-lès-Saint-Avold', 'Lorry-lès-Metz', 'Loupershouse', 'Macheren', 'Maizières-lès-Metz', 'Manom', 'Marange-Silvange', 'Marieulles', 'La Maxe', 'Metzing', 'Mey', 'Mondelange', 'Montois-la-Montagne', 'Morsbach', 'Moyeuvre-Grande', 'Moyeuvre-Petite', 'Neufchef', 'Neufgrange', 'Nilvange', 'Noisseville', 'Norroy-le-Veneur', 'Nouilly', 'Nousseviller-Saint-Nabor', 'OEting', 'Ottange', 'Petite-Rosselle', 'Pierrevillers', 'Plesnois', 'Porcelette', 'Pouilly', 'Pournoy-la-Chétive', 'Puttelange-aux-Lacs', 'Ranguevaux', 'Rédange', 'Rémelfing', 'Richemont', 'Rochonvillers', 'Rombas', 'Roncourt', 'Rosbruck', 'Rosselange', 'Rouhling', 'Russange', 'Saint-Avold', 'Sainte-Marie-aux-Chênes', 'Saint-Privat-la-Montagne', 'Sarralbe', 'Sarreguemines', 'Sarreinsming', 'Saulny', 'Schmittviller', 'Schoeneck', 'Seingbouse', 'Semécourt', 'Serémange-Erzange', 'Spicheren', 'Stiring-Wendel', 'Talange', 'Tenteling', 'Terville', 'Théding', 'Thionville', 'Tressange', 'Uckange', 'Valmont', 'Vany', 'Varsberg', 'Vernéville', 'Vitry-sur-Orne', 'Volmerange-les-Mines', 'Wiesviller', 'Willerwald', 'Wittring', 'Woelfling-lès-Sarreguemines', 'Woustviller', 'Yutz', 'Zetting', 'Diesen');
zoneB2['58'] = new Array('Challuy', 'Coulanges-lès-Nevers', 'Fourchambault', 'Garchizy', 'Germigny-sur-Loire', 'Nevers', 'Pougues-les-Eaux', 'Saincaize-Meauce', 'Sermoise-sur-Loire', 'Varennes-Vauzelles');
zoneB2['59'] = new Array('Abscon', 'Allennes-les-Marais', 'Anhiers', 'Aniche', 'Annoeullin', 'Anzin', 'Arleux', 'Armbouts-Cappel', 'Armentières', 'Artres', 'Assevent', 'Attiches', 'Auberchicourt', 'Aubers', 'Aubigny-au-Bac', 'Aubry-du-Hainaut', 'Auby', 'Aulnoy-lez-Valenciennes', 'Aulnoye-Aymeries', 'Avelin', 'Avesnes-le-Sec', 'Bachant', 'Bachy', 'Bailleul', 'La Bassée', 'Bauvin', 'Beaucamps-Ligny', 'Bellaing', 'Bergues', 'Bersée', 'Beuvrages', 'Bierne', 'Bois-Grenier', 'Bouchain', 'Bourbourg', 'Boussières-sur-Sambre', 'Boussois', 'Bray-Dunes', 'Bruay-sur-l\'Escaut', 'Bruille-lez-Marchiennes', 'Bruille-Saint-Amand', 'Brunémont', 'Bugnicourt', 'Camphin-en-Carembault', 'Camphin-en-Pévèle', 'Cantin', 'Cappelle-en-Pévèle', 'Cappelle-la-Grande', 'Carnin', 'Cerfontaine', 'La Chapelle-d\'Armentières', 'Château-l\'Abbaye', 'Chemy', 'Cobrieux', 'Colleret', 'Condé-sur-l\'Escaut', 'Coudekerque', 'Coudekerque-Branche', 'Courchelettes', 'Craywick', 'Crespin', 'Cuincy', 'Curgies', 'Dechy', 'Denain', 'De&ucirc;lémont', 'Douchy-les-Mines', 'Dunkerque', 'Ecaillon', 'Eclaibes', 'Elesmes', 'Emerchicourt', 'Ennetières-en-Weppes', 'Ennevelin', 'Erchin', 'Erquinghem-le-Sec', 'Erquinghem-Lys', 'Erre', 'Escaudain', 'Escautpont', 'Escobecques', 'Esquerchin', 'Estrées', 'Estreux', 'Famars', 'Faumont', 'Féchain', 'Feignies', 'Fenain', 'Férin', 'Ferrière-la-Grande', 'Ferrière-la-Petite', 'Flers-en-Escrebieux', 'Flines-lès-Mortagne', 'Flines-lez-Raches', 'Fort-Mardyck', 'Fournesen-Weppes', 'Frelinghien', 'Fresnes-sur-Escaut', 'Fressain', 'Fretin', 'Fromelles', 'Genech', 'Ghyvelde', 'Goeulzin', 'Gondecourt', 'Grande-Synthe', 'Grand-Fort-Philippe', 'Gravelines', 'Guesnain', 'Hamel', 'Hantay', 'Hasnon', 'Haspres', 'Haulchin', 'Hautmont', 'Haveluy', 'Hélesmes', 'Hergnies', 'Hérin', 'Herlies', 'Herrin', 'Hordain', 'Hornaing', 'Houplin-Ancoisne', 'Houplines', 'Hoymille', 'Illies', 'Jeumont', 'Lallaing', 'Lambres-lez-Douai', 'Lauwin-Planque', 'Lecelles', 'Lécluse', 'Leffrinckoucke', 'Leval', 'Lewarde', 'Lieu-Saint-Amand', 'Limont-Fontaine', 'Loffre', 'Loon-Plage', 'Lourches', 'Louvroil', 'Maing', 'Mairieux', 'Le Maisnil', 'Marcq-en-Ostrevent', 'Marly', 'Marpent', 'Marquette-en-Ostrevant', 'Marquillies', 'Masny', 'Mastaing', 'Maubeuge', 'Maulde', 'Mérignies', 'Méteren', 'Millonfosse', 'Monceau-Saint-Waast', 'Monchaux-sur-Ecaillon', 'Moncheaux', 'Monchecourt', 'Mons-en-Pévèle', 'Montigny-en-Ostrevent', 'Mortagnedu-Nord', 'Mouchin', 'Neuf-Mesnil', 'La Neuville', 'Neuville-sur-Escaut', 'Nieppe', 'Nivelle', 'Noyelles-sur-Selle', 'Obrechies', 'Odomez', 'Oisy', 'Onnaing', 'Ostricourt', 'Pecquencourt', 'Péronne-en-Mélantois', 'Petite-Forêt', 'Phalempin', 'Pont-&agrave;-Marcq', 'Pont-sur-Sambre', 'Préseau', 'Prouvy', 'Provin', 'Quaëdypre', 'Quarouble', 'Quérénaing', 'Quesnoy-sur-De&ucirc;le', 'Quiévrechain', 'Râches', 'Radinghem-en-Weppes', 'Raimbeaucourt', 'Raismes', 'Recquignies', 'Rieulay', 'Roeulx', 'Rombies-et-Marchipont', 'Roost-Warendin', 'Roucourt', 'Rousies', 'Rouvignies', 'Sainghin-en-Weppes', 'Saint-Amandles-Eaux', 'Saint-Aybert', 'Saint-Georges-sur-l\'Aa', 'Saint-Jans-Cappel', 'Saint-Pol-sur-Mer', 'Saint-Remy-du-Nord', 'Saint-Saulve', 'Salomé', 'Saultain', 'Sebourg', 'La Sentinelle', 'Sin-le-Noble', 'Socx', 'Somain', 'Steenwerck', 'Templeuve', 'Téteghem', 'Thiant', 'Thivencelle', 'Thumeries', 'Thun-Saint-Amand', 'Tourmignies', 'Trith-Saint-Léger', 'Verchain-Maugré', 'Vicq', 'Vieux-Condé', 'Vieux-Mesnil', 'Villers-au-Tertre', 'Wahagnies', 'Wallers', 'Wannehain', 'Warneton', 'Wasnes-au-Bac', 'Wavrechain-sous-Denain', 'Wavrechain-sous-Faulx', 'Wavrin', 'Waziers', 'Wicres', 'Zuydcoote', 'Don');
zoneB2['60'] = new Array('Abbecourt', 'Acy-en-Multien', 'Allonne', 'Amblainville', 'Andeville', 'Angicourt', 'Anserville', 'Antilly', 'Apremont', 'Armancourt', 'Auger-Saint-Vincent', 'Aumont-en-Halatte', 'Auneuil', 'Auteuil', 'Autheuil-en-Valois', 'Bachivillers', 'Bargny', 'Baron', 'Beaumont-les-Nonains', 'Beauvais', 'Belle-Eglise', 'Berneuil-en-Bray', 'Béthancourt-en-Valois', 'Betz', 'Bienville', 'Blaincourt-lès-Précy', 'Boissy-Fresnoy', 'Boissy-le-Bois', 'Bonlier', 'Bonneuil-en-Valois', 'Borest', 'Bornel', 'Boubiers', 'Bouconvillers', 'Bouillancy', 'Boullarre', 'Boursonne', 'Boury-en-Vexin', 'Boutencourt', 'Brégy', 'Brenouille', 'Cauvigny', 'Chamant', 'Chambly', 'Chambors', 'La Chapelle-en-Serval', 'Chaumont-en-Vexin', 'Chavençon', 'Chèvreville', 'Choisy-au-Bac', 'Cinqueux', 'Clairoix', 'Compiègne', 'Corbeil-Cerf', 'Le Coudray-sur-Thelle', 'Courcelles-lès-Gisors', 'Courteuil', 'Creil', 'Crépy-en-Valois', 'Crouy-en-Thelle', 'Cuvergnon', 'Delincourt', 'Le Déluge', 'Dieudonné', 'Duvy', 'Eméville', 'Enencourt-Léage', 'Enencourt-le-Sec', 'Eragny-sur-Epte', 'Ercuis', 'Ermenonville', 'Esches', 'Etavigny', 'Eve', 'Fay-les-Etangs', 'Feigneux', 'Flavacourt', 'Fleurines', 'Fleury', 'Fontaine-Chaalis', 'Fontaine-Saint-Lucien', 'Fosseuse', 'Foulangues', 'Fouquenies', 'Fresneaux-Montchevreuil', 'Fresne-Léguillon', 'Fresnoy-en-Thelle', 'Fresnoy-la-Rivière', 'Fresnoy-le-Luat', 'Frocourt', 'Gilocourt', 'Glaignes', 'Goincourt', 'Gondreville', 'Guignecourt', 'Hadancourt-le-Haut-Clocher', 'Hardivillers-en-Vexin', 'Hénonville', 'Herchies', 'Hodenc-l\'Evêque', 'La Houssoye', 'Ivors', 'Ivry-le-Temple', 'Jaméricourt', 'Janville', 'Jaux', 'Jonquières', 'Jouy-sous-Thelle', 'Juvignies', 'Laboissière-en-Thelle', 'Labosse', 'Lachapelle-Saint-Pierre', 'Lacroix-Saint-Ouen', 'Lagny-le-Sec', 'Laigneville', 'Lalande-en-Son', 'Lattainville', 'Lavilletertre', 'Lévignen', 'Liancourt-Saint-Pierre', 'Lierville', 'Loconville', 'Longueil-Annel', 'Lormaison', 'Machemont', 'Maisoncelle-Saint-Pierre', 'Mareuil-sur-Ourcq', 'Margny-lès-Compiègne', 'Marolles', 'Mélicocq', 'Méru', 'Le Mesnil-en-Thelle', 'Le Mesnil-Théribus', 'Le Meux', 'Milly-sur-Thérain', 'Monceaux', 'Monchy-Saint-Eloi', 'Monneville', 'Montagny-en-Vexin', 'Montagny-Sainte-Félicité', 'Montataire', 'Montherlant', 'Montjavoult', 'Montlognon', 'Montmacq', 'Monts', 'Le Mont-Saint-Adrien', 'Morangles', 'Morienval', 'Mortefontaine', 'Mortefontaine-en-Thelle', 'Nanteuil-le-Haudouin', 'Neufchelles', 'Neuilly-en-Thelle', 'Neuville-Bosc', 'La Neuville-d\'Aumont', 'La Neuville-Garnier', 'Nivillers', 'Noailles', 'Nogent-sur-Oise', 'Novillers', 'Ognes', 'Ormoy-le-Davien', 'Ormoy-Villers', 'Orrouy', 'Orry-la-Ville', 'Parnes', 'Péroy-les-Gombries', 'Pierrefitte-en-Beauvaisis', 'Plailly', 'Le Plessis-Belleville', 'Ponchon', 'Pontarmé', 'Porcheux', 'Pouilly', 'Précy-sur-Oise', 'Puiseux-en-Bray', 'Puiseux-le-Hauberger', 'Rainvillers', 'Réez-Fosse-Martin', 'Reilly', 'Ressons-l\'Abbaye', 'Rieux', 'Rochy-Condé', 'Rocquemont', 'Rosières', 'Rosoy-en-Multien', 'Rouville', 'Rouvresen-Multien', 'Russy-Bémont', 'Saint-Crépin-Ibouvillers', 'Sainte-Geneviève', 'Saint-Germain-la-Poterie', 'Saint-Jeanaux-Bois', 'Saint-Léger-en-Bray', 'Saint-Leu-d\'Esserent', 'Saint-Martin-le-Noeud', 'Saint-Maximin', 'Saint-Paul', 'Saint-Pierre-es-Champs', 'Saint-Sauveur', 'Saint-Sulpice', 'Savignies', 'Senlis', 'Senots', 'Serans', 'Sérifontaine', 'Séry-Magneval', 'Silly-le-Long', 'Silly-Tillard', 'Talmontiers', 'Therdonne', 'Thibivillers', 'Thiers-sur-Thève', 'Thiverny', 'Thourotte', 'Thury-en-Valois', 'Tillé', 'Tourly', 'Trie-Château', 'Trie-la-Ville', 'Troissereux', 'Trumilly', 'Ully-Saint-Georges', 'Valdampierre', 'Varinfroy', 'Vauciennes', 'Vaudancourt', 'Le Vaumain', 'Vaumoise', 'Le Vauroux', 'Venette', 'Ver-sur-Launette', 'Verderel-lès-Sauqueuse', 'Verneuil-en-Halatte', 'Versigny', 'Vez', 'Vieux-Moulin', 'Villeneuve-les-Sablons', 'La Villeneuve-sous-Thury', 'Villers-Saint-Genest', 'Villers-Saint-Paul', 'Villers-sous-Saint-Leu', 'Villers-sur-Trie', 'Villotran', 'Warluis', 'Aux Marais');
zoneB2['62'] = new Array('Ablain-Saint-Nazaire', 'Acheville', 'Achicourt', 'Agny', 'Aix-Noulette', 'Allouagne', 'Angres', 'Annay', 'Annequin', 'Annezin', 'Anzin-Saint-Aubin', 'Arques', 'Arras', 'Athies', 'Auchel', 'Auchy-les-Mines', 'Avion', 'Bailleul-Sir-Berthoult', 'Baincthun', 'Bajus', 'Barlin', 'Beaumetz-lès-Loges', 'Beaurains', 'Bénifontaine', 'Berck', 'Beugin', 'Beuvry', 'Billy-Berclau', 'Billy-Montigny', 'Blendecques', 'Bois-Bernard', 'Boulogne-sur-Mer', 'Bouvigny-Boyeffles', 'Brebières', 'Bruay-la-Buissière', 'Bully-les-Mines', 'Burbure', 'Calais', 'Calonne-Ricouart', 'Camblain-Châtelain', 'Cambrin', 'Camiers', 'Campagne-lès-Wardrecques', 'Carency', 'Carvin', 'Cauchy-&agrave;-la-Tour', 'Caucourt', 'Chocques', 'Clairmarais', 'La Comté', 'Condette', 'Conteville-lès-Boulogne', 'Coquelles', 'Corbehem', 'Coulogne', 'Courcelles-lès-Lens', 'Courrières', 'La Couture', 'Cucq', 'Cuinchy', 'Dainville', 'Dannes', 'Diéval', 'Divion', 'Dourges', 'Douvrin', 'Drocourt', 'Drouvin-le-Marais', 'Echinghen', 'Ecquedecques', 'Eleu-dit-Leauwette', 'Eperlecques', 'Equihen-Plage', 'Essars', 'Estevelles', 'Estrée-Cauchy', 'Etaples', 'Etrun', 'Evin-Malmaison', 'Fampoux', 'Farbus', 'Festubert', 'Feuchy', 'Fouquereuil', 'Fouquières-lès-Béthune', 'Fouquières-lès-Lens', 'Fresnicourt-le-Dolmen', 'Gauchin-Légal', 'Gavrelle', 'Givenchy-en-Gohelle', 'Givenchy-lès-la-Bassée', 'Gonnehem', 'Gosnay', 'Gouy-Servins', 'Grenay', 'Gu&icirc;nes', 'Haillicourt', 'Haisnes', 'Hallines', 'Hames-Boucres', 'Harnes', 'Helfaut', 'Hénin-Beaumont', 'Hermin', 'Hersin-Coupigny', 'Hesdigneul-lès-Béthune', 'Hesdigneul-lès-Boulogne', 'Hesdin-l\'Abbé', 'Hinges', 'Houchin', 'Houdain', 'Houlle', 'Hulluch', 'Isques', 'Labeuvrière', 'Labourse', 'Lapugnoy', 'Leforest', 'Liévin', 'Lillers', 'Locon', 'Loison-sous-Lens', 'Longuenesse', 'Loos-en-Gohelle', 'Lorgies', 'Lozinghem', 'Maisnil-lès-Ruitz', 'Marck', 'Marles-les-Mines', 'Maroeuil', 'Mazingarbe', 'Mercatel', 'Méricourt', 'Merlimont', 'Meurchin', 'Monchy-le-Preux', 'Montigny-en-Gohelle', 'Moringhem', 'Moulle', 'Nesles', 'Neufchâtel-Hardelot', 'Neuve-Chapelle', 'Neuville-Vitasse', 'Noeux-les-Mines', 'Noyelles-Godault', 'Noyelles-lès-Vermelles', 'Noyelles-sous-Lens', 'Oblinghem', 'Oignies', 'Ourton', 'Outreau', 'Oye-Plage', 'Pernes-lès-Boulogne', 'Pittefaux', 'Pont-&agrave;-Vendin', 'Le Portel', 'Rang-du-Fliers', 'Rebreuve-Ranchicourt', 'Richebourg', 'Rouvroy', 'Ruitz', 'Sailly-Labourse', 'Sainsen-Gohelle', 'Sainte-Catherine', 'Saint-Etienne-au-Mont', 'Saint-Laurent-Blangy', 'Saint-Léonard', 'Saint-Martin-au-Laërt', 'Saint-Martin-Boulogne', 'Saint-Nicolas', 'Saint-Omer', 'Sallaumines', 'Salperwick', 'Sangatte', 'Serques', 'Servins', 'Souchez', 'Tatinghem', 'Thélus', 'Tilloy-lès-Mofflaines', 'Tilques', 'Le Touquet-Paris-Plage', 'Vaudricourt', 'Vendin-lès-Béthune', 'Vendin-le-Vieil', 'Vermelles', 'Verquigneul', 'Verquin', 'Verton', 'Vieille-Chapelle', 'Villers-au-Bois', 'Vimy', 'Violaines', 'Vitry-en-Artois', 'Wailly', 'Wancourt', 'Wardrecques', 'Willerval', 'Wimereux', 'Wimille', 'Wingles', 'Wizernes', 'Libercourt', 'La Capelle-lès-Boulogne');
zoneB2['63'] = new Array('Aubière', 'Aulnat', 'Beaumont', 'Blanzat', 'Cébazat', 'Le Cendre', 'Ceyrat', 'Châteaugay', 'Cournon-d\'Auvergne', 'Durtol', 'Gerzat', 'Lempdes', 'Nohanent', 'Romagnat', 'Royat');
zoneB2['64'] = new Array('Angaïs', 'Aressy', 'Arros-de-Nay', 'Artiguelouve', 'Ascain', 'Assat', 'Aussevielle', 'Baliros', 'Baudreix', 'Bénéjacq', 'Billère', 'Biriatou', 'Bizanos', 'Boeil-Bezing', 'Bordères', 'Bordes', 'Bourdettes', 'Briscous', 'Buros', 'Coarraze', 'Denguin', 'Gan', 'Gelos', 'Hasparren', 'Idron', 'Igon', 'Jatxou', 'Jurançon', 'Lagos', 'Laroin', 'Lée', 'Lescar', 'Lons', 'Maucor', 'Mazères-Lezons', 'Meillon', 'Mirepeix', 'Montardon', 'Morla&agrave;s', 'Narcastet', 'Navailles-Angos', 'Nay', 'Ousse', 'Pardies-Piétat', 'Pau', 'Poey-de-Lescar', 'Rontignon', 'Saint-Abit', 'Saint-Pée-sur-Nivelle', 'Sauvagnon', 'Sendets', 'Serres-Castet', 'Serres-Morla&agrave;s', 'Siros', 'Urt', 'Ustaritz', 'Uzos');
zoneB2['65'] = new Array('Aureilhan', 'Barbazan-Debat', 'Bordères-sur-l\'Echez', 'Bours', 'Chis', 'Horgues', 'Laloubère', 'Momères', 'Odos', 'Orleix', 'Séméac', 'Soues', 'Tarbes');
zoneB2['66'] = new Array('Alénya', 'Argelès-sur-Mer', 'Bages', 'Baho', 'Banyuls-sur-Mer', 'Le Barcarès', 'Bompas', 'Cabestany', 'Canet-en-Roussillon', 'Canohès', 'Cerbère', 'Claira', 'Collioure', 'Corneilla-del-Vercol', 'Elne', 'Latour-Bas-Elne', 'Montescot', 'Perpignan', 'Peyrestortes', 'Pézilla-la-Rivière', 'Pia', 'Pollestres', 'Port-Vendres', 'Rivesaltes', 'Saint-Cyprien', 'Saint-Estève', 'Saint-Féliu-d\'Avall', 'Saint-Laurent-de-la-Salanque', 'Sainte-Marie', 'Saint-Nazaire', 'Saleilles', 'Le Soler', 'Théza', 'Torreilles', 'Toulouges', 'Villelongue-de-la-Salanque', 'Villeneuve-de-la-Raho', 'Villeneuve-la-Rivière');
zoneB2['67'] = new Array('Altorf', 'Avolsheim', 'Baldenheim', 'Barr', 'Benfeld', 'Bernardswiller', 'Bernolsheim', 'Bilwisheim', 'Bischwiller', 'Blaesheim', 'Boersch', 'Brumath', 'Châtenois', 'Dachstein', 'Dahlenheim', 'Dieffenthal', 'Dinsheim', 'Donnenheim', 'Dorlisheim', 'Ebersheim', 'Ebersmunster', 'Ergersheim', 'Ernolsheim-Bruche', 'Erstein', 'Gambsheim', 'Gertwiller', 'Grendelbruch', 'Gresswiller', 'Griesheim-près-Molsheim', 'Haguenau', 'Hoerdt', 'Innenheim', 'Kaltenhouse', 'Kilstett', 'Kintzheim', 'Kirchheim', 'Krautergersheim', 'Krautwiller', 'Kriegsheim', 'Marlenheim', 'Meistratzheim', 'Mittelschaeffolsheim', 'Mollkirch', 'Mommenheim', 'Mussig', 'Muttersholtz', 'Mutzig', 'Niedernai', 'Oberhoffen-sur-Moder', 'Odratzheim', 'Olwisheim', 'Orschwiller', 'Ottrott', 'Rosenwiller', 'Rosheim', 'Rottelsheim', 'Saint-Nabor', 'Scharrachbergheim-Irmstett', 'Scherwiller', 'Schweighouse-sur-Moder', 'Sélestat', 'Siltzheim', 'Soultz-les-Bains', 'La Vancelle', 'Wangen', 'Wasselonne', 'Wolxheim');
zoneB2['68'] = new Array('Aubure', 'Baldersheim', 'Bartenheim', 'Beblenheim', 'Bennwihr', 'Bergheim', 'Berrwiller', 'Blotzheim', 'Bollwiller', 'Brunstatt', 'Buschwiller', 'Cernay', 'Colmar', 'Didenheim', 'Feldkirch', 'Guémar', 'Habsheim', 'Hégenheim', 'Hésingue', 'Horbourg-Wihr', 'Houssen', 'Hunawihr', 'Huningue', 'Illhaeusern', 'Illzach', 'Ingersheim', 'Jebsheim', 'Kaysersberg', 'Kembs', 'Kingersheim', 'Lutterbach', 'Mittelwihr', 'Morschwiller-le-Bas', 'Mulhouse', 'Ostheim', 'Pfastatt', 'Pulversheim', 'Reiningue', 'Ribeauvillé', 'Richwiller', 'Riedisheim', 'Riquewihr', 'Rixheim', 'Rodern', 'Rorschwihr', 'Rosenau', 'Ruelisheim', 'Sainte-Croix-en-Plaine', 'Saint-Hippolyte', 'Saint-Louis', 'Sausheim', 'Sierentz', 'Staffelfelden', 'Steinbach', 'Thannenkirch', 'Turckheim', 'Uffholtz', 'Ungersheim', 'Village-Neuf', 'Wattwiller', 'Wettolsheim', 'Wintzenheim', 'Wittelsheim', 'Wittenheim', 'Zellenberg', 'Zillisheim');
zoneB2['69'] = new Array('Arnas', 'Denicé', 'Gleizé', 'Lacenas', 'Liergues', 'Limas', 'Pommiers', 'Simandres', 'Villefranche-sur-Saône');
zoneB2['70'] = new Array('Châlonvillars');
zoneB2['71'] = new Array('Chalon-sur-Saône', 'Champforgeuil', 'Châtenoy-en-Bresse', 'Châtenoy-le-Royal', 'Crissey', 'Fragnes', 'La Loyère', 'Lux', 'Oslon', 'Saint-Marcel', 'Saint-Rémy');
zoneB2['72'] = new Array('Aigné', 'Allonnes', 'Arnage', 'Changé', 'La Chapelle-Saint-Aubin', 'Coulaines', 'Le Mans', 'La Milesse', 'Mulsanne', 'Rouillon', 'Ruaudin', 'Saint-Pavace', 'Sargé-lès-le-Mans', 'Yvré-l\'Evêque');
zoneB2['73'] = new Array('Bourdeau', 'La Chapelle-du-Mont-du-Chat', 'Montcel', 'Ontex', 'Saint-Offenge-Dessous', 'Saint-Offenge-Dessus', 'Trévignin');
zoneB2['74'] = new Array('Alby-sur-Chéran', 'Alex', 'Allèves', 'Arenthon', 'Armoy', 'Aviernoz', 'Ballaison', 'La Balme-de-Sillingy', 'Bernex', 'Bluffy', 'Boëge', 'Bogève', 'Bons-en-Chablais', 'Brenthonne', 'Brizon', 'Burdignin', 'Cervens', 'Chainaz-les-Frasses', 'Chamonix-Mont-Blanc', 'Champanges', 'La Chapelle-Rambaud', 'La Chapelle-Saint-Maurice', 'Chapeiry', 'Charvonnex', 'Chaumont', 'Chavannaz', 'Chevenoz', 'Chilly', 'Choisy', 'Clarafond', 'Combloux', 'Contamine-Sarzin', 'Cordon', 'Cornier', 'Cusy', 'Demi-Quartier', 'Dingy-Saint-Clair', 'Domancy', 'Doussard', 'Draillant', 'Eloise', 'Entrevernes', 'Etercy', 'Evires', 'Faucigny', 'Fessy', 'Féternes', 'La Forclaz', 'Groisy', 'Gruffy', 'Habère-Lullin', 'Habère-Poche', 'Hautevillesur-Fier', 'Héry-sur-Alby', 'Les Houches', 'Larringes', 'Lathuile', 'Leschaux', 'Lully', 'Lyaud', 'Marcellaz-Albanais', 'Marlioz', 'Megève', 'Mégevette', 'Meillerie', 'Menthon-Saint-Bernard', 'Menthonnex-sous-Clermont', 'Mésigny', 'Minzier', 'Montmin', 'Mont-Saxonnex', 'M&ucirc;res', 'Nancy-sur-Cluses', 'Nâves-Parmelan', 'Nonglard', 'Les Ollières', 'Orcier', 'Passy', 'Peillonnex', 'Perrignier', 'Praz-sur-Arly', 'Le Reposoir', 'Reyvroz', 'La Rivière-Enverse', 'Saint-André-de-Boëge', 'Saint-Eusèbe', 'Saint-Eustache', 'Saint-Félix', 'Saint-Gervais-les-Bains', 'Saint-Gingolph', 'Saint-Jean-de-Tholome', 'Saint-Martin-Bellevue', 'Saint-Paul-en-Chablais', 'Saint-Sigismond', 'Saint-Sylvestre', 'Sallanches', 'Sallenôves', 'Saxel', 'Servoz', 'Sillingy', 'Talloires', 'Thollon-les-Mémises', 'Thorens-Glières', 'Thusy', 'La Tour', 'Vacheresse', 'Vailly', 'Vaulx', 'La Vernaz', 'Veyrier-du-Lac', 'Villard', 'Villaz', 'Ville-en-Sallaz', 'Vinzier', 'Viuz-la-Chiésaz', 'Viuz-en-Sallaz', 'Vougy');
zoneB2['76'] = new Array('Les Authieux-sur-le-Port-Saint-Ouen', 'La Bouille', 'Caudebec-lès-Elbeuf', 'Cauville-sur-Mer', 'Cléon', 'Elbeuf', 'Epouville', 'Fontaine-la-Mallet', 'Fontenay', 'Freneuse', 'Gainneville', 'Gonfreville-l\'Orcher', 'Gouy', 'Harfleur', 'Hautot-sur-Seine', 'Le Havre', 'Houppeville', 'Isneauville', 'La Londe', 'Manéglise', 'Mannevillette', 'Montivilliers', 'Montmain', 'La Neuville-Chant-d\'Oisel', 'Notre-Dame-du-Bec', 'Octeville-sur-Mer', 'Orival', 'Quévreville-la-Poterie', 'Rogerville', 'Rolleville', 'Roncherolles-sur-le-Vivier', 'Sahurs', 'Sainte-Adresse', 'Saint-Aubin-Celloville', 'Saint-Aubin-Epinay', 'Saint-Aubin-lès-Elbeuf', 'Saint-Jacques-sur-Darnétal', 'Saint-Laurent-de-Brèvedent', 'Saint-Martin-du-Manoir', 'Saint-Pierre-de-Manneville', 'Saint-Pierre-lès-Elbeuf', 'Sotteville-sous-le-Val', 'Tourville-la-Rivière', 'Ymare');
zoneB2['77'] = new Array('Amillis', 'Amponville', 'Andrezel', 'Argentières', 'Armentières-en-Brie', 'Arville', 'Aubepierre-Ozouer-le-Repos', 'Aufferville', 'Augers-en-Brie', 'Aulnoy', 'Baby', 'Bagneaux-sur-Loing', 'Balloy', 'Bannost-Villegagnon', 'Barbey', 'Bassevelle', 'Bazoches-lès-Bray', 'Beauchery-Saint-Martin', 'Beaumont-du-Gâtinais', 'Beautheil', 'Beauvoir', 'Bellot', 'Bernay-Vilbert', 'Beton-Bazoches', 'Bezalles', 'Blandy', 'Blennes', 'Boisdon', 'Boissy-aux-Cailles', 'Boissy-le-Châtel', 'Boitron', 'Bombon', 'Bougligny', 'Boulancourt', 'Bransles', 'Bray-sur-Seine', 'Bréau', 'La Brosse-Montceaux', 'Burcy', 'Bussières', 'Buthiers', 'Cannes-Ecluse', 'La Celle-sur-Morin', 'Cerneux', 'Cessoy-en-Montois', 'Chailly-en-Brie', 'Chaintreaux', 'Chalautre-la-Grande', 'Chalautre-la-Petite', 'Chalmaison', 'Chamigny', 'Champcenest', 'Champdeuil', 'Champeaux', 'Changis-sur-Marne', 'La Chapelle-Gauthier', 'La Chapelle-Iger', 'La Chapelle-la-Reine', 'La Chapelle-Rablais', 'La Chapelle-Saint-Sulpice', 'Les Chapelles-Bourbon', 'La Chapelle-Moutils', 'Chartronges', 'Châteaubleau', 'Château-Landon', 'Châtenay-sur-Seine', 'Châtenoy', 'Châtillon-la-Borde', 'Châtres', 'Chauffry', 'Chaumes-en-Brie', 'Chenoise', 'Chenou', 'Chevrainvilliers', 'Chevru', 'Chevry-en-Sereine', 'Choisy-en-Brie', 'Citry', 'Clos-Fontaine', 'Cocherel', 'Congis-sur-Thérouanne', 'Coubert', 'Coulombs-en-Valois', 'Coulommiers', 'Courcelles-en-Bassée', 'Courchamp', 'Courpalay', 'Courquetaine', 'Courtacon', 'Courtomer', 'Coutençon', 'Crèvecoeur-en-Brie', 'Crisenoy', 'La Croix-en-Brie', 'Crouy-sur-Ourcq', 'Cucharmoy', 'Dagny', 'Dammartin-sur-Tigeaux', 'Darvault', 'Dhuisy', 'Diant', 'Donnemarie-Dontilly', 'Dormelles', 'Doue', 'Douy-la-Ramée', 'Echouboulains', 'Les Ecrennes', 'Egligny', 'Egreville', 'Episy', 'Esmans', 'Etrépilly', 'Everly', 'Faremoutiers', 'Fa-lès-Nemours', 'La Ferté-Gaucher', 'La Ferté-sous-Jouarre', 'Flagy', 'Fontaine-Fourches', 'Fontains', 'Fontenailles', 'Fontenay-Trésigny', 'Forges', 'Fouju', 'Frétoy', 'Fromont', 'Garentreville', 'Gastins', 'La Genevraye', 'Germigny-l\'Evêque', 'Germigny-sous-Coulombs', 'Giremoutiers', 'Gironville', 'Gouaix', 'La Grande-Paroisse', 'Grandpuits-Bailly-Carrois', 'Gravon', 'Grez-sur-Loing', 'Grisy-sur-Seine', 'Guérard', 'Guercheville', 'Guignes', 'Gurcy-le-Châtel', 'Hautefeuille', 'La Haute-Maison', 'Hermé', 'Hondevilliers', 'La Houssayeen-Brie', 'Ichy', 'Isles-les-Meldeuses', 'Jaignes', 'Jaulnes', 'Jouarre', 'Jouy-le-Châtel', 'Jouy-sur-Morin', 'Jutigny', 'Larchant', 'Laval-en-Brie', 'Léchelle', 'Lescherolles', 'Leudon-en-Brie', 'Lissy', 'Liverdy-en-Brie', 'Lizines', 'Lizy-sur-Ourcq', 'Longueville', 'Lorrez-le-Bocage-Préaux', 'Louan-Villegruis-Fontaine', 'Luisetaines', 'Lumigny-Nesles-Ormeaux', 'Luzancy', 'Machault', 'La Madeleine-sur-Loing', 'Maisoncelles-en-Brie', 'Maisoncelles-en-Gâtinais', 'Maison-Rouge', 'Les Marêts', 'Marles-en-Brie', 'Marolles-en-Brie', 'Marolles-sur-Seine', 'Mary-sur-Marne', 'Mauperthuis', 'May-en-Multien', 'Meigneux', 'Meilleray', 'Melz-sur-Seine', 'Méry-sur-Marne', 'Misy-sur-Yonne', 'Moisenay', 'Mondreville', 'Mons-en-Montois', 'Montarlot', 'Montceaux-lès-Meaux', 'Montceaux-lès-Provins', 'Montcourt-Fromonville', 'Montdauphin', 'Montenils', 'Montereau-Fault-Yonne', 'Montigny-le-Guesdier', 'Montigny-Lencoup', 'Montmachoux', 'Montolivet', 'Mormant', 'Mortcerf', 'Mortery', 'Mouroux', 'Mousseaux-lès-Bray', 'Mouy-sur-Seine', 'Nangis', 'Nanteausur-Essonne', 'Nanteau-sur-Lunain', 'Nanteuil-sur-Marne', 'Nemours', 'Noisy-Rudignon', 'Nonville', 'Noyen-sur-Seine', 'Obsonville', 'Ocquerre', 'Orly-sur-Morin', 'Les Ormes-sur-Voulzie', 'Ormesson', 'Ozouer-le-Voulgis', 'Paley', 'Pamfou', 'Paroy', 'Passy-sur-Seine', 'Pécy', 'Pézarches', 'Pierre-Levée', 'Le Plessis-Feu-Aussoux', 'Le Plessis-Placy', 'Poigny', 'Poligny', 'Pommeuse', 'Provins', 'Puisieux', 'Quiers', 'Rampillon', 'Rebais', 'Remauville', 'Reuil-en-Brie', 'Rouilly', 'Rozayen-Brie', 'Rumont', 'Rupéreux', 'Saâcy-sur-Marne', 'Sablonnières', 'Saint-Ange-le-Viel', 'Saint-Augustin', 'Sainte-Aulde', 'Saint-Barthélemy', 'Saint-Brice', 'Sainte-Colombe', 'Saint-Cyr-sur-Morin', 'Saint-Denis-lès-Rebais', 'Saint-Fiacre', 'Saint-Germain-Laval', 'Saint-Germain-sous-Doue', 'Saint-Hilliers', 'Saint-Jean-les-Deux-Jumeaux', 'Saint-Justen-Brie', 'Saint-Léger', 'Saint-Loup-de-Naud', 'Saint-Mars-Vieux-Maisons', 'Saint-Martin-des-Champs', 'Saint-Martindu-Boschet', 'Saint-Méry', 'Saint-Ouen-en-Brie', 'Saint-Ouen-sur-Morin', 'Saint-Pierre-lès-Nemours', 'Saint-Rémy-la-Vanne', 'Saints', 'Saint-Sauveur-lès-Bray', 'Saint-Siméon', 'Salins', 'Sammeron', 'Sancy', 'Sancy-lès-Provins', 'Savins', 'Sept-Sorts', 'Signy-Signets', 'Sigy', 'Sognolles-en-Montois', 'Soignolles-en-Brie', 'Soisy-Bouy', 'Solers', 'Souppes-sur-Loing', 'Sourdun', 'Tancrou', 'Thénisy', 'Thoury-Férottes', 'Tigeaux', 'La Tombe', 'Touquin', 'Tousson', 'La Trétoire', 'Treuzy-Levelay', 'Trocy-en-Multien', 'Ussy-sur-Marne', 'Valence-en-Brie', 'Vanvillé', 'Varennes-sur-Seine', 'Varreddes', 'Vaucourtois', 'Le Vaudoué', 'Vaudoy-en-Brie', 'Vaux-sur-Lunain', 'Vendrest', 'Verdelot', 'Verneuil-l\'Etang', 'Vernou-la-Celle-sur-Seine', 'Vieux-Champagne', 'Villebéon', 'Villecerf', 'Villemaréchal', 'Villemareuil', 'Villemer', 'Villenauxe-la-Petite', 'Villeneuve-les-Bordes', 'Villeneuve-sur-Bellot', 'Ville-Saint-Jacques', 'Villiers-Saint-Georges', 'Villierssous-Grez', 'Villiers-sur-Seine', 'Villuis', 'Vimpelles', 'Vincy-Manoeuvre', 'Voinsles', 'Voulton', 'Voulx', 'Vulaines-lès-Provins', 'Yèbles');
zoneB2['78'] = new Array('Ablis', 'Allainville', 'Bennecourt', 'Blaru', 'Boinville-le-Gaillard', 'Boinvilliers', 'Boissets', 'Boissy-Mauvoisin', 'Bonnières-sur-Seine', 'Bréval', 'Brueil-en-Vexin', 'Chaufour-lès-Bonnières', 'Civry-la-Forêt', 'Courgent', 'Cravent', 'Dammartin-en-Serve', 'Dannemarie', 'Drocourt', 'Emancé', 'Flacourt', 'Flins-Neuve-Eglise', 'Fontenay-Saint-Père', 'Freneuse', 'Gommecourt', 'Gressey', 'Guitrancourt', 'Houdan', 'Jambville', 'Jeufosse', 'Lainville-en-Vexin', 'Limetz-Villez', 'Lommoye', 'Longnes', 'Maulette', 'Ménerville', 'Méricourt', 'Moisson', 'Mondreville', 'Montalet-le-Bois', 'Montchauvet', 'Mousseaux-sur-Seine', 'Mulcent', 'Neauphlette', 'Oinville-sur-Montcient', 'Orphin', 'Orsonville', 'Orvilliers', 'Paray-Douaville', 'Port-Villez', 'Prunay-le-Temple', 'Prunay-en-Yvelines', 'Richebourg', 'Rosay', 'Sailly', 'Saint-Illiers-la-Ville,Saint-Illiers-le-Bois', 'Saint-Martin-de-Bréthencourt', 'Septeuil', 'Tacoignières', 'Le Tertre-Saint-Denis', 'Tilly', 'La Villeneuve-en-Chevrie', 'Villette');
zoneB2['79'] = new Array('Aiffres', 'Chauray', 'Niort');
zoneB2['80'] = new Array('Allonville', 'Amiens', 'Bertangles', 'Blangy-Tronville', 'Bovelles', 'Boves', 'Cagny', 'Camon', 'Clairy-Saulchoix', 'Creuse', 'Dreuil-lès-Amiens', 'Dury', 'Estrées-sur-Noye', 'Glisy', 'Grattepanche', 'Guignemicourt', 'Hébécourt', 'Longueau', 'Pissy', 'Pont-de-Metz', 'Poulainville', 'Remiencourt', 'Revelles', 'Rivery', 'Rumigny', 'Sains-en-Amiénois', 'Saint-Fuscien', 'Saint-Sauflieu', 'Saleux', 'Salouël', 'Saveuse', 'Thézy-Glimont', 'Vers-sur-Selles');
zoneB2['81'] = new Array('Albi', 'Arthès', 'Burlats', 'Cambon', 'Cambounet-sur-le-Sor', 'Castres', 'Cunac', 'Lescure-d\'Albigeois', 'Puygouzon', 'Roquecourbe', 'Saint-Juéry', 'Saïx', 'Le Sequestre', 'Terssac', 'Viviers-lès-Montagnes');
zoneB2['82'] = new Array('Lacourt-Saint-Pierre', 'Montauban', 'Montbeton', 'Saint-Nauphary', 'Villemade');
zoneB2['83'] = new Array('Les Arcs', 'Besse-sur-Issole', 'Brignoles', 'Callas', 'Callian', 'Camps-la-Source', 'Carnoules', 'La Celle', 'Figanières', 'Flassans-sur-Issole', 'Flayosc', 'Forcalqueiret', 'Garéoult', 'Gonfaron', 'Lorgues', 'Le Luc', 'Méounes-lès-Montrieux', 'Mons', 'La Motte', 'Nans-les-Pins', 'Pignans', 'Plan-d\'Aups-Sainte-Baume', 'Pourrières', 'Puget-Ville', 'Rians', 'Riboux', 'La Roquebrussanne', 'Sainte-Anastasie-sur-Issole', 'Saint-Paul-en-Forêt', 'Signes', 'Taradeau', 'Le Thoronet', 'Tourrettes');
zoneB2['84'] = new Array('Le Beaucet', 'Beaumes-de-Venise', 'Caromb', 'Cavaillon', 'Châteauneuf-de-Gadagne', 'Cheval-Blanc', 'Courthézon', 'Crillon-le-Brave', 'Jonquières', 'Maubec', 'Mazan', 'Modène', 'Orange', 'Pertuis', 'Robion', 'La Roque-sur-Pernes', 'Saint-Didier', 'Saint-Hippolyte-le-Graveyron', 'Saint-Pierre-de-Vassols', 'Saumane-de-Vaucluse', 'Taillades', 'Le Thor', 'Vacqueyras', 'Velleron');
zoneB2['85'] = new Array('La Barre-de-Monts', 'Bretignolles-sur-Mer', 'Challans', 'Jard-sur-Mer', 'Notre-Dame-de-Monts', 'La Roche-sur-Yon', 'Saint-Gilles-Croix-de-Vie', 'Saint-Hilaire-de-Riez', 'Saint-Jean-de-Monts', 'Saint-Vincent-sur-Jard', 'Talmont-Saint-Hilaire', 'La Tranche-sur-Mer');
zoneB2['86'] = new Array('Béruges', 'Biard', 'Buxerolles', 'Chasseneuil-du-Poitou', 'Croutelle', 'Fontaine-le-Comte', 'Jaunay-Clan', 'Mignaloux-Beauvoir', 'Migné-Auxances', 'Montamisé', 'Poitiers', 'Saint-Beno&icirc;t', 'Vouneuil-sous-Biard');
zoneB2['87'] = new Array('Condat-sur-Vienne', 'Couzeix', 'Feytiat', 'Isle', 'Limoges', 'Le Palais-sur-Vienne', 'Panazol');
zoneB2['88'] = new Array('Chantraine', 'Chavelot', 'Dinozé', 'Dogneville', 'Epinal', 'Les Forges', 'Girmont', 'Golbey', 'Igney', 'Jeuxey', 'Thaon-les-Vosges');
zoneB2['90'] = new Array('Andelnans', 'Argiésans', 'Bavilliers', 'Belfort', 'Bermont', 'Botans', 'Bourogne', 'Charmois', 'Châtenois-les-Forges', 'Chaux', 'Chèvremont', 'Cravanche', 'Danjoutin', 'Denney', 'Dorans', 'Eloie', 'Essert', 'Evette-Salbert', 'Lachapelle-sous-Chaux', 'Meroux', 'Méziré', 'Morvillars', 'Moval', 'Offemont', 'Pérouse', 'Roppe', 'Sermamagny', 'Sevenans', 'Trévenans', 'Valdoie', 'Vétrigne', 'Vézelois');
zoneB2['91'] = new Array('Abbéville-la-Rivière', 'Angerville', 'Arrancourt', 'Authon-la-Plaine', 'Auvers-Saint-Georges', 'Blandy', 'Boigneville', 'Bois-Herpin', 'Boissy-la-Rivière', 'Boissy-le-Cutté', 'Boissy-le-Sec', 'Boutervilliers', 'Bouville', 'Brières-les-Scellés', 'Brouy', 'Buno-Bonnevaux', 'Chalo-Saint-Mars', 'Chalou-Moulineux', 'Champmotteux', 'Chatignonville', 'Corbreuse', 'Estouches', 'Etampes', 'Fontaine-la-Rivière', 'La Forêt-le-Roi', 'La Forêt-Sainte-Croix', 'Gironville-sur-Essonne', 'Les Granges-le-Roi', 'Guillerval', 'Marolles-en-Beauce', 'Méréville', 'Mérobert', 'Mespuits', 'Monnerville', 'Morigny-Champigny', 'Ormoy-la-Rivière', 'Orveau', 'Plessis-Saint-Benoist', 'Prunay-sur-Essonne', 'Puiselet-le-Marais', 'Pussay', 'Richarville', 'Roinvilliers', 'Saclas', 'Saint-Cyr-la-Rivière', 'Saint-Escobille', 'Saint-Hilaire', 'Congerville-Thionville', 'Valpuiseaux', 'Villeneuve-sur-Auvers');
zoneB2['95'] = new Array('Aincourt', 'Ambleville', 'Amenucourt', 'Arronville', 'Berville', 'Bray-et-L&ucirc;', 'Bréançon', 'Buhy', 'La Chapelle-en-Vexin', 'Chaussy', 'Chérence', 'Frouville', 'Haravilliers', 'Haute-Isle', 'Le Heaulme', 'Hédouville', 'Menouville', 'Montreuilsur-Epte', 'Neuilly-en-Vexin', 'Omerville', 'La Roche-Guyon', 'Saint-Clair-sur-Epte', 'Theuville', 'Villers-en-Arthies');
/*FIN PTZ+*/

//Ajoute des espaces aux nombres
function tosp(expr) {
	if(expr != null && expr != '' && $(expr).val() != null && $(expr).val() != '') {
		chiffre = $(expr).val().replace(/ /g,'');
		
		tmp = "";
		cpt = 0;
		for(i=chiffre.length;i>=0;i--) {
			tmp = chiffre.charAt(i)+tmp;
			if(cpt!= 0 && cpt%3 == 0) {
				tmp = " "+tmp;
			}
			cpt++;
		}
		$(expr).val(tmp);
	}
}


//Ajoute des espaces aux nombres
function tosp2(expr) {
	if(expr != null && expr != '' && $(expr).val() != null && $(expr).val() != '') {
		chiffre = $(expr).val().replace(/ /g,'');
		
		tmp = "";
		cpt = 0;
		for(i=chiffre.length;i>=0;i--) {
			tmp = chiffre.charAt(i)+tmp;
			if(cpt!= 0 && cpt%2 == 0) {
				tmp = " "+tmp;
			}
			cpt++;
		}
		$(expr).val(tmp);
	}
}

//Newsletter

function inscriptionNewsletter() {
	if(isValid("#formNewsLetter input[name='mail_receiver']", validMail, '')) {
		$.post('index.php?ajax=inscriptionNewsletterAjax',$('#formNewsLetter').serialize(), function(data) {
			dialogBox(data);
		});
	} else {
		dialogBox('Le mail indiqué est invalide');
	}
}

function desinscriptionNewsletter() {
	if(isValid("#formNewsLetter input[name='mail_receiver']", validMail, '')) {
		$.post('index.php?ajax=desinscriptionNewsletterAjax',$('#formNewsLetter').serialize(), function(data) {
			dialogBox(data,5000);
		});
	} else {
		dialogBox('Le mail indiqué est invalide');
	}
}


function desinscriptionNewsletter2() {
	
	if(isValid("#formNewsLetter2 input[name='mail_receiver']", validMail, '')) {
		$.post('index.php?ajax=desinscriptionNewsletterAjax',$('#formNewsLetter2').serialize(), function(data) {
			dialogBox(data,5000);
		});
	} else {
		dialogBox('Le mail indiqué est invalide');
}
}




//Contact


function showToolTipUpToElement(expr, message) {
	exprErr = '#tooltip';
	if(message != "") {
		if($(exprErr).size() > 0) {
			$(exprErr).remove();
		}
		var toolTip = '<div id="tooltip" class="toolTip" '+ 
						'onClick="$(this).remove();">'+message+'</div>';
		$(expr).before(toolTip);
		var errOffsetTop = $(expr).offset().top - (-20);
		var errOffsetLeft = $(expr).offset().left - 50;
		
		$(exprErr).css('top',errOffsetTop);
		$(exprErr).css('left',errOffsetLeft);
		
	}
}

function dialogBox(message, time) {
	
	var dialog = '#dialogBox';
	
	$('body').append('<div id="dialogBox">'+message+'</div>');
	
	$(dialog).dialog({
		draggable: false,
		resizable: false,
		title: 'Information',
		modal: true,
		close:function(){$(dialog).remove();}
	});
	
	$(dialog).click(function() {$(dialog).dialog('close');});
	
	$('.ui-widget-overlay').click(function() {$(dialog).dialog('close');});
	if(time != 0)
		$(dialog).oneTime(time, function() {$(dialog).dialog('close');});
}

//Regex
var integer = "^[0-9]*$";
var float = "^[0-9]*[.]?[0-9]*$";
var mois = "^11|10|[0-9]$";
var validMail = "\\b[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}\\b";
var validDate = "^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/(19|20)\\d\\d$";
var validTel = "^\\+?\\d{10,11}$";
var validMdp = "\\S{6,15}";

//Valide le contenu d'un ï¿½lï¿½ment par son id et une regex 
//sinon affiche le message
function isValid(expr, regex, message) {
	//Construction de la regex
	tester = new RegExp(regex);
	//Si regex invalide
	if ($(expr).val()=="" || !tester.test($(expr).val())) {
		//afficher le message
		appendToToolTip(expr,message);
		return false;
	} else {
		removeFromToolTip(expr);
		return true;
	}
}

function isValidOnKeyUp(expr, regex) {
	//Construction de la regex
	tester = new RegExp(regex);
	//Si regex invalide
	if ($(expr).val()=="" || !tester.test($(expr).val())) {
		//afficher le message
		$(expr).css('border','#e31f1c 2px solid');
		
		return false;
	} else {
		$(expr).css('border','1px solid #8B8C90');
		return true;
	}
}

function isEqualValues(expr1, expr2, message) {
	if($(expr1).val() == $(expr2).val()) {
		removeFromToolTip(expr1);
		return true;
	} else {
		appendToToolTip(expr1,message);
		return false;
	}
}

function isEmptyValue(expr, message) {
	var empty = true;
	if($(expr).attr('type') == 'radio') {
		for (i=0; i<$(expr).size() ;i++){
			if ($(expr).get(i).checked ==true){
				empty=false;
				break;
			}
		}	
	} else {
		empty = $(expr).val() == "";
	}

	if (empty) {
		//afficher le message
		appendToToolTip(expr, message);
		return true;
	} else {
		removeFromToolTip(expr);
		return false;
	}
}

function appendToToolTip(expr, message) {
	$(expr).css('border','#e31f1c 2px solid');
	exprErr = '#tooltipErreur';
	if(message != "") {
		if(!$(exprErr).html() == '') {
			$(exprErr).append('<br/>');
		}
		$(exprErr).append(message);
	}
}

function removeFromToolTip(expr) {
	$(expr).css('border','1px solid #8B8C90');
}


function inputAssist(expr, assist) {
	if($(expr).val() == "")
		$(expr).val(assist);
	$(expr).focus(function() {
		if($(expr).val() == assist)$(expr).val("");
	});
	$(expr).blur(function() {
		if($(expr).val() == "") $(expr).val(assist);
	});
}

function valideMdpOublie() {
	$.post("index.php?ajax=mdpOublieAjax", $("#mdpOublieForm").serialize(),
		function (data, textStatus) {
			if(data.indexOf('Erreur : ',0) > 0) {
				dialogBox(data, 5000);
			} else {
				dialogBox(data, 5000);
			}
		});
}
function validFormulaireNewMdp() {
	
	var form = '#changerMdpForm';
	
	$('#tooltipErreur').empty();
	
	var mdp = isValid('#newmdp', validMdp, 'Mot de passe invalide : 6 à 15 caracteres');
	mdp = isValid('#newmdp2', validMdp, 'Confirmation du mot de passe invalide : 6 à 15 caracteres') && mdp;
	if(mdp) {
		mdp = isEqualValues('#newmdp','#newmdp2','Le mot de passe et sa confirmation ne correspondent pas') && mdp;
	}	
	
	if($('#tooltipErreur').html() != "") {
		var errOffsetTop = $(form).offset().top - -10;
		var errOffsetLeft = $(form).offset().left - -250;
		
		$('#tooltipErreur').css('top',errOffsetTop);
		$('#tooltipErreur').css('left',errOffsetLeft);
		$('#tooltipErreur').css('display', 'block');
	} 
	
	if(mdp) {
		$.post("index.php?ajax=changerMdpAjax", $(form).serialize(),
			function (data, textStatus) {
				dialogBox(data, 5000);
				if(data.indexOf('Erreur : ',0) > 0) {
				}
			});
	}
}

function changerNewsletter() {
	var newsletter = $('#inscrireNewsletter').css('display') == 'none' ? 0 : 1 ; 
	$.get('index.php?ajax=changerNewsletterAjax&newsletter='+newsletter, function (data){
		dialogBox(data, 5000);
		if(data.indexOf('Erreur : ',0) < 0) {
			$('#inscrireNewsletter').toggle();
			$('#desinscrireNewsletter').toggle();
		}
	});
}

//Combien emprunter ********************************************************************

var factDuree = 2;
var initRevenuMensuel = 3000;
var initTaux = 5;
var initMensualite = 990;
var initDureeAnnees = 25;
var initDureeMois = 0;

var arrayValues = new Array({
	'revenuMensuel':initRevenuMensuel,
	'taux':initTaux,
	'montantMensualite':initMensualite,
	'dureeAnnees':initDureeAnnees,
	'dureeMois':initDureeMois	
});


function initCalcCbEmprunter(tx){
	initTaux = tx;
	
	//Défini le block comme resizable
	$('#rBlock').resizable({
		handles:'n,e,ne',
		maxHeight:200,
		maxWidth:240,
		resize:function(event,ui) {
			calc();
		}
	});
	/*
	//Ajoute les images pour tirer
	if($.browser.msie && $.browser.version < 8) {
		$('#rBlock').find('.ui-resizable-n').addClass('resizeIE');
		$('#rBlock').find('.ui-resizable-ne').addClass('resizeIE');
		$('#rBlock').find('.ui-resizable-e').addClass('resizeIE');
	} else {
		*/
		$('#rBlock').find('.ui-resizable-n').addClass('resize resize-n resize-bg');
		$('#rBlock').find('.ui-resizable-ne').addClass('resize resize-ne resize-bg');
		$('#rBlock').find('.ui-resizable-e').addClass('resize resize-e resize-bg');
	//}
	$("#revenuMensuel").val(initRevenuMensuel);
	setValue('revenuMensuel');
	$("#taux").val(initTaux);
	setValue('taux');
	$("#montantMensualite").val(initMensualite);
	setValue('montantMensualite');
	$("#dureeAnnees").val(initDureeAnnees);
	setValue('dureeAnnees');
	$("#dureeMois").val(initDureeMois);
	setValue('dureeMois');
	 
	
	height = parseInt(arrayValues['montantMensualite']/arrayValues['factRevenu']);
	
	offset = $('#rBlockContainer').offset();
	
	var top = offset.top+(210-height);
	var left =  offset.left+2;
	
	$('#rBlock').css('top',top);
	$('#rBlock').css('left',left);
	
}

function setValue(name) {
	
	if(name=='revenuMensuel' || name=='taux') {
		if($("#"+name).val() != "")
			arrayValues[name] = parseFloat($("#"+name).val());
	}
	
	arrayValues['factRevenu'] = parseFloat(arrayValues['revenuMensuel']/400);
	
	if(name=='montantMensualite') {
		if($("#"+name).val() != '' && $("#"+name).val() <= Math.floor(arrayValues['revenuMensuel']/2)) {
			arrayValues[name] = parseFloat($("#"+name).val());
			var height = parseInt(arrayValues['montantMensualite']/arrayValues['factRevenu']);
			
			var offset = $('#rBlockContainer').offset();
			$('#rBlock').css('top',offset.top-(-(210-height)));
			$('#rBlock').height(height);
		}
	} 
	
	if(name=='dureeAnnees' || name=='dureeMois') {
		if(name=='dureeMois' && $("#dureeMois").val() >= 12) {
			arrayValues['dureeMois'] = $("#dureeMois").val() % 12;
			arrayValues['dureeAnnees'] += Math.floor($("#dureeMois").val() / 12);
			$("#dureeMois").val(arrayValues['dureeMois']);
		}
		
		if($("#"+name).val() != '' && $("#"+name).val() <= 40) {
			arrayValues[name] = parseInt($("#"+name).val());
			width = Math.floor(((arrayValues['dureeAnnees']*12)
					+arrayValues['dureeMois'])/factDuree);
			if(!isNaN(width)) {
				$('#rBlock').width(width);
			}
		}
	} 
	
	var ecart = parseInt(arrayValues['revenuMensuel'])/10;
	$('#echLeft ul li').each(function(i) {
		$(this).html(parseInt((parseInt(arrayValues['revenuMensuel'])/2) - (ecart*i))+' &euro;');
	});
	calc();
}

function calc() {
	
	var fact = arrayValues['factRevenu'];
	var m = $('#rBlock').height()*fact;
	var d = $('#rBlock').width()*factDuree;
	var t = arrayValues['taux'];
	var end = parseInt(m/(arrayValues['revenuMensuel']/100));
	if(end > 33) {
		$('#endettement').css('color','red');
	} else {
		$('#endettement').css('color','#8d8b8c');
	}
	$('#endettement').val(end);
	$('#montantMensualite').val(m);
	$('#dureeAnnees').val(Math.floor(d/12));
	$('#dureeMois').val(d%12);
	
	emprunt = new String(parseInt(((m*12)*(1 - Math.pow((1+((t/100)/12)),-d)))/(t/100)));
	
	tmp = "";
	cpt = 0;
	for(i=emprunt.length;i>=0;i--) {
		tmp = emprunt.charAt(i)+tmp;
		if(cpt%3 == 0) {
			tmp = " "+tmp;
		}
		cpt++;
	}
	
	$('#montantEmprunt').val(tmp);
			
}




