// debut regions
function remplit_regions(formulaire, champ, region)
{
	if (!formulaire)
	{
		formulaire = 'formulaire';
	}
	
	if (!champ)
	{
		champ = 'region';
	}
	
	if (window.premier_element_regions)
	{
		document.forms[formulaire].elements[champ].options[0] = new Option(premier_element_regions, window.valeur_premier_element_regions);
	}	
	if (window.deuxieme_element_regions)
	{
		document.forms[formulaire].elements[champ].options[document.forms[formulaire].elements[champ].length] = new Option(deuxieme_element_regions, window.valeur_deuxieme_element_regions);
	}
	
	for (var i = 0; i < regions['ids'].length; i++)
	{
		var element = new Option(regions['noms'][i], regions['ids'][i]);		
		document.forms[formulaire].elements[champ].options[document.forms[formulaire].elements[champ].length] = element;		
		document.forms[formulaire].elements[champ].options[document.forms[formulaire].elements[champ].length -1].innerHTML = regions['noms'][i];
		
		// affiche les sous-regions de la region choisie
		if (region && regions['ids'][i] == region && sous_regions[region])
		{
			for (var j = 0; j < sous_regions[region]['ids'].length; j++)
			{
				var element = new Option(sous_regions[region]['noms'][j], sous_regions[region]['ids'][j]);		
				document.forms[formulaire].elements[champ].options[document.forms[formulaire].elements[champ].length] = element;		
				document.forms[formulaire].elements[champ].options[document.forms[formulaire].elements[champ].length -1].innerHTML = sous_regions[region]['noms'][j];
			}
		}
	}
}

function change_regions(formulaire, recherche_rapide, champ_region, champ_ville)
{
	if (!formulaire)
	{
		formulaire = 'formulaire';
	}
	
	if (!champ_region)
	{
		champ_region = 'region';
	}

	if (!champ_ville)
	{
		champ_ville = 'ville';
	}

	var id_region = document.forms[formulaire].elements[champ_region].value;
	ma_regex_toutes_regions = new RegExp('\\d+::0::0::0::0');		
	if (ma_regex_toutes_regions.exec(id_region))
	{
	 	remplit_villes_importantes(formulaire, recherche_rapide, champ_region, champ_ville);
	}
	else
	{
		remplit_villes(formulaire, recherche_rapide, champ_region, champ_ville);	
	}	
	
	if (sous_regions[id_region])
	{
		document.forms[formulaire].elements[champ_region].length = 0;
		// remplit_regions(formulaire, '', id_region);	
		remplit_regions(formulaire, champ_region, id_region);
		set_valeur_select(document.forms[formulaire].elements[champ_region], id_region);
	}
}
// fin regions

// debut villes
function remplit_villes(formulaire, recherche_rapide, champ_region, champ_ville)
{
	if (!formulaire)
	{
		formulaire = 'formulaire';
	}

	if (!champ_region)
	{
		champ_region = 'region';
	}

	if (!champ_ville)
	{
		champ_ville = 'ville';
	}

	// set multiple a on
	if (!recherche_rapide)
	{
		document.forms[formulaire].elements[champ_ville].multiple = true;
	}

	vide_villes(formulaire, champ_ville);

	var id_region = document.forms[formulaire].elements[champ_region].value;
	if (window.premier_element_villes)
	{
		var valeur = document.forms[formulaire].elements[champ_region].value;
		if (window.valeur_premier_element_villes)
		{
			valeur = window.valeur_premier_element_villes;
		}
		document.forms[formulaire].elements[champ_ville].options[0] = new Option(premier_element_villes, valeur);
	}

	if (villes[id_region] && villes[id_region]['ids'].length >= 1)
	{
		for (var i = 0; i < villes[id_region]['ids'].length; i++)
		{
			var element = new Option(villes[id_region]['noms'][i], villes[id_region]['ids'][i]);
			document.forms[formulaire].elements[champ_ville].options[document.forms[formulaire].elements[champ_ville].length] = element;	
			document.forms[formulaire].elements[champ_ville].options[document.forms[formulaire].elements[champ_ville].length -1].innerHTML = villes[id_region]['noms'][i];
		}
	}
	
	// pour remonter le selectbox en haut
	if (document.forms[formulaire].elements[champ_ville])
	{
		document.forms[formulaire].elements[champ_ville].selectedIndex = 0;
	}
	
	document.forms[formulaire].elements[champ_ville].style.backgroundColor = '';
	document.forms[formulaire].elements[champ_ville].style.color = '';
//	if (document.getElementById('element_ville'))
//	{
//		document.getElementById('element_ville').style.backgroundColor = '';
//		document.getElementById('element_ville').style.color = '';
//	}	
}

