var day, month, year; var fieldInFormOfInterest; // Ha! var cal_window; var imageLeft, imageTop; //var dateFormat = "mm/dd/yyyy" //Valid Formats: "" "mm/dd/yyyy" "dd/mm/yyyy" //var dateFormat = "dd/mm/yyyy" //Valid Formats: "" "mm/dd/yyyy" "dd/mm/yyyy" var dateFormat = "mm/dd/yyyy" var functionName document.writeln(""); function setDate(dateField, id, lang, funcName) { this.inDate = dateField.value; fieldInFormOfInterest = dateField; functionName = funcName // SET DAY MONTH AND YEAR TO TODAY'S DATE var now = new Date(); day = now.getDate(); month = now.getMonth(); year = now.getFullYear(); // IF A DATE WAS PASSED IN THEN PARSE THAT DATE if (inDate.indexOf('/')) { if (dateFormat=="yyyy/mm/dd"){ var inYear = parseInt(inDate.substring(0,inDate.indexOf("/"))); var inMonth = inDate.substring(inDate.indexOf("/") + 1, inDate.lastIndexOf("/")); if (inMonth.substring(0,1) == "0" && inMonth.length > 1) inMonth = inMonth.substring(1,inMonth.length); inMonth = parseInt(inMonth); var inDay = inDate.substring(inDate.lastIndexOf("/") + 1, inDate.length); if (inDay.substring(0,1) == "0" && inDay.length > 1) inDay = inDay.substring(1,inDay.length); inDay = parseInt(inDay); }else if (dateFormat=="mm/dd/yyyy"){ var inMonth = inDate.substring(0,inDate.indexOf("/")); if (inMonth.substring(0,1) == "0" && inMonth.length > 1) inMonth = inMonth.substring(1,inMonth.length); inMonth = parseInt(inMonth); var inDay = inDate.substring(inDate.indexOf("/") + 1, inDate.lastIndexOf("/")); if (inDay.substring(0,1) == "0" && inDay.length > 1) inDay = inDay.substring(1,inDay.length); inDay = parseInt(inDay); var inYear = parseInt(inDate.substring(inDate.lastIndexOf("/") + 1, inDate.length)); }else if (dateFormat=="mm/dd/yyyy"){ var inDay = inDate.substring(0,inDate.indexOf("/")); if (inDay.substring(0,1) == "0" && inDay.length > 1) inDay = inDay.substring(1,inDay.length); inDay = parseInt(inDay); var inMonth = inDate.substring(inDate.indexOf("/") + 1, inDate.lastIndexOf("/")); if (inMonth.substring(0,1) == "0" && inMonth.length > 1) inMonth = inMonth.substring(1,inMonth.length); inMonth = parseInt(inMonth); var inYear = parseInt(inDate.substring(inDate.lastIndexOf("/") + 1, inDate.length)); } if (inDay) { day = inDay; } if (inMonth) { month = inMonth-1; } if (inYear) { year = inYear; } } imageLeft = getImagePageLeft(id); imageTop = getImagePageTop(id); cal_window = document.getElementById("CLRCAL1"); displayCalendar(day, month, year, lang); } function changeDate(action, lang) { if (action == "prevYear") { year--; } else if (action == "nextYear") { year++; } else if (action == "prevMonth") { if (month == 0) { month = 11; if (year > 1000) { year--; } } else { month--; } } else if (action == "nextMonth") { if (month == 11) { month = 0; year++; } else { month++; } } else if (action == "today") { var now = new Date(); day = now.getDate(); month = now.getMonth(); year = now.getFullYear(); } displayCalendar(day, month, year, lang); } function isFourDigitYear(year) { if (year.length != 4) { alert ("Sorry, the year must be four-digits in length."); document.calControl.year.select(); document.calControl.year.focus(); } else { return true; } } function returnDate(theDay) { day = theDay; if (day < 10) day = ("0" + day); month++; if (month < 10) month = "0" + month; // if (dateFormat=="yyyy/mm/dd"){ fieldInFormOfInterest.value = year + "/" + month + "/" + day; }else if(dateFormat=="mm/dd/yyyy"){ fieldInFormOfInterest.value = month + "/" + day + "/" + year; }else if(dateFormat=="dd/mm/yyyy"){ fieldInFormOfInterest.value = + day + "/" + month + "/" + year; } cal_window.style.display = "none"; if (functionName != null){ functionName(fieldInFormOfInterest.value); } } function displayCalendar(day, month, year, lang) { day = parseInt(day); month = parseInt(month); year = parseInt(year); if (lang == 1 || lang == null) { var monthArr = new Array('January','February','March','April','May','June','July','August','September','October','November','December'); } else { var monthArr = new Array('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'); } var days = getDaysInMonth(month+1, year); var firstOfMonth = new Date(year, month, 1); var startingPos = firstOfMonth.getDay(); var curDayOfWeek = 0; var curDayOfMonth = 1; var curWeek= 0; var now = new Date(); var nowDay = now.getDate(); var nowMonth = now.getMonth(); var nowYear = now.getFullYear(); var outStr = ""; outStr += "
"; outStr += ""; outStr += ""; if (lang == 1 || lang == null) { outStr += ""; }else{ outStr += ""; } weekCount = 0 for (var i = 0; i < startingPos + days; i++) { if (curDayOfWeek == 0){ outStr += ""; weekCount += 1; } if (i < startingPos) { outStr += ""; curDayOfWeek++; } else { if ((nowDay == curDayOfMonth) && (nowMonth == month) && (nowYear == year)) outStr += ""; else outStr += ""; curDayOfWeek++; curDayOfMonth++; } if (curDayOfWeek % 7 == 0) { curWeek++; outStr += ""; curDayOfWeek = 0 } } while (curDayOfWeek % 7 != 0) { outStr += ""; curDayOfWeek++; } if(weekCount <= 5){ outStr += ""; for(i=0;i<7; i++){ outStr += ""; } outStr += ""; } outStr += ""; outStr += "
" + monthArr[month] + " " + year + "
SMTWTFS
DLMMJVS
 " + curDayOfMonth + "" + curDayOfMonth + "
 
 
"; outStr += ""; outStr += "
"; outStr += ""; outStr += ""; outStr += ""; outStr += ""; outStr += ""; outStr += "
"; outStr += ""; outStr += ""; outStr += ""; outStr += ""; outStr += ""; outStr += ""; outStr += ""; outStr += ""; outStr += "
"; outStr += "
"; outStr += "
"; outStr += "
"; //alert(outStr); cal_window.innerHTML = outStr; cal_window.style.left = imageLeft cal_window.style.top = imageTop cal_window.style.display = ""; var bottom = getWindowBottom(); if ((bottom - cal_window.offsetHeight) < imageTop){ imageTop = bottom - cal_window.offsetHeight -5; cal_window.style.top = imageTop } } function getDaysInMonth(month, year) { if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12) return(31); else if (month==4 || month==6 || month==9 || month==11) return(30); else if (month==2) { if (isLeapYear(year)) { return(29); } else { return(28); } } } function isLeapYear (Year) { if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) { return (true); } else { return (false); } } function getImagePageLeft(img) { var x, obj; x = 0; obj = img; while (obj.offsetParent != null) { x += obj.offsetLeft; obj = obj.offsetParent; } x += obj.offsetLeft; return x; } function getImagePageTop(img) { var y, obj; y = 0; obj = img; while (obj.offsetParent != null) { y += obj.offsetTop; obj = obj.offsetParent; } y += obj.offsetTop; return y; } function getWindowBottom(){ var tmpBottom; tmpBottom = document.body.clientHeight + document.body.scrollTop; return tmpBottom; }