﻿/*
Retourne la valeur sélectionnée de ddlPays
*/
function SourisMini_PointsVente_Get_Pays_Value()
{
	return document.getElementById('ddlPays').options[document.getElementById('ddlPays').selectedIndex].value;
}

/*
Retourne la valeur sélectionnée de ddlRegions
*/
function SourisMini_PointsVente_Get_Region_Value()
{
	return document.getElementById('ddlRegions').options[document.getElementById('ddlRegions').selectedIndex].value;
}

/*
Retourne la valeur sélectionnée de ddlVilles
*/
function SourisMini_PointsVente_Get_Ville_Value()
{
	return document.getElementById('ddlVilles').options[document.getElementById('ddlVilles').selectedIndex].value;
}


/*
Fonction qui remplit la liste des régions
*/
function SourisMini_PointsVente_Remplir_Pays()
{
	//Object DropDown à remplir
	var objSelect = document.getElementById('ddlPays');
	objSelect.options.length = 0;
	
	//Boucle sur les pays
	for( i = 0; i < SourisMini_PointsVente_Liste_Pays.length; i++ )
	{
			objSelect.options[objSelect.length] = new Option( SourisMini_PointsVente_Liste_Pays[i].nom, SourisMini_PointsVente_Liste_Pays[i].valeur );
	}
}

/*
Fonction qui remplit la liste des régions
*/
function SourisMini_PointsVente_Remplir_Regions(pays)
{
	//Object DropDown à remplir
	var objSelect = document.getElementById('ddlRegions');
	objSelect.options.length = 0;
	
	//Boucle sur les régions
	for( i = 0; i < SourisMini_PointsVente_Liste_Regions.length; i++ )
	{
		//Check le pays
		if( SourisMini_PointsVente_Liste_Regions[i].pays == pays )
		{
			objSelect.options[objSelect.length] = new Option( SourisMini_PointsVente_Liste_Regions[i].nom, SourisMini_PointsVente_Liste_Regions[i].nom );
		}
	}
	
	SourisMini_PointsVente_Remplir_Villes(pays, objSelect.options[0].value);
}

/*
Fonction qui remplit la liste des villes en fonction de la région
*/
function SourisMini_PointsVente_Remplir_Villes(pays, region)
{
	//Object DropDown à remplir
	var objSelect = document.getElementById('ddlVilles');
	objSelect.options.length = 0;
	
	//Boucles sur les villes
	for( i = 0; i < SourisMini_PointsVente_Liste_Villes.length; i++ )
	{
		//Check le pays
		if( SourisMini_PointsVente_Liste_Villes[i].pays == pays )
		{
			//Check la region ou si la region est «toutes» ou si la valeur «toutes» pour la ville
			if( SourisMini_PointsVente_Liste_Villes[i].region_nom == region 
				|| region == 'Toutes' || region == 'All' 
				|| SourisMini_PointsVente_Liste_Villes[i].region_nom  == 'Toutes' || SourisMini_PointsVente_Liste_Villes[i].region_nom == 'All' 
			)
			{
				objSelect.options[objSelect.length] = new Option( SourisMini_PointsVente_Liste_Villes[i].nom, SourisMini_PointsVente_Liste_Villes[i].nom );
			}
		}
	}
	
	SourisMini_PointsVente_Remplir_Boutiques(pays, region, objSelect.options[0].value);
}

/*
Fonction qui remplit la liste des boutiques en fonction du pays, de la region et de la ville
*/
function SourisMini_PointsVente_Remplir_Boutiques(pays, region, ville)
{
	var objSelect = document.getElementById('ddlBoutiques');
	objSelect.options.length = 0;
	
	for( i = 0; i < SourisMini_PointsVente_Liste_BoutiquesDropDown.length; i++ )
	{
		//Check du pays
		if( SourisMini_PointsVente_Liste_BoutiquesDropDown[i].pays == pays )
		{
			if( SourisMini_PointsVente_Liste_BoutiquesDropDown[i].region_nom  == 'Toutes' || SourisMini_PointsVente_Liste_BoutiquesDropDown[i].region_nom == 'All' )
			{
				// On ajoute toujours la boutique Toutes/All
				objSelect.options[objSelect.length] = new Option( SourisMini_PointsVente_Liste_BoutiquesDropDown[i].nom, SourisMini_PointsVente_Liste_BoutiquesDropDown[i].nom );
			}
			else  
			{
				//Check de la region ou si la region est «toutes»
				if( SourisMini_PointsVente_Liste_BoutiquesDropDown[i].region_nom == region || region == 'Toutes' || region == 'All' )
				{
					//Check de la ville ou si la ville est «toutes»
					if( SourisMini_PointsVente_Liste_BoutiquesDropDown[i].ville == ville || ville == 'Toutes' || ville == 'All' )
					{
						objSelect.options[objSelect.length] = new Option( SourisMini_PointsVente_Liste_BoutiquesDropDown[i].nom, SourisMini_PointsVente_Liste_BoutiquesDropDown[i].nom );
					}
				}
			} //else de if(SourisMini_PointsVente_Liste_BoutiquesDropDown[i].region_nom  == 'Toutes')
		} // if( SourisMini_PointsVente_Liste_BoutiquesDropDown[i].pays == pays )
	} // for( i = 0; i < SourisMini_PointsVente_Liste_BoutiquesDropDown.length; i++ )
}

