// Aurelien Flament - 07-2009 v.2.0

function codePostal(install, idcp, idselect, villedefaut, textselect ) {
					
			jQuery.extend({ AJAX_CP : { install : install, idcp : idcp, idselect : idselect, villedefaut : villedefaut, textselect : textselect, monselect : document.getElementById( idselect )  ,tmp_cp : ""  } });
		
			if ($.AJAX_CP.villedefaut != "") { AjaxCodePostal (null,true) };
			$("#" + $.AJAX_CP.idcp).bind( "keyup",	AjaxCodePostal );
			$("#" + $.AJAX_CP.idcp).bind( "blur",	AjaxCodePostal );
}

function AjaxCodePostal (event,restit) {
			
			var queryCodePostal = "/wslsa/wscp";
			var villeParDefaut  = ( restit ) ?  $.AJAX_CP.villedefaut : "";
			
			if ( $("#" + $.AJAX_CP.idcp).attr('value').length == 5 && $("#" + $.AJAX_CP.idcp).attr('value') != $.AJAX_CP.tmp_cp ) { 
			
						chargementCodePostal()
						$.ajax({
							  type: "GET",
							  url: queryCodePostal,
							  data: "codpos=" + $("#" + $.AJAX_CP.idcp).attr('value'),
							  dataType: "xml",
							  success : function(data, textStatus) { callbackCodePostal(data, villeParDefaut) },
							  error : callbackCodePostalError
						 });
			}
			
			if ( !restit && event.type == "blur" && $("#" + $.AJAX_CP.idcp).attr('value').length < 5 ) { // vide le champs si il n'a pas le nombre de caractere necessaire
				$.AJAX_CP.monselect.options.length = 0;
				$.AJAX_CP.monselect.options[$.AJAX_CP.monselect.options.length] = new Option( $.AJAX_CP.textselect ,"-1");
				$.AJAX_CP.tmp_cp = "";
			}		
}			

function chargementCodePostal() { // suppression liste + affichage d'un texte lors du chargement de la liste
		$.AJAX_CP.monselect.options.length = 0;
		$.AJAX_CP.monselect.options[$.AJAX_CP.monselect.options.length] = new Option( "Chargement...","-1");
}

function callbackCodePostalError(XMLHttpRequest, textStatus, errorThrown){ // fonction retour erreur
		//if (window.console) window.console.log( "Data error: " + XMLHttpRequest + " | " + textStatus + " | " + errorThrown );
}

function callbackCodePostal(xml, villedefaut){ // suppression liste + remplissage de la liste + var temporaire antidoublon
		$.AJAX_CP.monselect.options.length = 0;
		
		if ( $(xml).find('nomvis').size() != 1 ) {
			$.AJAX_CP.monselect.options[$.AJAX_CP.monselect.options.length] = new Option( $.AJAX_CP.textselect,"-1");
		}					
		$(xml).find('nomvis').each( function(){ 
			var ville = $(this).text();
			$.AJAX_CP.monselect.options[$.AJAX_CP.monselect.options.length] = new Option(ville,ville);
		} );
		if (villedefaut != "") {			
			$('#'+$.AJAX_CP.idselect+' option[value=\''+villedefaut+'\']').attr("selected", "selected");
			//$('#'+$.AJAX_CP.idselect+' option[value='+villedefaut+']').attr("selected", "selected"); pour la nouvelle version de jquery
		}
		
		//mise en cache du dernier cp pour eviter doublon de requete
		$.AJAX_CP.tmp_cp = $("#" + $.AJAX_CP.idcp).attr('value');
}

