package org.apache.jsp.js; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*; import com.edeal.frontline.*; import java.util.*; public final class checkFields_jsp extends org.apache.jasper.runtime.HttpJspBase implements org.apache.jasper.runtime.JspSourceDependent { private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory(); private static java.util.List _jspx_dependants; private javax.el.ExpressionFactory _el_expressionfactory; private org.apache.AnnotationProcessor _jsp_annotationprocessor; public Object getDependants() { return _jspx_dependants; } public void _jspInit() { _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory(); _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class.getName()); } public void _jspDestroy() { } public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException { PageContext pageContext = null; HttpSession session = null; ServletContext application = null; ServletConfig config = null; JspWriter out = null; Object page = this; JspWriter _jspx_out = null; PageContext _jspx_page_context = null; try { response.setContentType("text/html"); pageContext = _jspxFactory.getPageContext(this, request, response, null, true, 8192, true); _jspx_page_context = pageContext; application = pageContext.getServletContext(); config = pageContext.getServletConfig(); session = pageContext.getSession(); out = pageContext.getOut(); _jspx_out = out; /****************************************************************************** * 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. * * CVS Info for $RCSfile$ * * $Revision$ * $Author$ $Date$ ******************************************************************************/ out.write("\n"); out.write("// Ce fichier contient les fonctions de contrôle de saisie\n"); out.write("// \n"); out.write("// La fonction principale est checkField(-, -, -, -, -)\n"); final org.apache.commons.logging.Log logger = org.apache.commons.logging.LogFactory.getLog(getClass()); String contextPath = (String)session.getAttribute("contextPath"); FlContext context = null; if(contextPath != null) { context = Frontline.getContext(contextPath); } else { context = Frontline.getContext(request.getContextPath()); } DataDictionary dico = context.getDataDictionary(); if (context.isFullUnicode() || context.isDbOracle()) { response.setContentType("application/x-javascript; charset=UTF-8"); } else { response.setContentType("application/x-javascript; charset=ISO-8859-1"); } FlLocale locale = FlLocale.getInstance(session); out.write("\n"); out.write("\n"); out.write("\n"); out.write("//==================================================\n"); out.write("// Declaration des formats par défaut\n"); out.write("//==================================================\n"); out.write("\n"); out.write("var centuryLimit = 90;\n"); out.write("\n"); out.write("var separateurDecimal = \""); out.print( FlLocale.getInstance(session).getDecimalSeparator() ); out.write("\";\n"); out.write("var separateurMilliers = \""); out.print( FlLocale.getInstance(session).getGroupingSeparator() ); out.write("\";\n"); out.write("var dateFormatIn = \""); out.print( FlLocale.getInstance(session).getInputJavascriptDateFormat() ); out.write("\";\n"); out.write("var dateFormatOut = \""); out.print( FlLocale.getInstance(session).getOutputJavascriptDateFormat() ); out.write("\";\n"); out.write("var dateSeparator = \""); out.print( FlLocale.getInstance(session).getDateSeparator() ); out.write("\";\n"); out.write("var hourSeparator = \""); out.print( FlLocale.getInstance(session).getHourSeparator() ); out.write("\";\n"); out.write("\n"); out.write("//==================================================\n"); out.write("// tempStatus ecrit un message dans la barre d'état\n"); out.write("// et l'enlève automatiquement au bout de 4 sec\n"); out.write("//==================================================\n"); out.write("function tempStatus(message)\n"); out.write("{\n"); out.write("\twindow.status = message;\n"); out.write("\twindow.setTimeout(\"window.status=''\", 4000);\n"); out.write("}\n"); out.write("\n"); out.write("//==================================================\n"); out.write("// myReplace remplace une sous-chaine sans la \n"); out.write("// considérer comme une expression régulière regex\n"); out.write("//==================================================\n"); out.write("function myReplace(str, oldStr, newStr) {\n"); out.write("\treturn str.split(oldStr).join(newStr);\n"); out.write("}\n"); out.write("\n"); out.write("//==================================================\n"); out.write("// removeLeadingZeros enlève les 0 du début de la \n"); out.write("// chaine afin d'éviter qu'elle ne soit considérée\n"); out.write("// comme un entier en base 8 ou 16\n"); out.write("//==================================================\n"); out.write("function removeLeadingZeros(str) {\n"); out.write("\tif (str == '')\n"); out.write("\t\treturn str;\n"); out.write("\tvar i = 0;\n"); out.write("\twhile (i < str.length && str.substr(i , 1) == '0')\n"); out.write("\t\ti++;\n"); out.write("\tif (i == str.length)\n"); out.write("\t\treturn '0';\n"); out.write("\treturn str.substr(i);\n"); out.write("}\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("//==================================================\n"); out.write("// checkDate controle si une chaine (non vide) \n"); out.write("// peut être intertprétée en date étant donné\n"); out.write("// un format d'entrée Si c'est le cas, elle\n"); out.write("// elle rend la date suivant un format de retour,\n"); out.write("// sinon elle rend la chaine vide\n"); out.write("//==================================================\n"); out.write("function checkDate(strDate, srcFormat, dstFormat) {\n"); out.write("\n"); out.write("// Le format :\n"); out.write("// mm, MM, dd, DD, yy, yyyy\n"); out.write("\n"); out.write("//--------------------------------------------------\n"); out.write("// On verifie que le format d'entrée est acceptable\n"); out.write("//--------------------------------------------------\n"); out.write("\tvar srcFmt = srcFormat.split(dateSeparator);\n"); out.write("\tvar srcIndex = new Array(-1, -1, -1);\n"); out.write("\tvar i;\n"); out.write("\n"); out.write("\tif(srcFmt.length != 3) {\n"); out.write("\t\treturn '';\n"); out.write("\t}\n"); out.write("\n"); out.write("\tfor(i = 0; i < 3; i++) {\n"); out.write("\t\tif(srcFmt[i].toLowerCase() == 'dd') {\n"); out.write("\t\t\tsrcIndex[0] = i;\n"); out.write("\t\t} else if(srcFmt[i].toLowerCase() == 'mm') {\n"); out.write("\t\t\tsrcIndex[1] = i;\n"); out.write("\t\t} else if(srcFmt[i].toLowerCase() == 'yy' || srcFmt[i].toLowerCase() == 'yyyy') {\n"); out.write("\t\t\tsrcIndex[2] = i;\n"); out.write("\t\t} else {\n"); out.write("\t\t\treturn '';\n"); out.write("\t\t}\n"); out.write("\t}\n"); out.write("\tfor(i = 0; i < 3; i++) {\n"); out.write("\t\tif(srcIndex[i] == -1) return '';\n"); out.write("\t}\n"); out.write("\n"); out.write("//--------------------------------------------------\n"); out.write("// On verifie si le format de retour est acceptable\n"); out.write("//--------------------------------------------------\n"); out.write("\tvar dstIndex;\n"); out.write("\tvar dstFmt;\n"); out.write("\tif (!dstFormat || dstFormat == '') {\n"); out.write("\t\tdstFmt = srcFmt;\n"); out.write("\t\tdstIndex = srcIndex;\n"); out.write("\t} else {\n"); out.write("\t\t\n"); out.write("\t\tdstFmt = dstFormat.split(dateSeparator);\n"); out.write("\t\tdstIndex = new Array(-1, -1, -1);\n"); out.write("\n"); out.write("\t\tif(dstFmt.length != 3) return '';\n"); out.write("\n"); out.write("\t\tfor(i = 0; i < 3; i++) {\n"); out.write("\t\t\tif(dstFmt[i].toLowerCase() == 'dd') {\n"); out.write("\t\t\t\tdstIndex[0] = i;\n"); out.write("\t\t\t} else if(dstFmt[i].toLowerCase() == 'mm') {\n"); out.write("\t\t\t\tdstIndex[1] = i;\n"); out.write("\t\t\t} else if(dstFmt[i].toLowerCase() == 'yy' || dstFmt[i].toLowerCase() == 'yyyy') {\n"); out.write("\t\t\t\tdstIndex[2] = i;\n"); out.write("\t\t\t} else {\n"); out.write("\t\t\t\treturn '';\n"); out.write("\t\t\t}\n"); out.write("\t\t}\n"); out.write("\t\tfor(i = 0; i < 3; i++) {\n"); out.write("\t\t\tif(dstIndex[i] == -1) return '';\n"); out.write("\t\t}\n"); out.write("\t}\n"); out.write("\n"); out.write("//--------------------------------------------------\n"); out.write("// Les formats sont OK, on vérifie la valeur donnée\n"); out.write("//--------------------------------------------------\n"); out.write("\tvar majFmt = new Array('DD', 'MM', 'YY');\n"); out.write("\tvar unsortedDate = strDate.split(dateSeparator);\n"); out.write("\t\n"); out.write("\tif (unsortedDate.length != 3)\n"); out.write("\t\treturn '';\n"); out.write("\t\n"); out.write("\tfor(i = 0; i < 3; i++) {\n"); out.write("//\t\tif(isNaN(unsortedDate[i])) {\n"); out.write("\t\tif(isNaN(removeLeadingZeros(unsortedDate[i]))) {\n"); out.write("\t\t\treturn '';\n"); out.write("\t\t}\n"); out.write("\t}\n"); out.write("\n"); out.write("\tvar sortDate = new Array(3);\n"); out.write("\n"); out.write("\tfor(i = 0; i < 3; i++) {\n"); out.write("//\t\tsortDate[i] = parseInt(unsortedDate[srcIndex[i]]);\n"); out.write("\t\tsortDate[i] = parseInt(removeLeadingZeros(unsortedDate[srcIndex[i]]));\n"); out.write("\t\t// modif\n"); out.write("\t\t// rajouté par RaF pour 赩ter que dd/mm/ se transforme en dd/mm/NaN\n"); out.write("\t\tif (isNaN(sortDate[i])) {\n"); out.write("\t\t\treturn '';\n"); out.write("\t\t}\n"); out.write("\t\t// fin modif\n"); out.write("\t}\n"); out.write("\n"); out.write("\t\t// vérification du mois\n"); out.write("\tif(sortDate[1] < 1 || sortDate[1] > 12) {\n"); out.write("\t\treturn '';\n"); out.write("\t}\n"); out.write("\n"); out.write("\t\t// passage à 4 chiffres de l'année\n"); out.write("\tif(sortDate[2] < 100) {\n"); out.write("\t\tif(sortDate[2] > centuryLimit) {\n"); out.write("\t\t\tsortDate[2] += 1900;\n"); out.write("\t\t} else {\n"); out.write("\t\t\tsortDate[2] += 2000;\n"); out.write("\t\t}\n"); out.write("\t}\n"); out.write("\n"); out.write("\t\t// vérification du jours\n"); out.write("\tvar maxDays;\n"); out.write("\tswitch (sortDate[1]) {\n"); out.write("\t\tcase 2:\n"); out.write("\t\t\tif((sortDate[2] % 4) == 0 && (!((sortDate[2] % 100) == 0) || (sortDate[2] % 400) == 0)) {\n"); out.write("\t\t\t\tmaxDays = 29;\n"); out.write("\t\t\t} else {\n"); out.write("\t\t\t\tmaxDays = 28;\n"); out.write("\t\t\t}\n"); out.write("\t\t\tbreak;\n"); out.write("\t\tcase 4:\n"); out.write("\t\tcase 6:\n"); out.write("\t\tcase 9:\n"); out.write("\t\tcase 11:\n"); out.write("\t\t\tmaxDays = 30;\n"); out.write("\t\tdefault:\n"); out.write("\t\t\tmaxDays = 31;\n"); out.write("\t}\n"); out.write("\n"); out.write("\tif(sortDate[0] < 1 || sortDate[0] > maxDays) return '';\n"); out.write("\n"); out.write("\n"); out.write("//--------------------------------------------------\n"); out.write("// La valeur donnée est OK, \n"); out.write("// on la rend selon le format de retour\n"); out.write("//--------------------------------------------------\n"); out.write("\tfor(i = 0; i < 3; i++) {\n"); out.write("\t\tif(dstFmt[dstIndex[i]].substring(0, 2) == majFmt[i]) {\n"); out.write("\t\t\tunsortedDate[dstIndex[i]] = '0000' + sortDate[i].toString();\n"); out.write("\t\t\tunsortedDate[dstIndex[i]] = unsortedDate[dstIndex[i]].substring(unsortedDate[dstIndex[i]].length - dstFmt[dstIndex[i]].length);\n"); out.write("\t\t} else {\n"); out.write("\t\t\tunsortedDate[dstIndex[i]] = sortDate[i].toString();\n"); out.write("\t\t\tif(unsortedDate[dstIndex[i]].length > dstFmt[dstIndex[i]].length) {\n"); out.write("\t\t\t\tunsortedDate[dstIndex[i]] = parseInt(unsortedDate[dstIndex[i]].substring(unsortedDate[dstIndex[i]].length - dstFmt[dstIndex[i]].length)).toString();\n"); out.write("\t\t\t}\n"); out.write("\t\t}\n"); out.write("\t}\n"); out.write("\t\n"); out.write("\treturn unsortedDate.join(dateSeparator);\n"); out.write("}\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("//==================================================\n"); out.write("// checkHour verifie si une chaine peut être\n"); out.write("// inteprétée en une heure. Le second paramètre\n"); out.write("// est le séparateur des heures / minutes\n"); out.write("//==================================================\n"); out.write("function checkHour(strHour, key) {\n"); out.write("\tvar dstHour = new Array(0, 0);\n"); out.write("\tvar srcHour = strHour.split(key);\n"); out.write("\n"); out.write("\tif(srcHour.length == 2) {\n"); out.write("\t\tfor(i = 0; i < 2; i++) {\n"); out.write("\t\t\tdstHour[i] = srcHour[i];\n"); out.write("\t\t}\n"); out.write("\t} else {\n"); out.write("\t\tif(strHour.length <= 2) {\n"); out.write("\t\t\tdstHour[0] = strHour;\n"); out.write("\t\t} else if(strHour.length <= 4) {\n"); out.write("\t\t\tdstHour[0] = strHour.substring(0, strHour.length - 2);\n"); out.write("\t\t\tdstHour[1] = strHour.substring(strHour.length - 2);\n"); out.write("\t\t} else {\n"); out.write("\t\t\treturn '';\n"); out.write("\t\t}\n"); out.write("\t}\n"); out.write("\n"); out.write("\tvar hourLimit = new Array(23, 59);\n"); out.write("\tfor(i = 0; i < 2; i++) {\n"); out.write("\t\tif(isNaN(dstHour[i])) {\n"); out.write("\t\t\treturn '';\n"); out.write("\t\t} else if(parseInt(dstHour[i]) < 0 || parseInt(dstHour[i]) > hourLimit[i]) {\n"); out.write("\t\t\treturn '';\n"); out.write("\t\t} else {\n"); out.write("\t\t\tdstHour[i] = '00' + dstHour[i];\n"); out.write("\t\t\tdstHour[i] = dstHour[i].substring(dstHour[i].length - 2);\n"); out.write("\t\t}\n"); out.write("\t}\n"); out.write("\treturn dstHour.join(key);\n"); out.write("}\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("//==================================================\n"); out.write("// checkEmail contrôle si une chaine peut être \n"); out.write("// syntaxiquement considérée comme une adresse\n"); out.write("// e-mail, si c'est le cas elle rend la valeur\n"); out.write("// d'entrée sinon elle rend la chaine vide.\n"); out.write("//==================================================\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write(" -->\n"); out.write("\n"); out.write("\n"); out.write("function checkEmail(laValeur) {\n"); out.write("\tvar re = /^([\\w-]+(?:\\.[\\w-]+)*)@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,32}(?:\\.[a-z]{2,32})?)$/i;\n"); out.write("\t\n"); out.write(" if (re.test(laValeur))\n"); out.write("\t\treturn laValeur;\n"); out.write("\telse\n"); out.write("\t\treturn \"\";\n"); out.write("}\n"); out.write("\n"); out.write("\n"); out.write("//==================================================\n"); out.write("// checkInteger essaie de convertir une chaine en \n"); out.write("// un nombre entier; si elle y arrive, elle rend\n"); out.write("// une chaine qu'est le nombre trouvé reformatté\n"); out.write("// avec l'éventuel séparateur de milliers.\n"); out.write("//==================================================\n"); out.write("function checkInteger(laValeur , sepMil) {\n"); out.write("\tvar sep=separateurMilliers; var valTxt; var i; var j; var c; var res=\"\"; var neg=0;\n"); out.write("\t\n"); out.write("\tif (sepMil)\n"); out.write("\tsep = sepMil;\n"); out.write("\t\n"); out.write("\tvalTxt = removeLeadingZeros(laValeur);\n"); out.write("\tvalTxt = myReplace(valTxt, \" \", \"\");\n"); out.write("\tvalTxt = myReplace(valTxt, sep, \"\");\n"); out.write("\t\n"); out.write("\tif (valTxt == null || valTxt == '') {\n"); out.write("\t\tvalTxt = '0';\n"); out.write("\t}\n"); out.write("\t\n"); out.write("\tfor (i=0 ; i0)\n"); out.write("\t\t\tif (c<\"0\" || c>\"9\")\n"); out.write("\t\t\t\treturn \"\";\n"); out.write("\t\t\telse if ((c<\"0\" || c>\"9\") && c!=\"-\") \n"); out.write("\t\t\t\treturn \"\";\n"); out.write("\t}\n"); out.write("\n"); out.write("\tnVal = parseInt(valTxt); \n"); out.write("\tif (isNaN(nVal))\n"); out.write("\t return \"\";\n"); out.write("\n"); out.write("\tvalTxt = nVal.toString();\n"); out.write(" \n"); out.write("\tif (valTxt.substr(0 , 1) == \"-\") {\n"); out.write("\t\tneg = 1;\n"); out.write("\t\tvalTxt = valTxt.substr(1);\n"); out.write("\t}\n"); out.write("\n"); out.write("\tres=\"\";\n"); out.write("\tfor (j=0 , i=valTxt.length-1 ; i>=0 ; i-- , j++) {\n"); out.write("\t\tif (j!=0 && j%3 == 0)\n"); out.write("\t\t\tres = sep + res;\n"); out.write("\t\tres = valTxt.substr(i , 1) + res;\n"); out.write("\t}\n"); out.write("\tif (neg == 1)\n"); out.write("\t\tres = \"-\" + res;\n"); out.write(" \t\n"); out.write("\treturn res;\n"); out.write("}\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("//==================================================\n"); out.write("// checkFloat essaie de convertir une chaine en\n"); out.write("// un nombre réel; si elle y arrive, elle rend\n"); out.write("// une chaine qu'est le nombre trouvé reformatté\n"); out.write("// avec le séparateur de décimaux et l'éventuel \n"); out.write("// séparateur de milliers. \n"); out.write("//==================================================\n"); out.write("function checkFloat(laValeur , sepDeci, sepMil) {\n"); out.write(" var sep=separateurMilliers; var sepDec=separateurDecimal; var valTxt; var i; var j; var c; var res=\"\"; var neg=0; var pos; var sepDec;\n"); out.write(" \n"); out.write(" if (sepMil)\n"); out.write(" \tsep = sepMil;\n"); out.write(" \t\n"); out.write(" if (sepDeci)\n"); out.write(" \tsepDec = sepDeci;\n"); out.write("\n"); out.write(" if (laValeur != '0' && laValeur != ('0' + sepDec + '0')) {\n"); out.write(" \t\tvalTxt = removeLeadingZeros(laValeur);\n"); out.write(" } else {\n"); out.write(" \t\tvalTxt = laValeur;\n"); out.write(" }\n"); out.write(" \n"); out.write(" valTxt = myReplace(valTxt, \" \", \"\");\n"); out.write(" valTxt = myReplace(valTxt, sep, \"\");\n"); out.write(" valTxt = myReplace(valTxt , sepDec , \".\");\n"); out.write(" \n"); out.write("\tfor (i=0 ; i0)\n"); out.write("\t\t\tif ((c<\"0\" || c>\"9\") && c!=\".\") \n"); out.write("\t\t\t\treturn \"\";\n"); out.write("\t\t\telse if ((c<\"0\" || c>\"9\") && c!=\".\" && c!=\"-\")\n"); out.write("\t\t\t\treturn \"\";\n"); out.write("\t}\n"); out.write("\n"); out.write(" if ( valTxt.indexOf(\".\") > -1 && valTxt.lastIndexOf(\".\") != valTxt.indexOf(\".\") )\n"); out.write(" \treturn \"\";\n"); out.write(" \n"); out.write(" nVal = parseFloat(valTxt);\n"); out.write(" if (isNaN(nVal))\n"); out.write(" return \"\";\n"); out.write("\n"); out.write("\n"); out.write(" valTxt = nVal.toString();\n"); out.write(" \n"); out.write(" if (valTxt.substr(0 , 1) == \"-\") {\n"); out.write(" \tneg = 1;\n"); out.write(" \tvalTxt = valTxt.substr(1);\n"); out.write(" }\n"); out.write(" \n"); out.write(" pos = valTxt.indexOf(\".\");\n"); out.write(" if (pos == -1) {\n"); out.write(" \tpartieEntiere = valTxt;\n"); out.write(" \tpartieDecimale = \"\";\n"); out.write(" } else if (pos == 0) {\n"); out.write(" \tpartieEntiere = \"0\";\n"); out.write(" \tpartieDecimale = valTxt.substr(1);\n"); out.write(" } else {\n"); out.write(" \tpartieEntiere = valTxt.substr(0, pos);\n"); out.write(" \tpartieDecimale = valTxt.substr(pos+1);\n"); out.write(" }\n"); out.write(" \n"); out.write(" res=\"\";\n"); out.write(" for (j=0 , i=partieEntiere.length-1 ; i>=0 ; i-- , j++) {\n"); out.write(" \tif (j!=0 && j%3 == 0)\n"); out.write(" \t\tres = sep + res;\n"); out.write(" \tres = partieEntiere.substr(i , 1) + res;\n"); out.write(" }\n"); out.write(" \n"); out.write(" if (neg == 1)\n"); out.write(" \tres = \"-\" + res;\n"); out.write(" \t\n"); out.write(" if (partieDecimale != \"\")\n"); out.write(" \tres = res + sepDec + partieDecimale;\n"); out.write(" \t\n"); out.write(" return res;\n"); out.write("}\n"); out.write("\n"); out.write("//==================================================\n"); out.write("// checkString permet d'appliquer un format sur une\n"); out.write("// chaîne de caractères. Le format est spécifié \n"); out.write("// dans le second paramètre. Il vaut 'lower', \n"); out.write("// 'upper', 'capitalize' ou 'remaccents' (to remove accents).\n"); out.write("//==================================================\n"); out.write("function checkString(val, op) {\n"); out.write("\tif (val == '') {\n"); out.write("\t\treturn '';\n"); out.write("\t}\n"); out.write("\tif (op.toLowerCase() == 'upper') {\n"); out.write("\t\treturn val.toUpperCase();\n"); out.write("\t} else if (op.toLowerCase() == 'lower') {\n"); out.write("\t\treturn val.toLowerCase();\n"); out.write("\t} else if (op.toLowerCase() == 'capitalize') {\n"); out.write("\t\tresult = val.substring(0,1).toUpperCase();\n"); out.write("\t\tfor (i=1 ; i -1) {\n"); out.write("\t\t\tresult = result.replace('à', 'a');\n"); out.write("\t\t}\n"); out.write("\t\twhile(result.indexOf('â') > -1) {\n"); out.write("\t\t\tresult = result.replace('â', 'a');\n"); out.write("\t\t}\n"); out.write("\t\twhile(result.indexOf('ä') > -1) {\n"); out.write("\t\t\tresult = result.replace('ä', 'a');\n"); out.write("\t\t}\n"); out.write("\t\twhile(result.indexOf('ç') > -1) {\n"); out.write("\t\t\tresult = result.replace('ç', 'c');\n"); out.write("\t\t}\n"); out.write("\t\twhile(result.indexOf('é') > -1) {\n"); out.write("\t\t\tresult = result.replace('é', 'e');\n"); out.write("\t\t}\n"); out.write("\t\twhile(result.indexOf('è') > -1) {\n"); out.write("\t\t\tresult = result.replace('è', 'e');\n"); out.write("\t\t}\n"); out.write("\t\twhile(result.indexOf('ê') > -1) {\n"); out.write("\t\t\tresult = result.replace('ê', 'e');\n"); out.write("\t\t}\n"); out.write("\t\twhile(result.indexOf('ë') > -1) {\n"); out.write("\t\t\tresult = result.replace('ë', 'e');\n"); out.write("\t\t}\n"); out.write("\t\twhile(result.indexOf('ï') > -1) {\n"); out.write("\t\t\tresult = result.replace('ï', 'i');\n"); out.write("\t\t}\n"); out.write("\t\twhile(result.indexOf('î') > -1) {\n"); out.write("\t\t\tresult = result.replace('î', 'i');\n"); out.write("\t\t}\n"); out.write("\t\twhile(result.indexOf('ô') > -1) {\n"); out.write("\t\t\tresult = result.replace('ô', 'o');\n"); out.write("\t\t}\n"); out.write("\t\twhile(result.indexOf('ö') > -1) {\n"); out.write("\t\t\tresult = result.replace('ö', 'o');\n"); out.write("\t\t}\n"); out.write("\t\twhile(result.indexOf('ù') > -1) {\n"); out.write("\t\t\tresult = result.replace('ù', 'u');\n"); out.write("\t\t}\n"); out.write("\t\twhile(result.indexOf('û') > -1) {\n"); out.write("\t\t\tresult = result.replace('û', 'u');\n"); out.write("\t\t}\n"); out.write("\t\twhile(result.indexOf('ü') > -1) {\n"); out.write("\t\t\tresult = result.replace('ü', 'u');\n"); out.write("\t\t}\n"); out.write("\t\treturn result;\n"); out.write("\t} else {\n"); out.write("\t\treturn val;\n"); out.write("\t}\n"); out.write("}\n"); out.write("\n"); out.write("function checkUrl(val) {\n"); out.write("\tif (val == '') {\n"); out.write("\t\treturn '';\n"); out.write("\t}\n"); out.write("\tif (val.substring(0,7).toLowerCase() == 'http://'.toLowerCase()) {\n"); out.write("\t\tif (val.substring(7,8) !='' ){\n"); out.write("\t\t\treturn true;\n"); out.write("\t\t}else {\n"); out.write("\t\t\treturn false;\n"); out.write("\t\t}\n"); out.write("\t} else if (val.substring(0,6).toLowerCase() == 'ftp://'.toLowerCase()) {\n"); out.write("\t\tif (val.substring(6,7) !='' ){\n"); out.write("\t\t\treturn true;\n"); out.write("\t\t}else {\n"); out.write("\t\t\treturn false;\n"); out.write("\t\t}\n"); out.write("\t} else if (val.substring(0,8).toLowerCase() == 'https://'.toLowerCase()) {\n"); out.write("\t\tif (val.substring(8,9) !='' ){\n"); out.write("\t\t\treturn true;\n"); out.write("\t\t}else {\n"); out.write("\t\t\treturn false;\n"); out.write("\t\t}\n"); out.write("\t} else if (val.substring(0,4).toLowerCase() == 'www.'.toLowerCase()) {\n"); out.write("\t\tif (val.substring(4,5) !='' ){\n"); out.write("\t\t\treturn true;\n"); out.write("\t\t}else {\n"); out.write("\t\t\treturn false;\n"); out.write("\t\t}\n"); out.write("\t} else {\n"); out.write("\t\treturn false\n"); out.write("\t}\n"); out.write("}\n"); out.write("// checkField est la fonction qui regroupe tous les tests\n"); out.write("function checkField(laValeur , leType , estOblig , format1 , format2) {\n"); out.write(" if (laValeur == \"\")\n"); out.write(" if (estOblig)\n"); out.write(" return false;\n"); out.write(" else\n"); out.write(" return true;\n"); out.write("\n"); out.write("\n"); out.write(" if (leType.toLowerCase() == \"date\")\n"); out.write(" return checkDate(laValeur , format1 , format2)\n"); out.write("\n"); out.write(" if (leType.toLowerCase() == \"hour\")\n"); out.write(" return checkHour(laValeur , format1);\n"); out.write("\n"); out.write(" if (leType.toLowerCase() == \"email\")\n"); out.write(" return checkEmail(laValeur);\n"); out.write("\n"); out.write(" if (leType.toLowerCase() == \"integer\")\n"); out.write(" return checkInteger(laValeur , format1);\n"); out.write("\n"); out.write(" if (leType.toLowerCase() == \"float\")\n"); out.write(" return checkFloat(laValeur , format1 , format2);\n"); out.write(" \n"); out.write(" if (leType.toLowerCase() == \"string\")\n"); out.write(" return checkString(laValeur , format1);\n"); out.write("\n"); out.write(" return laValeur;\n"); out.write("}\n"); out.write("\n"); out.write("//==================================================\n"); out.write("// toSysNum prend en premier paramètre une valeur\n"); out.write("// numérique en chaine, en second paramètre le\n"); out.write("// séparateur de décimaux, en 3eme paramètre le\n"); out.write("// séparateur de milliers; et rend une chaine\n"); out.write("// prête pour un parse.\n"); out.write("//==================================================\n"); out.write("function toSysNum(valeur , sepDeci , sepMil) {\n"); out.write("\tvar sep=separateurMilliers; var sepDec=separateurDecimal;\n"); out.write("\t\n"); out.write("\tif (sepMil)\n"); out.write(" \t\tsep = sepMil;\n"); out.write(" \t\n"); out.write(" \tif (sepDeci)\n"); out.write(" \t\tsepDec = sepDeci;\n"); out.write(" \t\n"); out.write("\tvar res;\n"); out.write("\tres = myReplace(valeur , \" \" , \"\");\n"); out.write("\tres = myReplace(res , sep , \"\");\n"); out.write("\tres = myReplace(res , sepDec , \".\");\n"); out.write("\treturn res;\n"); out.write("}\n"); out.write("\n"); out.write("//==================================================\n"); out.write("// prepNumsForSubmit prend en premier paramètre le\n"); out.write("// séparateur de décimaux, en second paramètre le\n"); out.write("// séparateur de milliers; les paramètres suivants\n"); out.write("// étant les 'Field' à reformatter.\n"); out.write("//==================================================\n"); out.write("function prepNumsForSubmit() {\n"); out.write("\targs = prepNumsForSubmit.arguments;\t\n"); out.write("\tsepDec = args[0];\n"); out.write("\tsepMil = args[1];\n"); out.write("\t\n"); out.write("\tfor (i=2 ; i0 si (date1, hour1) > (date2, hour2)\n"); out.write("//\t\t<0 si (date1, hour1) < (date2, hour2)\n"); out.write("//=============================================================\n"); out.write("function compareDate(date1, hour1, date2, hour2, formatDate, sepHeure) {\n"); out.write("\tfDate = dateFormatOut;\n"); out.write("\tsep = hourSeparator;\n"); out.write("\t\n"); out.write("\tif (formatDate) {\n"); out.write("\t\tfDate = formatDate;\n"); out.write("\t}\n"); out.write("\tif (sepHeure) {\n"); out.write("\t\tsep = sepHeure;\n"); out.write("\t}\n"); out.write("\tvar d1;\n"); out.write("\tvar h1;\n"); out.write("\tvar d2;\n"); out.write("\tvar h2;\t\n"); out.write("\tif (date1) {\n"); out.write("\t\td1 = date1;\n"); out.write("\t} else {\n"); out.write("\t\td1 = checkField(\"01/01/1970\", \"date\", false, dateFormatOut, fDate);\n"); out.write("\t}\n"); out.write("\tif (hour1) {\n"); out.write("\t\th1 = hour1;\n"); out.write("\t} else {\n"); out.write("\t\th1 = checkField(\"00:00\", \"hour\", false, hourSeparator, sep);\n"); out.write("\t}\n"); out.write("\tif (date2) {\n"); out.write("\t\td2 = date2;\n"); out.write("\t} else {\n"); out.write("\t\td2 = checkField(\"01/01/1970\", \"date\", false, dateFormatOut, fDate);\n"); out.write("\t}\n"); out.write("\tif (hour2) {\n"); out.write("\t\th2 = hour2;\n"); out.write("\t} else {\n"); out.write("\t\th2 = checkField(\"00:00\", \"hour\", false, hourSeparator, sep);\n"); out.write("\t}\n"); out.write("\t\n"); out.write("\t//controle\n"); out.write("\t\n"); out.write("\ts1 = checkHour(h1 , sep);\n"); out.write("\ts2 = checkDate(d1, fDate, 'MM/DD/yyyy');\n"); out.write("\t\n"); out.write("\ts3 = checkHour( h2 , sep);\n"); out.write("\ts4 = checkDate(d2, fDate, 'MM/DD/yyyy');\n"); out.write("\t\n"); out.write("\tstartTime = new Date(s2.concat(\" \").concat(s1));\n"); out.write("\tendTime = new Date(s4.concat(\" \").concat(s3));\n"); out.write("\t\n"); out.write("\tmillidiff = startTime - endTime;\n"); out.write("\n"); out.write("\treturn millidiff;\n"); out.write("}\n"); /****************************************************************************** * CVS Log File * * $Log$ * Revision 1.13 2010-09-14 16:41:52 jeanseb * allow email to have 4 chars extension * * Revision 1.12 2010/02/17 10:40:44 jeanseb * erroneous chars * * Revision 1.11 2009/10/29 09:15:35 jeanseb * bug fix: if Oracle, the js has to be considered as UTF8 * * Revision 1.10 2008/03/25 14:23:16 brian * On accepte la valeur '0' (avant on la remplace avec '') * * Revision 1.9 2008/01/25 18:20:01 brian * Fixed bug where integer zeros where getting cleared out as invalid * * Revision 1.8 2008/01/23 19:36:51 sali * fix bug on compare date * * Revision 1.7 2008/01/07 13:32:58 nomar * bug CIBLAGE V2:PreNumsForSubmit() * * Revision 1.6 2007/07/06 17:40:45 sali * correction bug 636: compareDate with locale * * Revision 1.5 2007/05/22 15:02:23 nomar * log system (Phase1 pour *.jsp) * * Revision 1.4 2006/11/16 21:18:57 omourad * adding date separator * * Revision 1.3 2005/10/14 12:35:19 raphael * utilisation du sŽparateur d'heure de la locale correction des accents * * Revision 1.2 2005/08/24 07:50:08 raphael * dŽsactivation de prepNUmForSubmit et de prepAutoNumsForSubmit * * Revision 1.1 2005/06/07 09:02:14 raphael * version initiale * * Revision 1.2 2005/02/28 19:07:09 imad * Fixed thousands separator bug * * Revision 1.1 2004/07/23 18:20:32 brian * Initial Revision * *****************************************************************************/ out.write('\n'); } catch (Throwable t) { if (!(t instanceof SkipPageException)){ out = _jspx_out; if (out != null && out.getBufferSize() != 0) try { out.clearBuffer(); } catch (java.io.IOException e) {} if (_jspx_page_context != null) _jspx_page_context.handlePageException(t); else log(t.getMessage(), t); } } finally { _jspxFactory.releasePageContext(_jspx_page_context); } } }