/** * * @param pId. * @param pURL. * @param pX. * @param pY. * @param pWidth. * @param pHeight. */ function openPopup(pId, pURL, pX, pY, pWidth, pHeight) { /* alert("openPopup"); */ var theParams = "width=" + pWidth + ",height=" + pHeight + ",left=" + pX + ",top=" + pY + ",toolbar=no,location=no,scrollbars=yes,resizable=yes"; var aWindow = window.open(pURL, pId, theParams); if (aWindow) { aWindow.focus(); } } /** * * @param pValue */ function showAlert(e) { return submitFormIfEnter(e); } function waiting() { var iframe = document.getElementById("waitingIframe"); if (iframe != null) { iframe.style.visibility = 'visible'; } } function submitFormIfEnter(e) { var targ; if(!e) { var e = window.event; } if(e.target) { targ = e.target; } else if(e.srcElement) { targ = e.srcElement; } if(targ.nodeType == 3) // defeat Safari bug { targ = targ.parentNode; } if(targ.type == "text" ||targ.type == "radio"|| targ.type == "checkbox" || targ.type== "select-one"|| targ.type=="select-multiple") { if(e.type == 'keypress' && e.keyCode == 13) { targ.form.submit(); return false; } } } function setReqCode(form, pReqcode) { form.reqCode.value=pReqcode; } function isNullOrEmpty(pValue) { return(pValue == null || pValue == ''); } /** * * @param pValue * @param pValues */ function checkValueInArray(pValue, pValues) { for(var i = 0; i < pValues.length; i++) { if(pValue == pValues[i]) { return true; } } return false; } /** * * @param pValue */ function deleteBlanks(pValue) { var aRegexp = "/(\s+)/g"; var aValue = pValue.replace(aRegexp, ''); return aValue; } /** * * @param pUrl * @param pEvent * @param pX * @param pY * @param pWidth * @param pHeight */ function helpPopup(pUrl, pEvent, pX, pY, pWidth, pHeight) { var aWindow; aWindow = window.open(pUrl, '_help', 'directories=0, location=0, menubar=0, status=0, toolbar=1, width=' + pWidth + ', height=' + pHeight + ', top=' + pY + ', left=' + pX); aWindow.focus(); return aWindow; } /** * * @param pForm * @param pField * @param pValue * @param pSet * @param pKeys * @param pValues * @param pEvent * @param pWidth * @param pHeight */ function selectPopup(pForm, pField, pValue, pSet, pKeys, pValues, pEvent, pWidth, pHeight) { if(pForm == null || pForm.name == '' || pField == null || pField.name == '' || pSet == null || pKeys == null || pValues == null) { alert("ERREUR: La valeur est incorrecte, l'aide ? la saisie n'est pas disponible"); return null; } var aX = pEvent.screenX; var aY = pEvent.screenY; var aFormName = pForm.name; var aFieldName = pField.name; var aWindow = window.open('', '_popup', 'directories=0, location=0, menubar=0, status=0, toolbar=0, width=' + pWidth + ', height=' + pHeight + ', top=' + aY + ', left=' + aX); aWindow.focus(); var aForm = 'window.opener.document.forms[\'' + aFormName + '\']'; var aField = 'window.opener.document.forms[\'' + aFormName + '\'].elements[\'' + aFieldName + '\']'; var aSelect = 'window.document.getElementById(\'_select\')'; var anAction = aField + '.value=' + aSelect + '.value; window.self.close();'; var aHTML = '\n' + pSet + '\n\n
\n'; aHTML += '\n'; aHTML += '

\n'; aHTML += '\n'; // aHTML += '\n'; // aHTML += '\n'; aHTML += '
\n\n'; aWindow.document.write(aHTML); aWindow.document.close(); return aWindow; } /** * * @param pText */ function isText(pText) { var allowedChars = "\ ;!;\";#;\$;%;&;\\';(;);*;+;,;\\-;\.;/;:;<;=;>;\\?;@;\\[;\\\\;\\];\\^;_;`;\\{;|;\\};~;\u20AC;£;§;¨;«;°;±;´;»;à;â;ä;æ;ç;è;é;ê;ë;î;ï;ô;ö;÷;ù;û;ü;\u2026;\u02C6;\u02DC;\u0153"; var aRegexp = new RegExp("^[a-z;A-Z;0-9;"+ allowedChars +"]*$"); if(!aRegexp.test(pText)) { return false; } return true; } /** * * @param pField */ function checkText(pField) { if(pField == null || pField.value == "") { return true; } if(!isText(pField.value)) { alert("ERREUR: La valeur [" + pField.value + "] n'est pas de type TEXTE"); pField.focus(); pField.select(); return false; } return true; } /** * * @param pValue * @param pPattern (-)2.3 */ function formatNumber(pValue, pPattern) { pValue = deleteBlanks(pValue); if(pPattern.length == 0) { return pValue; } var aRegexp = "("; if(pPattern.charAt(0) == '-') { aRegexp += "[-]?"; pPattern = pPattern.substring(1); } var theSplits = pPattern.split('.', 2); aRegexp += "\\d{0," + theSplits[0] + "})"; if(isNullOrEmpty(theSplits[1]) || theSplits[1] == 0) { theSplits[1] = 0; aSeparator = ''; } else { aRegexp += "([,.](\\d{0," + theSplits[1] + "}))?"; aSeparator = '.'; } theValues = pValue.match(aRegexp); if(theValues[0] == pValue) { if(isNullOrEmpty(theValues[3])) { theValues[3] = ''; } aDecimalLength = theValues[3].length; var aPadding = ''; for(i = aDecimalLength; i < theSplits[1]; i++) { aPadding += '0'; } pValue = theValues[1] + aSeparator + theValues[3] + aPadding; return pValue; } return null; } /** * * @param pPattern */ function formatNumberPattern(pPattern) { var aFormat = ""; var aSign = pPattern.charAt(0); if(aSign == '-' || aSign == '+') { aFormat += aSign; pPattern = pPattern.substring(1); } var theSplits = pPattern.split('.', 2); for(i = 0; i < theSplits[0]; i++) { aFormat += 'X'; } if(!(isNullOrEmpty(theSplits[1]) || theSplits[1] == 0)) { aFormat += '.'; } for(i = 0; i < theSplits[1]; i++) { aFormat += 'X'; } return aFormat; } /** * * @param pField * @param pPattern */ function checkNumber(pField, pPattern, pStrict) { if(pField == null || pField.value == "") { return true; } var aValue = formatNumber(pField.value, pPattern); if(aValue == null) { alert("ERREUR: La valeur [" + pField.value + "] n'est pas de type NUMERIQUE [" + formatNumberPattern(pPattern) + "]"); pField.focus(); pField.select(); return false; } else { if (pStrict) { var len = 0; if(pPattern.length > 0) { if(pPattern.charAt(0) == '-') { pPattern = pPattern.substring(1); } var theSplits = pPattern.split('.', 2); len += eval(theSplits[0]); if(!isNullOrEmpty(theSplits[1])){ len += eval(theSplits[1])+1; } } field = pField.value; if (field.charAt(0) == '-') { field = field.substring(1); } if (field.length == len) { pField.value = aValue; return true; } else { alert("ERREUR: La valeur [" + pField.value + "] ne contient pas assez de chiffres [" + formatNumberPattern(pPattern) + "]"); pField.focus(); pField.select(); return false; } } else { pField.value = aValue; return true; } } } /** * * @param pValue * @param pPadding */ function checkDateFormat(pValue, pPadding) { var aDD; var aMM; var aYYYY; var isMatch = false; var anArray; // L'ordre de lecture des expressions est important var aRegexp1 = /(\d{2})(\d{2})(\d{4}|\d{2})/; var aRegexp2 = /(\d{2}|\d)\/(\d{2}|\d)\/(\d{4}|\d{2})/; // anArray={aDDaMMaYYYY ou aDDaMMAA} var anArray = pValue.match(aRegexp1); if((anArray != null) &&(anArray[0] == pValue)) { isMatch = true; aDD = anArray[1]; aMM = anArray[2]; aYYYY =(anArray[3].length == 2) ? pPadding + anArray[3] : aYYYY = anArray[3]; } // anArray={aDD/aMM/aYYYY ou aDD/aMM/AA} var anArray = pValue.match(aRegexp2); if((anArray != null) &&(anArray[0] == pValue)) { isMatch = true; aDD =(anArray[1].length == 1) ? '0' + anArray[1] : anArray[1]; aMM =(anArray[2].length == 1) ? '0' + anArray[2] : anArray[2]; aYYYY =(anArray[3].length == 2) ? pPadding + anArray[3] : aYYYY = anArray[3]; } if((aDD == '32') &&(aMM = '13') && isMatch) { return aDD + '/' + aMM + '/' + aYYYY; } var aDate = new Date(aYYYY,(aMM - 1), aDD); if((!isMatch) ||(aDate.getDate() != aDD) ||((aDate.getMonth() + 1) != aMM)) { return null; } return aDD + '/' + aMM + '/' + aYYYY; } /** * * @param pField * @param pPadding */ function checkDate(pField, pPadding) { if(pField == null || pField.value == "") { return; } var aValue = checkDateFormat(pField.value, pPadding); if(aValue == null) { alert("ERREUR: La valeur [" + pField.value + "] n'est pas de type DATE [JJ/MM/AAAA]"); pField.focus(); pField.select(); } else { pField.value = aValue; } } /** * * @param pValue */ function formatHour(pValue) { var aHH; var aMM; var aRegexp = /([0-2]\d|\d):?([0-5]\d|\d)?/; // HHMM var anArray = pValue.match(aRegexp); if((anArray != null) &&(anArray[0] == pValue)) { aHH =(anArray[1].length == 1) ? '0' + anArray[1] : aHH = anArray[1]; if(isNullOrEmpty(anArray[2])) { aMM = '00'; } else { aMM =(anArray[2].length == 1) ? '0' + anArray[2] : aMM = anArray[2]; } if((0 <= aHH) &&(aHH <= 23) &&(0 <= aMM) &&(aMM <= 59)) { return aHH + ":" + aMM; } else { return null; } } return null; } /** * * @param pField */ function checkHour(pField) { if(pField == null || pField.value == "") { return; } var aValue = formatHour(pField.value); if(aValue == null) { alert("ERREUR: La valeur [" + pField.value + "] n'est pas de type HEURE [HH:MM]"); pField.focus(); pField.select(); } else { pField.value = aValue; } } /** * * @param pValue */ function isMail(pValue) { var anArrobas = pValue.indexOf('@', 0); var aPoint = pValue.indexOf(".", anArrobas); if((anArrobas == - 1) ||(aPoint == - 1) ||(anArrobas > aPoint)) { return false; } return true; } /** * * @param pField */ function checkMail(pField) { if(pField == null || pField.value == "") { return; } if(!isMail(pField.value)) { alert("ERREUR: La valeur [" + pField.value + "] n'est pas de type MAIL [XXXX@XXXX.XX]"); pField.focus(); pField.select(); } } /** * * @param pValue */ function formatTelephone(pValue) { var aValue = ''; var aRegexp = /(\d{2})[ .-]?(\d{2})[ .-]?(\d{2})[ .-]?(\d{2})[ .-]?(\d{2})/; var anArray = pValue.match(aRegexp); if((anArray != null) &&(pValue == anArray[0])) { for(var i = 1; i < 5; i++) { aValue += anArray[i] + '.'; } aValue += anArray[5]; return aValue; } return null; } /** * * @param pField */ function checkTelephone(pField) { if(pField == null || pField.value == "") { return; } var aValue = formatTelephone(pField.value); if(aValue == null) { alert("ERREUR: La valeur [" + pField.value + "] n'est pas de type TELEPHONE/FAX [XX.XX.XX.XX.XX]"); pField.focus(); pField.select(); } else { pField.value = aValue; } } function genereOption(pForm, pField, pSet) { var theKeys = eval('keys' + pSet + '();'); var theValues = eval("values" + pSet + "();"); var indice = 0; var aFormName = window.document.getElementById(pForm).form.name; for(var j = 0; j < window.document.forms[aFormName].length; j++) { if(window.document.forms[aFormName].elements[j].name == window.document.getElementById(pForm).name) { indice = j - 1; if(window.document.forms[aFormName].elements[indice].selectedIndex == - 1) { break; } } } indice = j - 1; for(var i = 0; i < theKeys.length; i++) { var aKey = theKeys[i]; var aValue = theValues[i]; if(typeof(aKey)=='undefined') aKey = ''; if(typeof(aValue)=='undefined') aValue= ''; td = new Option(aKey, aValue, false, false); window.document.forms[aFormName].elements[indice].options[i] = td; } window.document.forms[aFormName].elements[indice].options[0].selected = true; return true; } function genereOptionST(pForm, pField, pSet) { var theKeys = eval('keys' + pSet + '();'); var theValues = eval("values" + pSet + "();"); var indice = 0; var aFormName = window.document.getElementById(pForm).form.name; for(var j = 0; j < window.document.forms[aFormName].length; j++) { if(window.document.forms[aFormName].elements[j].name == window.document.getElementById(pForm).name) { indice = j; if(window.document.forms[aFormName].elements[indice].selectedIndex == - 1) { break; } } } indice = j; for(var i = 0; i < theKeys.length; i++) { var aKey = theKeys[i]; var aValue = theValues[i]; td = new Option(aKey, aValue, false, false); window.document.forms[aFormName].elements[indice].options[i] = td; } window.document.forms[aFormName].elements[indice].options[0].selected = true; window.document.forms[aFormName].elements[indice - 1].value = window.document.forms[aFormName].elements[indice].options[0].value; return true; } function select2Text(pForm, pField, pField2, pid) { for(var j = 0; j < pForm.length; j++) { if((pForm.elements[j].selectedIndex >= 0) &&(pForm.elements[j].name == pField2)) { tt = pForm.elements[j].selectedIndex; pForm.elements[j - 1].value = pForm.elements[j].options[tt].value; pForm.elements[j].options[tt].text.focus; } } return true; } function text2Select(pForm, pField, pField2, pid) { for(var j = 0; j < pForm.length; j++) { if((pForm.elements[j].selectedIndex >= 0) &&(pForm.elements[j].name == pField2)) { for(var i = 0; i < pForm.elements[j].options.length; i++) { if(pForm.elements[j].options[i].value == pForm.elements[j - 1].value) { pForm.elements[j].options[i].selected = true; break; } } } } return true; } function creerPopup(pref, pwin, pwidth, pheight) { var aWindow = window.open(pref, pwin, 'directories=0, location=0, menubar=0, status=0, toolbar=0, scrollbars=1,resizable=1, width= ' + pwidth + ', height=' + pheight); aWindow.focus(); } /** * Tri une liste en Javascript. */ function agoraArraySort(tableName, column, lineNumber, columnNumber, checkName) { // fait faire le tri par struts-layout. arraySort(tableName, column, lineNumber, columnNumber); // remet ? 0 la case checkall si elle existe. if(document.forms[0] && document.forms[0].elements["checkall"]) { var checkbox = document.forms[0].elements["checkall"]; var checked = true; for(i = 0; i < lineNumber; i++) { element = checkbox.form.elements[checkName + "[" + i + "]"]; if(element != null && !element.checked) { checked = false; break; } } checkbox.checked = checked; } } /** * Permet de lancer plusieurs actions simultan?ment : * - ouvre la premi?re URL dans la fen?tre principale * - ouvre chacune des URL suivante dans des popups */ function multiLink() { if (arguments.length > 1) { for (i=1;i= 1) { self.location.href=arguments[0]; } } function selectPopupLine(pForm, pField, pValue, pSet, pKeys, pValues, pWidth, pHeight,pLine, pEvent) { if(pForm == null || pForm.name == '' || pField == null || pField.name == '' || pSet == null || pKeys == null || pValues == null) { alert("ERREUR: La valeur est incorrecte, l'aide ? la saisie n'est pas disponible"); return null; } var aX = pEvent.screenX; var aY = pEvent.screenY; var aFormName = pForm.name; var aFieldName = pField.name; var aWindow = window.open('', '_popup', 'directories=no, location=no, menubar=no, status=no, toolbar=no, width=' + pWidth + ', height=' + pHeight + ', top=' + aY + ', left=' + aX); aWindow.focus(); var aForm = 'window.opener.document.forms[\'' + aFormName + '\']'; var aField = 'window.opener.document.forms[\'' + aFormName + '\'].elements[\'' + aFieldName + '\']'; var aSelect = 'window.document.getElementById(\'_select\')'; var anAction = aField + '.value=' + aSelect + '.value; window.self.close();'; var aField2 = aFieldName + 'required' ; var aField3 = 'window.opener.document.' + aField2; var imgsrc='\'/charte/ressources/images/'; if(aField3 != "") { anAction = aField + '.value=' + aSelect + '.value;'+ aField3 + '.src= ' + imgsrc + 'clearpixel.gif\' ; window.self.close();'; } var aHTML = '\n' + pSet + '\n\n
\n'; aHTML += '\n'; aHTML += '

\n'; aHTML += '\n'; aHTML += '
\n\n'; aWindow.document.write(aHTML); aWindow.document.close(); return aWindow; } function check(pForm, pFieldName, pSet,pWidth, pHeight,pLine, pEvent ) { if (pForm == null) { return; } var aField = pForm.elements[pFieldName]; if (aField == null) { return; } if (aField.value == "") { return; } var theKeys = eval('keys' + pSet + '();'); var theValues = eval("values" + pSet + "();"); if (!checkValueInArray(aField.value, theValues)) { var aValue = aField.value; selectPopupLine(pForm, aField, aValue, pSet, theKeys, theValues,pWidth, pHeight,pLine, pEvent); } } function help(pForm, pFieldName, pSet,pWidth, pHeight,pLine, pEvent ) { if (pForm == null) { return; } var aField = pForm.elements[pFieldName]; if (aField == null) { return; } var aValue = aField.value; var theKeys = eval('keys' + pSet + '();'); var theValues = eval("values" + pSet + "();"); selectPopupLine(pForm, aField, aValue, pSet, theKeys, theValues,pWidth, pHeight,pLine, pEvent); } function addListener(element,basename,handler) { if (element.addEventListener) { element.addEventListener(basename,handler,false); } else { if (element.attachEvent) { element.attachEvent('on'+ basename,handler); } } } function $(id) { return document.getElementById(id); } function popupEndWaiting() { if (window.opener) { if (window.opener.document.getElementById('popupWait')) { window.opener.document.getElementById('popupWait').display="done"; window.opener.location.reload(); } } }