1C!org/apache/jsp/js/edit_005fjs_jsp%org/apache/jasper/runtime/HttpJspBase,org/apache/jasper/runtime/JspSourceDependent _jspxFactoryLjavax/servlet/jsp/JspFactory;_jspx_dependantsLjava/util/List;2_005fjspx_005ftagPool_005ffl_005fwebapp_005fnobody*Lorg/apache/jasper/runtime/TagHandlerPool;_el_expressionfactoryLjavax/el/ExpressionFactory;_jsp_annotationprocessor Lorg/apache/AnnotationProcessor;()VCode javax/servlet/jsp/JspFactory getDefaultFactory ()Ljavax/servlet/jsp/JspFactory;  java/util/ArrayList  !(I)V # %/js/presentField.js ')(java/util/List *+add(Ljava/lang/Object;)Z- /js/utils.js//js/checkFields.jsp1/js/calendar.jsp3/WEB-INF/taglib.tldLineNumberTableLocalVariableTable 7 this#Lorg/apache/jsp/js/edit_005fjs_jsp; getDependants()Ljava/lang/Object;_jspInit > ?@getServletConfig()Ljavax/servlet/ServletConfig; BDC(org/apache/jasper/runtime/TagHandlerPool EFgetTagHandlerPoolI(Ljavax/servlet/ServletConfig;)Lorg/apache/jasper/runtime/TagHandlerPool; H JLKjavax/servlet/ServletConfig MNgetServletContext ()Ljavax/servlet/ServletContext; P QRgetJspApplicationContextI(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext; TVU'javax/servlet/jsp/JspApplicationContext WXgetExpressionFactory()Ljavax/el/ExpressionFactory; Z \org/apache/AnnotationProcessor ^`_java/lang/Class abgetName()Ljava/lang/String; dfejavax/servlet/ServletContext gh getAttribute&(Ljava/lang/String;)Ljava/lang/Object; j  _jspDestroy Bm nrelease _jspServiceR(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V Exceptionssjava/io/IOExceptionujavax/servlet/ServletExceptionwtext/html;charset=UTF-8 y{z&javax/servlet/http/HttpServletResponse |}setContentType(Ljava/lang/String;)V  getPageContext(Ljavax/servlet/Servlet;Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/String;ZIZ)Ljavax/servlet/jsp/PageContext; Ljavax/servlet/jsp/PageContext >  getSession"()Ljavax/servlet/http/HttpSession; getOut()Ljavax/servlet/jsp/JspWriter; javax/servlet/jsp/JspWriter !writeP/****************************************************************************** }" * Copyright (c) 2000-2008 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  * F * 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 Q * propre et sous r�serve que les mentions de copyright demeurent intactes. S * Ce code est fourni en l'�tat. Aucune garantie d'aucune sorte, explicite ou R * implicite n'est donn�e. En aucun cas E-DEAL ne pourra �tre tenu pour N * responsable des dommages pouvant r�sulter de l'utilisation de ce code  * source. Q ******************************************************************************/  function presentFieldsValue() { ( var elem = document.forms[0].elements;  var sep = "|"; . if (document.forms[0].$$multivalSeparator) { 5 sep = document.forms[0].$$multivalSeparator.value;  }  " if (typeof(Utils) == "object") {  for (i=0;i-1; j--);  if (j == -1)  {  myTab[myTab.length] = name;  } H document.forms[0].elements["$$presentFields"].value = myTab.join(sep); } " * Copyright (c) 2000-2011 e-Deal /** < * Remove all selected items from a select multiple object. d * fldName specified an hidden input containing list the values separated by '$$multivalSeparator'. d * The name of the select multiple element is 'lbl' + fldName. If not exist, it is just fldName and B * the string representation of the values list doesn't be store. 0 * @param fldName name of the field (required). D * @param frmName name of the form (optional, default is forms[0]).  */  .function unselectMultiple(fldName, frmName) {   var f = null;  var i;  if(frmName) {  f = document.forms[frmName];  } else {  f = document.forms[0];  if(!f) return; + var lblFld = f.elements['lbl' + fldName]; $ var realFld = f.elements[fldName]; n var multivalSeparator = (f.elements['$$multivalSeparator'] ? f.elements['$$multivalSeparator'].value : '|');  * var usedFld = lblFld ? lblFld : realFld; ". if(usedFld && usedFld.selectedIndex != -1) { $ if(lblFld) { &; var vectValue = realFld.value.split(multivalSeparator); (5 for(i = lblFld.options.length - 1; i >= 0; i--) { *( fldValue = lblFld.options[i].value; , if(fldValue != '_blank') { .& if(lblFld.options[i].selected) { 0 lblFld.options[i] = null; 2 vectValue[i] = null; 4 } 6 } 8 realFld.value = ''; :2 for(i = 0, j = 0; i < vectValue.length; i++) { <g realFld.value += (vectValue[i] == null ? '' : (j++ == 0 ? '' : multivalSeparator) + vectValue[i]); > } else { @6 for(i = realFld.options.length - 1; i >= 0; i--) { B) fldValue = realFld.options[i].value; D' if(realFld.options[i].selected) { F! realFld.options[i] = null; H1 * Convert money (in String) in another currency JG * Conversion can be only from a euro-zone currency to euro or reverse L * Symbols : N * frf : Franc francais P * dem : Deutsch mark R * itl : Lire italienne T * iep : Livre irlandaise V * esp : Peseta espagnole X * pte : Escudo portugais Z * nlg : Florin hollandais \ * fim : Mark finlandais ^ * bef : Franc belge ` * luf : Franc luxembourgeois b * ats : Shilling autrichien d * eur : Euro f h(function convert(money, curr1, curr2) { j if (money == '') { l return ''; n var value = parseFloat(money); p if (isNaN(value)) { r var convVal; tE if (curr1.toLowerCase() == 'frf' && curr2.toLowerCase() == 'eur') { v' // conversion franc francais -> euro x0 convVal = (100 *parseFloat(value)) / 6.55957; zL } else if (curr1.toLowerCase() == 'eur' && curr2.toLowerCase() == 'frf') { |' // conversion euro -> franc francais ~0 convVal = (100 *parseFloat(value)) * 6.55957; L } else if (curr1.toLowerCase() == 'dem' && curr2.toLowerCase() == 'eur') { ) // conversion mark (Allemagne) -> euro 0 convVal = (100 *parseFloat(value)) / 1.95583; L } else if (curr1.toLowerCase() == 'eur' && curr2.toLowerCase() == 'dem') { ) // conversion euro -> mark (Allemagne) 0 convVal = (100 *parseFloat(value)) * 1.95583; L } else if (curr1.toLowerCase() == 'itl' && curr2.toLowerCase() == 'eur') { & // conversion lire (Italie) -> euro 0 convVal = (100 *parseFloat(value)) / 1936.27; L } else if (curr1.toLowerCase() == 'eur' && curr2.toLowerCase() == 'itl') { & // conversion euro -> lire (Italie) 0 convVal = (100 *parseFloat(value)) * 1936.27; L } else if (curr1.toLowerCase() == 'iep' && curr2.toLowerCase() == 'eur') { ) // conversion livre irlandaise -> euro 1 convVal = (100 *parseFloat(value)) / 0.787564; L } else if (curr1.toLowerCase() == 'eur' && curr2.toLowerCase() == 'iep') { ) // conversion euro -> livre irlandaise 1 convVal = (100 *parseFloat(value)) * 0.787564; L } else if (curr1.toLowerCase() == 'esp' && curr2.toLowerCase() == 'eur') { ) // conversion peseta (Espagne) -> euro 0 convVal = (100 *parseFloat(value)) / 166.386; L } else if (curr1.toLowerCase() == 'eur' && curr2.toLowerCase() == 'esp') { ) // conversion euro -> peseta (Espagne) 0 convVal = (100 *parseFloat(value)) * 166.386; L } else if (curr1.toLowerCase() == 'pte' && curr2.toLowerCase() == 'eur') { * // conversion escudo (Portugal) -> euro 0 convVal = (100 *parseFloat(value)) / 200.482; L } else if (curr1.toLowerCase() == 'eur' && curr2.toLowerCase() == 'pte') { * // conversion euro -> escudo (Portugal) 0 convVal = (100 *parseFloat(value)) * 200.482; L } else if (curr1.toLowerCase() == 'nlg' && curr2.toLowerCase() == 'eur') { * // conversion florin (Pays-Bas) -> euro 0 convVal = (100 *parseFloat(value)) / 2.20371; L } else if (curr1.toLowerCase() == 'eur' && curr2.toLowerCase() == 'nlg') { * // conversion euro -> florin (Pays-Bas) 0 convVal = (100 *parseFloat(value)) * 2.20371; L } else if (curr1.toLowerCase() == 'fim' && curr2.toLowerCase() == 'eur') { 3 // conversion Mark finlandais (Finlande) -> euro 0 convVal = (100 *parseFloat(value)) / 5.94573; L } else if (curr1.toLowerCase() == 'eur' && curr2.toLowerCase() == 'fim') { 3 // conversion euro -> Mark finlandais (Finlande) 0 convVal = (100 *parseFloat(value)) * 5.94573; L } else if (curr1.toLowerCase() == 'bef' && curr2.toLowerCase() == 'eur') { $ // conversion franc belge -> euro 0 convVal = (100 *parseFloat(value)) / 40.3399; L } else if (curr1.toLowerCase() == 'eur' && curr2.toLowerCase() == 'bef') { $ // conversion euro -> franc belge 0 convVal = (100 *parseFloat(value)) * 40.3399; L } else if (curr1.toLowerCase() == 'luf' && curr2.toLowerCase() == 'eur') { - // conversion franc luxembourgeois -> euro L } else if (curr1.toLowerCase() == 'eur' && curr2.toLowerCase() == 'luf') { - // conversion euro -> franc luxembourgeois L } else if (curr1.toLowerCase() == 'ats' && curr2.toLowerCase() == 'eur') { - // conversion schilling (Autriche) -> euro 0 convVal = (100 *parseFloat(value)) / 13.7603; L } else if (curr1.toLowerCase() == 'eur' && curr2.toLowerCase() == 'ats') { - // conversion euro -> schilling (Autriche) 0 convVal = (100 *parseFloat(value)) * 13.7603; . return (Math.round(convVal)/100).toString(); T/* removing leading and tail spaces and replaces mlti^le spaces by one single space function trimStr(str) {  if (str == "") {  return str;  var res = str; " while (res.indexOf(" ") > -1) { # res = res.split(" ").join(" ");  if (res.indexOf(" ") == 0) {  res = res.substring(1); 1 if (res.lastIndexOf(" ") == (res.length - 1)) {  * res = res.substring(0, res.length - 1);   return res; function flEscape(str) {  }else { / //return escape(str).split("+").join("%2b"); 9 return encodeURIComponent(str).split("+").join("%2b"); : * replaces some special caracters by corresponding codes "function formatToWeb(str, edit) {  var result; )// if (!str || trimStr(str).length == 0)  if (false)  ! result = edit ? "" : " "; " else { $ var buffer = ""; & var c; ( var i; *% for (i = 0; i < str.length; i++) { , c = str.substring(i, i+1); . switch (c) { 0 case '\n' : 2% buffer += edit ? "\n" : "
"; 4 break; 6 case '<' : 8 buffer += "<"; : case '>' : < buffer += ">"; > case '&' : @ buffer += "&"; B case '"' : D buffer += """; F case 'à' : H buffer += "à"; J case 'â' : L buffer += "â"; N case 'ä' : P buffer += "ä"; R case 'é' : T buffer += "é"; V case 'è' : X buffer += "è"; Z case 'ê' : \ buffer += "ê"; ^ case 'ë' : ` buffer += "ë"; b case 'î' : d buffer += "î"; f case 'ï' : h buffer += "ï"; j case 'ô' : l buffer += "ô"; n case 'ö' : p buffer += "ö"; r case 'ù' : t buffer += "ù"; v case 'û' : x buffer += "û"; z case 'ü' : | buffer += "ü"; ~ case '¤' :  buffer += "¤";  case '£' :  buffer += "£";  case 'µ' :  buffer += "µ";  case '²' :  buffer += "²";  case '§' :  buffer += "§";  case 'ç' :  buffer += "ç";  default :  buffer += c;  result = buffer;  return result; $function formatToJavascript(pStr) {  var i = 0;  var strResult = '';  if(pStr) { % for(i = 0; i < pStr.length; i++) {  c = pStr.charAt(i);  strResult += '\\n';  strResult += '\\\"';  case '\'' :  strResult += '\\\'';  case '\\' :  strResult += '\\\\';  strResult += c;  return strResult; G * returns the given number rounded up to the given number of decimals *function roundDecimal(nbr , nbDecimals) {  var multi = 1;  var nbDec = 2;  if (nbDecimals)  nbDec = nbDecimals;   for (i=0 ; i < nbDec ; i++)  multi *= 10; ) return (Math.round(multi * nbr)/multi); , * replace key by value in specified string *function strReplace(pStr, pKey, pValue) { ' return pStr.split(pKey).join(pValue);  * lite Vector class function FlVector(pArray) { 0 this.elements = pArray ? pArray : new Array();  this.size = FlVectorSize; ! this.isEmpty = FlVectorIsEmpty; ' this.addElement = FlVectorAddElement; 1 this.removeElementAt = FlVectorRemoveElementAt; - this.removeElement = FlVectorRemoveElement; % this.elementAt = FlVectorElementAt; # this.contains = FlVectorContains; # this.toString = FlVectorToString; function FlVectorSize() {  return this.elements.length; function FlVectorIsEmpty() { # return this.elements.length == 0; $function FlVectorAddElement(pObj) { - this.elements[this.elements.length] = pObj; +function FlVectorRemoveElementAt(pIndex) { 4 if(pIndex >= 0 && pIndex < this.elements.length) {  this.elements[pIndex] = null; 7 for(i = pIndex + 1; i < this.elements.length; i++) { , this.elements[i - 1] = this.elements[i]; 3 this.elements.length = this.elements.length - 1; 'function FlVectorRemoveElement(pObj) { - for(i = 0; i < this.elements.length; i++) { ! if(this.elements[i] == pObj) {  this.removeElementAt(i);  %function FlVectorElementAt(pIndex) {   return this.elements[pIndex];  return null; "function FlVectorContains(pObj) {  return true;  return false; (function FlVectorToString(pSeparator) { ; return this.elements.join(pSeparator ? pSeparator : ';'); function trimString(str) { $ str = this != window? this : str; 8 return str.replace(/^\s+/g, '').replace(/\s+$/g, '');  $String.prototype.trim = trimString; "&function arrayIndexOf(value, array) { $( array = this != window ? this : array; & if (array) { (+ for (var i = 0; i < array.length; i++) { * if (array[i] == value) { , return i; . return -1; 0*function arrayLastIndexOf(value, array) { 20 for (var i = array.length - 1; i <= 0; i--) { 41function replaceParam(url, paramName, newValue){ 6 if (!url) { 8 return; :( var queryStringIdx = url.indexOf("?"); < if (queryStringIdx == -1) { >E return url + "?" + paramName + "=" + encodeURIComponent(newValue); @ } BB var queryString = url.substring(queryStringIdx + 1, url.length); D var paramNames = new Array(); F var paramValues = new Array(); H& var params = queryString.split('&'); J var paramIdx = -1; L+ for (var i = 0; i < params.length; i++) { N$ var idx = params[i].indexOf("="); P/ paramNames[i] = params[i].substring(0, idx); R6 if (paramNames[i] == paramName && paramIdx == -1) { T paramIdx = i; VC paramValues[i] = params[i].substring(idx + 1, params[i].length); X if (paramIdx == -1) { Z paramNames.push(paramName); \ paramValues.push(newValue); ^$ paramValues[paramIdx] = newValue; `" var newQueryArray = new Array(); b. for (var i =0; i < paramNames.length; i++) { d if (paramValues[i]) { f= newQueryArray.push(paramNames[i] + "=" + paramValues[i]); hJ return url.substring(0, queryStringIdx) + "?" + newQueryArray.join("&"); j/* l' * Allowing to impose a max length for n* * provided object (textarea for example) p* * And display specified message in order r) * to inform current user if its text is t * truncate v(function imposeMaxLength(Event, Object) x var MaxLenght = 3000; z; if(Event.type="blur" && Object.value.length > MaxLenght){ |p alert(getMessage("M903F","Champ tronqué à la limite de taille suivante:", true)+" "+MaxLenght); ~7 Object.value = Object.value.substring(0, MaxLenght); } return (Object.value.length < MaxLenght)||(Event.keyCode == 8 ||Event.keyCode==46||(Event.keyCode>=35&&Event.keyCode<=40)); >// Ce fichier contient les fonctions de contrôle de saisie // 8// La fonction principale est checkField(-, -, -, -, -) java/lang/Object getClass()Ljava/lang/Class; %org/apache/commons/logging/LogFactory getLog3(Ljava/lang/Class;)Lorg/apache/commons/logging/Log; contextPath fjavax/servlet/http/HttpSessionjava/lang/String com/edeal/frontline/Frontline  getContext3(Ljava/lang/String;)Lcom/edeal/frontline/FlContext; %javax/servlet/http/HttpServletRequest bgetContextPath com/edeal/frontline/FlContext getDataDictionary&()Lcom/edeal/frontline/DataDictionary;   isFullUnicode()Z   isDbOracle'application/x-javascript; charset=UTF-8,application/x-javascript; charset=ISO-8859-1 com/edeal/frontline/FlLocale  getInstance@(Ljavax/servlet/http/HttpSession;)Lcom/edeal/frontline/FlLocale;5//================================================== '// Declaration des formats par défaut var centuryLimit = 90; var separateurDecimal = "  getDecimalSeparator()C  print(C)V"; var separateurMilliers = "  getGroupingSeparatorvar dateFormatIn = "  bgetInputJavascriptDateFormat  }var dateFormatOut = "  bgetOutputJavascriptDateFormatvar dateSeparator = "  bgetDateSeparatorvar hourSeparator = "  bgetHourSeparator6// tempStatus ecrit un message dans la barre d'état 4// et l'enlève automatiquement au bout de 4 sec function tempStatus(message)  window.status = message; . window.setTimeout("window.status=''", 4000); 0// myReplace remplace une sous-chaine sans la 8// considérer comme une expression régulière regex *function myReplace(str, oldStr, newStr) { ( return str.split(oldStr).join(newStr); 6// removeLeadingZeros enlève les 0 du début de la 8// chaine afin d'éviter qu'elle ne soit considérée %// comme un entier en base 8 ou 16 #function removeLeadingZeros(str) {  if (str == '') 4 while (i < str.length && str.substr(i , 1) == '0')  i++;   if (i == str.length)   return '0';  return str.substr(i); 0// checkDate controle si une chaine (non vide) ?// peut être intertprétée en date étant donné 1// un format d'entrée Si c'est le cas, elle 4// elle rend la date suivant un format de retour, $// sinon elle rend la chaine vide 4function checkDate(strDate, srcFormat, dstFormat) { // Le format : // mm, MM, dd, DD, yy, yyyy  5//-------------------------------------------------- "7// On verifie que le format d'entrée est acceptable $. var srcFmt = srcFormat.split(dateSeparator); &' var srcIndex = new Array(-1, -1, -1); ( if(srcFmt.length != 3) { * for(i = 0; i < 3; i++) { ,( if(srcFmt[i].toLowerCase() == 'dd') { . srcIndex[0] = i; 0/ } else if(srcFmt[i].toLowerCase() == 'mm') { 2 srcIndex[1] = i; 4T } else if(srcFmt[i].toLowerCase() == 'yy' || srcFmt[i].toLowerCase() == 'yyyy') { 6 srcIndex[2] = i; 8 return ''; :# if(srcIndex[i] == -1) return ''; <4// On verifie si le format de retour est acceptable > var dstIndex; @ var dstFmt; B& if (!dstFormat || dstFormat == '') { D dstFmt = srcFmt; F dstIndex = srcIndex; H+ dstFmt = dstFormat.split(dateSeparator); J$ dstIndex = new Array(-1, -1, -1); L$ if(dstFmt.length != 3) return ''; N for(i = 0; i < 3; i++) { P) if(dstFmt[i].toLowerCase() == 'dd') { R dstIndex[0] = i; T0 } else if(dstFmt[i].toLowerCase() == 'mm') { V dstIndex[1] = i; XU } else if(dstFmt[i].toLowerCase() == 'yy' || dstFmt[i].toLowerCase() == 'yyyy') { Z dstIndex[2] = i; \ } else { ^ return ''; `$ if(dstIndex[i] == -1) return ''; b:// Les formats sont OK, on vérifie la valeur donnée d+ var majFmt = new Array('DD', 'MM', 'YY'); f2 var unsortedDate = strDate.split(dateSeparator); h if (unsortedDate.length != 3) j!// if(isNaN(unsortedDate[i])) { l3 if(isNaN(removeLeadingZeros(unsortedDate[i]))) { n var sortDate = new Array(3); p7// sortDate[i] = parseInt(unsortedDate[srcIndex[i]]); rI sortDate[i] = parseInt(removeLeadingZeros(unsortedDate[srcIndex[i]])); t // modif vM // rajouté par RaF pour 赩ter que dd/mm/ se transforme en dd/mm/NaN x if (isNaN(sortDate[i])) { z // fin modif | // vérification du mois ~+ if(sortDate[1] < 1 || sortDate[1] > 12) { + // passage à 4 chiffres de l'année  if(sortDate[2] < 100) { # if(sortDate[2] > centuryLimit) {  sortDate[2] += 1900;  sortDate[2] += 2000;  // vérification du jours  var maxDays;  switch (sortDate[1]) {  case 2: ] if((sortDate[2] % 4) == 0 && (!((sortDate[2] % 100) == 0) || (sortDate[2] % 400) == 0)) {  maxDays = 29;  maxDays = 28;  break;  case 4:  case 6:  case 9:  case 11:  maxDays = 30;  default:  maxDays = 31; 9 if(sortDate[0] < 1 || sortDate[0] > maxDays) return '';  // La valeur donnée est OK, ,// on la rend selon le format de retour 9 if(dstFmt[dstIndex[i]].substring(0, 2) == majFmt[i]) { @ unsortedDate[dstIndex[i]] = '0000' + sortDate[i].toString();  unsortedDate[dstIndex[i]] = unsortedDate[dstIndex[i]].substring(unsortedDate[dstIndex[i]].length - dstFmt[dstIndex[i]].length); 7 unsortedDate[dstIndex[i]] = sortDate[i].toString(); G if(unsortedDate[dstIndex[i]].length > dstFmt[dstIndex[i]].length) {  unsortedDate[dstIndex[i]] = parseInt(unsortedDate[dstIndex[i]].substring(unsortedDate[dstIndex[i]].length - dstFmt[dstIndex[i]].length)).toString(); * return unsortedDate.join(dateSeparator); .// checkHour verifie si une chaine peut être 4// inteprétée en une heure. Le second paramètre ,// est le séparateur des heures / minutes #function checkHour(strHour, key) {  var dstHour = new Array(0, 0); # var srcHour = strHour.split(key);  if(srcHour.length == 2) {  for(i = 0; i < 2; i++) {  dstHour[i] = srcHour[i];  if(strHour.length <= 2) {  dstHour[0] = strHour; # } else if(strHour.length <= 4) { : dstHour[0] = strHour.substring(0, strHour.length - 2); 7 dstHour[1] = strHour.substring(strHour.length - 2); $ var hourLimit = new Array(23, 59);  for(i = 0; i < 2; i++) {  if(isNaN(dstHour[i])) { O } else if(parseInt(dstHour[i]) < 0 || parseInt(dstHour[i]) > hourLimit[i]) { # dstHour[i] = '00' + dstHour[i]; = dstHour[i] = dstHour[i].substring(dstHour[i].length - 2);  return dstHour.join(key); 2// checkEmail contrôle si une chaine peut être 2// syntaxiquement considérée comme une adresse 0// e-mail, si c'est le cas elle rend la valeur .// d'entrée sinon elle rend la chaine vide. 0 )   2 / H '  (  +  ,  !  8  n    t > -->  function checkEmail(laValeur) { d var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,32}(?:\.[a-z]{2,32})?)$/i;   if (re.test(laValeur)) " return laValeur; $ else & return ""; (4// checkInteger essaie de convertir une chaine en *4// un nombre entier; si elle y arrive, elle rend ,6// une chaine qu'est le nombre trouvé reformatté .0// avec l'éventuel séparateur de milliers. 0+function checkInteger(laValeur , sepMil) { 2U var sep=separateurMilliers; var valTxt; var i; var j; var c; var res=""; var neg=0; 4 if (sepMil) 6 sep = sepMil; 8( valTxt = removeLeadingZeros(laValeur); :& valTxt = myReplace(valTxt, " ", ""); <& valTxt = myReplace(valTxt, sep, ""); >' if (valTxt == null || valTxt == '') { @ valTxt = '0'; B% for (i=0 ; i0) H if (c<"0" || c>"9") J return ""; L) else if ((c<"0" || c>"9") && c!="-") N nVal = parseInt(valTxt); P if (isNaN(nVal)) R return ""; T valTxt = nVal.toString(); V X$ if (valTxt.substr(0 , 1) == "-") { Z neg = 1; \ valTxt = valTxt.substr(1); ^ res=""; `4 for (j=0 , i=valTxt.length-1 ; i>=0 ; i-- , j++) { b if (j!=0 && j%3 == 0) d res = sep + res; f$ res = valTxt.substr(i , 1) + res; h if (neg == 1) j res = "-" + res; l n1// checkFloat essaie de convertir une chaine en p2// un nombre réel; si elle y arrive, elle rend r5// une chaine qu'est le nombre trouvé reformatté t6// avec le séparateur de décimaux et l'éventuel v// séparateur de milliers. x2function checkFloat(laValeur , sepDeci, sepMil) { z var sep=separateurMilliers; var sepDec=separateurDecimal; var valTxt; var i; var j; var c; var res=""; var neg=0; var pos; var sepDec; | if (sepMil) ~ sep = sepMil;  if (sepDeci)  sepDec = sepDeci; > if (laValeur != '0' && laValeur != ('0' + sepDec + '0')) { , valTxt = removeLeadingZeros(laValeur);  } else {  valTxt = laValeur;  } ( valTxt = myReplace(valTxt, " ", ""); ( valTxt = myReplace(valTxt, sep, ""); . valTxt = myReplace(valTxt , sepDec , "."); $ if ((c<"0" || c>"9") && c!=".") 2 else if ((c<"0" || c>"9") && c!="." && c!="-") U if ( valTxt.indexOf(".") > -1 && valTxt.lastIndexOf(".") != valTxt.indexOf(".") )  return "";  nVal = parseFloat(valTxt);  if (isNaN(nVal))  return "";  valTxt = nVal.toString(); & if (valTxt.substr(0 , 1) == "-") {  neg = 1;  valTxt = valTxt.substr(1);  pos = valTxt.indexOf(".");  if (pos == -1) {  partieEntiere = valTxt;  partieDecimale = "";  } else if (pos == 0) {  partieEntiere = "0"; ' partieDecimale = valTxt.substr(1); + partieEntiere = valTxt.substr(0, pos); + partieDecimale = valTxt.substr(pos+1);  res=""; = for (j=0 , i=partieEntiere.length-1 ; i>=0 ; i-- , j++) {  if (j!=0 && j%3 == 0)  res = sep + res; - res = partieEntiere.substr(i , 1) + res;  if (neg == 1)  res = "-" + res;  if (partieDecimale != "") ) res = res + sepDec + partieDecimale;  return res; 4// checkString permet d'appliquer un format sur une 6// chaîne de caractères. Le format est spécifié 1// dans le second paramètre. Il vaut 'lower', ?// 'upper', 'capitalize' ou 'remaccents' (to remove accents).  function checkString(val, op) {  if (val == '') { $ if (op.toLowerCase() == 'upper') {  return val.toUpperCase(); + } else if (op.toLowerCase() == 'lower') {  return val.toLowerCase(); 0 } else if (op.toLowerCase() == 'capitalize') { - result = val.substring(0,1).toUpperCase(); ! for (i=1 ; i -1) { ' result = result.replace('à', 'a'); % while(result.indexOf('â') > -1) { ' result = result.replace('â', 'a'); % while(result.indexOf('ä') > -1) { ' result = result.replace('ä', 'a'); % while(result.indexOf('ç') > -1) { ' result = result.replace('ç', 'c'); % while(result.indexOf('é') > -1) {  ' result = result.replace('é', 'e');  % while(result.indexOf('è') > -1) { ' result = result.replace('è', 'e'); % while(result.indexOf('ê') > -1) { ' result = result.replace('ê', 'e'); % while(result.indexOf('ë') > -1) { ' result = result.replace('ë', 'e'); % while(result.indexOf('ï') > -1) { ' result = result.replace('ï', 'i'); % while(result.indexOf('î') > -1) { ' result = result.replace('î', 'i');  % while(result.indexOf('ô') > -1) { "' result = result.replace('ô', 'o'); $% while(result.indexOf('ö') > -1) { &' result = result.replace('ö', 'o'); (% while(result.indexOf('ù') > -1) { *' result = result.replace('ù', 'u'); ,% while(result.indexOf('û') > -1) { .' result = result.replace('û', 'u'); 0% while(result.indexOf('ü') > -1) { 2' result = result.replace('ü', 'u'); 4 return val; 6function checkUrl(val) { 8D if (val.substring(0,7).toLowerCase() == 'http://'.toLowerCase()) { :! if (val.substring(7,8) !='' ){ < }else { > return false; @J } else if (val.substring(0,6).toLowerCase() == 'ftp://'.toLowerCase()) { B! if (val.substring(6,7) !='' ){ DL } else if (val.substring(0,8).toLowerCase() == 'https://'.toLowerCase()) { F! if (val.substring(8,9) !='' ){ HH } else if (val.substring(0,4).toLowerCase() == 'www.'.toLowerCase()) { J! if (val.substring(4,5) !='' ){ L return false N:// checkField est la fonction qui regroupe tous les tests PHfunction checkField(laValeur , leType , estOblig , format1 , format2) { R if (laValeur == "") T if (estOblig) V return false; X else Z return true; \' if (leType.toLowerCase() == "date") ^5 return checkDate(laValeur , format1 , format2) `' if (leType.toLowerCase() == "hour") b, return checkHour(laValeur , format1); d( if (leType.toLowerCase() == "email") f# return checkEmail(laValeur); h* if (leType.toLowerCase() == "integer") j/ return checkInteger(laValeur , format1); l( if (leType.toLowerCase() == "float") n7 return checkFloat(laValeur , format1 , format2); p r) if (leType.toLowerCase() == "string") t. return checkString(laValeur , format1); v return laValeur; x3// toSysNum prend en premier paramètre une valeur z2// numérique en chaine, en second paramètre le |4// séparateur de décimaux, en 3eme paramètre le ~0// séparateur de milliers; et rend une chaine // prête pour un parse. /function toSysNum(valeur , sepDeci , sepMil) { ; var sep=separateurMilliers; var sepDec=separateurDecimal;  sep = sepMil;  if (sepDeci)  sepDec = sepDeci;  var res; % res = myReplace(valeur , " " , ""); " res = myReplace(res , sep , ""); & res = myReplace(res , sepDec , "."); 4// prepNumsForSubmit prend en premier paramètre le 6// séparateur de décimaux, en second paramètre le 6// séparateur de milliers; les paramètres suivants '// étant les 'Field' à reformatter. function prepNumsForSubmit() { & args = prepNumsForSubmit.arguments;  sepDec = args[0];  sepMil = args[1]; # for (i=2 ; i v = checkField(aField.value, aType, false, sepDec, sepMil);  if (v) {  aField.value = v;  if (mesg) {  tempStatus(mesg);  }  aField.value = ''; 0 si (date1, hour1) > (date2, hour2) *// <0 si (date1, hour1) < (date2, hour2) @//============================================================= Ifunction compareDate(date1, hour1, date2, hour2, formatDate, sepHeure) {  fDate = dateFormatOut;  sep = hourSeparator;  if (formatDate) {  fDate = formatDate;  if (sepHeure) {   sep = sepHeure; " var d1; $ var h1; & var d2; ( var h2; * if (date1) { , d1 = date1; .F d1 = checkField("01/01/1970", "date", false, dateFormatOut, fDate); 0 if (hour1) { 2 h1 = hour1; 4? h1 = checkField("00:00", "hour", false, hourSeparator, sep); 6 if (date2) { 8 d2 = date2; :F d2 = checkField("01/01/1970", "date", false, dateFormatOut, fDate); < if (hour2) { > h2 = hour2; @? h2 = checkField("00:00", "hour", false, hourSeparator, sep); B //controle D s1 = checkHour(h1 , sep); F* s2 = checkDate(d1, fDate, 'MM/DD/yyyy'); H s3 = checkHour( h2 , sep); J* s4 = checkDate(d2, fDate, 'MM/DD/yyyy'); L2 startTime = new Date(s2.concat(" ").concat(s1)); N3 endTime = new Date(s4.concat(" ").concat(s3)); P" millidiff = startTime - endTime; R return millidiff; Tapplication/x-javascriptV dd/MM/yyyy X YZ getDateFormat()Ljava/text/SimpleDateFormat; \^]java/text/SimpleDateFormat _b toPatterna+function openCalendar(field, dateFormat) { c var found=0; e var pos=-1; g while (found == 0) { i pos++; k if (document.forms[pos]) { m, if (document.forms[pos] == field.form) { o found = 1; q if (pos > 20) { s pos = -1; u found = 1; w var curDateStr = ""; y5 var curDate = parseDate((dateFormat ? dateFormat : "{"), field.value); } if (curDate != null) { E curDateStr = "&calyear=" + curDate[0] + "&calmonth=" + curDate[1];  var winDateSel = window.open("  _jspx_meth_fl_005fwebapp_005f0"(Ljavax/servlet/jsp/PageContext;)Z  releasePageContext"(Ljavax/servlet/jsp/PageContext;)V/common/calendar/calendar_popup.jsp?fn=" + field.name + "&fp=" + pos + (dateFormat ? "&df=" + dateFormat : "") + curDateStr, "DateSelector", "menubar=no,toolbar=no,scrollbars=auto,resizable=yes,width=250,height=280"); %function removeLeadingZeros(inStr) {  var res = inStr; 7 while (res.length > 0 && res.substring(0,1) == "0") { %function parseDate(patern, value) {  var yk = "yyyy";  var yp = patern.indexOf(yk);  if (yp == -1) {  yk = "yyy";  yp = patern.indexOf(yk);  yk = "yy";  var mk = "MM"  var mp = patern.indexOf(mk);  if (mp == -1) {  mk = "M";  mp = patern.indexOf(mk);  var dk = "dd"  var dp = patern.indexOf(dk);  if (dp == -1) {  dk = "d";  dp = patern.indexOf(dk); ) if (yp == -1 || mp == -1 || dp == -1) {  var yi=0, mi=0, di=0;  if (yp < mp && mp < dp) {  yi = 1; mi = 2; di = 3; " } else if (mp < yp && yp < dp) {  yi = 2; mi = 1; di = 3; " } else if (yp < dp && dp < mp) {  yi = 1; mi = 3; di = 2; " } else if (dp < yp && yp < mp) {  yi = 2; mi = 3; di = 1; " } else if (mp < dp && dp < yp) {  yi = 3; mi = 1; di = 2; " } else if (dp < mp && mp < yp) {  yi = 3; mi = 2; di = 1;  var strRegExp = patern; 2 strRegExp = strReplace(strRegExp, "\\", "\\\\"); 0 strRegExp = strReplace(strRegExp, "/", "\\/"); 0 strRegExp = strReplace(strRegExp, "*", "\\*"); 0 strRegExp = strReplace(strRegExp, "+", "\\+"); 0 strRegExp = strReplace(strRegExp, "?", "\\?"); 0 strRegExp = strReplace(strRegExp, ".", "\\."); 5 strRegExp = strReplace(strRegExp, dk, "([\\d.]+)"); 5 strRegExp = strReplace(strRegExp, mk, "([\\d.]+)"); 5 strRegExp = strReplace(strRegExp, yk, "([\\d.]+)");  var regexpr, yvt, mvt, dvt; ( eval("regexpr = /" + strRegExp + "/"); ' yvt = value.replace(regexpr, "$"+yi); ' mvt = value.replace(regexpr, "$"+mi); ' dvt = value.replace(regexpr, "$"+di); 5 if (yvt == value || mvt == value || dvt == value) {  var yv, mv, dv; ) yv = parseInt(removeLeadingZeros(yvt)); ) mv = parseInt(removeLeadingZeros(mvt)); ) dv = parseInt(removeLeadingZeros(dvt)); , if (isNaN(dv) || isNaN(mv) || isNaN(yv)) {  return new Array(yv, mv, dv); #javax/servlet/jsp/SkipPageException   getBufferSize()I   clearBuffer  handlePageException(Ljava/lang/Throwable;)V    java/lang/Throwable  b getMessage  log*(Ljava/lang/String;Ljava/lang/Throwable;)Vjava/lang/Exceptionrequest'Ljavax/servlet/http/HttpServletRequest;response(Ljavax/servlet/http/HttpServletResponse; pageContextLjavax/servlet/jsp/PageContext;session Ljavax/servlet/http/HttpSession;outLjavax/servlet/jsp/JspWriter; _jspx_out_jspx_page_contextLjava/lang/String;contextLcom/edeal/frontline/FlContext; userLocaleLcom/edeal/frontline/FlLocale; dateFormattLjava/lang/Throwable;)com/edeal/frontline/WebappTag B+ ,-get1(Ljava/lang/Class;)Ljavax/servlet/jsp/tagext/Tag; (/ 0setPageContext (2 34 setParent!(Ljavax/servlet/jsp/tagext/Tag;)V (6 7 doStartTag (9 :doEndTag B< =4reuse_jspx_th_fl_005fwebapp_005f0Lcom/edeal/frontline/WebappTag; SourceFileedit_005fjs_jsp.javaSourceDebugExtension1   IY""$&W",&W".&W"0&W"2&W4"'2=H5 /*64 5 89:;."4"5 89<t>**=AG**=IOSY**=I[]c[i4& '#(=)5 >89k6*Gl4 ,-5 89opqrtF .,N::::,vx*+, ~N-:-W-W-:-:: öŶǶɶ˶Ͷ϶ѶӶն˶Ͷ׶ٶ۶ݶ߶ն˶Ͷ     ˶!#%')+-/13579;=?A+CE35ն˶GIKMOQSUWY[]_acegik˶mok˶qsuwy{}öŶǶɶ˶Ͷ϶ѶӶն׶ٶ۶ݶ߶׶ݶ˶˶˶˶ ˶  ˶!#%')+-/135739;3=?3AC3EG3IK3MO3QS3UW3Y[3]_3ac3eg3ik3mo3qs3uw3y{3}333333ն˶-/3A333ն˶ öŶǶɶ˶Ͷ϶ѶӶն׶ٶ۶ݶ߶ն˶ն˶   ˶ն˶!#%')+ն˶-/#%1)+ն˶-357˶9;=?ACEGIKMOQSնU˶WY[]˶_aceն˶gikmoqsuwy{}˶  *W::  : +:  W   ,x ,xW¶Ķ̶ζж̶Ӷն̶ڶ̶ܶ߶̶̶   !#% 'k˶)+-/135=7ն˶)9˶;=?ACEŶGIKMOQSUWY[]նM_ն˶aceͶgkͶ)ik7ն˶m)oqsuw7նy˶{}k˶=ն˶[˶)=ն˶ͶöŶǶɶ˶նͶ϶ѶӶն=7ն˶׶ٶ۶7ݶ7=߶ն˶   Ͷ!#%')+-/1Ͷ35Ͷ79;Ͷ=?˶ͶACEGIKI˶MOQSUWY[˶]_ace˶gik moqsuwyU{}kUUACEII˶UUUUöUŶǶkɶ˶kͶ϶ѶӶն׶ٶk˶۶ݶ߶նննն ն  ննննն!ն#%ն')ն+-ն/1ն3˶5ٶk˶79;=ն?A;=նCE;=նGI;=նK˶MOQSUWY[]_acegikmoqsuwy{}Ͷ3kk Ͷ˶Ͷ˶ͶöŶǶɶ˶Ͷ#϶ѶӶ˶ն׶ٶ۶ݶ˶߶˶˶ͶͶѶӶ˶ն׶˶۶˶˶ͶͶѶӶ˶ն׶˶۶   Ͷ˶˶!#%')+-˶/13˶579˶;=?˶ͶAͶCEͶGIͶKMͶOQ   ,Sx: U:  W[: WU:  `bdfhjlnնprtն˶Ͷvx z|~˶* ϶Ѷ˶ ˶˶Ͷ˶Ͷ˶Ͷ ˶Ͷ¶Ķƶȶʶ̶ζ˶ͶжҶԶֶضڶܶ޶ͶͶ ˶Ͷ ˶Ͷ Y:7: W * :  ** **- *-- ---r*.*. .42368 9=>?">&@)A.B3C9D?ECGJHQIXJ_KfLmMtN{OPQRSTUVWXYZ[\]^_`abcdef#g*h1i8j?kFlMmTn[obpiqprws~tuvwxyz{|}~ &-4;BIPW^elsz  (08?GNV^fnv~ !(/6>FNV^fnv~ $,4;CKS[ckrz     '/7?GNV^fnv~ !"#$%&'()*+,- ./0#1*223:4B5J6R7Z8a9h:p;w<~=>?@ABCDEFGHIJKLMN OPQ R(S0T8U@VGWNXUY\Zc[k\s]{^_`abcdefghijklmn o p q r #s +t 3u ;v Cw Kx Sy [z c{ k| s} {~                     # + 3 ; C K S [ c k s {                     # + 3 ; B I Q X ` g n u |                     $ , 4 < C J Q Y ` g n u }                      & . 6 > F M U ] e m u }                  %,4;BIQYai q!x"#$%&'()*+,-./012345678&9-:4;<<D=L>S?Z@bAiBqCyDEFGHIJKLMNOPQRSTUV WXY Z'[/\7]>^F_N`Va^bfcndve~fghijklmnopqrstuvw xyz!{)|0}7~?GOW_gow~ #)9BENT[biqy  (0=ELT\dlt{'/7?GNU\cks{     &.6 >!F"N#V$^%e&l't(|)*+,-./0123456789:;<= >(?0@8A@BHCODVE^FfGmHtI{JKLMNOPQRSTUVWXYZ[\ ]^_%`-a5b=cDdLeSfZgbhjirjyklmnopqrstuvwxyz{|} ~$,4<DLSZbipx  (08@HPW_gov~ !)07>EMU]emu} $,4<DLT[bjry $+3;B I Q Y a iqy !" #$%#&+'3(:)A*H+O,W-_.g/o0w123456789:;<=>?@ABCDEF&G.H6I>JFKNLVM]NdOlPtQ|RSTUVWXYZ[\]^_`abc def"g*h2i:jBkJlRmZnbojprqzrstuvwxyz{|}~      ' / 7 ? G O W _ g o w                 !! !!! !(!0!7!?!G!N!V!^!e!m!u!|!!!!!!!!!!!!!!!!!"" """$","4"<"D"L"S"["c"k"s"{"""""""""""""""""#####&#.#6#=#D#L#T#[#c#k#r#z#################$$  $ $ $% $- $4$<$D$L$T$\$d$l$t$|$$$$$$$$$ $!$"$#$$$%$&$'%(% )%*%+%!,%)-%0.%7/%>0%E1%M2%U3%\4%c5%k6%s7%{8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I&J&K&L&M&%N&-O&5P&=Q&ER&LS&ST&[U&cV&kW&sX&zY&Z&[&\&]&^&_&`&a&b&c&d&e&f&g&h&i&j'k' l'm'n'"o')p'0q'8r'@s'Ht'Pu'Wv'^w'fx'ny'vz'}{'|'}'~''''''''''''''((((('(/(7(?(G(O(W(_(g(o(v(~(((((((((((((((()) )))")*)2)9)A)I)Q)Y)`)g)o)v)~)))))))))))))))))**  *!*$*%*$&*,'*4(*<)*D**L+*T,*\-*d.*k/*r0*y1*2*3*4*5*6*7*8*9*:*;*<*=*>*?**@*A*B+C+ D+E+F+#G+*H+2I+:J+BK+JL+QM+YN+`O+gP+oQ+wR+S+T+U+V+W+X+Y+Z+[+\+]+^+_+`+a+b+c,d, e,f,g,"h,)i,0j,8k,@l,Gm,Nn,Vo,^p,fq,nr,vs,~t,u,v,w,x,y,z,{,|,},~,,,,,,-- ---#-+-3-;-C-J-R-Z-a-h-p-x----------------.. ... .#.+5 .,89.,.,.*.'.$ .!.  !" )#$ *% -<&'q >+W*G(*(M,+.,1,5W,8 *G,;*G,;4* "*24<5 >89>+>?@ABSMAP edit_005fjs_jsp.java JSP *S JSP *F + 0 edit_js.jsp js/edit_js.jsp + 1 presentField.js js/presentField.js + 2 utils.js js/utils.js + 3 checkFields.jsp js/checkFields.jsp + 4 calendar.jsp js/calendar.jsp *L 1:71 1#1,59:72 2#0,2:130 1#2,525:132 4#0,2:656 30#3:687,2 31,20:689 50,7:709 62,3:715 65,6:718,3 71,746:736 868:1533,2 6#0,2:1535 25#4:1561 26,9:1563 34:1572 41,19:1573 60:1592,3 61,4:1595 64:1713,4 64,15:1601 85,80:1615 8#0:1694 *E