// Partie pour le calcul des distances via GoogleMaps
 
var map;
var gdir;
var geocoder = null;
var addressMarker;

function verifAddress() 
{
   if (GBrowserIsCompatible()) 
   {    
   	document.getElementById('continue').style.display = 'none';
   	document.getElementById('load').style.display = 'block';
   	//document.getElementById("map_canvas").style.display = 'block';
   	var loc_depart;
   	var loc_arrivee;
   	var zip_depart;
   	var zip_arrivee;
   	var vil_depart;
   	var vil_arrivee;
   		
   	if (document.getElementById('road_start').value != '')
   		 loc_depart = document.getElementById('road_start').value;
   	else
   		loc_depart = '';
   	if (document.getElementById('road_end').value != '')
   		 loc_arrivee = document.getElementById('road_end').value;
   	else
   		loc_arrivee = '';
   		
   	if (document.getElementById('code_cegid_start'))
   	{
   		if (document.getElementById('code_cegid_start').value == 'P')
   		{
   			if (document.getElementById('latitude_start') && document.getElementById('latitude_start').value != 0)
   			{
   				if (document.getElementById('longitude_start') && document.getElementById('longitude_start').value != 0)
   				{
   					vil_depart = '@';
   					var latitude_start = document.getElementById("latitude_start").value;
   					var longitude_start = document.getElementById("longitude_start").value;
   					zip_depart = latitude_start + "," + longitude_start;
   				}
   				else
   				{
   					vil_depart = 'Paris';
   					zip_depart = '75';
   				}	
   			}
   			else
   			{
   				vil_depart = 'Paris';
   				zip_depart = '75';
   			}	
   		}
   		else
   		{
   			if (document.getElementById('code_cegid_start').value == 'DE')
   			{
   				zip_depart = document.getElementById('code_postal_start').value;
					vil_depart = 'Puteaux';
   			}
   			else if (document.getElementById('code_cegid_start').value == 'LI')
				{
				   vil_depart = document.getElementById('place_start').value;
				   zip_depart = document.getElementById('code_postal_start').value;		
				}   			
   			else
   			{
   				vil_depart = '@';
   				var latitude_start = document.getElementById("latitude_start").value;
   				var longitude_start = document.getElementById("longitude_start").value;
   				zip_depart = latitude_start + "," + longitude_start;
   			}
   		}
		
   	}
   	else
   	{
   		if (document.getElementById('code_postal_start'))
   			zip_depart = document.getElementById('code_postal_start').value;
   		else
   			zip_depart = '';
				vil_depart = document.getElementById('place_start').value;
   	}
   	
   	if (document.getElementById('code_cegid_end'))
   	{
   		if (document.getElementById('code_cegid_end').value == 'P')
   		{
   			if (document.getElementById('latitude_end') && document.getElementById('latitude_end').value != 0)
   			{
   				if (document.getElementById('longitude_end') && document.getElementById('longitude_end').value != 0)
   				{
   					vil_arrivee = '@';
   					var latitude_end = document.getElementById("latitude_end").value;
   					var longitude_end = document.getElementById("longitude_end").value;
   					zip_arrivee = latitude_end + "," + longitude_end;
   				}
   				else
   				{
   					vil_arrivee = 'Paris';
   					zip_arrivee = '75';
   				}	
   			}
   			else
   			{
   				vil_arrivee = 'Paris';
   				zip_arrivee = '75';
   			}	
   		}
   		else
   		{
   			if (document.getElementById('code_cegid_end').value == 'DE')
   			{
   				zip_arrivee = document.getElementById('code_postal_end').value;
					vil_arrivee = 'Puteaux';
   			}
   			else if (document.getElementById('code_cegid_end').value == 'LI')
				{
				   vil_arrivee = document.getElementById('place_end').value;
				   zip_arrivee = document.getElementById('code_postal_end').value;		
				}
   			else
   			{
   				vil_arrivee = '@';
   				var latitude_end = document.getElementById("latitude_end").value;
   				var longitude_end = document.getElementById("longitude_end").value;
   				zip_arrivee = latitude_end + "," + longitude_end;
   			}
   		}
   	}
   	else
   	{
   		if (document.getElementById('code_postal_end'))
   			zip_arrivee = document.getElementById('code_postal_end').value;
   		else
   			zip_arrivee = '';	
   		vil_arrivee = document.getElementById('place_end').value;
   	}
   	
		var address_from = "" + loc_depart + " " + vil_depart + " " + zip_depart + "";
		var address_to = "" + loc_arrivee + " " + vil_arrivee + " " + zip_arrivee + "";
      map = new GMap2(document.getElementById("map_canvas"));
      gdir = new GDirections(map, document.getElementById("directions"));
      GEvent.addListener(gdir, "load", function() 
		{
			var mesure = gdir.getDistance().meters;
			if(mesure > 0)
			{
				document.getElementById('kilometres').value = mesure;
				document.getElementById('load').style.display = 'none';
				//document.getElementById("map_canvas").style.display = 'block';
				document.getElementById('valid').style.display = 'block';
			}
			else if (mesure == 0)
			{
				document.getElementById('load').style.display = 'none';
				document.getElementById('continue').style.display = 'block';
			}				
		});
      GEvent.addListener(gdir, "error", handleErrors);
      setDirections(address_from, address_to, "fr_FR");
    }
}

