home *** CD-ROM | disk | FTP | other *** search
/ Australian Personal Computer 1999 April / APC443.iso / features / grpware / coldfus / coldfusi.exe / data1.cab / Examples / publish / admin / DateSelect.cfm < prev    next >
Encoding:
Text File  |  1998-10-08  |  3.8 KB  |  152 lines

  1. <CFSETTING ENABLECFOUTPUTONLY="YES">
  2.  
  3. <!--- DateSelect v1.1; all versions prior to this SHOULD NOT BE USED --->
  4.  
  5. <!--- Check for Attributes.Form --->
  6.  
  7. <CFSET ID = Attributes.SelectName>
  8.  
  9. <CFIF NOT IsDefined("Caller.DateIniFunctions")>
  10.  
  11.     <CFHTMLHEAD TEXT="<SCRIPT LANGUAGE='JAVASCRIPT'>
  12.  
  13. function DaysInMonth(currmonth,curryear) {
  14.  
  15.     if (currmonth == 2)
  16.         if ((curryear % 4 != 0) || ((curryear % 100 == 0) && (curryear % 400 != 0)))
  17.             return 28;
  18.         else
  19.             return 29;
  20.     else if ((currmonth <= 7 && currmonth % 2 == 0) || (currmonth >= 8 && currmonth % 2 != 0))
  21.         return 30;            
  22.     else
  23.         return 31;
  24. }
  25.  
  26. function FillMonths(SelectObj) {
  27.  
  28.     var months = new Array(12);
  29.     months[0] = 'January';
  30.     months[1] = 'February';
  31.     months[2] = 'March';
  32.     months[3] = 'April';
  33.     months[4] = 'May';
  34.     months[5] = 'June';
  35.     months[6] = 'July';
  36.     months[7] = 'August';
  37.     months[8] = 'September';
  38.     months[9] = 'October';
  39.     months[10] = 'November';
  40.     months[11] = 'December';
  41.     
  42.     for (var i=0; i<12; i++) {
  43.         SelectObj.options[i] = new Option(months[i],i+1);
  44.     }
  45.  
  46.     var now = new Date();
  47.     var currmonth = now.getMonth();
  48.     SelectObj.options[currmonth].selected = true;
  49. }
  50.  
  51. function FillDays(SelectObj,currmonth) {
  52.  
  53.     var totaldays = DaysInMonth(currmonth);
  54.  
  55.     for (var i=0; i<totaldays; i++) {
  56.         SelectObj.options[i] = new Option(i+1);
  57.     }
  58.  
  59.     var now = new Date();
  60.     var currdate = now.getDate();
  61.     SelectObj.options[currdate-1].selected = true;
  62. }
  63.  
  64. function UpdateDays(SelectObj,currmonth,curryear) {
  65.  
  66.     var previousdate = SelectObj.selectedIndex;
  67.  
  68.     for (var i=SelectObj.length; i>0; i--) {
  69.         SelectObj.options[i] = null;
  70.     }
  71.  
  72.     var totaldays = DaysInMonth(currmonth,curryear);
  73.  
  74.     for (i=0; i<totaldays; i++) {
  75.         SelectObj.options[i] = new Option(i+1);
  76.     }
  77.  
  78.     if (totaldays - 1 < previousdate)
  79.         SelectObj.options[totaldays - 1].selected = true;
  80.     else
  81.         SelectObj.options[previousdate].selected = true;
  82. }
  83.  
  84. function adjustDays(SelectObj,currmonth) {
  85.     if (SelectObj.value == '')
  86.         SelectObj.selectedIndex = DaysInMonth(currmonth) - 1;
  87. }
  88.  
  89. </SCRIPT>">
  90. <CFSET Caller.DateIniFunctions = 1>
  91. </CFIF>
  92. <CFSETTING ENABLECFOUTPUTONLY="NO">
  93. <NOBR>
  94. <CFOUTPUT><SELECT NAME="#ID#Month" onChange="UpdateDays(#ID#Day,#ID#Month.selectedIndex+1,#ID#Year.value)"></CFOUTPUT>
  95. <CFLOOP FROM="1" TO="12" INDEX="MonthNum"><CFOUTPUT>
  96.     <CFIF Month(Now()) IS MonthNum><OPTION VALUE="#MonthNum#" SELECTED>#MonthAsString(MonthNum)#
  97.     <CFELSE><OPTION VALUE="#MonthNum#">#MonthAsString(MonthNum)#
  98.     </CFIF>
  99. </CFOUTPUT></CFLOOP>
  100. </SELECT>
  101. <CFOUTPUT><SELECT NAME="#ID#Day" onChange="adjustDays(this,#ID#Month.selectedIndex+1)"></CFOUTPUT>
  102.     <OPTION>00
  103.     <OPTION>00
  104.     <OPTION>00
  105.     <OPTION>00
  106.     <OPTION>00
  107.     <OPTION>00
  108.     <OPTION>00
  109.     <OPTION>00
  110.     <OPTION>00
  111.     <OPTION>00
  112.     <OPTION>00
  113.     <OPTION>00
  114. </SELECT>
  115. <CFOUTPUT><SELECT NAME="#ID#Year" onChange="UpdateDays(#ID#Day,#ID#Month.selectedIndex+1,#ID#Year.value)"></CFOUTPUT>
  116. <CFLOOP FROM="#Attributes.StartYear#" TO="#Attributes.EndYear#" INDEX="YearNum"><CFOUTPUT>
  117.     <CFIF Year(Now()) IS YearNum><OPTION VALUE="#YearNum#" SELECTED>#YearNum#
  118.     <CFELSE><OPTION VALUE="#YearNum#">#YearNum#
  119.     </CFIF>
  120. </CFOUTPUT></CFLOOP>
  121. </SELECT>
  122. </NOBR>
  123. <CFIF IsDefined("Attributes.ShowTime")><CFIF Attributes.ShowTime IS TRUE>
  124. <BR>
  125. <NOBR>
  126. <CFOUTPUT><SELECT NAME="#ID#Hour"></CFOUTPUT>
  127.     <OPTION>1
  128.     <OPTION>2
  129.     <OPTION>3
  130.     <OPTION>4
  131.     <OPTION>5
  132.     <OPTION>6
  133.     <OPTION>7
  134.     <OPTION>8
  135.     <OPTION>9
  136.     <OPTION>10
  137.     <OPTION>11
  138.     <OPTION SELECTED>12
  139. </SELECT>
  140. <CFOUTPUT><SELECT NAME="#ID#Minute"></CFOUTPUT>
  141. <CFLOOP FROM="0" TO="59" INDEX="CurrHour"><CFOUTPUT>    <OPTION>#NumberFormat(CurrHour,"00")#
  142. </CFOUTPUT></CFLOOP></SELECT>
  143. <CFOUTPUT><SELECT NAME="#ID#AMPM"></CFOUTPUT>
  144.     <OPTION>AM
  145.     <OPTION>PM
  146. </SELECT>
  147. </NOBR>
  148. </CFIF></CFIF>
  149. <SCRIPT LANGUAGE="JavaScript">
  150. <CFOUTPUT>    FillDays(document.#Attributes.Form#.#ID#Day,document.#Attributes.Form#.#ID#Month.value);</CFOUTPUT>
  151. </SCRIPT>
  152.