/*http://blog.niap3d.com/jsSimpleDatePickr*/ function jsSimpleDatePickr(id){ var me = this; me.dateDisp = new Date(); me.dateSel = new Date(); me.dayOrder = '1234560'; me.dayName = ['D', 'L', 'M', 'M', 'J', 'V', 'S']; me.id = id; me.funcDateClic = me.classTable = me.classTd = me.classSelection = ''; me.setDate = function(dateStr){ if(!dateStr) return 0; var dateArr = dateStr.split('/'); if(isNaN(dateArr[0])) return 0; today = new Date(); if(isNaN(dateArr[1])) dateArr[1] = today.getMonth(); else dateArr[1] = parseInt(dateArr[1], 10)-1; if(isNaN(dateArr[2])) dateArr[2] = today.getFullYear(); else if(parseInt(dateArr[2], 10)<100) dateArr[2] = parseInt(dateArr[2], 10)+2000; me.dateSel = new Date(dateArr[2], dateArr[1], dateArr[0]); me.dateDisp = new Date(dateArr[2], dateArr[1], dateArr[0]); } me.setMonth = function(val){ var v = parseInt(val, 10); if(val.charAt(0)=='+' || val.charAt(0)=='-') v = me.dateDisp.getMonth()+v; me.dateDisp.setMonth(v); } me.setYear = function(val){ var v = parseInt(val, 10); if(val.charAt(0)=='+' || val.charAt(0)=='-') v = me.dateDisp.getFullYear()+v; me.dateDisp.setFullYear(v); } me.show = function(){ var nb = today = 0; var month = me.dateDisp.getMonth(); var year = me.dateDisp.getFullYear(); if(month==me.dateSel.getMonth() && year==me.dateSel.getFullYear()) today = me.dateSel.getDate(); var h = ''; for(var i=0; i<7; i++){ h += ''; } h += ''; var d = new Date(year, month, 1); for(nb=0; nb7){ nb = 1; h += ''; } h += ''; } for(i=nb; i<7; i++){ h += ''; } h += '
'+me.dayName[me.dayOrder[i]]+'
'+i+'
'; document.getElementById(me.id).innerHTML = h } } // calInit // // initialise // // divId = identifiant du bloc
qui va contenir le calendrier // btName = nom qui sera afcihé sur le bouton pour afficher / masquer la calendrier (facultatif) // fieldId = identifiant du champ dans lequel sera affiché la date // classTable = class du tableau // classTable = class des // classSel = class de la date sélectionné // function calInit(divId, btName, fieldId, classTable, classDay, classSel){ calDiv = document.getElementById(divId); dateEl = document.getElementById(fieldId); // vérifie l'existance de divId et fieldId if(calDiv==undefined || dateEl==undefined) return 0; var h = ""; // si btName est définit, un bouton est créer. En cliquant sur ce bouton le calendrier est affiché / masqué // si btName n'est pas définit, on attache la fonction calToogle au champ de texte qui contiendra la date if(btName=="") dateEl.addEventListener('click', function(){ calToogleFromField(fieldId); }, false); else h = ''; // créer un bloc div qui contient des boutons de navigation, le titre et le bloc dans lequel sera affiché le calendrier h += '
'; // ajoute le code HTML calDiv.innerHTML = h; // initialise l'objet jsSimpleDatePickr obj = new jsSimpleDatePickr('calendar'+jsSDPId); obj.funcDateClic = 'calClick'; obj.classTable = classTable; obj.classTd = classDay; obj.classSelection = classSel; // sauvegarde l'objet, le champ de texte rattaché et l'id envoyé à jsSimpleDatePickr jsSDPObj[jsSDPId] = [obj, fieldId, 'calendar'+jsSDPId]; jsSDPId++; return 1; } // // affiche / masque le calendrier // function calToogle(id){ if (!cal_dispo) return; if(jsSDPObj[id] == undefined) return 0; var el = document.getElementById('calendarWrap'+id); field = document.getElementById(jsSDPObj[id][1]); if(el.style.display=="block"){ el.style.display = "none"; }else{ jsSDPObj[id][0].setDate(String(field.value)); jsSDPObj[id][0].show('calendar'); calShowTitle(id); el.style.display = "block"; } } // // affiche / masque le calendrier (clic depuis un champ de texte) // function calToogleFromField(fieldId){ for(var i = 0; i