function MakeCalendarCurrent(element,callback) {var d=new Date();return MakeCalendarDMY(element,d.getDate(),d.getMonth()+1,d.getFullYear(),callback);} function MakeCalendarDMY(element,day,month,year,callback) {MakeCalendarDMYInternal(element,day,month,year,day,month,year,callback);} function MakeCalendarDMYInternal(element,day,month,year,initialDay,initialMonth,initialYear,callback) {ClearElement(element);var tableOuter=AppendElement(element,'table',{border:0,cellSpacing:0,cellPadding:4,className:'calendar'});var tbodyOuter=AppendElement(tableOuter,'tbody',{});var trOuter_1=AppendElement(tbodyOuter,'tr',{});var tdOuter_1_1=AppendElement(trOuter_1,'td',{className:'calendarCorner',style:{width:'33.333%'}});var tableUL=AppendElement(tdOuter_1_1,'table',{border:0,cellSpacing:0,cellPadding:1,width:'100%'});var tbodyUL=AppendElement(tableUL,'tbody',{});var trUL_1=AppendElement(tbodyUL,'tr',{});var tdUL_1_1=AppendElement(trUL_1,'td',{style:{textAlign:'left'}});var prevMonth=month-1;if(prevMonth==0)prevMonth=12;tdUL_1_1.innerHTML='< '+MonthName(prevMonth);if(NotTheFuture(day,prevMonth,year,initialDay,initialMonth,initialYear)) {tdUL_1_1.onmouseover=MakeCaller(CalendarHoverOn,tdUL_1_1);tdUL_1_1.onmouseout=MakeCaller(CalendarHoverOff,tdUL_1_1);tdUL_1_1.onclick=MakeCaller(MakeCalendarDMYInternal,element,0,prevMonth,year,initialDay,initialMonth,initialYear,callback);} var trUL_2=AppendElement(tbodyUL,'tr',{});var tdUL_2_1=AppendElement(trUL_2,'td',{style:{textAlign:'left'}});var prevYear=year-1;tdUL_2_1.innerHTML='<'+prevYear;if(NotTheFuture(day,month,prevYear,initialDay,initialMonth,initialYear)) {tdUL_2_1.onmouseover=MakeCaller(CalendarHoverOn,tdUL_2_1);tdUL_2_1.onmouseout=MakeCaller(CalendarHoverOff,tdUL_2_1);tdUL_2_1.onclick=MakeCaller(MakeCalendarDMYInternal,element,0,month,prevYear,initialDay,initialMonth,initialYear,callback);} var tdOuter_1_2=AppendElement(trOuter_1,'td',{style:{width:'33.333%',textAlign:'center'}});tdOuter_1_2.innerHTML=MonthName(month)+'
'+year;var tdOuter_1_3=AppendElement(trOuter_1,'td',{className:'calendarCorner',style:{width:'33.333%'}});var tableUR=AppendElement(tdOuter_1_3,'table',{border:0,cellSpacing:0,cellPadding:1,width:'100%'});var tbodyUR=AppendElement(tableUR,'tbody',{});var trUR_1=AppendElement(tbodyUR,'tr',{});var tdUR_1_1=AppendElement(trUR_1,'td',{style:{textAlign:'right'}});var nextMonth=month+1;if(nextMonth==13)nextMonth=1;tdUR_1_1.innerHTML=MonthName(nextMonth)+' >';if(NotTheFuture(day,nextMonth,year,initialDay,initialMonth,initialYear)) {tdUR_1_1.onmouseover=MakeCaller(CalendarHoverOn,tdUR_1_1);tdUR_1_1.onmouseout=MakeCaller(CalendarHoverOff,tdUR_1_1);tdUR_1_1.onclick=MakeCaller(MakeCalendarDMYInternal,element,0,nextMonth,year,initialDay,initialMonth,initialYear,callback);} var trUR_2=AppendElement(tbodyUR,'tr',{});var tdUR_2_1=AppendElement(trUR_2,'td',{style:{textAlign:'right'}});var nextYear=year+1;tdUR_2_1.innerHTML=nextYear+'>';if(NotTheFuture(day,month,nextYear,initialDay,initialMonth,initialYear)) {tdUR_2_1.onmouseover=MakeCaller(CalendarHoverOn,tdUR_2_1);tdUR_2_1.onmouseout=MakeCaller(CalendarHoverOff,tdUR_2_1);tdUR_2_1.onclick=MakeCaller(MakeCalendarDMYInternal,element,0,month,nextYear,initialDay,initialMonth,initialYear,callback);} var trOuter_2=AppendElement(tbodyOuter,'tr',{});var tdOuter_2_1=AppendElement(trOuter_2,'td',{colSpan:3});var tableLower=AppendElement(tdOuter_2_1,'table',{border:0,cellSpacing:0,cellPadding:1,style:{textAlign:'center'}});var tbodyLower=AppendElement(tableLower,'tbody',{});var trLower_1=AppendElement(tbodyLower,'tr',{});for(var dow=0;dow<7;++dow) {var td_dow=AppendElement(trLower_1,'td',{});td_dow.innerHTML=DowName(dow);} var firstDow=DayOfWeek(1,month,year);var daysInMonth=DaysPerMonth(month,year);var tr=null;var column;var td;for(var aDay=0;aDay<=daysInMonth;) {if(tr==null||column==7) {tr=AppendElement(tbodyLower,'tr',{});column=0;} if(aDay==0) {if(columninitialYear) return false;if(monthinitialMonth) return false;if(day<=initialDay) return true;return false;} function CalendarHoverOn(element) {element.oldId=element.id;element.id='calendarHover';} function CalendarHoverOff(element) {element.id=element.oldId;} function CalendarSelect(element,callback,day,month,year) {var prevSelected=element.calendar.selected;if(prevSelected!=null) prevSelected.className=prevSelected.oldClass;element.oldClass=element.className;if(element.className=='calendarToday') element.className='calendarTodaySelected';else element.className='calendarSelected';element.calendar.selected=element;callback(day,month,year);} function MonthName(month) {var monthName=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];return monthName[month-1];} function DowName(dow) {var dowName=['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];return dowName[dow];} function DayOfWeek(day,month,year) {var d=new Date();d.setDate(day);d.setMonth(month-1);d.setYear(year);d.setHours(12);d.setMinutes(0);d.setSeconds(0);return d.getDay();} var daysPerMonth=[31,28,31,30,31,30,31,31,30,31,30,31];function DaysPerMonth(month,year) {if(month==2&&IsLeapYear(year)) return 29;return daysPerMonth[month-1];} function IsLeapYear(year) {if(year%4!=0) return false;if(year%100!=0) return true;if(year%400!=0) return false;return true;}