function remplit_villes_importantes(formulaire, recherche_rapide, champ_region, champ_ville)
{
	if (!formulaire)
	{
		formulaire = 'formulaire';
	}

	if (!champ_region)
	{
		champ_region = 'region';
	}

	if (!champ_ville)
	{
		champ_ville = 'ville';
	}

	// set multiple a off
	if (!recherche_rapide)
	{	
		document.forms[formulaire].elements[champ_ville].multiple = false;	
	}
	
	vide_villes(formulaire, champ_ville);

	var id_region = document.forms[formulaire].elements[champ_region].value;
	if (window.premier_element_villes_importantes)
	{
		var valeur = document.forms[formulaire].elements[champ_region].value;
		if (window.valeur_premier_element_villes)
		{
			valeur = window.valeur_premier_element_villes;
		}

		document.forms[formulaire].elements[champ_ville].options[0] = new Option(premier_element_villes_importantes, valeur);
	}

	if (villes_importantes[id_region] && 1 == 2) // pour re-activer les villes importantes, enlever le && 1 == 2
	{
		for (var i = 0; i < villes_importantes[id_region]['ids'].length; i++)
		{
			var element = new Option(villes_importantes[id_region]['noms'][i], villes_importantes[id_region]['ids'][i]);
			document.forms[formulaire].elements[champ_ville].options[document.forms[formulaire].elements[champ_ville].length] = element;	
			document.forms[formulaire].elements[champ_ville].options[document.forms[formulaire].elements[champ_ville].length -1].innerHTML = villes_importantes[id_region]['noms'][i];
		}
		document.forms[formulaire].elements[champ_ville].backgroundColor = '';
		document.forms[formulaire].elements[champ_ville].color = '';
//		if (document.getElementById('element_ville'))
//		{
//			document.getElementById('element_ville').backgroundColor = '';
//			document.getElementById('element_ville').color = '';
//		}
		
	}
	else if (recherche_rapide)
	{
		document.forms[formulaire].elements[champ_ville].style.backgroundColor = '#ECE9D8';
		document.forms[formulaire].elements[champ_ville].style.color = '#455572';
//		if (document.getElementById('element_ville'))
//		{
//			document.getElementById('element_ville').style.backgroundColor = '#EAEAEA';
//			document.getElementById('element_ville').style.color = '#A0A0A0';
//		}
	}
	
	// pour remonter le selectbox en haut
	if (document.forms[formulaire].elements[champ_ville])
	{
		document.forms[formulaire].elements[champ_ville].selectedIndex = 0;		
	}
}

function vide_villes(formulaire, champ_ville)
{
	if (!formulaire)
	{
		formulaire = 'formulaire';
	}

	if (!champ_ville)
	{
		champ_ville = 'ville';
	}

	document.forms[formulaire].elements[champ_ville].length = 0;
}

function change_villes(formulaire, recherche_rapide, champ_region, champ_ville)
{
	if (!formulaire)
	{
		formulaire = 'formulaire';
	}

	if (!champ_region)
	{
		champ_region = 'region';
	}

	if (!champ_ville)
	{
		champ_ville = 'ville';
	}

	var id_ville = document.forms[formulaire].elements[champ_ville].value;
	
	var split_region = id_ville.split('::');
	var _province = split_region[0];
	var _region = split_region[1];
	var _sous_region = split_region[2];
	
	// on mets la sous_region a celle de la ville et on change la liste des villes avec celle de la sous_region
	if (document.forms[formulaire].elements[champ_region].value != _province + '::' + _region + '::' + _sous_region + '::0::0')
	{
		if (sous_regions[_province + '::' + _region + '::0::0::0'])
		{
			set_valeur_select(document.forms[formulaire].elements[champ_region], _province + '::' + _region + '::' + _sous_region + '::0::0');
			remplit_villes(formulaire, recherche_rapide, champ_region, champ_ville);
			set_valeur_select(document.forms[formulaire].elements[champ_ville], id_ville);
		}
	}
}
// fin villes
