
    // JavaScript Document
    /**
     *  Rend le champ texte dynamique
     *  lorsque l'utilisateur déclenche les evenements
     *  keydown
     *  keyup
     *  change
     */

	var _timeCPout		= null;
    function DynamicAjaxCodePostal (AjaxFile, formElement, fromElementCP, fromElementCountry, targetElement, targetCurrentElement, className, control){
        if (control==null)
            control = true;

		if(_timeCPout != null){
			window.clearTimeout(_timeCPout);
		}

		$("#"+fromElementCP).keypress(function(event){
           // $("#"+fromElementCP).unbind('change', null);
			if(control && !keyCodeIsNumeric(event))
				return false;
            if( document[formElement][fromElementCP].value.length >= 3 ){
                _timeCPout = setTimeout(function(){
                    RenderAjaxCodePostal (AjaxFile, formElement, fromElementCP, fromElementCountry, targetElement, targetCurrentElement, className);
                }, 150);
            }
			return true;
        });

        $("#"+fromElementCP).change(function(event){
            if( ( !isNaN($(this).val()) || keyCodeIsNumeric(event) ) && document[formElement][fromElementCP].value.length >= 3 ){
                _timeCPout = setTimeout(function(){
                    RenderAjaxCodePostal (AjaxFile, formElement, fromElementCP, fromElementCountry, targetElement, targetCurrentElement, className);
                }, 150);
            }
        });
        $("#"+fromElementCountry).change(function(event){
                RenderAjaxCodePostal (AjaxFile, formElement, fromElementCP, fromElementCountry, targetElement, targetCurrentElement, className);
        });
    }

    /**
     *  Effectue un rendu de la select box
     *  avec les codes postaux trouvés
     */
    function RenderAjaxCodePostal (AjaxFile, formElement, fromElementCP, fromElementCountry, targetElement, targetCurrentElement, className){

        var postCodeElement = document[formElement][fromElementCP];
        var selObj          = document[formElement][fromElementCountry];

        $( "#"+targetElement ).text("");
        $( "#"+targetElement ).addClass("loader");

        var classCss = "";
        if (className)  classCss = className;
        else            classCss = "";

        var postCode    = postCodeElement.value;
        var idCountry   = selObj.options[selObj.selectedIndex].value;

        if( postCode.length < 3 ){
            var select          = document.createElement("select");
            var opt             = document.createElement("option");
            select.className    = 'long';
            select.name         = 'ville';
            select.disabled     = true;
            try{select.add(opt, null);}catch(ex){select.add(opt, 0);}
            if( $("#"+targetElement).html() == '' ){
                $("#"+targetElement).append(select);
                $("#"+targetElement).removeClass("loader");
            }
            return false;
        }else{
            $.ajax({
               type: "GET",
               url: AjaxFile+"?postcode="+postCode+"&id_country="+idCountry+"&city="+targetCurrentElement+"&class="+classCss,
               async: false,
               complete: function(){
                  $("#"+targetElement).removeClass("loader");
               },
               success: function(html){
                  $("#"+targetElement).html(html);
               }
             });
        }


        return true;
    }
