dep_numero = new Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 971, 972, 973, 974, 975, 976, 99);
dep_nom = new Array("Ain", "Aisne", "Allier", "Alpes de Haute Provence", "Alpes (Hautes)", "Alpes Maritimes", "Ard\u00E8che", "Ardennes", "Ari\u00E8ge", "Aube", "Aude", "Aveyron", "Bouches du Rh\u00F4ne", "Calvados", "Cantal", "Charente", "Charente Maritime", "Cher", "Corr\u00E8ze", "Corse", "C\u00F4te d'Or", "C\u00F4tes du Nord", "Creuse", "Dordogne", "Doubs", "Dr\u00F4me", "Eure", "Eure & Loir", "Finist\u00E8re", "Gard", "Garonne (Haute)", "Gers", "Gironde", "H\u00E9rault", "Ile & Vilaine", "Indres", "Indres et Loire", "Is\u00E8re", "Jura", "Landes", "Loir & Cher", "Loire", "Haute Loire", "Loire Atlantique", "Loiret", "Lot", "Lot & Garonne", "Loz\u00E8re", "Maine & Loire", "Manche", "Marne", "Marne (Haute)", "Mayenne", "Meurthe & Moselle", "Meuse", "Morbilhan", "Moselle", "Ni\u00E8vre", "Nord", "Oise", "Orne", "Pas de Calais", "Puy de D\u00F4me", "Pyr\u00E9n\u00E9es Atlantiques", "Pyr\u00E9n\u00E9es (Hautes)", "Pyr\u00E9n\u00E9es orientales", "Rhin (Bas)", "Rhin (Haut)", "Rh\u00F4ne", "Sa\u00F4ne (Haute)", "Sa\u00F4ne & Loire", "Sarthe", "Savoie", "Savoie (Haute)", "Paris", "Seine Maritime", "Seine & Marne", "Yvelines", "Deux s\u00E8vres", "Somme", "Tarn", "Tarn & Garonne", "Var", "Vaucluse", "Vend\u00E9e", "Vienne", "Haute Vienne", "Vosges", "Yonne", "Territoire de Belfort", "Essonne", "Hauts de Seine", "Seine Saint Denis", "Val de Marne", "Val d'Oise", "La Guadeloupe", "La Martinique", "Guyane", "La R\u00E9union", "Saint-Pierre & Miquelon", "Mayotte", "\u00C9tranger");
// dep_nom = new Array("Ain", "Aisne", "Allier", "Alpes de Haute Provence", "Alpes (Hautes)", "Alpes Maritimes", "Ardche", "Ardennes", "Arige", "Aube", "Aude", "Aveyron", "Bouches du Rhne", "Calvados", "Cantal", "Charente", "Charente Maritime", "Cher", "Corrze", "Corse", "Cte d'Or", "Ctes du Nord", "Creuse", "Dordogne", "Doubs", "Drme", "Eure", "Eure & Loir", "Finistre", "Gard", "Garonne (Haute)", "Gers", "Gironde", "Hrault", "Ile & Vilaine", "Indres", "Indres et Loire", "Isre", "Jura", "Landes", "Loir & Cher", "Loire", "Haute Loire", "Loire Atlantique", "Loiret", "Lot", "Lot & Garonne", "Lozre", "Maine & Loire", "Manche", "Marne", "Marne (Haute)", "Mayenne", "Meurthe & Moselle", "Meuse", "Morbilhan", "Moselle", "Nivre", "Nord", "Oise", "Orne", "Pas de Calais", "Puy de Dme", "Pyrnes Atlantiques", "Pyrnes (Hautes)", "Pyrnes orientales", "Rhin (Bas)", "Rhin (Haut)", "Rhne", "Sane (Haute)", "Sane & Loire", "Sarthe", "Savoie", "Savoie (Haute)", "Paris", "Seine Maritime", "Seine & Marne", "Yvelines", "Deux svres", "Somme", "Tarn", "Tarn & Garonne", "Var", "Vaucluse", "Vende", "Vienne", "Haute Vienne", "Vosges", "Yonne", "Territoire de Belfort", "Essonne", "Hauts de Seine", "Seine Saint Denis", "Val de Marne", "Val d'Oise");
dep_nb_mots = new Array(1, 1, 1, 3, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 2, 2, 1, 1, 1, 1, 3, 1, 1);
dep_nom_ref_index = new Array(0, 1, 2, 3, 3, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10, 11, 12, 12, 13, 14, 15, 16, 16, 17, 18, 19, 20, 21, 21, 22, 23, 24, 25, 26, 27, 27, 28, 29, 30, 30, 31, 32, 33, 34, 34, 35, 36, 36, 37, 38, 39, 40, 40, 41, 42, 42, 43, 43, 44, 45, 46, 46, 47, 48, 48, 49, 50, 51, 51, 52, 53, 53, 54, 55, 56, 57, 58, 59, 60, 61, 61, 62, 62, 63, 63, 64, 64, 65, 65, 66, 66, 67, 67, 68, 69, 69, 70, 70, 71, 72, 73, 73, 74, 75, 75, 76, 76, 77, 78, 78, 79, 80, 81, 81, 82, 83, 84, 85, 86, 86, 87, 88, 89, 89, 90, 91, 91, 92, 92, 92, 93, 93, 94, 94, 95, 96, 97, 98, 99, 99, 99, 100, 101);
dep_nom_ref_mot = new Array("ain", "aisne", "allier", "alpes", "haute", "provence", "alpes", "hautes", "alpes", "maritimes", "ardeche", "ardennes", "ariege", "aube", "aude", "aveyron", "bouches", "rhone", "calvados", "cantal", "charente", "charente", "maritime", "cher", "correze", "corse", "cote", "cotes", "nord", "creuse", "dordogne", "doubs", "drome", "eure", "eure", "loir", "finistere", "gard", "garonne", "haute", "gers", "gironde", "herault", "ile", "vilaine", "indres", "indres", "loire", "isere", "jura", "landes", "loir", "cher", "loire", "haute", "loire", "loire", "atlantique", "loiret", "lot", "lot", "garonne", "lozere", "maine", "loire", "manche", "marne", "marne", "haute", "mayenne", "meurthe", "moselle", "meuse", "morbilhan", "moselle", "nievre", "nord", "oise", "orne", "pas", "calais", "puy", "dome", "pyrenees", "atlantiques", "pyrenees", "hautes", "pyrenees", "orientales", "rhin", "bas", "rhin", "haut", "rhone", "saone", "haute", "saone", "loire", "sarthe", "savoie", "savoie", "haute", "seine", "seine", "maritime", "seine", "marne", "yvelines", "deux", "sevres", "somme", "tarn", "tarn", "garonne", "var", "vaucluse", "vendee", "vienne", "haute", "vienne", "vosges", "yonne", "territoire", "belfort", "essonne", "hauts", "seine", "seine", "saint", "denis", "val", "marne", "val", "oise", "guadeloupe", "martinique", "guyane", "reunion", "saint", "pierre", "miquelon", "mayotte", "etranger");

