Edit C:\galaxie\deploy\Tomcat6\work\Catalina\localhost\galaxie\org\apache\jsp\js\edit_005fjs_jsp.class
Êþº¾ 1C !org/apache/jsp/js/edit_005fjs_jsp %org/apache/jasper/runtime/HttpJspBase ,org/apache/jasper/runtime/JspSourceDependent _jspxFactory Ljavax/servlet/jsp/JspFactory; _jspx_dependants Ljava/util/List; 2_005fjspx_005ftagPool_005ffl_005fwebapp_005fnobody *Lorg/apache/jasper/runtime/TagHandlerPool; _el_expressionfactory Ljavax/el/ExpressionFactory; _jsp_annotationprocessor Lorg/apache/AnnotationProcessor; <clinit> ()V Code javax/servlet/jsp/JspFactory getDefaultFactory ()Ljavax/servlet/jsp/JspFactory; java/util/ArrayList ! <init> (I)V # % /js/presentField.js ' ) ( java/util/List * + add (Ljava/lang/Object;)Z - /js/utils.js / /js/checkFields.jsp 1 /js/calendar.jsp 3 /WEB-INF/taglib.tld LineNumberTable LocalVariableTable 7 this #Lorg/apache/jsp/js/edit_005fjs_jsp; getDependants ()Ljava/lang/Object; _jspInit > ? @ getServletConfig ()Ljavax/servlet/ServletConfig; B D C (org/apache/jasper/runtime/TagHandlerPool E F getTagHandlerPool I(Ljavax/servlet/ServletConfig;)Lorg/apache/jasper/runtime/TagHandlerPool; H J L K javax/servlet/ServletConfig M N getServletContext ()Ljavax/servlet/ServletContext; P Q R getJspApplicationContext I(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext; T V U 'javax/servlet/jsp/JspApplicationContext W X getExpressionFactory ()Ljavax/el/ExpressionFactory; Z \ org/apache/AnnotationProcessor ^ ` _ java/lang/Class a b getName ()Ljava/lang/String; d f e javax/servlet/ServletContext g h getAttribute &(Ljava/lang/String;)Ljava/lang/Object; j _jspDestroy B m n release _jspService R(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V Exceptions s java/io/IOException u javax/servlet/ServletException w text/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; ? L ? javax/servlet/jsp/PageContext ? > ? ? ? ? getSession "()Ljavax/servlet/http/HttpSession; ? ? ? ? getOut ()Ljavax/servlet/jsp/JspWriter; ? ? ? javax/servlet/jsp/JspWriter ? ! write ? P/****************************************************************************** ? ? ? } ? " * 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<elem.length;i++) { Ô N Utils.normalizeInputFromViewForSave(elem[i].name, document.forms[0], sep); Ö } Ø var i=0; Ú myTab = new Array(); Ü myTab.push("IntActID"); Þ for (i=0;i<elem.length;i++) à { â ? if ( ($(elem[i]).attr("ed") == "true") || (elem[i].type == "select-multiple") || (elem[i].type == "checkbox") || (elem[i].type == "radio")) ä { æ var ignoreItem = false; è var name = elem[i].name; ê < for (j = myTab.length; (myTab[j] != name) && j>-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; H 1 * Convert money (in String) in another currency J G * 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; t E if (curr1.toLowerCase() == 'frf' && curr2.toLowerCase() == 'eur') { v ' // conversion franc francais -> euro x 0 convVal = (100 *parseFloat(value)) / 6.55957; z L } 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" : "<br>"; 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) { 2 0 for (var i = array.length - 1; i <= 0; i--) { 4 1function replaceParam(url, paramName, newValue){ 6 if (!url) { 8 return; : ( var queryStringIdx = url.indexOf("?"); < if (queryStringIdx == -1) { > E return url + "?" + paramName + "=" + encodeURIComponent(newValue); @ } B B 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); R 6 if (paramNames[i] == paramName && paramIdx == -1) { T paramIdx = i; V C 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]); h J 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?? getLog 3(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;? contextPath? f? javax/servlet/http/HttpSession? java/lang/String ??? com/edeal/frontline/Frontline?? getContext 3(Ljava/lang/String;)Lcom/edeal/frontline/FlContext;¡£¢ %javax/servlet/http/HttpServletRequest¤ b getContextPath ¦¨§ 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 = " ·ÑÒÇ getGroupingSeparatorÔ var dateFormatIn = " ·Ö× b getInputJavascriptDateFormat ?ÙÊ }Û var dateFormatOut = " ·ÝÞ b getOutputJavascriptDateFormatà var dateSeparator = " ·âã b getDateSeparatorå var hourSeparator = " ·çè b getHourSeparatorê 6// 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; 4 T } 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; T 0 } else if(dstFmt[i].toLowerCase() == 'mm') { V dstIndex[1] = i; X U } 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'); f 2 var unsortedDate = strDate.split(dateSeparator); h if (unsortedDate.length != 3) j !// if(isNaN(unsortedDate[i])) { l 3 if(isNaN(removeLeadingZeros(unsortedDate[i]))) { n var sortDate = new Array(3); p 7// sortDate[i] = parseInt(unsortedDate[srcIndex[i]]); r I sortDate[i] = parseInt(removeLeadingZeros(unsortedDate[srcIndex[i]])); t // modif v M // 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<!-- <!-- /*function checkEmail(laValeur) { --> ð )<!-- pos = laValeur.indexOf("@"); --> ò <!-- if (pos == -1) --> ô <!-- return ""; --> ö 2<!-- gauche = laValeur.substring(0 , pos); --> ø /<!-- droite = laValeur.substr(pos + 1); --> ú H<!-- if ( gauche == "" || encodeURIComponent(gauche) != gauche ) --> ü '<!-- pos = droite.indexOf("."); --> þ <!-- if (pos == 0) --> (<!-- pos = droite.indexOf(".."); --> <!-- if (pos != -1) --> +<!-- pos = droite.lastIndexOf("."); --> <!-- if (pos == -1) --> ,<!-- if (droite.indexOf("@") != -1) --> !<!-- return ""; --> 8<!-- if (encodeURIComponent(droite) != droite) --> <!-- return ""; --> n<!-- if ( (pos != (droite.length - 3)) && (pos != (droite.length - 4)) && (pos!=(droite.length-5)) ) --> <!-- return ""; --> <!-- return laValeur; --> <!-- } --> t<!-- modifiée vers celle en dessous à cause d'un problème de validation d'email le 24/11/2015 par amb & htu --> ><!-- http://u-project2.umanis.com/view.php?id=31724 */--> --> 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) { 2 U 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 ; i<valTxt.length ; i++) { D c = valTxt.substr(i , 1); F if (i>0) 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 n 1// checkFloat essaie de convertir une chaine en p 2// un nombre réel; si elle y arrive, elle rend r 5// une chaine qu'est le nombre trouvé reformatté t 6// avec le séparateur de décimaux et l'éventuel v // séparateur de milliers. x 2function 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<val.length ; i++) ê ? if (val.substring(i-1, i) == ' ' || val.substring(i-1, i) == '-' || val.substring(i-1, i) == '\\' || val.substring(i-1, i) == '/') ì 6 result += val.substring(i, i+1).toUpperCase(); î else ð 6 result += val.substring(i, i+1).toLowerCase(); ò return result; ô 0 } else if (op.toLowerCase() == 'remaccents') { ö result = val; ø % while(result.indexOf('à ') > -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; 6 function checkUrl(val) { 8 D 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) !='' ){ D L } else if (val.substring(0,8).toLowerCase() == 'https://'.toLowerCase()) { F ! if (val.substring(8,9) !='' ){ H H } 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 P Hfunction 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") n 7 return checkFloat(laValeur , format1 , format2); p r ) if (leType.toLowerCase() == "string") t . return checkString(laValeur , format1); v return laValeur; x 3// toSysNum prend en premier paramètre une valeur z 2// 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<args.length ; i++) { ¦ fld = args[i]; ¨ fldVal = fld.value; ª ' fldVal = myReplace(fldVal, " ", ""); ¬ , fldVal = myReplace(fldVal , sepMil , ""); ® - fldVal = myReplace(fldVal , sepDec , "."); ° fld.value = fldVal; ² :function prepAutoNumsForSubmit(frmName, sepDec, sepMil) { ´ return; ¶ Dfunction ctrlNumField(aField, aType , mesg, sepDeci , sepMillier) { ¸ 1 if (myReplace(aField.value , " " , "") == "") { º aField.value = ""; ¼ return true; ¾ " var sepMil = separateurMilliers; À ! var sepDec = separateurDecimal;  if (sepMillier) Ä sepMil = sepMillier; Æ if (sepDeci) È sepDec = sepDeci; Ê var v; Ì ' if (aType.toLowerCase() == "integer") Î 6 v = checkField(aField.value, aType, false, sepMil); Ð > v = checkField(aField.value, aType, false, sepDec, sepMil); Ò if (v) { Ô aField.value = v; Ö if (mesg) { Ø tempStatus(mesg); Ú } Ü aField.value = ''; Þ <function ctrlDateField(aField, mesg, formatIn, formatOut) { à var formIn = dateFormatIn; â var formOut = dateFormatOut; ä if (formatIn) { æ formIn = formatIn; è if (formatOut) { ê formOut = formatOut; ì ? v = checkField(aField.value, 'date', false, formIn, formOut); î ,function ctrlHourField(aField, mesg, sep) { ð var separator = hourSeparator; ò if (sep) { ô separator = sep; ö 9 v = checkField(aField.value, 'hour', false, separator); ø ///============================================ ú // Compare deux dates ü // parametres : þ H// date1 la partie jour de la première date (par defaut '01/01/1970') H// hour1 la partie horaire de la première date (par défaut '00:00') H// date2 la partie jour de la deuxième date (par defaut '01/01/1970') G// hour2 la partie horaire de la deuxième date (par defaut '00:00') K// formatDate le format de la date en entrée (par défaut 'DD/MM/yyyy') 8// sepHeure le séparateur des heures (par défaut : ) 5// renvoit le nombre de millisecondes de différence (// 0 si (date1, hour1)==(date2, hour2) *// >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'); L 2 startTime = new Date(s2.concat(" ").concat(s1)); N 3 endTime = new Date(s4.concat(" ").concat(s3)); P " millidiff = startTime - endTime; R return millidiff; T application/x-javascriptV dd/MM/yyyy ·XYZ 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 = ""; y 5 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;)V java/lang/Exception request 'Ljavax/servlet/http/HttpServletRequest; response (Ljavax/servlet/http/HttpServletResponse; pageContext Ljavax/servlet/jsp/PageContext; session Ljavax/servlet/http/HttpSession; out Ljavax/servlet/jsp/JspWriter; _jspx_out _jspx_page_context Ljava/lang/String; context Lcom/edeal/frontline/FlContext; userLocale Lcom/edeal/frontline/FlLocale; dateFormat t Ljava/lang/Throwable;) com/edeal/frontline/WebappTag B+,- get 1(Ljava/lang/Class;)Ljavax/servlet/jsp/tagext/Tag; (/0? setPageContext (234 setParent !(Ljavax/servlet/jsp/tagext/Tag;)V (67 doStartTag (9: doEndTag B<=4 reuse _jspx_th_fl_005fwebapp_005f0 Lcom/edeal/frontline/WebappTag; SourceFile edit_005fjs_jsp.java SourceDebugExtension 1 ? I¸ ³ » Y· ³ "² "$¹ & W² ",¹ & W² ".¹ & W² "0¹ & W² "2¹ & W± 4 "