datepicker.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. var calMonthString = new Array("Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember");
  2. var calMonthDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
  3. function drawCalendar(textDoc, calDoc, cal) {
  4. if (cal == null) {
  5. var calVal = new String(document.forms[0][textDoc].value);
  6. try {
  7. idx1 = calVal.indexOf('/');
  8. idx2 = calVal.indexOf('/', idx1+1);
  9. if (idx1 > 0 && idx2 > idx1) {
  10. d = calVal.substring(0, idx1);
  11. m = calVal.substring(idx1+1, idx2);
  12. y = calVal.substring(idx2+1);
  13. }
  14. cal = new Date(y, m-1, d);
  15. } catch (ex) {
  16. cal = new Date();
  17. }
  18. }
  19. var calNow = new Date();
  20. var calNowDate = -1;
  21. if (calNow.getFullYear() == cal.getFullYear() && calNow.getMonth() == cal.getMonth()) {
  22. calNowDate = calNow.getDate();
  23. }
  24. var calDate = cal.getDate();
  25. var calStartDay = (50+cal.getDay()-calDate) % 7;
  26. var calDateItr = 1;
  27. var calDate = cal.getDate();
  28. var calMonth = cal.getMonth();
  29. var calYear = cal.getFullYear();
  30. var calMaxDate = calMonthDays[calMonth];
  31. if (((0 == (calYear%4)) && ( (0 != (calYear%100)) || (0 == (calYear%400)))) && calMonth == 1) {
  32. calMaxDate = 29;
  33. }
  34. var calHTML = "<table border=0 cellspacing=1 cellpadding=0 bgcolor='#oooooo' class='maintext'>";
  35. calHTML += "<tr bgcolor='white'><td colspan=7><table border=0 width='100%' class='maintext'><tr><td align=center>";
  36. calHTML += "<select onChange='drawCalendar(\""+textDoc+"\", \""+calDoc+"\", new Date("+calYear+", this.value,"+calDate+"));' class='maintext'>";
  37. for (i=0; i<12; i++) {
  38. calHTML += "<option value='"+i+"'"+(calMonth == i ? " selected" : "")+">"+calMonthString[i]+"</option>";
  39. }
  40. calHTML += "</select>";
  41. calHTML += "<select class='maintext' onChange='drawCalendar(\""+textDoc+"\", \""+calDoc+"\", new Date(this.value, "+calMonth+","+calDate+"));'>";
  42. for (i=(calYear - 50), il=(calYear + 50); i<=il; i++) {
  43. calHTML += "<option value='"+i+"'"+(calYear == i ? " selected" : "")+">"+i+"</option>";
  44. }
  45. calHTML += "</select>";
  46. calHTML += "</td></tr></table></td></tr>";
  47. calHTML += "<tr bgcolor='white'><td colspan=7><table border=0 width='100%' class='maintext'><tr><td align=left>";
  48. calHTML += "<a href='javascript:drawCalendar_set(\""+textDoc+"\", \""+calDoc+"\", null)'>Empty</a>";
  49. calHTML += "</td><td align=center>";
  50. calHTML += "<a href='javascript:drawCalendar_cancel(\""+textDoc+"\", \""+calDoc+"\")'>Cancel</a>";
  51. calHTML += "</td><td align=right>";
  52. calHTML += "<a href='javascript:drawCalendar_set(\""+textDoc+"\", \""+calDoc+"\", new Date())'>Today</a>";
  53. calHTML += "</td></tr></table></td></tr>";
  54. calHTML += "<tr bgcolor='white'><td align='center' class='titleField'>S</td><td align='center' class='maintext'>M</td><td align='center' class='titleField'>T</td><td align='center' class='titleField'>W</td><td align='center' class='titleField'>T</td><td align='center' class='titleField'>F</td><td align='center' class='titleField'>S</td></tr>";
  55. calHTML += "<tr bgcolor='white'>";
  56. for (i=0; i<calStartDay; i++) calHTML += "<td>&nbsp;&nbsp;&nbsp;</td>";
  57. for (i=calStartDay; i<7; i++) {
  58. calHTML += "<td align=right"+(calNowDate == calDateItr ? " bgcolor=#FFCCCC" : "")+"><a style='text-decoration:none' href='javascript:drawCalendar_set(\""+textDoc+"\", \""+calDoc+"\", new Date("+calYear+", "+calMonth+", "+calDateItr+"))'>"+calDateItr+"</a>&nbsp;</td>";
  59. calDateItr ++;
  60. }
  61. calHTML += "</tr>";
  62. while (calDateItr <= calMaxDate) {
  63. calHTML += "<tr bgcolor='white'>";
  64. for (i=0; i<7; i++) {
  65. if (calDateItr <= calMaxDate) {
  66. calHTML += "<td align=right"+(calNowDate == calDateItr ? " bgcolor=#B0B0B0" : "")+"><a style='text-decoration:none' href='javascript:drawCalendar_set(\""+textDoc+"\", \""+calDoc+"\", new Date("+calYear+", "+calMonth+", "+calDateItr+"))'>"+calDateItr+"</a>&nbsp;</td>";
  67. calDateItr ++;
  68. } else calHTML += "<td>&nbsp;&nbsp;&nbsp;</td>";
  69. }
  70. calHTML += "</tr>";
  71. }
  72. calHTML += "</table>";
  73. document.getElementById(calDoc).innerHTML = calHTML;
  74. document.getElementById(calDoc).style.display = "block";
  75. }
  76. function calendarToogle(textDoc, calDoc, cal) {
  77. if (document.getElementById(calDoc).style.display != "none") {
  78. document.getElementById(calDoc).style.display = "none";
  79. return;
  80. }
  81. date_5Fof_5Fbirth_focus = false;
  82. drawCalendar(textDoc, calDoc, cal);
  83. }
  84. function drawCalendar_set(textDoc, calDoc, cal) {
  85. if (cal == null) {
  86. document.forms[0][textDoc].value = "";
  87. } else {
  88. document.forms[0][textDoc].value = cal.getDate()+"/"+(cal.getMonth()+1)+"/"+cal.getFullYear();
  89. }
  90. document.getElementById(calDoc).style.display = "none";
  91. }
  92. function drawCalendar_cancel(textDoc, calDoc) {
  93. document.getElementById(calDoc).style.display = "none";
  94. }