Kernel : Linux webm039.cluster003.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
Disable function : _dyuweyrj4,_dyuweyrj4r,dl
Safe mode : OFF
Host : www.mehariclubdefrance.com | Server ip : 10.3.20.37 | Your ip : 3.145.79.94 | Time @ Server : 12 May 2025 16:02:30
MySQL : OFF | MSSQL : OFF | cURL : ON | Oracle : OFF | wget : ON | Perl : ON

/home/meharicl/home2/meharicl/www/recensement2/

HOME about upload exec mass file domain root vuln newfile newfolder kill me

File Path : /home/meharicl/home2/meharicl/www/recensement2/DatePicker.js

//JS DatePicker @0-7DE2F6F8 var DateMasks = new Array(26); DateMasks["d"] = 0; DateMasks["dd"] = 2; DateMasks["m"] = 0; DateMasks["mm"] = 2; DateMasks["mmm"] = 3; DateMasks["mmmm"] = 0; DateMasks["M"] = 0; DateMasks["MM"] = 2; DateMasks["MMM"] = 3; DateMasks["MMMM"] = 0; DateMasks["yy"] = 2; DateMasks["yyyy"] = 4; DateMasks["h"] = 0; DateMasks["hh"] = 2; DateMasks["H"] = 0; DateMasks["HH"] = 2; DateMasks["n"] = 0; DateMasks["nn"] = 2; DateMasks["s"] = 0; DateMasks["ss"] = 2; DateMasks["tt"] = String(getLocaleInfo("AMDesignator")).length; DateMasks["am/pm"] = 2; DateMasks["AM/PM"] = 2; DateMasks["A/P"] = 1; DateMasks["a/p"] = 1; DateMasks["w"] = 0; DateMasks["q"] = 0; DateMasks["S"] = 0; function geckoGetRv() { if (navigator.product != 'Gecko') { return -1; } var rvValue = 0; var ua = navigator.userAgent.toLowerCase(); var rvStart = ua.indexOf('rv:'); var rvEnd = ua.indexOf(')', rvStart); var rv = ua.substring(rvStart+3, rvEnd); var rvParts = rv.split('.'); var exp = 1; for (var i = 0; i < rvParts.length; i++) { var val = parseInt(rvParts[i]); rvValue += val / exp; exp *= 100; } return rvValue; } function getDayOfYear(year, month, day) { var firstDay = new Date(year, 0, 1); var date = new Date(year, month, day); return (date-firstDay)/(1000*60*60*24); } function get12Hour(hoursNumber) { if (hoursNumber == 0) hoursNumber = 12; else if (hoursNumber > 12) hoursNumber = hoursNumber - 12; return hoursNumber; } function addZero(value, resultLength) { var countZero = resultLength - String(value).length; var result = String(value); for (var i=0; i<countZero; i++) result = "0" + result; return result; } function getAMPM(HoursNumber, AnteMeridiem, PostMeridiem) { if (HoursNumber >= 0 && HoursNumber < 12) return AnteMeridiem; else return PostMeridiem; } function formatDate(dateToFormat, parsedFormat) { var resultArray = new Array(parsedFormat.length); for (var i=0; i<parsedFormat.length; i++) { switch (parsedFormat[i]) { case "d": resultArray[i] = dateToFormat.getDate(); break; case "w": resultArray[i] = dateToFormat.getDay()+1; break; case "m": case "M": resultArray[i] = dateToFormat.getMonth()+1; break; case "q": resultArray[i] = Math.floor((dateToFormat.getMonth()+4)/4); break; case "y": resultArray[i] = getDayOfYear(dateToFormat.getFullYear(), dateToFormat.getMonth(), dateToFormat.getDate()); break; case "h": resultArray[i] = "0";//get12Hour(dateToFormat.getHours()); break; case "H": resultArray[i] = "0";//dateToFormat.getHours(); break; case "n": resultArray[i] = "00";//dateToFormat.getMinutes(); break; case "s": resultArray[i] = "00";//dateToFormat.getSeconds(); break; case "dd": resultArray[i] = addZero(dateToFormat.getDate(), 2); break; case "ww": resultArray[i] = Math.floor(getDayOfYear(dateToFormat.getFullYear(), dateToFormat.getMonth(), dateToFormat.getDate())/7)+1; break; case "mm": case "MM": resultArray[i] = addZero(dateToFormat.getMonth()+1, 2); break; case "yy": resultArray[i] = String(dateToFormat.getFullYear()).substr(2); break; case "hh": resultArray[i] = "00";//addZero(get12Hour(dateToFormat.getHours()), 2); break; case "HH": resultArray[i] = "00";//addZero(dateToFormat.getHours(), 2); break; case "nn": resultArray[i] = "00";//addZero(dateToFormat.getMinutes(), 2); break; case "ss": resultArray[i] = "00";//addZero(dateToFormat.getSeconds(), 2); break; case "S": resultArray[i] = "000";//"000"; break; case "ddd": resultArray[i] = listShortWeekdays[dateToFormat.getDay()]; break; case "mmm": case "MMM": resultArray[i] = listShortMonths[dateToFormat.getMonth()]; break; case "A/P": resultArray[i] = "A";//getAMPM(dateToFormat.getHours(), "A", "P"); break; case "a/p": resultArray[i] = "a";//getAMPM(dateToFormat.getHours(), "a", "p"); break; case "dddd": resultArray[i] = listWeekdays[dateToFormat.getDay()]; break; case "mmmm": case "MMMM": resultArray[i] = listMonths[dateToFormat.getMonth()]; break; case "yyyy": resultArray[i] = dateToFormat.getFullYear(); break; case "tt": resultArray[i] = getLocaleInfo("AMDesignator");//getAMPM(dateToFormat.getHours(), getLocaleInfo("AMDesignator"), getLocaleInfo("PMDesignator")); break; case "AM/PM": resultArray[i] = "AM";//getAMPM(dateToFormat.getHours(), "AM", "PM"); break; case "am/pm": resultArray[i] = "am";//getAMPM(dateToFormat.getHours(), "am", "pm"); break; case ":": resultArray[i] = ":"; break; case "LongDate": resultArray[i] = formatDate(dateToFormat, parseDateFormat(getLocaleInfo("longDate"))); break; case "LongTime": resultArray[i] = formatDate(dateToFormat, parseDateFormat(getLocaleInfo("longTime"))); break; case "ShortDate": resultArray[i] = formatDate(dateToFormat, parseDateFormat(getLocaleInfo("shortDate"))); break; case "ShortTime": resultArray[i] = formatDate(dateToFormat, parseDateFormat(getLocaleInfo("shortTime"))); break; case "GeneralDate": resultArray[i] = formatDate(dateToFormat, parseDateFormat(getLocaleInfo("shortDate")+" "+getLocaleInfo("longTime"))); break; default: if (String(parsedFormat[i]).charAt(0)=="\\") resultArray[i] = String(parsedFormat[i]).substr(0); else resultArray[i] = parsedFormat[i]; } } return resultArray.join(""); } function parseDate(dateToParse, parsedMask) { var resultDate, resultDateArray = new Array(8); var MaskPart, MaskLength, TokenLength; var IsError; var DatePosition, MaskPosition; var Delimiter, BeginDelimiter; var MonthNumber, MonthName; var DatePart; var IS_DATE_POS, YEAR_POS, MONTH_POS, DAY_POS, IS_TIME_POS, HOUR_POS, MINUTE_POS, SECOND_POS; IS_DATE_POS = 0; YEAR_POS = 1; MONTH_POS = 2; DAY_POS = 3; IS_TIME_POS = 4; HOUR_POS = 5; MINUTE_POS = 6; SECOND_POS = 7; if (!parsedMask) { resultDate = null; } else if (parsedMask[0] == "GeneralDate" && String(dateToParse)!="") resultDate = parseDate(dateToParse, parseDateFormat(getLocaleInfo("shortDate")+" "+getLocaleInfo("longTime"))); else if (parsedMask[0] == "LongDate" && String(dateToParse)!="") resultDate = parseDate(dateToParse, parseDateFormat(getLocaleInfo("longDate"))); else if (parsedMask[0] == "ShortDate" && String(dateToParse)!="") resultDate = parseDate(dateToParse, parseDateFormat(getLocaleInfo("shortDate"))); else if (parsedMask[0] == "LongTime" && String(dateToParse)!="") resultDate = parseDate(dateToParse, parseDateFormat(getLocaleInfo("longTime"))); else if (parsedMask[0] == "ShortTime" && String(dateToParse)!="") resultDate = parseDate(dateToParse, parseDateFormat(getLocaleInfo("shortTime"))); else if (String(dateToParse) == "") resultDate = null; else { DatePosition = 0; MaskPosition = 0; MaskLength = parsedMask.length; IsError = false; // Default date resultDateArray[IS_DATE_POS] = false; resultDateArray[IS_TIME_POS] = false; resultDateArray[YEAR_POS] = 0; resultDateArray[MONTH_POS] = 12; resultDateArray[DAY_POS] = 1; resultDateArray[HOUR_POS] = 0; resultDateArray[MINUTE_POS] = 0; resultDateArray[SECOND_POS] = 0; while ((MaskPosition < MaskLength) && !IsError) { MaskPart = parsedMask[MaskPosition]; if (DateMasks[MaskPart] != null) { TokenLength = DateMasks[MaskPart]; if (TokenLength > 0) { DatePart = String(dateToParse).substr(DatePosition, TokenLength); DatePosition = DatePosition + TokenLength; }else { if (MaskPosition < MaskLength) { Delimiter = parsedMask[MaskPosition + 1]; BeginDelimiter = dateToParse.indexOf(Delimiter, DatePosition); if (BeginDelimiter == -1) { //alert("ParseDate function: The number doesn't match the mask."); return null; }else { DatePart = String(dateToParse).substr(DatePosition, BeginDelimiter - DatePosition); DatePosition = BeginDelimiter; } }else DatePart = String(dateToParse).substr(DatePosition); } switch (MaskPart) { case "d": case "dd": resultDateArray[DAY_POS] = Math.floor(DatePart); resultDateArray[IS_DATE_POS] = true; break; case "m": case "mm": case "M": case "MM": resultDateArray[MONTH_POS] = Math.floor(DatePart); resultDateArray[IS_DATE_POS] = true; break; case "mmm": case "mmmm": case "MMM": case "MMMM": MonthNumber = 0; MonthName = String(DatePart).toUpperCase(); if (MaskPart == "mmm") MonthNamesArray = listShortMonths; else MonthNamesArray = listMonths; while (MonthNumber < 11 && String(MonthNamesArray[MonthNumber]).toUpperCase() != MonthName) { MonthNumber = MonthNumber + 1; } if (MonthNumber == 11) { if (String(MonthNamesArray[11]).toUpperCase() != MonthName) { //alert("ParseDate function: The number doesn't match the mask."); return null; } } resultDateArray[MONTH_POS] = MonthNumber + 1; resultDateArray[IS_DATE_POS] = true; break; case "yy": var last2Digits = Math.floor(DatePart); var centuryDigits = (last2Digits>=50)?1900:2000; resultDateArray[YEAR_POS] = centuryDigits + last2Digits; resultDateArray[IS_DATE_POS] = true; break; case "yyyy": resultDateArray[YEAR_POS] = Math.floor(DatePart); resultDateArray[IS_DATE_POS] = true; break; case "h": case "hh": if (Math.floor(DatePart) == 12) resultDateArray[HOUR_POS] = 0; else resultDateArray[HOUR_POS] = Math.floor(DatePart); resultDateArray[IS_TIME_POS] = true; break; case "H": case "HH": resultDateArray[HOUR_POS] = Math.floor(DatePart); resultDateArray[IS_TIME_POS] = true; break; case "n": case "nn": resultDateArray[MINUTE_POS] = Math.floor(DatePart); resultDateArray[IS_TIME_POS] = true; break; case "s": case "ss": resultDateArray[SECOND_POS] = Math.floor(DatePart); resultDateArray[IS_TIME_POS] = true; break; case "tt": case "am/pm": case "a/p": case "AM/PM": case "A/P": DatePart = DatePart==getLocaleInfo("AMDesignator")?"a":"p"; if (String(DatePart).toLowerCase().charAt(0) == "p") resultDateArray[HOUR_POS] = resultDateArray[HOUR_POS] + 12; else if (String(DatePart).toLowerCase().charAt(0) == "a") resultDateArray[HOUR_POS] = resultDateArray[HOUR_POS]; resultDateArray[IS_TIME_POS] = true; break; case "w": case "q": case "S": //Do Nothing break; } }else DatePosition = DatePosition + parsedMask[MaskPosition].length; MaskPosition = MaskPosition + 1 } if (resultDateArray[IS_DATE_POS] && resultDateArray[IS_TIME_POS]) { resultDate = new Date(resultDateArray[YEAR_POS], resultDateArray[MONTH_POS] - 1, resultDateArray[DAY_POS], resultDateArray[HOUR_POS], resultDateArray[MINUTE_POS], resultDateArray[SECOND_POS]); }else if (resultDateArray[IS_DATE_POS]) { resultDate = new Date(resultDateArray[YEAR_POS], resultDateArray[MONTH_POS] - 1, resultDateArray[DAY_POS]); }else if (resultDateArray[IS_DATE_POS]) { resultDate = new Date(0, 0, 0, resultDateArray[HOUR_POS], resultDateArray[MINUTE_POS], resultDateArray[SECOND_POS]); } } return resultDate; } function checkDateRange(date) { var minDate = new Date(1753, 0, 1); var maxDate = new Date(9999, 11, 31); if (date < minDate) return minDate; if (date > maxDate) return maxDate; return date; } // Date formatting functions end --------------------------------------------------- var DatePickerObject = new Object(); var datepickerControl = null; var datepickerDocumentTop = null; var datepickerDocumentBottom = null; var datepickerSource = ""; var blankCellWeekend = ""; var blankCell = ""; var DatePickerBegin = ""; var DatePickerEnd = ""; var disableEvents = false; var disableUnload = false; var datePickerOpened = false; // Determine browser brand var isNav = false; var isIE = false; // Assume it's either Netscape or MSIE if (navigator.appName == "Netscape") { isNav = true; } else { isIE = true; } // Get currently selected language selectedLanguage = navigator.language; // DatePicker functions begin here --------------------------------------------------- // Set the initial value of the global date field function setDateField(dateField) { // Assign the incoming field object to a global variable datepickerControl = eval(dateField); // Set DatePickerObject.selectedDate to the date in the incoming field or default to today's date setInitialDate(datepickerControl.value); datepickerDocumentTop = buildTop(); datepickerDocumentBottom = buildBottom(); } // Set the initial DatePicker date to today or to the existing value in dateField function setInitialDate(inDate) { // Create a new date object var date = parseDate(inDate, parseDateFormat(DatePickerObject.format)); if (date) date = checkDateRange(date); // If the incoming date is invalid, use the current date if (isNaN(date) || !date) { // Simply create a new date object which defaults to the current date date = new Date(); } DatePickerObject.selectedDate = new Date(date.getFullYear(), date.getMonth(), date.getDate()); // KEEP TRACK OF THE CURRENT DAY VALUE DatePickerObject.selectedDay = date.getDate(); // Set day value to 1... to avoid javascript date calculation anomalies // (if the month changes to feb and the day is 30, the month would change to march // and the day would change to 2. setting the day to 1 will prevent that) date.setDate(1); DatePickerObject.currentMonth = date.getMonth(); DatePickerObject.currentYear = date.getFullYear(); } // Popup a window with the DatePicker in it function showDatePicker(object_name, form_name, form_control) { disableEvents = false; DatePickerObject = eval(object_name); if (typeof(DatePickerObject)!="object" || !DatePickerObject) return; DatePickerObject.control = String("document."+form_name+"."+form_control); DatePickerObject.themePath = DatePickerObject.style; DatePickerObject.basePath = getBasePath(); DatePickerObject.selectedDate = new Date(); DatePickerObject.selectedDay = 1; DatePickerObject.currentMonth = DatePickerObject.selectedDate.getMonth(); DatePickerObject.currentYear = DatePickerObject.selectedDate.getFullYear(); if (DatePickerObject.themePath.lastIndexOf("/")!=-1) DatePickerObject.themePath = DatePickerObject.themePath.substr(0,DatePickerObject.themePath.lastIndexOf("/")+1); else if (DatePickerObject.themePath.lastIndexOf("\\")!=-1) DatePickerObject.themePath = DatePickerObject.themePath.substr(0,DatePickerObject.themePath.lastIndexOf("\\")+1); // Pre-build portions of the DatePicker when this js library loads into the browser !!!!!! buildDatePickerParts(); // Set initial value of the date field and create top and bottom part setDateField(DatePickerObject.control); // Use the javascript-generated documents (datepickerDocumentTop, datepickerDocumentBottom) datepickerSource = datepickerDocumentBottom; // Display the DatePicker in a new popup window try{ top.newWinDatePickerObject.focus(); try{ if(eval(DatePickerObject.control+".value")) writeDatePicker(); } catch(e) {} }catch(e){ top.newWinDatePickerObject = null; } if (!datePickerOpened || typeof(top.newWinDatePickerObject) != "object" || (typeof(top.newWinDatePickerObject) == "object" && top.newWinDatePickerObject == null)) { var datepickerURL = DatePickerObject.relativePathPart?DatePickerObject.relativePathPart+"DatePicker.html":"DatePicker.html"; var w_left = Math.ceil(screen.width/2-120); var w_top = Math.ceil(screen.height/2-110); top.newWinDatePickerObject = window.open(datepickerURL+"?random="+Math.random(), "DatePickerWindow", "dependent=yes,left="+w_left+",top="+w_top+",width=300,height=270,screenX=200,screenY=300,titlebar=yes, center: yes, help: no, resizable: yes, status: no"); datePickerOpened = true; } } // Retrieves a path for the <base> tag to get paths correctly function getBasePath() { var l = String(location.href); var q = l.indexOf("?"); l = l.substr(0, (q != -1 ? q : l.length)); var index1 = l.lastIndexOf("\\"); var index2 = l.lastIndexOf("/"); var index = index1>index2?index1:index2; return l.substr(0, index + 1) + DatePickerObject.relativePathPart; } // Create the top DatePicker part function buildTop() { // Create the top part of the DatePicker var imgPrevYear = DatePickerObject.themePath+"Images/Back.gif"; var imgPrevMonth = DatePickerObject.themePath+"Images/Prev.gif"; var imgNextMonth = DatePickerObject.themePath+"Images/Next.gif"; var imgNextYear = DatePickerObject.themePath+"Images/Forward.gif"; /*if (DatePickerObject.hasMasterPage) { imgPrevYear = DatePickerObject.themePath+"Images/NavigatorFirst.png"; imgPrevMonth = DatePickerObject.themePath+"Images/NavigatorPrev.png"; imgNextMonth = DatePickerObject.themePath+"Images/NavigatorNext.png"; imgNextYear = DatePickerObject.themePath+"Images/NavigatorLast.png"; }*/ var datepickerDocument = (DatePickerObject.themeVersion=="3.0"?"":"<TABLE CELLPADDING=0 CELLSPACING=0 CLASS=CalendarControls>"); if (DatePickerObject.themeVersion!="3.0") datepickerDocument += "<TR><TD>"; datepickerDocument += "<A " + "HREF=\"javascript:parent.opener.setPreviousYear()\"><IMG SRC=\""+imgPrevYear+"\"></A><A " + "HREF=\"javascript:parent.opener.setPreviousMonth()\"><IMG SRC=\""+imgPrevMonth+"\"></A>"; if (DatePickerObject.themeVersion!="3.0") datepickerDocument += "</TD><TD style=\"text-align:center;\" style=\"width:100%;\">"; else datepickerDocument += "&nbsp;&nbsp;&nbsp;&nbsp;"; datepickerDocument += "<LABEL ID=\"labelMonth\">"+listMonths[DatePickerObject.currentMonth]+"</LABEL>&nbsp;<LABEL ID=\"labelYear\">"+DatePickerObject.currentYear+"</LABEL>"; if (DatePickerObject.themeVersion!="3.0") datepickerDocument += "</TD><TD>"; else datepickerDocument += "&nbsp;&nbsp;&nbsp;&nbsp;"; datepickerDocument += "<A " + "HREF=\"javascript:parent.opener.setNextMonth()\"><IMG SRC=\""+imgNextMonth+"\"></A><A " + "HREF=\"javascript:parent.opener.setNextYear()\"><IMG SRC=\""+imgNextYear+"\"></A>"; if (DatePickerObject.themeVersion!="3.0") datepickerDocument += "</TD></TR></TABLE>"; //prompt("",datepickerDocument) return datepickerDocument; } // Create the bottom DatePicker part function buildBottom() { // Start DatePicker document var datepickerDocument = (isNav?"<HTML>" + "<HEAD>" + "<base href=\"" + DatePickerObject.basePath + "\">" + // Stylesheet defines appearance of DatePicker "<LINK REL=\"stylesheet\" TYPE=\"text/css\" HREF=\""+DatePickerObject.style+"\">" + "<TITLE> Date Picker </TITLE>" + "</HEAD>" + "<BODY ONUNLOAD='parent.opener.UnLoad();'>":"") + DatePickerBegin.replace(/{datepickerDocumentTop}/, datepickerDocumentTop); // Get month, and year from global DatePicker date var month = DatePickerObject.currentMonth; var year = DatePickerObject.currentYear; var date = new Date(); // Get globally-tracked day value (prevents javascript date anomalies) var selectedDay = DatePickerObject.selectedDay; var i = 0; // Determine the number of days in the current month var days = getDaysInMonth(); // If global day value is > than days in month, highlight last day in month if (selectedDay > days) selectedDay = days; // Determine what day of the week the DatePicker starts on var firstOfMonth = new Date (year, month, 1); // Get the day of the week the first day of the month falls on var startingPos = firstOfMonth.getDay() - firstWeekDayIndex; if (startingPos<0) startingPos += 7; days += startingPos; // Keep track of the columns, start a new row after every 7 columns var columnCount = 0; // Make beginning non-date cells blank for (i = 0; i < startingPos; i++) { if ((columnCount + firstWeekDayIndex) % 7 == 0 || (columnCount + firstWeekDayIndex) % 7 == 6) datepickerDocument += blankCellWeekend else datepickerDocument += blankCell; columnCount++; } // Set values for days of the month var currentDay = 0; var dayType = "weekday"; var dayBackground = ""; // Date cells contain a number for (i = startingPos; i < days; i++) { var paddingChar = "&nbsp;"; dayBackground = ""; var padding = ""; // Adjust spacing so that all links have relatively equal widths if (i-startingPos+1 < 10) padding = "&nbsp;&nbsp;"; else padding = "&nbsp;"; // Get the day currently being written currentDay = i-startingPos+1; // Set the type of day, the selected day generally appears as a different color var currentDate = DatePickerObject.selectedDate; if (currentDay == selectedDay && month==currentDate.getMonth() && year==currentDate.getFullYear()) { dayType = "CalendarSelectedDay"; dayBackground = "CalendarSelectedDay"; } else if (currentDay == date.getDate() && month==date.getMonth() && year==date.getFullYear()) { dayType = "CalendarToday"; dayBackground = "CalendarToday"; } else { dayType = "CalendarDay"; } // Add the day to the DatePicker string depending on workday or not. if ((columnCount + firstWeekDayIndex) % 7 == 0 || (columnCount + firstWeekDayIndex) % 7 == 6) { datepickerDocument += "<TD style=\"text-align:center;\" class=\""+(dayBackground?dayBackground:"CalendarWeekend")+"\">" + padding + "<a href=\"javascript:parent.opener.returnDate(" + currentDay + ")\">" + currentDay + "</a>" + paddingChar + "</TD>"; } else { datepickerDocument += "<TD style=\"text-align:center;\" class=\""+(dayBackground?dayBackground:"CalendarDay")+"\">" + padding + "<a href=\"javascript:parent.opener.returnDate(" + currentDay + ")\">" + currentDay + "</a>" + paddingChar + "</TD>"; } columnCount++; // Start a new row when necessary if (columnCount % 7 == 0) datepickerDocument += "</TR><TR>"; } // Make remaining non-date cells blank for (i=days; i<(startingPos<0?42+startingPos:42); i++) { if ((columnCount + firstWeekDayIndex) % 7 == 0 || (columnCount + firstWeekDayIndex) % 7 == 6) datepickerDocument += blankCellWeekend; else datepickerDocument += blankCell; columnCount++; // Start a new row when necessary if (columnCount % 7 == 0) { datepickerDocument += "</TR>"; if (i<(startingPos<0?41+startingPos:41)) datepickerDocument += "<TR>"; } } // Finish the new DatePicker page datepickerDocument += DatePickerEnd + (isNav?"</BODY>" + "</HTML>":""); // Return the completed DatePicker page return datepickerDocument; } // Write the monthly DatePicker to the bottom DatePicker part function writeDatePicker() { // Set top.newWinDatePickerObject when DatePicker window is refreshed if (!datePickerOpened || typeof(top.newWinDatePickerObject) != "object" || (typeof(top.newWinDatePickerObject) == "object" && top.newWinDatePickerObject == null)) { var datepickerURL = DatePickerObject.relativePathPart?DatePickerObject.relativePathPart+"DatePicker.html":"DatePicker.html"; var w_left = Math.ceil(screen.width/2-120); var w_top = Math.ceil(screen.height/2-110); top.newWinDatePickerObject = window.open(datepickerURL+"?random="+Math.random(), "DatePickerWindow", "dependent=yes,left="+w_left+",top="+w_top+",width=300,height=270,screenX=200,screenY=300,titlebar=yes, center: yes, help: no, resizable: yes, status: no"); } // Create the new DatePicker for the selected month & year datepickerDocumentTop = buildTop(); datepickerDocumentBottom = buildBottom(); // Write the new DatePicker to the bottom part disableUnload = true; top.newWinDatePickerObject.document.open(); top.newWinDatePickerObject.document.write(datepickerDocumentBottom); top.newWinDatePickerObject.document.close(); disableUnload = false; } // Set the DatePicker to today's date and display the new DatePicker function setToday() { // Set global date to today's date var date = new Date(); // Set day month and year to today's date DatePickerObject.currentMonth = date.getMonth(); DatePickerObject.currentYear = date.getFullYear(); returnDate(date.getDate()); } // Set the global date to the previous year and redraw the DatePicker function setPreviousYear() { var year = DatePickerObject.currentYear - 1; var date = new Date(); date.setFullYear(year); date = checkDateRange(date); year = date.getFullYear(); DatePickerObject.currentYear = year; writeDatePicker(); } // Set the global date to the previous month and redraw the DatePicker function setPreviousMonth() { var year = DatePickerObject.currentYear; var month = DatePickerObject.currentMonth; // If month is january, set month to december and decrement the year if (month == 0) { month = 11; if (year > 1000) { year--; var date = new Date(); date.setFullYear(year); date = checkDateRange(date); year = date.getFullYear(); DatePickerObject.currentYear = year; } }else { month--; } DatePickerObject.currentMonth = month; writeDatePicker(); } // Set the global date to the next month and redraw the DatePicker function setNextMonth() { var year = DatePickerObject.currentYear; var month = DatePickerObject.currentMonth; // If month is december, set month to january and increment the year if (month == 11) { month = 0; year++; var date = new Date(); date.setFullYear(year); date = checkDateRange(date); year = date.getFullYear(); DatePickerObject.currentYear = year; } else { month++; } DatePickerObject.currentMonth = month; writeDatePicker(); } // Set the global date to the next year and redraw the DatePicker function setNextYear() { var year = DatePickerObject.currentYear + 1; var date = new Date(); date.setFullYear(year); date = checkDateRange(date); year = date.getFullYear(); DatePickerObject.currentYear = year; writeDatePicker(); } // Get number of days in month function getDaysInMonth() { var days; var month = DatePickerObject.currentMonth+1; var year = DatePickerObject.currentYear; // Return 31 days if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12) { days=31; } // Return 30 days else if (month==4 || month==6 || month==9 || month==11) { days=30; } // Return 29 days else if (month==2) { if (isLeapYear(year)) { days=29; } // Return 28 days else { days=28; } } return (days); } // Check to see if year is a leap year function isLeapYear (Year) { if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) return true; else return false; } // Set days of the week depending on language function createWeekdayList() { firstWeekDayIndex = 0; newWeekdayArray = new Array(7); newWeekdayList = new Array(7); for (var i=0; i<listShortWeekdays.length; i++) if (listShortWeekdays[i]==firstWeekDay) firstWeekDayIndex = i; for (var i=firstWeekDayIndex; i<listShortWeekdays.length; i++) { newWeekdayArray[i-firstWeekDayIndex] = listShortWeekdays[i]; newWeekdayList[i-firstWeekDayIndex] = listWeekdays[i]; } for (var i=0; i<firstWeekDayIndex; i++) { newWeekdayArray[7-firstWeekDayIndex+i] = listShortWeekdays[i]; newWeekdayList[7-firstWeekDayIndex+i] = listWeekdays[i]; } // Start html to hold weekday names in table format var weekdays = "<TR>"; // Loop through weekday array var columnCount = 0; for (var i = 0; i < listShortWeekdays.length; i++) { weekdays += "<TD class=\"CalendarWeekdayName\" style=\"text-align:center;\">" + newWeekdayArray[i] + "</TD>"; columnCount++; } weekdays += "</TR>"; // Return table row of weekday abbreviations to display above the DatePicker return weekdays; } // Pre-build portions of the DatePicker (for performance reasons) function buildDatePickerParts() { // Generate weekday headers for the DatePicker weekdays = createWeekdayList(); // Build the blank cell rows blankCell = "<TD style=\"text-align:center;\" class=\"CalendarDay\">&nbsp;&nbsp;&nbsp;</TD>"; blankCellWeekend = "<TD style=\"text-align:center;\" class=\"CalendarWeekend\">&nbsp;&nbsp;&nbsp;</TD>"; // Build the top portion of the DatePicker page using css to control some display elements var stylePath=DatePickerObject.style; /*if (DatePickerObject.hasMasterPage == true) stylePath += "Style.css";*/ DatePickerBegin = (isNav?"":"<HTML>" + "<HEAD>" + "<base href=\"" + DatePickerObject.basePath + "\">" + // Stylesheet defines appearance of DatePicker "<LINK REL=\"stylesheet\" TYPE=\"text/css\" HREF=\""+stylePath+"\">" + "<TITLE> Date Picker </TITLE>" + "</HEAD>" + "<BODY ONUNLOAD='parent.opener.UnLoad();'>") + "<DIV STYLE='text-align:center'>"; // Navigator needs a table container to display the table outlines properly if (DatePickerObject.themeVersion=="3.0") DatePickerBegin += "<TABLE CELLPADDING=0 CELLSPACING=0 style='width: 100%; margin-left: auto; margin-right: auto'><TR><TD>"; else DatePickerBegin += "<TABLE CELLPADDING=0 CELLSPACING=0 style='width: 100%; margin-left: auto; margin-right: auto'><TR><TD>{datepickerDocumentTop}</TD></TR><TR><TD style=\"text-align:center;vertical-align:top;\">"; // Build weekday headings if (DatePickerObject.themeVersion=="3.0") { DatePickerBegin += "<TABLE CELLPADDING=0 CELLSPACING=0 CLASS=\"Grid\"><TR CLASS=Footer><TD COLSPAN=7>{datepickerDocumentTop}</TD></TR>"; DatePickerBegin += weekdays + "<TR>"; }else DatePickerBegin += "<TABLE CELLPADDING=0 CELLSPACING=0 CLASS=\"Calendar\">" + weekdays + "<TR>"; // Build the bottom portion of the DatePicker page DatePickerEnd = ""; if (DatePickerObject.themeVersion=="3.0") { var translation_language = "fr"; var imgToday = DatePickerObject.themePath+"Images/"+translation_language+"/ButtonToday.gif"; DatePickerEnd += '<tr class=Footer><form id="calTable" name="calTable"><td colspan=7><input type=image src="' + imgToday + '" name=today onClick="parent.opener.setToday()"></td></form></tr>'; } // Navigator needs a table container to display the borders properly DatePickerEnd += "</TABLE>"; // End the table and html document if (DatePickerObject.themeVersion != "3.0") DatePickerEnd += '</TABLE>' + (isNav ? '<FORM NAME="calTable" onSubmit="return false;">' : '') + '<TABLE CELLPADDING=0 CELLSPACING=0>' + (isNav ? "" : '<FORM NAME="calTable" onSubmit="return false;">') + '<TD>' + '<INPUT TYPE="button" CLASS="CalendarButton" NAME="today" VALUE="Aujourd'hui" onClick="parent.opener.setToday()">' + '</TD>' + (isNav ? '' : '</FORM>')+ '</TABLE>' + (isNav ? '</FORM>' : '')+ '</DIV>' + '</HTML>'; } // Set field value to the date selected and close the DatePicker window function returnDate(inDay) { disableEvents = true; // inDay = the day the user clicked on var date = new Date(DatePickerObject.currentYear, DatePickerObject.currentMonth, 1); date.setDate(inDay); if (date) date = checkDateRange(date); // Set the date returned to the user var dateFormat = DatePickerObject.format; var outDate = formatDate(date, parseDateFormat(dateFormat)); // Set the value of the field that was passed to the DatePicker datepickerControl.value = String(outDate).replace(/\s*$/, ""); // Give focus back to the date field if (datepickerControl.type!="hidden") datepickerControl.focus(); // Close the DatePicker window top.newWinDatePickerObject.close() top.newWinDatePickerObject = null; } function UnLoad() { if (disableUnload) return; disableEvents = true; datePickerOpened = false; } //End JS DatePicker