<% /****************************************************************************** * Copyright (c) 2000-2004 e-Deal * * e-Deal S.A. * 55 rue Brillat Savarin * 75013 Paris * France * * T: +33 (0)1 53 80 80 30 * F: +33 (0)1 73 01 69 77 * http://www.e-deal.com * * La diffusion de ce code source sous quelque forme que ce soit sans * l'autorisation de E-DEAL est interdite. * * Vous êtes autorisés à modifier ce code source uniquement pour votre usage * propre et sous réserve que les mentions de copyright demeurent intactes. * * Ce code est fourni en l'état. Aucune garantie d'aucune sorte, explicite ou * implicite n'est donnée. En aucun cas E-DEAL ne pourra être tenu pour * responsable des dommages pouvant résulter de l'utilisation de ce code * source. * ******************************************************************************/ %><%@page session="true" import="com.edeal.frontline.*,java.util.*"%><%@ page import="com.edeal.frontline.navigation.FlRequest" %><%@ taglib uri="http://www.e-deal.com/taglib/fl" prefix="fl" %> <% response.setContentType("application/x-javascript");%> <% final org.apache.commons.logging.Log logger = org.apache.commons.logging.LogFactory.getLog(getClass()); FlRequest flRequest = new FlRequest(request); FlContext context = flRequest.getContext(); DataDictionary dico = context.getDataDictionary(); String paysID=""; String formatTel=""; //le vecteur qui contient les id des pays Vector vectid = dico.getRefList(session, "Ctr", "Te1", true); //vecteur contient les id des pays et le format de tel dont ce dernier n'est pas nul Vector vect = dico.getRefList(session, "Ctr","Te3"); for (int i=0;i < vect.size(); i++) { Vector curCtr = (Vector) vect.elementAt(i); String id = (String) curCtr.elementAt(0); String fTel = (String) curCtr.elementAt(1); paysID += (i > 0? ", " : "") + "\"" + id +"\""; formatTel += (i > 0? ", " : "") + "\"" + fTel +"\""; } for (int i=0;i < vectid.size(); i++) { Vector curPays = (Vector) vectid.elementAt(i); String idP = (String) curPays.elementAt(0); //logger.debug("PAYS="+curPays); if (vectid.contains(idP)) {paysID = paysID;} else { if(!"".equals(paysID)){ paysID += "," + "\"" + idP +"\""; formatTel += "," + "\""+"\""; }else { paysID += "\"" + idP +"\""; formatTel += "\""+"\""; } } } %> var lesPays = new Array(<%= paysID %>); var lesFormatsTel = new Array(<%= formatTel%>); var leTelOrigOuverture = ''; var lePaysOuverture = ''; function doEpurePhone(phone) { epure = ""; for (i=0 ; i= "0" && phone.substring(i,i+1) <= "9") { epure += phone.substring(i,i+1); } } return epure; } function doEpurePhone2(phone) { epure = ""; for (i=0 ; i= "0" && phone.substring(i,i+1) <= "9") { epure += phone.substring(i,i+1); } } if (epure.length > 10) { epure = '0' + epure.substring(epure.length - 9,epure.length); } return epure; } function formatMasque(masque, entree) { // si pas de masque ou entree vide on rend ce qui est rentre if (masque == "" || entree == "") { return entree; } // Si conforme au masque en rend l'entree if (masque.length == entree.length) { k=i=0; while (k==0 && i < masque.length) { if ((masque.substring(i,i+1) != entree.substring(i,i+1)) && (masque.substring(i,i+1) != "?")) { k=1; } else { i++; } } if (k==0) { return entree; } } // on compte le nbr de ? dans le masque for (cpt=i=0 ; i < masque.length ; i++) { if (masque.substring(i,i+1) == "?") { cpt++; } } // on extrait les chiffres de la saisie epure = ""; for (i=0 ; i < entree.length ; i++) { if (entree.substring(i,i+1) >= "0" && entree.substring(i,i+1) <= "9") { epure += entree.substring(i,i+1); } } // Si le nbr de ? different du nbr de chiffres dans l'entree en rend null if (epure.length != cpt) { res = "Erreur:" + cpt.toString(); return res; } //on recupere le resultat result = ""; j = 0; for (i=0 ; i < masque.length ; i++) { if (masque.substring(i,i+1) == "?") { result += epure.substring(j,j+1); j++; } else { result += masque.substring(i,i+1); } } return result; } function doFormatTel(leChamp , leMsg, leChampPays) { if (!leChampPays) { return; } if (leChampPays.options) { nomPays = leChampPays.options[leChampPays.selectedIndex].value; } else { nomPays = leChampPays.value; } if (!nomPays || nomPays == '') { return; } var posPays = 0; //alert('nomPays ' + nomPays); while ((posPays < lesPays.length) && (lesPays[posPays] != nomPays)) { posPays++; } if(posPays < lesPays.length) { masque = lesFormatsTel[posPays]; //alert('masque ' + masque); //alert('leChamp.value ' + leChamp.value); res = formatMasque(masque , leChamp.value); //alert('res ' + res); if (res.indexOf("Erreur:") != -1) { window.status = leMsg + " Vous devez entrer " + res.substring(7, res.length) + " chiffres."; alert(leMsg + " Vous devez entrer " + res.substring(7, res.length) + " chiffres."); return false; } else { leChamp.value = res; window.status = ""; } } } function doFormatTel_(leChamp , leMsg, leChampPaysVal) { if (!leChampPaysVal) { return; } nomPays = leChampPaysVal; if (!nomPays || nomPays == '') { return; } var posPays = 0; while ((posPays < lesPays.length) && (lesPays[posPays] != nomPays)) { posPays++; } if(posPays < lesPays.length) { masque = lesFormatsTel[posPays]; res = formatMasque(masque , leChamp.value); if (res.indexOf("Erreur:") != -1) { window.status = leMsg + " Vous devez entrer " + res.substring(7, res.length) + " chiffres."; alert(leMsg + " Vous devez entrer " + res.substring(7, res.length) + " chiffres."); leChamp.style = "background-color: #FDCBCC;" leChamp.value = ''; return false; } else { leChamp.style.backgroundColor = "" leChamp.value = res; window.status = ""; } } } function getTelEpure(masque , entree) { // on extrait les chiffres de la saisie var epure = ""; for (i=0 ; i < entree.length ; i++) { var digit = entree.substring(i, i+1); if (digit >= "0" && digit <= "9") { epure += digit; } } // si pas de masque on rend le tel epure if (masque == "") { return epure; } // Si non conforme au masque en rend le tel epure if (masque.length == entree.length) { k = i = 0; while (k == 0 && i < masque.length) { if ((masque.substring(i,i+1) != entree.substring(i,i+1)) && (masque.substring(i,i+1) != "?")) { k=1; } else { i++; } } if (k != 0) { return epure; } } else { return epure; } // tel conforme au masque : var res = ""; for (i = 0 ; i < masque.length ; i++) { if (masque.substring(i,i+1) == "?") { res += entree.substring(i,i+1); } } return res; } function doEpureTel(leChamp , leChampOrig, leChampPays) { if (!leChampPays) { return; } if (leChampPays.options) { nomPays = leChampPays.options[leChampPays.selectedIndex].value; } else { nomPays = leChampPays.value; } if (!nomPays || nomPays == '') { return; } var posPays = 0; if (nomPays != "" ) { while ((posPays < lesPays.length) && (lesPays[posPays] != nomPays)) { posPays++; } masque = lesFormatsTel[posPays]; leChampOrig.value = getTelEpure(masque , leChamp.value); } }