// pays pour lesquels le champ cp doit être affiché au chargement de la page function setCountries() { var country = document.getElementById('country'); if (country.value == "FR" || country.value == "US" || country.value == "AD" || country.value == "AR" || country.value == "AS" || country.value == "AT" || country.value == "AU" || country.value == "BD" || country.value == "BE" || country.value == "BG" || country.value == "CA" || country.value == "CH" || country.value == "CZ" || country.value == "DE" || country.value == "DK" || country.value == "ES" || country.value == "FI" || country.value == "FO" || country.value == "GB" || country.value == "GG" || country.value == "GL" || country.value == "GP" || country.value == "GU" || country.value == "GY" || country.value == "HR" || country.value == "HU" || country.value == "IM" || country.value == "IN" || country.value == "IS" || country.value == "IT" || country.value == "JE" || country.value == "LI" || country.value == "LK" || country.value == "LU" || country.value == "MC" || country.value == "MH" || country.value == "MK" || country.value == "MP" || country.value == "MQ" || country.value == "MX" || country.value == "NL" || country.value == "NO" || country.value == "NZ" || country.value == "PK" || country.value == "PL" || country.value == "PM" || country.value == "PR" || country.value == "PT" || country.value == "RE" || country.value == "SE" || country.value == "SI" || country.value == "SK" || country.value == "SM" || country.value == "SZ" || country.value == "TH" || country.value == "TR" || country.value == "VI" || country.value == "YT" || country.value == "ZA") { document.getElementById('p_cp').style.display = 'block'; } else { document.getElementById('p_cp').style.display = 'none'; } } // codes iso des pays qui sont gérés en base de données var geonamesPostalCodeCountries = ["LU","NZ","ZA","GB","TH","HR","CA","NO","HU","FR","BG","FO","MK","BE","DE","MC","MD","DK","FI","AT","CZ","MX","US","SE","IN","AU","SI","SK","IS","IT","SM","PL","PT","AD","CH","ES","NL","PK","LI","LK","GL","GR","JE","IM","GG","BD","AR","SZ"]; // code iso du pays de l'internaute suivant son adresse IP - prévoir un script récupérant le pays selon l'IP var geonamesUserIpCountryCode = 'FR'; // JavaScript Document function CPTOCI(){ this.majorVersion = "0"; this.minorVersion = "1"; this.releaseDate = "2008-03-01"; };// // Fonction permettant de récupérer la valeur du champ pays (en vue de la requête mysql dans getCities.php) function getValue(idChamp) { var valeur = document.getElementById(idChamp).value; return encodeURIComponent(valeur); } // Fonction permettant de récupérer villes, départements, codes départements, régions, continents CPTOCI.prototype.sc = function(){ var co = cptoci.ge("cp"), ci = cptoci.ge("city"), dpt = cptoci.ge("dpt"), dpt_code = cptoci.ge("dpt_code"), reg = cptoci.ge("region"), cn = cptoci.ge("continent"); rov = function(){ for(var o=ci.options.length-1;o>-1;o--){ ci.options[o] = null; } for(var o=dpt.value.length-1;o>-1;o--){ dpt.value = null; } for(var o=dpt_code.value.length-1;o>-1;o--){ dpt_code.value = null; } for(var o=reg.value.length-1;o>-1;o--){ reg.value = null; } for(var o=cn.value.length-1;o>-1;o--){ cn.value = null; } }; scr = function(){ var r = scr.arguments[0].responseXML.documentElement; var t = r.getElementsByTagName("city"); var d = r.getElementsByTagName("dpt"); var dc = r.getElementsByTagName("dpt_code"); var g = r.getElementsByTagName("region"); var n = r.getElementsByTagName("continent"); rov(); // Aucune ville trouvée if(t.length == 0){ ci.options[0] = new Option("No se encuentra una ciudad"); } // ville for(var i = 0; i < t.length; i++){ var nv = new Option(t[i].firstChild.nodeValue,t[i].firstChild.nodeValue); ci.options[i] = nv; } // dpt for(var i = 0; i < d.length; i++){ var nv = d[i].firstChild.nodeValue; dpt.value = nv; } // code dpt for(var i = 0; i < dc.length; i++){ var nv = dc[i].firstChild.nodeValue; dpt_code.value = nv; } // region for(var i = 0; i < g.length; i++){ var nv = g[i].firstChild.nodeValue; reg.value = nv; } // continent for(var i = 0; i < n.length; i++){ var nv = n[i].firstChild.nodeValue; cn.value = nv; } }; rov(); // affichage du résultat de la requête ci.options[0] = new Option("Loading..."); cptoci.sg('/geo/getCities.php?p=' + getValue("country") +'&c='+escape(co.value),scr); }; CPTOCI.prototype.start = function(){ };//1.0 - 2 var cptoci = new CPTOCI(); // JavaScript Document CPTOCI.prototype.gt = function(e,d){ if(!d) d = document; return d.getElementsByTagName(e); };//1.0 - 1 CPTOCI.prototype.ge = function(e){ return document.getElementById(e); };//1.0 - 2 //custom element operations end///////////////// //xmlhttprequest object starts////////////////// CPTOCI.prototype.s = function(url, method, callback, data, urlencoded){ var req; if (window.XMLHttpRequest) { req = new XMLHttpRequest(); }else if (window.ActiveXObject){ req = new ActiveXObject("Microsoft.XMLHTTP"); } req.onreadystatechange = function() { if (req.readyState == 4) { if (req.status < 400) { (method=="POST") ? callback(req) : callback(req,data); } else { alert("La consulta siguiente no tiene acceso:\n" + req.status+ "/" + req.statusText+"\n"+url); cptoci.ge("city").options[0] = new Option("Error"); } } }; if (method=="POST") { req.open("POST", url, true); if (urlencoded) { req.setRequestHeader('Content-Type','application/x-www-form-urlencoded;utf-8'); } req.send(data); } else { req.open("GET", url, true); req.send(null); }; return req; };//1.0 - 3 CPTOCI.prototype.sp = function(url, data, callback){ cptoci.s(url, "POST", callback, data, true); };//1.0 - 4 CPTOCI.prototype.sg = function(url, callback, args){ cptoci.s(url, "GET", callback, args); };//1.0 - 5 //xmlhttprequest object end///////////////////// // set the pays of the user's ip (included in geonamesData.js) as selected pays // in the pays select box of the address form function setDefaultCountry() { var country = document.getElementById('country'); for (i=0; i < country.length; i++) { // the javascript geonamesData.js contains the payscode // of the userIp in the variable 'geonamesUserIpCountryCode' if (country[i].value == geonamesUserIpCountryCode) { // set the pays selectionfield country.selectedIndex = i; // afficher le champ cp document.getElementById('p_cp').style.display = 'block'; } } } // Affiche le champ cp en fonction d'un code pays function affiche() { // Visible pour les pays qui ont un code postal dans la base var country = document.getElementById('country'); if (country.value == "FR" || country.value == "US" || country.value == "AD" || country.value == "AR" || country.value == "AS" || country.value == "AT" || country.value == "AU" || country.value == "BD" || country.value == "BE" || country.value == "BG" || country.value == "CA" || country.value == "CH" || country.value == "CZ" || country.value == "DE" || country.value == "DK" || country.value == "ES" || country.value == "FI" || country.value == "FO" || country.value == "GB" || country.value == "GG" || country.value == "GL" || country.value == "GP" || country.value == "GU" || country.value == "GY" || country.value == "HR" || country.value == "HU" || country.value == "IM" || country.value == "IN" || country.value == "IS" || country.value == "IT" || country.value == "JE" || country.value == "LI" || country.value == "LK" || country.value == "LU" || country.value == "MC" || country.value == "MH" || country.value == "MK" || country.value == "MP" || country.value == "MQ" || country.value == "MX" || country.value == "NL" || country.value == "NO" || country.value == "NZ" || country.value == "PK" || country.value == "PL" || country.value == "PM" || country.value == "PR" || country.value == "PT" || country.value == "RE" || country.value == "SE" || country.value == "SI" || country.value == "SK" || country.value == "SM" || country.value == "SZ" || country.value == "TH" || country.value == "TR" || country.value == "VI" || country.value == "YT" || country.value == "ZA") { document.getElementById('p_cp').style.display = 'block'; // on vide le champ cp document.getElementById('cp').value = ''; // on vide le champ } else { document.getElementById('p_cp').style.display = 'none'; // on vide le champ cp document.getElementById('cp').value = ''; // on vide le champ return cptoci.sc(); } while (document.getElementById('city').options.length > 0) { document.getElementById('city').options[0] = null; } }