// CONSTRUCTOR for the CalendarPopup Object function CalendarPopup() { var newCalendar; if (arguments.length>0) { newCalendar = new PopupWindow(arguments[0]); } else { newCalendar = new PopupWindow(); newCalendar.setSize(150,175); } newCalendar.offsetX = -100; newCalendar.offsetY = 25; newCalendar.autoHide(); // Calendar-specific properties newCalendar.monthNames = new Array("Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Decembre"); newCalendar.dayHeaders = new Array("D","L","M","M","J","V","S"); newCalendar.returnFunction = "tmpReturnFunction"; newCalendar.weekStartDay = 1; newCalendar.isShowYearNavigation = false; // Method mappings newCalendar.setReturnFunction = CalendarPopup_setReturnFunction; newCalendar.setMonthNames = CalendarPopup_setMonthNames; newCalendar.setDayHeaders = CalendarPopup_setDayHeaders; newCalendar.setWeekStartDay = CalendarPopup_setWeekStartDay; newCalendar.showYearNavigation = CalendarPopup_showYearNavigation; newCalendar.showCalendar = CalendarPopup_showCalendar; newCalendar.hideCalendar = CalendarPopup_hideCalendar; newCalendar.getStyles = CalendarPopup_getStyles; newCalendar.refreshCalendar = CalendarPopup_refreshCalendar; newCalendar.getCalendar = CalendarPopup_getCalendar; // Return the object return newCalendar; } function CalendarPopup_tmpReturnFunction(y,m,d) { alert('Use setReturnFunction() to define which function will get the clicked results!'); } function CalendarPopup_setReturnFunction(name) { this.returnFunction = name; } function CalendarPopup_setMonthNames() { for (var i=0; i 0) { window.popupWindowObjects[arguments[0]].hidePopup(); } else { this.hidePopup(); } } function CalendarPopup_refreshCalendar(index) { var calObject = window.popupWindowObjects[index]; if (arguments.length>1) { calObject.populate(calObject.getCalendar(arguments[1],arguments[2])); } else { calObject.populate(calObject.getCalendar()); } calObject.refresh(); } function CalendarPopup_showCalendar(anchorname, returnFctn, valeurChamp){ this.returnFunction = returnFctn; // Modif Clem : on peut envoyer la valeur en arguments de showCalendar pour afficher le calendrier sur le mois souhaité if (VerifDate(valeurChamp, true)>0) { temp = valeurChamp.split("/"); display_month = new Number(temp[1]); display_year = new Number(temp[2]); this.populate(this.getCalendar(display_month, display_year)); } else this.populate(this.getCalendar()); this.showPopup(anchorname); } function CalendarPopup_getStyles() { var result = ""; result += "\n"; return result; } function CalendarPopup_getCalendar() { var now = new Date(); if (arguments.length > 0) { var month = arguments[0]; } else { var month = now.getMonth()+1; } if (arguments.length > 1) { var year = arguments[1]; } else { var year = now.getFullYear(); } var daysinmonth= new Array(0,31,28,31,30,31,30,31,31,30,31,30,31); if ( ( (year%4 == 0)&&(year%100 != 0) ) || (year%400 == 0) ) { // leap year daysinmonth[2] = 29; } var current_month = new Date(year,month-1,1); var display_year = year; var display_month = month; var display_date = 1; var weekday= current_month.getDay(); var offset = 0; if (weekday >= this.weekStartDay) { offset = weekday - this.weekStartDay; } else { offset = 7-this.weekStartDay+weekday; } if (offset > 0) { display_month--; if (display_month < 1) { display_month = 12; display_year--; } display_date = daysinmonth[display_month]-offset+1; } var next_month = month+1; var next_month_year = year; if (next_month > 12) { next_month=1; next_month_year++; } var last_month = month-1; var last_month_year = year; if (last_month < 1) { last_month=12; last_month_year--; } var date_class; var result = ""; if (this.type == "WINDOW") { var windowref = "window.opener."; } else { var windowref = ""; } // If POPUP, write entire HTML document if (this.type == "WINDOW") { result += "Calendar"+this.getStyles()+"\n"; result += '
\n'; } else { result += '
\n'; result += '
\n'; result += '
\n'; result += '\n'; } result += '\n'; if (this.isShowYearNavigation) { result += '\n'; } else { result += ' \n'; result += ' \n'; result += ' \n'; } result += '
'; result += '<  '+this.monthNames[month-1]+'  >\n'; result += '    '; result += '<  '+year+'  >\n'; result += '<<'+this.monthNames[month-1]+' '+year+'>>
\n'; result += '\n'; result += '\n'; result += ' \n'; result += ' \n'; result += ' \n'; result += ' \n'; result += ' \n'; result += ' \n'; result += ' \n'; result += '\n'; result += '\n'; for (var row=1; row<=6; row++) { result += '\n'; for (var col=1; col<=7; col++) { if (display_month == month) { date_class = "calthismonth"; } else { date_class = "calothermonth"; } if ((display_month == now.getMonth()+1) && (display_date==now.getDate()) && (display_year==now.getFullYear())) { td_class="caltoday"; } else { td_class="calmonth"; } result += ' \n'; display_date++; if (display_date > daysinmonth[display_month]) { display_date=1; display_month++; } if (display_month > 12) { display_month=1; display_year++; } } result += ''; } result += '\n'; result += '\n'; result += '
'+this.dayHeaders[(this.weekStartDay)%7]+''+this.dayHeaders[(this.weekStartDay+1)%7]+''+this.dayHeaders[(this.weekStartDay+2)%7]+''+this.dayHeaders[(this.weekStartDay+3)%7]+''+this.dayHeaders[(this.weekStartDay+4)%7]+''+this.dayHeaders[(this.weekStartDay+5)%7]+''+this.dayHeaders[(this.weekStartDay+6)%7]+'
'+display_date+'
\n'; result += ' Aujourd\'hui\n'; result += '
\n'; result += '
\n'; if (this.type == "WINDOW") { result += "\n"; } return result; }