Edit C:\galaxie\Back\galaxie\common\calendar\calfunctions.js
/****************************************************************************** * 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. * * ******************************************************************************/ /** * Fonction g?n?rique de calendrier : Une ann?e est-elle bissextile */ function isLeap(year) { return ((year % 100 != 0) && (year % 4 == 0) || (year % 400 == 0)); } /** * Fonction g?n?rique de calendrier : Etant donn?e une date (year, month, day), * on cacule le num?ro de la semaine dans la quelle se trouve cette date. Cela * d?pend du jour de la semaine auquel tombe le 1er janvier, mais aussi des * param?tres suivants : - Quel jour d?bute une semaine : En France 1 (Lundi) ; * aux US (Dimanche) - Le nombre minimum de jours de la nouvelle ann?e dans la * 1ere semaine Ces deux derniers param?tres d?pendent des standards nationaux */ function getWeekOfYear(aYear, aMonth, aDay) { var nbDays = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]; var fstJan = new Date(aYear, 0, 1); // le 1er janvier var fJd = fstJan.getDay(); // le jour de la semaine du 1er Janvier var fJp = (fJd - weekStartDay + 7) % 7; // Position (0 ? 6) dans la semaine // du 1er Janvier var fstWeekDelta; // Si la premi?re semaine est celle contenant le premier // janvier ou la semaine suivante if (7 - fJp >= minimalDaysInFirstWeek) { fstWeekDelta = 1; // La premi?re semaine est la semaine contenant le // 1er Janvier } else { fstWeekDelta = 0; // La premi?re semaine est celle qui suit la semaine // contenant le 1er Janvier } var curDay = new Date(aYear, aMonth - 1, aDay); // le jour pour le quel on // veut calculer le num?ro // de semaine var cDd = curDay.getDay(); // le jour de la semaine du jour pour le quel on // veut calculer le num?ro de semaine var cDp = (cDd - weekStartDay + 7) % 7; // Position (0 ? 6) dans la semaine // du du jour pour le quel... var nbPastDays = 0; // Nbr de jours de l'ann?e ?coul?s avant le jour pour le // quel... var m; for (m = 1; m < aMonth; m++) { if (m != 2) { nbPastDays += nbDays[m - 1]; } else { nbPastDays += (isLeap(aYear) ? 29 : 28); } } nbPastDays += (aDay - 1); var nbPastPlainWeeksDays = nbPastDays - cDp - (7 - fJp); var res = (nbPastPlainWeeksDays / 7) + 1 + fstWeekDelta; if (res <= 0) { // Si num semaine 0 = derni?re semaine de l'ann?e pr?c?dente (semaine du // 31 d?cembre) return getWeekOfYear(aYear - 1, 12, 31); } else { return res; } } /** * Afficher le calendrier pour le mois indiqu? */ function goTo(aYear, aMonth) { var nbDays = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]; var year = "" + aYear; year = year.substring(2); // Quel jour (0-6) de la semaine tombe le premier jour du mois var fstDay = new Date(aYear, aMonth - 1, 1).getDay(); // Quel est la derniere date (1-31) du mois var lstDate; if (aMonth != 2) { lstDate = nbDays[aMonth - 1]; } else { lstDate = isLeap(aYear) ? 29 : 28; } // Dans quelle colonne (0-6) tombe le premier jour du mois var fstDateCol = (fstDay - weekStartDay + 7) % 7; // Remplir le tableau (6 lignes, 7 colonnes) var l, c; for (l = 0; l < 6; l++) { for (c = 0; c < 7; c++) { var tc = "c" + (l + 1) + (c + 1); var vc = 7 * l + c + 1 - fstDateCol; if (vc < 1 || vc > lstDate) { document.getElementById("c" + (l + 1) + (c + 1)).className = "jourcalendrier"; cleanCell("c" + (l + 1) + (c + 1)); // alert(tc+"clear"); } else { fillCell("c" + (l + 1) + (c + 1), aYear, aMonth, vc); // alert(tc+"fill"); } } } // Placer les lettres d?signant les jours de la semaine var d; for (d = 0; d < 7; d++) { var tdNode = document.getElementById("d" + (d + 1)); while (tdNode.hasChildNodes()) { tdNode.removeChild(tdNode.firstChild); } tdNode.appendChild(document .createTextNode(dayLetter[(d + weekStartDay) % 7])); } // Placer les num?ros des semaines var numWeek = getWeekOfYear(aYear, aMonth, 1); var v60 = 7 * 5 + 0 + 1 - fstDateCol; // Valeur de la premi?re colonne de // la derniere ligne (pour savoir si // la derniere ligne est vide) for (l = 0; l < 6; l++) { var tdNode = document.getElementById("w" + (l + 1)); var c = 0; var vc = 7 * l + c + 1 - fstDateCol; while (tdNode.hasChildNodes()) { tdNode.removeChild(tdNode.firstChild); } if (l < 5 || v60 <= lstDate) { if (l == 1 && numWeek > 51) { numWeek = 0; } // We create a link if we're embedded, otherwise it's juste plain // text if (doALink && doALink()) { // link cr�ation var aLink = document.createElement("a"); var aDest = document.createAttribute("href"); aDest.nodeValue = "javascript:chosenw(" + aYear + ", " + aMonth + ", " + vc + ");"; aLink.setAttributeNode(aDest); aLink.appendChild(document.createTextNode(numWeek + l)); document.getElementById("w" + (l + 1)).appendChild(aLink); } else { document.getElementById("w" + (l + 1)).appendChild( document.createTextNode(numWeek + l)); } document.getElementById("w" + (l + 1)).style.fontStyle = 'italic'; document.getElementById("w" + (l + 1)).style.borderRight = '1px dashed #9da4c4'; } else { document.getElementById('w' + (l + 1)).style.borderRight = ''; } } cleanCell("lblMonth"); cleanCell("in"); document.getElementById("lblMonth").appendChild( document.createTextNode(monthName[aMonth - 1] + " " + year)); var objet = document.getElementById("in"); objet.setAttribute("value", aMonth + " " + aYear) // Placer le lien 'back' var ym, mm; if (aMonth == 1) { ym = aYear - 1; mm = 12; } else { ym = aYear; mm = aMonth - 1; } var aNode = document.getElementById("lm"); var hrefNode = aNode.getAttributeNode("href"); hrefNode.nodeValue = "javascript:Unselect();goTo(" + ym + ", " + mm + ")"; // Placer le lien 'back-back' var aNode = document.getElementById("lmm"); var hrefNode = aNode.getAttributeNode("href"); hrefNode.nodeValue = "javascript:Unselect();goTo(" + (aYear - 1) + ", " + aMonth + ")"; // Placer le lien 'forward' var yp, mp; if (aMonth == 12) { yp = parseInt(aYear) + 1; mp = 1; } else { yp = aYear; mp = parseInt(aMonth) + 1; } var aNode = document.getElementById("lp"); var hrefNode = aNode.getAttributeNode("href"); hrefNode.nodeValue = "javascript:Unselect();goTo(" + yp + ", " + mp + ")"; // Placer le lien 'forward-forward' var aNode = document.getElementById("lpp"); var hrefNode = aNode.getAttributeNode("href"); hrefNode.nodeValue = "javascript:Unselect();goTo(" + (aYear - (-1)) + ", " + aMonth + ")"; } /** * Vider une cellue du tableau */ function cleanCell(cellId) { var tdNode = document.getElementById(cellId); while (tdNode.hasChildNodes()) { tdNode.removeChild(tdNode.firstChild); } } /** * Remplir une cellue du tableau */ function fillCell(cellId, aYear, aMonth, aDay) { cleanCell(cellId); var aLink = document.createElement("a"); var aDest = document.createAttribute("href"); aDest.nodeValue = "javascript:chosen(" + aYear + ", " + aMonth + ", " + aDay + ");"; aLink.setAttributeNode(aDest); aLink.appendChild(document.createTextNode(aDay)); document.getElementById(cellId).appendChild(aLink); // Si c'est la date du jour, on change le style ? : jouractuel var dNow = new Date(); if (aYear == dNow.getFullYear() && aMonth == (dNow.getMonth() + 1) && aDay == dNow.getDate()) { // document.getElementById(cellId).setAttribute("class", "jouractuel"); document.getElementById(cellId).className = "jouractuel"; } else { // document.getElementById(cellId).setAttribute("class", // "jourcalendrier"); document.getElementById(cellId).className = "jourcalendrier"; } } /** * Remplace une chaine par une autre, dans une chaine */ function strReplace(pStr, pKey, pValue) { return pStr.split(pKey).join(pValue); } /** * Rend une chaine repr?sentant une date (donn?e sous forme de tois entiers). */ function getFormatedDate(y, m, d, patern) { var yt = "0000" + y; yt = yt.substring(yt.length - 4); var mt = "0000" + m; mt = mt.substring(mt.length - 2); var dt = "0000" + d; dt = dt.substring(dt.length - 2); var tmp = patern; tmp = strReplace(tmp, "dddd", dt); tmp = strReplace(tmp, "ddd", dt); tmp = strReplace(tmp, "dd", dt); tmp = strReplace(tmp, "d", d); tmp = strReplace(tmp, "MMMM", mt); tmp = strReplace(tmp, "MMM", mt); tmp = strReplace(tmp, "MM", mt); tmp = strReplace(tmp, "M", m); tmp = strReplace(tmp, "yyyy", yt); tmp = strReplace(tmp, "yyy", yt); tmp = strReplace(tmp, "yy", y); tmp = strReplace(tmp, "y", y); return tmp; }
Ms-Dos/Windows
Unix
Write backup
jsp File Browser version 1.2 by
www.vonloesch.de