home *** CD-ROM | disk | FTP | other *** search
/ Chip Hitware 7 A / CHIP_HITWARE_7A.iso / internet / Webmaster / _SETUP.4 / Group3 / calen.jav < prev    next >
Text File  |  1999-06-26  |  9KB  |  305 lines

  1. <!---BeginTitle--->calender based on todays date<!---BeginJAVHead---><!---BeginJAVBody---><!--
  2. This Java Script is free to the domain. All I ask is you send me an
  3. email to
  4. ddelong@csci.csusb.edu to let me know that you will be using it. This
  5. message
  6. must be included with the script if you copy it.
  7. -->
  8. <script language="JavaScript">
  9. <!-- for sucky browsers
  10.  
  11. Months = new Array(12);
  12. Months[0] = "January";
  13. Months[1] = "February";
  14. Months[2] = "March";
  15. Months[3] = "April";
  16. Months[4] = "May";
  17. Months[5] = "June";
  18. Months[6] = "July";
  19. Months[7] = "August";
  20. Months[8] = "September";
  21. Months[9] = "October";
  22. Months[10] = "November";
  23. Months[11] = "December";
  24.  
  25. function PadSpaces(TheString)
  26. {
  27.     var Spaces = "             ";
  28.     len = Math.round((9 - TheString.length)/2);
  29.  
  30.     return Spaces.substring(0,len) + TheString;
  31. }
  32.  
  33. function NumLeapYears(StartYear, EndYear)
  34. {
  35.      var LeapYears, i;
  36.  
  37.      if (EndYear >= StartYear){
  38.          for(LeapYears = 0; StartYear <= EndYear; StartYear++)
  39.          if (IsLeapYear(StartYear)) LeapYears++;
  40.     }else{
  41.     for(LeapYears = 0; EndYear <= StartYear; EndYear++)
  42.          if (IsLeapYear(EndYear)) LeapYears++;
  43.     }
  44.      return LeapYears;
  45. }
  46.  
  47. function IsLeapYear(Year) 
  48. {
  49.     if(Math.round(Year/4) == Year/4){
  50.         if(Math.round(Year/100) == Year/100){
  51.             if(Math.round(Year/400) == Year/400)
  52.                 return true;
  53.             else return false;
  54.         }else return true;
  55.     }
  56.     return false;
  57. }
  58.  
  59. function Trim(TheString)
  60. {
  61.     var len;
  62.  
  63.     len = TheString.length;
  64.      while(TheString.substring(0,1) == " "){ //trim left
  65.          TheString = TheString.substring(1, len);
  66.           len = TheString.length;
  67.     }
  68.  
  69.      while(TheString.substring(len-1, len) == " "){ //trim right
  70.          TheString = TheString.substring(0, len-1);
  71.           len = TheString.length;
  72.      }
  73.      return TheString;
  74. }
  75.  
  76. function DetermineMonthIdx()
  77. {
  78.     var i, month, month_s, len;
  79.  
  80.  
  81.     month = Trim(document.calform.elements[4].value);
  82.     len = month.length;
  83.  
  84.     for( i = 0; i <12; i++){
  85.             month_s = Months[i].substring(0,len);
  86.         if (month_s.toUpperCase() == month.toUpperCase())
  87.                 return (i);
  88.       }
  89.       return -1;
  90. }
  91.  
  92. function FindNewYearStartingDay(Year)
  93. {
  94.      var LeapYears, Years, Day;
  95.  
  96.      LeapYears = NumLeapYears(1995, Year); 
  97.  
  98.      if  (Year >=1995)
  99.          Years = (Year -1995)+LeapYears;
  100.      else    Years = (Year -1995)-LeapYears; 
  101.  
  102.      if  (Year >=1995)
  103.         Day = Math.round(((Years/7 - Math.floor(Years/7))*7)+.1);
  104.      else    Day = Math.round(((Years/7 -  Math.ceil(Years/7))*7)-.1);
  105.     
  106.     if (Year >=1995){ 
  107.          if(IsLeapYear(Year)) Day--;
  108.      }else Day += 7;
  109.  
  110.      if(Day < 0) Day = 6;
  111.      if(Day > 6) Day = 0;
  112.      return Day;
  113. }
  114.  
  115. function FindNumDaysInMonth(Year, Month)
  116. {
  117.      if(Month == 1){
  118.            if(IsLeapYear(Year)) return 29;
  119.            else return 28;
  120.      }else{    
  121.            if(Month >6) Month++;
  122.            if(Month/2 == Math.round(Month/2))  return 31;
  123.      }
  124.  return 30;        
  125. }
  126.  
  127. function FindMonthStartDay(NewYearDay, Year, Month)
  128. {
  129.       var MonthStartDay;
  130.  
  131.       AddArray = new Array(12);
  132.  
  133.       AddArray[0]=0;AddArray[1]=3;AddArray[2]=3;AddArray[3]=6;
  134.     AddArray[4]=1;AddArray[5]=4;AddArray[6]=6;AddArray[7]=2;
  135.     AddArray[8]=5;AddArray[9]=0;AddArray[10]=3;AddArray[11]=5;
  136.  
  137.       MonthStartDay = NewYearDay + AddArray[Month];
  138.       if(IsLeapYear(Year)  && (Month ) > 1) MonthStartDay ++;
  139.   
  140.       if (MonthStartDay > 6) MonthStartDay -= 7;
  141.  
  142.       return MonthStartDay; 
  143. }
  144.  
  145. function  FillCalendar()
  146. {
  147.       var Year, Month, Midx, NewYearDay, MonthStartDay;
  148.     var NumDaysInMonth, i, t;
  149.  
  150.       Year = parseFloat(document.calform.elements[1].value);
  151.       Month = document.calform.elements[4].value;
  152.  
  153.       Midx  =  DetermineMonthIdx();
  154.       if (Midx == -1){
  155.            alert ("Can't recognize that month");
  156.            return;
  157.       }
  158.  
  159.       NewYearDay = FindNewYearStartingDay(Year);
  160.       MonthStartDay = FindMonthStartDay(NewYearDay, Year,  Midx);
  161.       NumDaysInMonth = FindNumDaysInMonth(Year, Midx);  
  162.  
  163.       for(i = 6;  i < 43;  i++){
  164.         t = i-5-MonthStartDay;
  165.         if ( t >= 1  &&  t <= NumDaysInMonth)
  166.             document.calform.elements[i].value =t;
  167.         else document.calform.elements[i].value = "";
  168.       }
  169. }
  170.  
  171. function IncDecYear(val)
  172. {
  173.     var valNum = parseInt(val);
  174.     var valNum2 = parseInt(document.calform.elements[1].value)
  175.     document.calform.elements[1].value = valNum2 + valNum;
  176.  
  177.     FillCalendar()
  178. }
  179.  
  180. function IncDecMonth(val)
  181. {
  182.     var valNum = parseInt(val);
  183.       var Midx  =  DetermineMonthIdx();
  184.     
  185.     Midx += valNum;
  186.     if(Midx > 11) Midx = 0;
  187.     if(Midx < 0)  Midx = 11;
  188.  
  189.     
  190.     document.calform.elements[4].value = PadSpaces(Months[Midx]);
  191.  
  192.     FillCalendar()
  193. }
  194.  
  195. // -->
  196. </script>
  197. </head>
  198.  
  199. <body>
  200. <center>
  201. <table border=1 bgcolor="#000000" cellpadding=1 cellspacing=1><tr><td
  202. align=center>
  203. <table border=0  cellpadding=0 cellspacing=0>
  204. <form name="calform">
  205. <tr>
  206.     <td align=center cellpadding=0 cellspacing=0 bgcolor="#000000"><input
  207. type=button value="<<" onClick="IncDecYear(-1)"></td>
  208.     <th cellpadding=0 cellspacing=0 bgcolor="#aaaaaa" colspan=5
  209. align=center><input size=4 type=text value="1993"></th>
  210.     <td align=center cellpadding=0 cellspacing=0 bgcolor="#000000"><input
  211. type=button value=">>" onClick="IncDecYear(1)"></td>
  212. </tr>
  213. <tr>
  214.     <td align=center bgcolor="#000000"><input type=button value="<<"
  215. onClick="IncDecMonth(-1)"></td>
  216.     <th bgcolor="#aaaaaa" colspan=5 align=center><input size=9 type=text
  217. value=" January "></th>
  218.     <td align=center bgcolor="#000000"><input type=button value=">>"
  219. onClick="IncDecMonth(1)"></td>
  220. </tr>
  221. <tr>
  222.     <th  bgcolor="#ffcccc">S</td>
  223.     <th  bgcolor="#ccccff">M</td>
  224.     <th  bgcolor="#ccccff">T</td>
  225.     <th  bgcolor="#ccccff">W</td>
  226.     <th  bgcolor="#ccccff">T</td>
  227.     <th  bgcolor="#ccccff">F</td>
  228.     <th  bgcolor="#ccccff">S</td>
  229. </tr>
  230. <tr>
  231.     <td  bgcolor="#ffcccc"><input type=text size=2></td>
  232.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  233.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  234.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  235.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  236.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  237.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  238. </tr>
  239. <tr>
  240.     <td  bgcolor="#ffcccc"><input type=text size=2></td>
  241.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  242.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  243.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  244.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  245.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  246.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  247. </tr>
  248. <tr>
  249.     <td  bgcolor="#ffcccc"><input type=text size=2></td>
  250.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  251.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  252.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  253.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  254.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  255.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  256. </tr>
  257. <tr>
  258.     <td  bgcolor="#ffcccc"><input type=text size=2></td>
  259.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  260.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  261.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  262.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  263.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  264.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  265. </tr>
  266. <tr>
  267.     <td  bgcolor="#ffcccc"><input type=text size=2></td>
  268.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  269.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  270.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  271.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  272.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  273.     <td  bgcolor="#ccccff" ><input type=text size=2></td>
  274. </tr>
  275. <tr>
  276.     <td  bgcolor="#ffcccc"><input type=text size=2></td>
  277.     <td  bgcolor="#ccccff"><input type=text size=2></td>
  278.     <td  bgcolor="#aaaaaa" colspan=5><input type=text></td>
  279. </tr>
  280.  
  281. </form>
  282. </table>
  283. </td></tr></table>
  284. </center>
  285. <script language="JavaScript">
  286. <!-- 
  287. //include this script segment if you want to set the calendar to today's date.
  288. //this MUST come after the tabled form which contains the calendar
  289.  
  290. //set calendar to today's date
  291.     myDate = new Date();
  292.     var Month = parseInt(myDate.getMonth());
  293.     
  294.     document.calform.elements[1].value = 1900 + myDate.getYear();
  295.     document.calform.elements[4].value = PadSpaces(Months[Month]);
  296.  
  297.     document.calform.elements[43].value = "Today: " + 
  298.         Months[Month].substring(0,3) + " " + 
  299.         myDate.getDate() + ", " + (1900 + myDate.getYear());
  300.  
  301.     FillCalendar();
  302.  
  303. // -->
  304. </script><!--EndJAVBody-->
  305.