/*
Fonction qui affiche les marqueurs en fonction du filtre
*/
function SourisMini_PointsVente_Montrer_Marqueurs(pays, filtre, filtre_mode)
{
	//Check si c'est toutes les boutique d'une ville
	if( filtre_mode == "boutique" && (filtre == 'Toutes' || filtre == 'All' ) )
	{
		filtre = SourisMini_PointsVente_Get_Ville_Value()
		filtre_mode = "ville"; //va tomber en mode region selon le check qui suit
	}
	
	//Check si c'est toutes les villes d'une region
	if( filtre_mode == "ville" && (filtre == 'Toutes' || filtre == 'All' ) )
	{
		filtre = SourisMini_PointsVente_Get_Region_Value()
		filtre_mode = "region";
	}
	
	if( filtre_mode == "region" )
	{
		//Affichage des marqueurs
		for( i = 0; i < listMarkers.length; i++ )
		{
			if( listMarkers[i].boutique.pays == pays && (listMarkers[i].boutique.region_nom == filtre || filtre == 'Toutes' || filtre == 'All') )
			{
				listMarkers[i].setVisible(true);				
			}
			else
			{
				listMarkers[i].setVisible(false);
			}
		}
		
		//Ajustement de la position et du zoom
		for( i = 0; i < SourisMini_PointsVente_Liste_Regions.length; i++ )
		{
			if( SourisMini_PointsVente_Liste_Regions[i].pays == pays && SourisMini_PointsVente_Liste_Regions[i].nom == filtre )
			{
				map.setCenter( new google.maps.LatLng( SourisMini_PointsVente_Liste_Regions[i].centre_latitude, SourisMini_PointsVente_Liste_Regions[i].centre_longitude) );
				map.setZoom( SourisMini_PointsVente_Liste_Regions[i].zoom );
			}
		}
	}
	else if( filtre_mode == "ville" )
	{
		var boolAjust = false; //indicateur que le centrage a été effectué.
		
		//Affichage des marqueurs
		map.setZoom(11); //zoom à l'avance parce que le zoom remet les marqueurs visibles.
		
		//Boucle sur les marqueurs pour rendre ceux de la ville visible
		for( i = 0; i < listMarkers.length; i++ )
		{
			if( listMarkers[i].boutique.pays == pays && listMarkers[i].boutique.ville == filtre )
			{
				listMarkers[i].setVisible(true);
				
				//centrage de la map sur la 1er boutique de la ville
				if( !boolAjust )
				{
					map.setCenter(listMarkers[i].position);
					boolAjust = true;
				}
			}
			else
			{
				listMarkers[i].setVisible(false);
			}
		}
	}
	else if( filtre_mode == "boutique" )
	{
		var boolAjust = false; //indicateur que le centrage a été effectué.
		
		//Affichage des marqueurs
		map.setZoom(11); //zoom à l'avance parce que le zoom remet les marqueurs visibles.
		
		//Boucle sur les marqueurs pour rendre celui de la boutique visible
		for( i = 0; i < listMarkers.length; i++ )
		{
			if( listMarkers[i].boutique.pays == pays && listMarkers[i].boutique.nom == filtre )
			{
				listMarkers[i].setVisible(true);
				
				//centrage de la map sur la boutique
				if( !boolAjust )
				{
					map.setCenter(listMarkers[i].position);
					boolAjust = true;
				}
			}
			else
			{
				listMarkers[i].setVisible(false);
			}
		}
	}

}