var calendarDays = new Array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat')
var calendarDIM = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var calendarMonths = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
function calendarWrite( name, year, month, day, hour, minute, second, none, showtime ) {
var html = '';
html += '
';
html += '';
html += '
';
html += '
';
html += '
';
html += '
';
html += '
«';
html += '';
html += 'month';
html += '';
html += '»
';
html += '
«';
html += '';
html += 'year';
html += '';
html += '»
';
html += '
';
html += '
';
html += '
';
html += '
';
html += '
';
html += '
Time:';
html += '«';
html += '';
html += '»';
html += ' : ';
html += '«';
html += '';
html += '»';
html += ' : ';
html += '«';
html += '';
html += '»';
html += '
';
html += '
';
html += '
';
html += '
';
html += '
';
html += ' n/a ';
html += '
';
html += '
';
html += '
';
html += '
';
html += '
';
html += '';
document.write(html);
calendarFill( name, year, month, day, hour, minute, second );
}
function calendarFill( name, year, month, day, hour, minute, second ) {
var firstDate = new Date(year, month-1, 1);
var firstDay = firstDate.getDay();
var none = document.getElementById(name + 'none').checked;
var rows;
var html;
/* catch that Feb */
if (month == 2) {
calendarDIM[1] = ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 !=0))) ? 29 : 28;
}
html = '
';
html += '
';
for (var i = 0; i < 7; i++) {
html += '
' + calendarDays[i] + '
';
};
html += '
';
var thisDay = 1;
var j = 1;
while ( thisDay<=calendarDIM[month-1] ) {
html += '
';
for (i = 0; i < 7; i++) {
if (( (j>1) || (i>=firstDay) ) && (thisDay <= calendarDIM[month-1])) {
html += '
' + thisDay + '
';
thisDay++;
} else {
html += '
';
}
}
j++
html += '
';
}
html += '
';
document.getElementById(name + 'days').innerHTML = html;
calendarChangeTime( name, year, month, day, hour, minute, second );
}
function calendarPad( value ) {
var pad = '00' + value;
return pad.slice(-2);
}
function calendarChangeTime( name, year, month, day, hour, minute, second ) {
var hidden = document.getElementById(name);
if (year==null||isNaN(year)) { year = parseInt(hidden.year); }
if (month==null||isNaN(month)) { month = parseInt(hidden.month); }
if (day==null||isNaN(day)) { day = parseInt(hidden.day); }
if (hour==null||isNaN(hour)) { hour = parseInt(hidden.hour); }
if (minute==null||isNaN(minute)) { minute = parseInt(hidden.minute); }
if (second==null||isNaN(second)) { second = parseInt(hidden.second); }
var none = document.getElementById(name + 'none').checked;
var show = document.getElementById(name + 'showtext');
if (none=="1") {
hidden.value = "none";
show.value = "n/a";
} else {
hidden.value = year + '-' + month + '-' + day + ' ' + calendarPad( hour) + ':' + calendarPad( minute) + ':' + calendarPad( second);
if (show.getAttribute('showTime')=='1') {
show.value = day+' '+calendarMonths[month-1] + ', ' + year + ' ' + calendarPad( hour) + ':' + calendarPad( minute) + ':' + calendarPad( second);
} else {
show.value = day+' '+calendarMonths[month-1] + ', ' + year;
}
}
show.oldvalue = show.value;
document.getElementById(name + 'months').innerHTML = calendarMonths[month-1];
document.getElementById(name + 'years').innerHTML = year;
document.getElementById(name + 'hours').value = calendarPad( hour);
document.getElementById(name + 'minutes').value = calendarPad( minute);
document.getElementById(name + 'seconds').value = calendarPad( second);
hidden.day = day;
hidden.month = month;
hidden.year = year;
hidden.hour = hour;
hidden.minute = minute;
hidden.second = second;
};
function calendarSelect( name, day ) {
var oldday, newday;
var hidden = document.getElementById(name);
if (hidden.day!='0') {
oldday = document.getElementById(name + 'day' + hidden.day);
oldday.style.backgroundColor = 'white';
oldday.style.color = 'black';
oldday.style.fontWeight = 'normal';
}
newday = document.getElementById(name + 'day' + day);
newday.style.backgroundColor = 'black';
newday.style.color = 'white';
newday.style.fontWeight = 'bold';
hidden.day = day;
document.getElementById(name + 'none').checked = false;
return calendarMove( name ,0,0,0,0,0);
}
function calendarMove( name, dSeconds, dMinutes, dHours, dMonths, dYears ) {
var dDays = 0
var hidden = document.getElementById(name);
var second = parseInt(hidden.second);
var minute = parseInt(hidden.minute);
var hour = parseInt(hidden.hour);
var day = parseInt(hidden.day);
var month = parseInt(hidden.month);
var year = parseInt(hidden.year);
second += dSeconds;
while (second>59) { second -= 60; dMinutes += 1; }
while (second<0) { second += 60; dMinutes -= 1; }
minute += dMinutes;
while (minute>59) { minute -= 60; dHours += 1; }
while (minute<0) { minute += 60; dHours -= 1; }
hour += dHours;
while (hour>23) { hour -=24; dDays +=1; }
while (hour<0) { hour +=24; dDays -=1; }
day += dDays;
if (day>calendarDIM[month+dMonths-1]) { day = calendarDIM[month+dMonths-1] }
if (day<1) { dMonths -=1; day = calendarDIM[month+dMonths-1]; }
month += dMonths;
if (month>12) {
month=1;
dYears+=1;
} else if (month<1) {
month=12;
dYears-=1;
}
if (day>calendarDIM[month-1]) { day = calendarDIM[month-1]; }
year += dYears;
if (year<0) {
year=0;
};
if ((dYears!=0)||(dMonths!=0)||(dHours!=0)||(dMinutes!=0)||(dSeconds!=0)) {
document.getElementById(name + 'none').checked = false
}
if ((dYears!=0)||(dMonths!=0)||(document.getElementById(name + 'none').checked)) {
calendarFill( name, year, month, day, hour, minute, second );
} else {
calendarChangeTime( name, year, month, day, hour, minute, second );
}
return false;
}
function calendarCheckTime( ob ) {
var dtNew = Date.parse(ob.value);
var szId = ob.id.substring(0,ob.id.length-8);
if (isNaN(dtNew)) {
document.getElementById(szId + 'none').checked = true;
calendarChangeTime( szId, 0, 0, 0, 0, 0, 0 );
} else {
dtNew = new Date(dtNew);
document.getElementById(szId + 'none').checked = false;
calendarFill( szId, dtNew.getFullYear(), dtNew.getMonth()+1, dtNew.getDate(), dtNew.getHours(), dtNew.getMinutes(), dtNew.getSeconds() );
}
}