function verifAddressMdp()
{
	if (GBrowserIsCompatible()) 
   {    
   	document.getElementById('continue').style.display = 'none';
   	document.getElementById('load').style.display = 'block';
   	var loc;
   	var vil;
   	var zip;
   	var pays = 'France';
   	var address;
   	   	
   	if (document.getElementById('road_start').value != '')
   	  	loc = document.getElementById('road_start').value;
   	else
   		loc = '';
   	if (document.getElementById('code_cegid_start'))
   	{
   		if (document.getElementById('code_cegid_start').value == 'P')
   		{
   			if (document.getElementById('code_postal_start').value == "75000")
   			{
   				vil = 'Paris';
   				zip = '75';
   				address = '' + loc + ' ' + vil + ' ' + zip + ' ' + pays + '';
   				foundAddress(address);
   			}
   			else
   			{
   				document.getElementById('load').style.display = 'none';
					document.getElementById('valid').style.display = 'block';
   			}   			
   		}
   		else if (document.getElementById('code_cegid_start').value == 'DE')
   		{
   				vil = 'Puteaux';
   				zip = '92800';
   				address = '' + loc + ' ' + vil + ' ' + zip + ' ' + pays + '';
   				foundAddress(address);
			}
   		else
   		{
   			document.getElementById('load').style.display = 'none';
				document.getElementById('valid').style.display = 'block';
   		}
   	}
   	else
   	{
   		if (document.getElementById('code_postal_start'))
   			zip = document.getElementById('code_postal_start').value;
   		else
   			zip = '';	
   		vil = document.getElementById('place_start').value;
   		address = '' + loc + ' ' + vil + ' ' + zip + ' ' + pays + '';
   		foundAddress(address);
   	}
   }
}

function foundAddress(address)
{
   var geocoder = new GClientGeocoder();
   if (geocoder) 
   {
   	geocoder.getLatLng(address, 
      	function(point) 
        	{
            if (!point) 
            {
              	document.getElementById('load').style.display = 'none';
   				document.getElementById('continue').style.display = 'block';
					document.getElementById('error_address').style.display = 'block';
            } 
            else 
            {
               document.getElementById('load').style.display = 'none';
					document.getElementById('valid').style.display = 'block';   
            }
        	}
       );
	}
}

function setDirections(fromAddress, toAddress, locale) 
{
     gdir.load("from: " + fromAddress + " to: " + toAddress,{ "locale": locale });
}

function handleErrors()
{
   	document.getElementById('load').style.display = 'none';
   	document.getElementById("map_canvas").style.display = 'none';
   	document.getElementById('continue').style.display = 'block';
		document.getElementById('error_address').style.display = 'block';
}

function verif_form()
{
	var error = false;
	if (document.getElementById('date').value == "")
	{
		document.getElementById('error_date').style.display = 'block';
		var error = true;
	}
	if (document.getElementById('place_start').value == "")
	{
		document.getElementById('error_place_start').style.display = 'block';
		var error = true;
	}
	else
	{
		if (document.getElementById('road_start').value == "")
		{
			if (document.getElementById('code_cegid_start') != null)
			{
				if (document.getElementById('code_cegid_start').value == 'P' && document.getElementById('place_start').value == "Paris")
				{
					document.getElementById('error_road_start').style.display = 'block';
					var error = true;	
				}
				if (document.getElementById('code_cegid_start').value == 'DE')
				{
					document.getElementById('error_road_start').style.display = 'block';
					var error = true;	
				}
				
			}
			else 
			{
				document.getElementById('error_road_start').style.display = 'block';
				var error = true;
			}
		}
	}
	if (document.getElementById('place_end').value == "")
	{
		document.getElementById('error_place_end').style.display = 'block';
		var error = true;
	}
	else
	{
		if (document.getElementById('road_end').value == "")
		{
			if (document.getElementById('code_cegid_end') != null)
			{
				if (document.getElementById('code_cegid_end').value == 'P' && document.getElementById('place_end').value == "Paris")
				{
					document.getElementById('error_road_end').style.display = 'block';
					var error = true;	
				}
				if (document.getElementById('code_cegid_end').value == 'DE')
				{
					document.getElementById('error_road_end').style.display = 'block';
					var error = true;	
				}
			}
			else 
			{
				document.getElementById('error_road_end').style.display = 'block';
				var error = true;
			}
		}
	}
	if (!error)
	{
		verifAddress();
	}
}

