home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 February / CHIP_2_98.iso / software / pelne / optionp / iis4_03.cab / calendar.asp < prev    next >
Text File  |  1997-11-14  |  8KB  |  245 lines

  1. <%@ LANGUAGE=VBScript %>
  2. <% Option Explicit %>
  3. <% Response.Expires = 0 %>
  4.  
  5. <%
  6.  
  7. On Error Resume Next 
  8. Dim datecntrl, Dy, Mo, Yr, nextmonth, startwith, thisMo, thisYr, thisDate
  9. Dim prevMonthLastDate, currMonthLastDate, i, j, lastnum, AnyDate
  10.  
  11. datecntrl= Request("cntrl")
  12.  
  13. if (Request("currentDate") = "") then
  14.     Dy = CInt(Request("Dy"))
  15.     Mo = CInt(Request("Mo"))
  16.     Yr = CInt(Request("Yr"))
  17. else
  18.     AnyDate = Request("currentDate")
  19.     AnyDate = Mid(AnyDate,InStr(AnyDate,",")+1)
  20.     thisDate = CDate(AnyDate)
  21.     if err <> 0 then
  22.         thisDate = Date
  23.     end if
  24.     Dy = CInt(Day(CDate(thisDate)))
  25.     Mo = CInt(Month(CDate(thisDate)))
  26.     Yr = CInt(Year(CDate(thisDate)))    
  27. end if
  28.  
  29. nextmonth = false
  30. %>
  31. <HTML>
  32. <HEAD>
  33.     <TITLE>Calendar</TITLE>
  34.     
  35.     <SCRIPT LANGUAGE="JavaScript">
  36.         function setDate(Dy,Mo,Yr)
  37.         {
  38.             self.location.href="calendar.asp?cntrl=<%= datecntrl %>&Dy=" + Dy + "&Mo=" + Mo + "&Yr=" + Yr;
  39.             
  40.         }
  41.         
  42.         function saveDate()
  43.         {
  44.             top.opener.<%= datecntrl %>.value ="<%= WeekDayName(WeekDay(Mo & "/" & Dy & "/" & Yr),False,vbUseSystem) %>," + " " + "<%= MonthName(Mo, False) %>" + " " + "<%= Dy %>," + " " + "<%= Yr %>"
  45.             //force execution of onblur event proc on output field..
  46.             top.opener.<%= datecntrl %>.focus();                
  47.             top.opener.<%= datecntrl %>.blur();                    
  48.             top.window.close();
  49.         }
  50.         
  51.     </SCRIPT>
  52. </HEAD>
  53.  
  54. <BODY BGCOLOR="#CCCCCC" LINK="Navy">
  55. <FORM NAME="userform">
  56. <TABLE WIDTH = 100% CELLPADDING=2 CELLSPACING=0>
  57.     <TR>
  58.         <TD ALIGN="left">
  59.             <FONT SIZE=1 FACE="Helv,Arial">
  60.                 <%= writeMonths(Mo) %>
  61.             </FONT>
  62.         </TD>
  63.         <TD ALIGN="right">
  64.             <FONT SIZE=1 FACE="Helv,Arial">
  65.                 <%= writeYears(Yr) %>
  66.             </FONT>
  67.         </TD>
  68.     </TR>        
  69. </TABLE>
  70.  
  71. <TABLE WIDTH = 100% BORDER=1 BORDERCOLOR="#CCCCCC" BORDERCOLORDARK="#CCCCCC" BORDERCOLORLIGHT="#CCCCCC" CELLPADDING=2 CELLSPACING=0>
  72. <%
  73.  
  74.     function GetWeekDayName(Dy)
  75.         Select Case Dy
  76.             Case 1
  77.                 GetWeekDayName = "Sunday"
  78.             Case 2
  79.                 GetWeekDayName = "Monday"
  80.             Case 3
  81.                 GetWeekDayName = "Tuesday"
  82.             Case 4
  83.                 GetWeekDayName = "Wednesday"
  84.             Case 5
  85.                 GetWeekDayName = "Thursday"
  86.             Case 6
  87.                 GetWeekDayName = "Friday"
  88.             Case 7
  89.                 GetWeekDayName = "Saturday"
  90.         End Select
  91.     end function
  92.     
  93.     function nextDate(startwith, maxdays)
  94.         startwith = startwith + 1
  95.         if startwith > maxdays then
  96.             startwith = 1
  97.         end if
  98.         
  99.         nextDate = startwith
  100.     end function
  101.     
  102.     function GetLastDay(Mo,Yr) 
  103.           if Mo=2 then
  104.             if (Yr Mod 4)=0 then
  105.                 GetLastDay = 29
  106.             else
  107.                 GetLastDay = 28
  108.             end if
  109.         elseif ((Mo = 0) OR (Mo = 1) OR (Mo = 3) OR (Mo = 5) OR (Mo = 7) OR (Mo = 8) OR (Mo = 10) OR (Mo = 12)) then
  110.             GetLastDay =  31
  111.         else
  112.             GetLastDay =  30
  113.         end if
  114.       end function
  115.     
  116.     function GetFirstDayOffset(Mo,Yr) 
  117.         GetFirstDayOffset = weekday(Mo & "/01/" & Yr)-1
  118.       end function
  119.     
  120.     function writeMonths(selMo)
  121.         dim i, selstr
  122.         selstr = "<SELECT NAME='Months' onChange='setDate(" & Dy & ",this.selectedIndex+1," & Yr & ");'>"
  123.         for i=1 to 12
  124.             if selMo = i then
  125.                 selstr = selstr & "<OPTION SELECTED>" & MonthName(i)            
  126.             else
  127.                 selstr = selstr & "<OPTION>" & MonthName(i)
  128.             end if
  129.         next                                                                
  130.         selstr = selstr & "</SELECT>"
  131.         writeMonths = selstr
  132.     end function
  133.     
  134.     function writeYears(selYear)
  135.         dim i, selstr
  136.         selstr = "<SELECT NAME='Years' onChange='setDate(" & Dy & "," & Mo & ",this.options[this.selectedIndex].value);'>"
  137.         for i=1900 to 2100
  138.             if selYear = i then
  139.                 selstr = selstr & "<OPTION SELECTED VALUE=" & i & ">" & i            
  140.             else
  141.                 selstr = selstr & "<OPTION VALUE=" & i & ">" & i
  142.             end if
  143.         next                                                                
  144.         selstr = selstr & "</SELECT>"
  145.         writeYears = selstr        
  146.     end function
  147.  
  148.     prevMonthLastDate=GetLastDay((Mo-1),Yr)        
  149.     currMonthLastDate=GetLastDay(Mo,Yr)    
  150.     startwith=(prevMonthLastDate-GetFirstDayOffset(Mo, Yr))
  151.  
  152. %>
  153. <TR>
  154.     <TD WIDTH = 20 HEIGHT = 20 BGCOLOR="Gray" BORDERCOLOR="#CCCCCC" BORDERCOLORDARK="#FFFFFF" BORDERCOLORLIGHT="#000000" STYLE="font-face: Helv,Arial; font-size:10pt;">
  155.         <FONT SIZE=1 FACE="HELV,ARIAL" COLOR="#FFFFFF"><B>Su</B></FONT>
  156.     </TD>
  157.     <TD WIDTH = 20 HEIGHT = 20 BGCOLOR="Gray" BORDERCOLOR="#CCCCCC" BORDERCOLORDARK="#FFFFFF" BORDERCOLORLIGHT="#000000" STYLE="font-face: Helv,Arial; font-size:10pt;">
  158.         <FONT SIZE=1 FACE="HELV,ARIAL" COLOR="#FFFFFF"><B>Mo</B></FONT>
  159.     </TD>
  160.     <TD WIDTH = 20 HEIGHT = 20 BGCOLOR="Gray" BORDERCOLOR="#CCCCCC" BORDERCOLORDARK="#FFFFFF" BORDERCOLORLIGHT="#000000" STYLE="font-face: Helv,Arial; font-size:10pt;">
  161.         <FONT SIZE=1 FACE="HELV,ARIAL" COLOR="#FFFFFF"><B>Tu</B></FONT>
  162.     </TD>
  163.     <TD WIDTH = 20 HEIGHT = 20 BGCOLOR="Gray" BORDERCOLOR="#CCCCCC" BORDERCOLORDARK="#FFFFFF" BORDERCOLORLIGHT="#000000" STYLE="font-face: Helv,Arial; font-size:10pt;">
  164.         <FONT SIZE=1 FACE="HELV,ARIAL" COLOR="#FFFFFF"><B>We</B></FONT>
  165.     </TD>
  166.     <TD WIDTH = 20 HEIGHT = 20 BGCOLOR="Gray" BORDERCOLOR="#CCCCCC" BORDERCOLORDARK="#FFFFFF" BORDERCOLORLIGHT="#000000" STYLE="font-face: Helv,Arial; font-size:10pt;">
  167.         <FONT SIZE=1 FACE="HELV,ARIAL" COLOR="#FFFFFF"><B>Th</B></FONT>
  168.     </TD>
  169.     <TD WIDTH = 20 HEIGHT = 20 BGCOLOR="Gray" BORDERCOLOR="#CCCCCC" BORDERCOLORDARK="#FFFFFF" BORDERCOLORLIGHT="#000000" STYLE="font-face: Helv,Arial; font-size:10pt;">
  170.         <FONT SIZE=1 FACE="HELV,ARIAL" COLOR="#FFFFFF"><B>Fr</B></FONT>
  171.     </TD>
  172.     <TD WIDTH = 20 HEIGHT = 20 BGCOLOR="Gray" BORDERCOLOR="#CCCCCC" BORDERCOLORDARK="#FFFFFF" BORDERCOLORLIGHT="#000000" style="font-family: Helv,Arial; font-size: 10pt;">
  173.         <FONT SIZE=1 FACE="HELV,ARIAL" COLOR="#FFFFFF"><B>Sa</B></FONT>
  174.     </TD>
  175. </TR>
  176. <% For j = 1 to 6 %>
  177.     <TR>
  178.     <% For i = 1 to 7 %>
  179.         <% if j = 1 then %>
  180.             <% startwith = nextDate(startwith, prevMonthLastDate) %>
  181.             <% if startwith = Dy and startwith < 7 then %>
  182.                 <TD WIDTH = 20 HEIGHT = 20 BGCOLOR="#AAAAAA" BORDERCOLOR="#AAAAAA" BORDERCOLORDARK="#FFFFFF" BORDERCOLORLIGHT="#AAAAAA" STYLE="font-face: Helv,Arial; font-size:10pt;">
  183.             <% else %>
  184.                 <TD WIDTH = 20 HEIGHT = 20 BORDERCOLOR="#CCCCCC" BORDERCOLORDARK="#FFFFFF" BORDERCOLORLIGHT="#000000" STYLE="font-face: Helv,Arial; font-size:10pt;">
  185.             <% end if %>
  186.                     <% thisYr = Yr %>
  187.                     <FONT SIZE=1 FACE="HELV,ARIAL">                    
  188.                     <% if startwith < 7 then %>
  189.                         <B>
  190.  
  191.                         <% thisMo = Mo %>                                        
  192.                     <% else %>
  193.                         <% thisMo = Mo - 1 %>    
  194.                         <% if thisMo = 0 then %>
  195.                             <% thisMo = 12 %>
  196.                             <% thisYr = Yr-1 %>                                                        
  197.                         <% end if %>
  198.                     <% end if %>
  199.                     <A HREF="javascript:setDate( <%= startwith %>, <%= thisMo %>,<%= thisYr %>);">
  200.                         <% response.write startwith %>
  201.                     </A>
  202.                     </FONT>
  203.             </TD>
  204.         <% else %>
  205.             <% lastnum = startwith %>
  206.             <% startwith = nextDate(startwith, currMonthLastDate) %>
  207.             <% if lastnum > startwith then%>
  208.                 <% nextmonth = true %>
  209.             <% end if %>
  210.             <% if startwith = Dy and not nextmonth then %>
  211.                 <TD WIDTH = 20 HEIGHT = 20 BGCOLOR="#AAAAAA" BORDERCOLOR="#AAAAAA" BORDERCOLORDARK="#AAAAAA" BORDERCOLORLIGHT="#FFFFFF" STYLE="font-face: Helv,Arial; font-size:10pt;">
  212.             <% else %>
  213.                 <TD WIDTH = 20 HEIGHT = 20 BORDERCOLOR="#CCCCCC" BORDERCOLORDARK="#FFFFFF" BORDERCOLORLIGHT="#000000" STYLE="font-face: Helv,Arial; font-size:10pt;">
  214.             <% end if %>
  215.                 <% thisYr = Yr %>    
  216.                 <% if not nextmonth then %>
  217.                     <B>
  218.                     <% thisMo = Mo %>
  219.                 <% else %>
  220.                     <% thisMo = Mo + 1 %>
  221.                     <% if thisMo = 13 then %>
  222.                         <% thisMo = 1 %>
  223.                         <% thisYr = Yr+1 %>                            
  224.                     <% end if %>                                                
  225.                 <% end if %>
  226.                 <FONT SIZE=1 FACE="HELV,ARIAL">
  227.                     <A HREF="javascript:setDate(<%= startwith %>, <%= thisMo %>, <%= thisYr %>);">
  228.                         <% response.write startwith %>
  229.                     </A>
  230.                 </FONT>
  231.             </TD>
  232.         <% end if %>
  233.     <% Next %>
  234.     </TR>
  235. <% Next %>
  236. </TABLE>
  237. <P>
  238. <CENTER>
  239. <INPUT TYPE="button" VALUE="    OK    " onClick="saveDate();">  
  240. <INPUT TYPE="button" VALUE="Cancel" onClick="top.window.close();">
  241. </CENTER>
  242. </FORM>
  243. </BODY>
  244. </HTML>
  245.