|
|
- <?php
- function CastToInt($strNumber) {
- settype($strNumber, "int");
- return $strNumber;
- }
-
- if ((!array_key_exists("intTimestamp", $_GET)) || (!$_GET["intTimestamp"])) {
- $intTimestamp = time();
- } else
- $intTimestamp = $_GET["intTimestamp"];
-
- $intSelectedMonth = CastToInt(date("n", $intTimestamp));
- $intSelectedDay = CastToInt(date("j", $intTimestamp));
- $intSelectedYear = CastToInt(date("Y", $intTimestamp));
- $intTimestamp = mktime(0,0,0, $intSelectedMonth, $intSelectedDay, $intSelectedYear);
- $dttToday = mktime(0,0,0, date("n"), date("j"), date("Y"));
-
- $intMonthStartsOn = CastToInt(date("w", mktime(0,0,0, $intSelectedMonth, 1, $intSelectedYear)));
- $intMonthDays = CastToInt(date("t", $intTimestamp));
- $intPreviousMonthDays = CastToInt(date("t", mktime(0,0,0, $intSelectedMonth - 1, 1, $intSelectedYear)));
-
- $strQueryArgs = sprintf("&strFormId=%s&strId=%s", $_GET["strFormId"], $_GET["strId"]);
- $strChangeCommand = sprintf('window.opener.document.forms["%s"].elements["%s"].value = "%s"; ',
- $_GET["strFormId"],
- $_GET["strId"],
- date("M j Y", $intTimestamp));
- $strChangeCommand .= sprintf('window.opener.document.forms["%s"].elements["%s_intTimestamp"].value = "%s"; ',
- $_GET["strFormId"],
- $_GET["strId"],
- $intTimestamp);
- $strChangeCommand .= sprintf('if (window.opener.document.forms["%s"].elements["%s"].onchange) window.opener.document.forms["%s"].elements["%s"].onchange();',
- $_GET["strFormId"],
- $_GET["strId"],
- $_GET["strFormId"],
- $_GET["strId"]);
- ?>
- <html>
- <head>
- <title>Calendar</title>
- <script type="text/javascript">
- function selectDate(intTimestamp) {
- document.location = "calendar.php?intTimestamp=" + intTimestamp + "<?php print($strQueryArgs); ?>";
- }
-
- function cancel() {
- window.close();
- }
-
- function done() {
- <?php print($strChangeCommand); ?>
- window.close();
- }
- </script>
- <style>
- .main {
- font-family: verdana, arial, helvetica, sans-serif;
- font-size: 9px;
- text-align: center;
- color: #004d5d
- }
-
- A {
- text-decoration: none;
- }
-
- .dropdown {
- background-color: #e5e5e5;
- font-family: arial, helvetica, sans-serif;
- font-size: 8pt;
- }
-
- .button {
- font-family: verdana, arial, helvetica, sans-serif;
- font-size: 7.5pt;
- font-weight: bold;
- color: #ffffff;
- background-color: #004d5d;
- text-align: center;
- vertical-align: middle;
- height: 18px;
- border: thin solid #223344;
- }
-
- .offMonth {
- color: #999999;
- background-color: #f0f0f0;
- }
-
- .onMonth {
- color: #005599;
- background-color: #e0f0f0;
- }
-
- .onMonthWeekend {
- color: #80aabb;
- background-color: #ffffff;
- }
-
- .selected {
- color: #ffffff;
- background-color: #ee0000;
- }
-
- .today {
- color: #ffffff;
- background-color: #80aabb;
- }
- </style>
- </head>
- <body><form method="get" name="myForm"><center>
- <select name="dttMonth" class="dropdown" onchange="selectDate(document.myForm.dttMonth.options[document.myForm.dttMonth.selectedIndex].value)">
- <?php
- for ($intMonth = 1; $intMonth <= 12; $intMonth++) {
- $intTimestampLabel = mktime(0,0,0, $intMonth, 1, $intSelectedYear);
- $strLabel = date("F", $intTimestampLabel);
- $strSelected = ($intMonth == $intSelectedMonth) ? "selected" : "";
- printf('<option value="%s" %s>%s</option>', $intTimestampLabel, $strSelected, $strLabel);
- }
- ?>
- </select>
- <select name="dttYear" class="dropdown" onchange="selectDate(document.myForm.dttYear.options[document.myForm.dttYear.selectedIndex].value)">
- <?php
- for ($intYear = 1970; $intYear <= 2010; $intYear++) {
- $intTimestampLabel = mktime(0,0,0, $intSelectedMonth, 1, $intYear);
- $strLabel = date("Y", $intTimestampLabel);
- $strSelected = ($intYear == $intSelectedYear) ? 'selected="selected"' : '';
- printf('<option value="%s" %s>%s</option>', $intTimestampLabel, $strSelected, $strLabel);
- }
- ?>
- </select>
- <table cellspacing="2" cellpadding="2" border="0" class="main">
- <tr>
- <td>Su</td>
- <td>Mo</td>
- <td>Tu</td>
- <td>We</td>
- <td>Th</td>
- <td>Fr</td>
- <td>Sa</td>
- </tr>
- <?php
- $intDaysBack = ($intMonthStartsOn == 0) ? 7 : $intMonthStartsOn;
- $intIndex = 1 - $intDaysBack;
- $intRowCount = 0;
-
- while ($intRowCount < 6) {
- print('<tr>');
- for ($intDayOfWeek = 0; $intDayOfWeek <= 6; $intDayOfWeek++) {
- if ($intIndex < 1) {
- $intLabel = $intPreviousMonthDays + $intIndex;
- $intTimestampLabel = mktime(0,0,0, $intSelectedMonth - 1, $intLabel, $intSelectedYear);
- $strCssclass = "offMonth";
- } else if ($intIndex > $intMonthDays) {
- $intLabel = $intIndex - $intMonthDays;
- $intTimestampLabel = mktime(0,0,0, $intSelectedMonth + 1, $intLabel, $intSelectedYear);
- $strCssclass = "offMonth";
- } else {
- $intLabel = $intIndex;
- $intTimestampLabel = mktime(0,0,0, $intSelectedMonth, $intLabel, $intSelectedYear);
- $strCssclass = "onMonth";
- if ((date("w", $intTimestampLabel) == 0) || (date("w", $intTimestampLabel) == 6))
- $strCssclass = "onMonthWeekend";
- else
- $strCssclass = "onMonth";
- }
-
- if ($intTimestampLabel == $intTimestamp)
- $strCssclass = "selected";
- else if ($intTimestampLabel == $dttToday)
- $strCssclass = "today";
-
- printf('<td class="%s"><a class="%s" href="#" onclick="selectDate(%s)">%s</a></td>', $strCssclass, $strCssclass, $intTimestampLabel, $intLabel);
- $intIndex++;
- }
- print('</tr>');
- $intRowCount++;
- }
- ?>
- <tr>
- <td colspan="7">Selected Day: <?php print(date("n/j/Y", $intTimestamp)); ?><br /> </td>
- </tr>
- </table>
- <input type="button" class="button" name="Done" value="DONE" onclick="done()" />
- <input type="button" class="button" name="Cancel" value="CANCEL" onclick="cancel()" />
- </center></form></body></html>
- <?php
- //printf("Month Starts On: %s<br>Month Days: %s<br>Prev Month Days: %s", $intMonthStartsOn, $intMonthDays, $intPreviousMonthDays);
- ?>
|