function verif_form_mdp()
{
	var error = false;
	
	if (document.getElementById('date').value == "")
	{
		document.getElementById('error_date').style.display = 'block';
		var error = true;
	}
	if (document.getElementById('place_start').value == "")
	{
		document.getElementById('error_place_start').style.display = 'block';
		var error = true;
	}
	else
	{
		if (document.getElementById('road_start').value == "")
		{
			if (document.getElementById('code_cegid_start') != null)
			{
				if (document.getElementById('code_cegid_start').value == 'P' && document.getElementById('place_start').value == "Paris")
				{
					document.getElementById('error_road_start').style.display = 'block';
					var error = true;	
				}
				if (document.getElementById('code_cegid_start').value == 'DE')
				{
					document.getElementById('error_road_start').style.display = 'block';
					var error = true;	
				}
			}
			else 
			{
				document.getElementById('error_road_start').style.display = 'block';
				var error = true;
			}
		}
	}
	if (!error)
	{
		verifAddressMdp();
	}
}

function switch_saisie_auto(sens)
{
    if (document.getElementById('clear_saisie_auto_' + sens + '').value == 'true')
    {
        document.getElementById('msg_saisie_auto_' + sens + '').style.display = 'none';
        document.getElementById('clear_saisie_auto_' + sens + '').value = 'false';
        document.getElementById('place_' + sens + '').value = '';
    }
}

function switch_buttons()
{
	document.getElementById('continue').style.display = 'block';
	document.getElementById('error_address').style.display = 'none';
	document.getElementById('error_place_start').style.display = 'none';
	if (document.getElementById('error_place_end'))
		document.getElementById('error_place_end').style.display = 'none';
	document.getElementById('error_road_start').style.display = 'none';
	if (document.getElementById('error_road_end'))
		document.getElementById('error_road_end').style.display = 'none';
	document.getElementById("map_canvas").style.display = 'none';
	document.getElementById('load').style.display = 'none';
	document.getElementById('valid').style.display = 'none';
	document.getElementById('error_date').style.display = 'none';
}

// Partie pour la vérification de la présence de l'adresse email
function get_zipcode(ville, sens)
{
	var field_hidden = '';
	var city = encodeURIComponent(ville);
	if(city != '')
	{
		if(field_hidden = file('fichiers/get-zipcode.php?ville=' + escape(city) + '&sens=' + escape(sens)))
		{	
			if (field_hidden == 'false')
			{
				document.getElementById('msg_saisie_auto_' + sens + '').style.display = 'block';
				document.getElementById('clear_saisie_auto_' + sens + '').value = 'true';
			}
			else
			{
				document.getElementById('hidden_place_' + sens + '').innerHTML = field_hidden;
			}
		}
	}
}

function get_zipcode_mdp(ville, sens)
{
	var field_hidden = '';
	var city = encodeURIComponent(ville);
	if(city != '')
	{
		if(field_hidden = file('fichiers/get-zipcode.php?ville=' + escape(city) + '&sens=' + escape(sens)))
		{	
			if (field_hidden == 'false')
			{
				document.getElementById('msg_saisie_auto_' + sens + '').style.display = 'block';
				document.getElementById('clear_saisie_auto_' + sens + '').value = 'true';
			}
			else
			{
				document.getElementById('hidden_place_' + sens + '').innerHTML = field_hidden;
			}
		}
	}
}

// Partie pour la vérification de l'heure pour la mise à dispo
function check_timer()
{
	var duree = document.getElementById('form3-duree').value;
	var heure = document.getElementById('SmallHrs3').options[document.getElementById('SmallHrs3').selectedIndex].text;
	if (duree != '')
	{
		if(temps = file('booking/fichiers/get-timecheck.php?heure=' + heure + '&duree=' + duree))
		{
			if(temps != 'error') { document.getElementById('tim_oks').value = 'temps'; }
			else { document.getElementById('tim_oks').value = ''; }
		}
	}
}

// Relation Ajax <-> BDD
function file(fichier)
{
	if(window.XMLHttpRequest) // FIREFOX
		xhr_object = new XMLHttpRequest();
	else if(window.ActiveXObject) // IE
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else
		return(false);
	xhr_object.open("GET", fichier, false);
	xhr_object.send(null);
	if(xhr_object.readyState == 4)
	{ 
		return(xhr_object.responseText);
	}
	else 
		return(false);
}
