%
/******************************************************************************
* 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);
}
}