var requete = null;
function creerRequete() {
    try {
        requete = new XMLHttpRequest(); /* On essaye de créer un objet XmlHTTPRequest */
    } catch (microsoft) {
        /* Microsoft utilise une autre technique, on tente de créer un objet ActiveX */
        try {
            requete = new ActiveXObject('Msxml2.XMLHTTP');
        } catch(autremicrosoft) {
            /* On en teste une autre méthode si la première n'a pas marchée */
            try {
                requete = new ActiveXObject('Microsoft.XMLHTTP');
            } catch(echec) {
                /* Si aucune méthode ne fonctionne, il ne reste plus qu'à mettre à jour le navigateur ! */
                requete = null;
            }
        }
    }
    if (requete == null) {
        alert('Votre navigateur ne semble pas supporter les objets XMLHttpRequest.');
    }
}



// Récupérer le listing des codes postaux et communes
function get_listing() {
	
	// Plus de 2 caractères tapés ?
	if (document.getElementById('search_garage_form_cp').value.length >= 2) {
		
		// On a entré un CP
		if(document.getElementById('search_garage_form_cp').value.search(/^[0-9]{0,4}$/) != -1) {
			
			// On affiche le div
			document.getElementById('search_garage_listing').style.display = 'block';
			
			// On envoie les données à la page			
			creerRequete();
			var url = 'ajax/search_garage_listing.php?cp='+document.getElementById('search_garage_form_cp').value;
			requete.open('GET', url, true);
			requete.onreadystatechange = function() {
				if(requete.readyState == 4) {
					if(requete.status == 200) {
						document.getElementById('search_garage_listing').innerHTML = requete.responseText;
					}
				}
			};
			requete.send(null);
		
		// Ce n'est pas un CP
		} else {
			
			// On affiche le div
			document.getElementById('search_garage_listing').style.display = 'block';
			
		}
		

	} else {
		
		// On cache le div
		document.getElementById('search_garage_listing').style.display = 'none';
		
	}
}



function redirect(province,commune) {

	window.location = url_search_garage + province + "/" + commune + "/";
	
}



function redirect_choix(province,cp) {

	window.location = url_search_garage + province + "/" + choix_langue + "-" + cp + "/";
	
}



function validate_search() {
	
	// Code postal correctement tapé ?
	if(document.getElementById('search_garage_form_cp').value.search(/^[0-9]{4}$/) != -1) {
	
		// On envoie les données à la page			
		creerRequete();
		var url = 'ajax/search_garage_verif.php?cp='+document.getElementById('search_garage_form_cp').value;
		requete.open('GET', url, true);
		requete.onreadystatechange = function() {
			if(requete.readyState == 4) {
				if(requete.status == 200) {
					
					// On récupère la réponse
					var verif = requete.responseText;
					
					// On splite
					var tab_verif = verif.split(' || ');
					
					/*
						[0] = code postal existe ? (yes - no)
						[1] = commune
						[2] = province
						[3] = nombre de communes avec ce code postal
					*/
					
					// Le code postal existe
					if (tab_verif[0] == 'yes') {
					
						// Plusieurs communes pour ce code postal ?
						if (tab_verif[3] > 1) {
							redirect_choix(tab_verif[2],document.getElementById('search_garage_form_cp').value);
						} else {
						
							// On appelle la fonction redirigeant vers la page
							redirect(tab_verif[2],tab_verif[1]);
						
						}
					
					
					// Le code postal n'existe pas
					} else {
						
						// On cache le div
						document.getElementById('search_garage_listing').style.display = 'none';
						
						// On réinitialise l'input
						document.getElementById('search_garage_form_cp').value = '';
						
						
					}
					
					
				}
			}
		};
		requete.send(null);
			
	
	
	// Code postal et ville
	} else if(document.getElementById('search_garage_form_cp').value.search(/^[0-9]{4} - [A-Z0-9 -]+$/) != -1) {
		
			
			
			
			
			
			// On envoie les données à la page			
			creerRequete();
			var url = 'ajax/search_garage_verif.php?commune='+document.getElementById('search_garage_form_cp').value;
			requete.open('GET', url, true);
			requete.onreadystatechange = function() {
				if(requete.readyState == 4) {
					if(requete.status == 200) {
						
						// On récupère la réponse
						var verif = requete.responseText;
						
						// On splite
						var tab_verif = verif.split(' || ');
						
						/*
							[0] = commune
							[1] = province
						*/
						
						
						// On appelle la fonction redirigeant vers la page
						redirect(tab_verif[1],tab_verif[0]);
						
						
						
						
					}
				}
			};
			requete.send(null);
			
			
			
			
			
			
		
	
	
	// Input mal rempli
	} else {
		
		// On cache le div
		document.getElementById('search_garage_listing').style.display = 'none';
						
		// On réinitialise l'input
		document.getElementById('search_garage_form_cp').value = '';
	
	}
}


// Mettre la valeur choisie dans l'input
function put_input(valeur) {
	document.getElementById('search_garage_form_cp').value = valeur;
	validate_search();
}


function getClients(fieldclentttxt) {

		$.ajax({
			type:		"GET",
			url:		"ajax/clients.php",
			data:	{ clientttxt: $(fieldclentttxt).val() },
			async: false,
			success: function(echo){
				_error = "off";
				$('select[@name=client]').html(echo);
			},
			error: function(echo){
				_error = "on";
				alert("Error - " + echo);
			}
		});		

}


function SendForm() {

		formisvalid = "";
		
		if (formisvalid == "") {

			$('#client_txt').val($("#client option:selected").text());

			$('#form_search').submit();
						
		} 
	
}



$(document).ready(function(){

	
	$('#searchclient').click(function(){
				
		getClients($('#clientsrch'));
		
		($('select[@name=client]')[0]).selectedIndex = 0;
		precalculer();			
	});



	$('#submitsearch').click(function(){
		SendForm();
	});	

	$('#submitsearch2').click(function(){
		SendForm();	
	});	


});