function extraire_mots(source) // retourne un tableau contenant les mots contenu dans la source
{
	minuscules = " !\"#\$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~yi߮؃aaaaaaceeeeiiiinooooouuuuaaaaaaceeeeiiiinooooouuuuy";
	chiffres_et_lettres = "?0123456789abcdefghijklmnopqrstuvwxyz";

	mot = "";
	flag_fin_mot = false;
	tab_mot = new Array(0);
	for(i = 0; i < source.length; i++)
	{
		car = minuscules.charAt(source.charCodeAt(i) - 32);
		if(chiffres_et_lettres.indexOf(car) > 0)
			mot += car;
		else
			flag_fin_mot = true;
		if(flag_fin_mot || (i >= (source.length - 1)))
		{
			if(mot.length > 2)
					tab_mot[tab_mot.length] = mot;
			mot = "";
			flag_fin_mot = false;
		}
	}

	return(tab_mot);
}

function departementOnChange(field)
{
	if((field.value.length > 2) || (parseInt(field.value) > 0))
	{
		result = "";

		tab_groupe = field.value.split(",");
		for(h = 0; h < tab_groupe.length; h++)
		{
			tab_numero = tab_groupe[h].split(" ");
			for(i = 0; i < tab_numero.length; i++)
			{
				numero = parseInt(tab_numero[i]);
				if(numero > 0)
				{
					j = 0;
					index = -1;
					while((j < dep_numero.length) && (index == -1))
						if(dep_numero[j] == numero)
							index = j;
						else
							j++;
			
					if(index > -1)
					{
						if(result.indexOf(dep_nom[index] + ", ") < 0)
							result += dep_nom[index] + ", ";
					}
				}
			}

			tab_mot = extraire_mots(tab_groupe[h]);
			if(tab_mot.length > 0)
			{
				dep_select_nom = new Array(0);
				dep_select_coeff = new Array(0);
		
				for(i = 0; i < tab_mot.length; i++)
					for(j = 0; j < dep_nom_ref_mot.length; j++)
						if(tab_mot[i] == dep_nom_ref_mot[j].substr(0, tab_mot[i].length))
						{
							nom = dep_nom[dep_nom_ref_index[j]];
							nb_mots = dep_nb_mots[dep_nom_ref_index[j]];
							if(nb_mots < tab_mot.length)
								nb_mots = tab_mot.length;
							coeff = tab_mot[i].length / dep_nom_ref_mot[j].length / nb_mots;

							k = 0;
							index = -1;
							while((k < dep_select_nom.length) && (index == -1))
								if(dep_select_nom[k] == nom)
									index = k;
								else
									k++;
					
							if(index > -1)
								dep_select_coeff[index] += coeff;
							else
							{
								dep_select_nom[dep_select_nom.length] = nom;
								dep_select_coeff[dep_select_coeff.length] = coeff;
							}
						}

				coeff_max = 0;
				for(i = 0; i < dep_select_coeff.length; i++)
					if(dep_select_coeff[i] > coeff_max)
						coeff_max = dep_select_coeff[i];

				dep_select_nom_temp = new Array(0);
				for(i = 0; i < dep_select_coeff.length; i++)
					if(dep_select_coeff[i] == coeff_max)
						dep_select_nom_temp[dep_select_nom_temp.length] = dep_select_nom[i];
				dep_select_nom = dep_select_nom_temp;

				for(i = 0; i < dep_select_nom.length; i++)
					if(dep_select_nom.length == 1)
						result += dep_select_nom[i] + ", ";
					else
						result += "?" + dep_select_nom[i] + ", ";
			}
		}
	
		result = result.substr(0, result.length - 2);

		if(result != "")
		{
			field.value = result;
			if(field.value.indexOf("?") >= 0)
			{
				ifield_departement = field
				window_height = 125;
				dep_count = field.value.split(",");
				if(dep_count.length > 6)
					window_height += Math.ceil((dep_count.length - 6) / 2) * 20;
				chooser = window.open("/offres/departement_choix_multiple.php?departement=" + escape(field.value), "Choix", "toolbar=no,menubar=no,scrollbars=no,width=440,height=" + window_height);
				flagChooserClosed = false;
			}
		}
		else
		{
			alert("Impossible d'identifier le d\u00E9partement !");
			field.select();
			field.focus();
		}
	}
}
