Skip to content

Instantly share code, notes, and snippets.

@danahern
Created April 14, 2009 01:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danahern/94884 to your computer and use it in GitHub Desktop.
Save danahern/94884 to your computer and use it in GitHub Desktop.
<script type="text/javascript">
function displaycal<%= params[:passfield] %>()
{
var globalday = '';
var globalweek = '';
var globalcounter = '';
var globalrangecounter = 0;
var daterange1;
var daterange2;
var startdate = new Date();
month = startdate.getMonth();
year = startdate.getYear();
if(year < 1900)
year = year + 1900;
shortyear = year.toString();
shortyear = shortyear.substring(2);
day = startdate.getDate();
var date = new Date(year, month, day-(day-1));
day = date.getDate();
dayname = date.getDay();
var monthname = '';
caldisplay<%= params[:passfield] %>();
displayval = document.getElementById('<%= params[:passfield] %>calendar').style.display;
if(displayval == 'none')
{
document.getElementById('<%= params[:passfield] %>calendar').style.display = 'block';
}
else if(displayval == 'block')
{
document.getElementById('<%= params[:passfield] %>calendar').style.display = 'none';
}
}
</script>
<div id='<%= params[:passfield] %>calendar' style='display: none;'>
<%= javascript_include_tag "prototype" %>
<!--[if gte IE 5.5]>
<script>
tableHover = function() {
var lis = document.getElementsByClassName('Sunday');
for (var i=0; i<lis.length; i++) {
lis[i].onmouseover=function() {
this.className+=" iehover";
}
lis[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" iehover\\b"), "");
}
}
var lis = document.getElementsByClassName('Monday');
for (var i=0; i<lis.length; i++) {
lis[i].onmouseover=function() {
this.className+=" iehover";
}
lis[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" iehover\\b"), "");
}
}
var lis = document.getElementsByClassName('Tuesday');
for (var i=0; i<lis.length; i++) {
lis[i].onmouseover=function() {
this.className+=" iehover";
}
lis[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" iehover\\b"), "");
}
}
var lis = document.getElementsByClassName('Wednesday');
for (var i=0; i<lis.length; i++) {
lis[i].onmouseover=function() {
this.className+=" iehover";
}
lis[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" iehover\\b"), "");
}
}
var lis = document.getElementsByClassName('Thursday');
for (var i=0; i<lis.length; i++) {
lis[i].onmouseover=function() {
this.className+=" iehover";
}
lis[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" iehover\\b"), "");
}
}
var lis = document.getElementsByClassName('Friday');
for (var i=0; i<lis.length; i++) {
lis[i].onmouseover=function() {
this.className+=" iehover";
}
lis[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" iehover\\b"), "");
}
}
var lis = document.getElementsByClassName('Saturday');
for (var i=0; i<lis.length; i++) {
lis[i].onmouseover=function() {
this.className+=" iehover";
}
lis[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" iehover\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", tableHover);
</script>
<![endif]-->
<script type="text/javascript">
var globalday = '';
var globalweek = '';
var globalcounter = '';
var globalrangecounter = 0;
var startdate = new Date();
month = startdate.getMonth();
year = startdate.getYear();
if(year < 1900)
year = year + 1900;
shortyear = year.toString();
shortyear = shortyear.substring(2);
day = startdate.getDate();
var date = new Date(year, month, day-(day-1));
day = date.getDate();
dayname = date.getDay();
var monthname = '';
function clear<%= params[:passfield] %>()
{
var cells = document.getElementById("calendar<%= params[:passfield] %>").getElementsByTagName("td");
for(i=0;i<cells.length;i++)
{
cells[i].innerHTML = '';
}
}
function monthback<%= params[:passfield] %>()
{
date = new Date(year, month-1, day);
day = date.getDate();
dayname = date.getDay();
month = date.getMonth();
year = date.getYear();
if(year < 1900)
year = year + 1900;
shortyear = year.toString();
shortyear = shortyear.substring(2);
clear<%= params[:passfield] %>();
caldisplay<%= params[:passfield] %>();
}
function monthforward<%= params[:passfield] %>()
{
date = new Date(year, month+1, day);
day = date.getDate();
dayname = date.getDay();
month = date.getMonth();
year = date.getYear();
if(year < 1900)
year = year + 1900;
shortyear = year.toString();
shortyear = shortyear.substring(2);
clear<%= params[:passfield] %>();
caldisplay<%= params[:passfield] %>();
}
function yearback<%= params[:passfield] %>()
{
date = new Date(year-1, month, day);
day = date.getDate();
dayname = date.getDay();
month = date.getMonth();
year = date.getYear();
if(year < 1900)
year = year + 1900;
shortyear = year.toString();
shortyear = shortyear.substring(2);
clear<%= params[:passfield] %>();
caldisplay<%= params[:passfield] %>();
}
function yearforward<%= params[:passfield] %>()
{
date = new Date(year+1, month, day);
day = date.getDate();
dayname = date.getDay();
month = date.getMonth();
year = date.getYear();
if(year < 1900)
year = year + 1900;
shortyear = year.toString();
shortyear = shortyear.substring(2);
clear<%= params[:passfield] %>();
caldisplay<%= params[:passfield] %>();
}
function yearjump<%= params[:passfield] %>(passyear)
{
date = new Date(passyear, month, day);
day = date.getDate();
dayname = date.getDay();
month = date.getMonth();
year = date.getYear();
if(year < 1900)
year = year + 1900;
shortyear = year.toString();
shortyear = shortyear.substring(2);
clear<%= params[:passfield] %>();
caldisplay<%= params[:passfield] %>();
}
function currentyear<%= params[:passfield] %>()
{
var date = startdate;
day = date.getDate();
month = date.getMonth();
year = date.getYear();
var date = new Date(year, month, day-(day-1));
dayname = date.getDay();
if(year < 1900)
year = year + 1900;
shortyear = year.toString();
shortyear = shortyear.substring(2);
clear<%= params[:passfield] %>();
caldisplay<%= params[:passfield] %>();
}
function placedate<%= params[:passfield] %>(day)
{
tempmonth = month + 1;
if(tempmonth < 10)
{
tempmonth = '0'+tempmonth;
}
if(day < 10)
{
day = '0'+day
}
document.getElementById('<%= params[:passfield] %>').value = '';
document.getElementById('<%= params[:passfield] %>').value = tempmonth+'/'+day+'/'+year;
document.getElementById('<%= params[:passfield] %>calendar').style.display = 'none';
/*
if(document.getElementById('daterange<%= params[:passfield] %>').checked == false)
{
document.getElementById('<%= params[:passfield] %>').value = '';
document.getElementById('<%= params[:passfield] %>').value = tempmonth+'/'+day+'/'+year;
document.getElementById('<%= params[:passfield] %>calendar').style.display = 'none';
}
else if(document.getElementById('daterange<%= params[:passfield] %>').checked == true && globalrangecounter == 0)
{
globalrangecounter++;
document.getElementById('<%= params[:passfield] %>').value = '';
document.getElementById('<%= params[:passfield] %>').value = tempmonth+'/'+day+'/'+year;
daterange1 = new Date(year, month, day);
}
else if(document.getElementById('daterange<%= params[:passfield] %>').checked == true && globalrangecounter == 1)
{
range1 = document.getElementById('<%= params[:passfield] %>').value;
daterange2 = new Date(year, month, day);
if(daterange1 > daterange2)
{
var clearorcontinue = confirm("The first date is after the second date.\nClick OK to keep the first date.\nCancel to clear the dates and start over.");
if(clearorcontinue == true)
{
document.getElementById('<%= params[:passfield] %>').value = range1;
globalrangecounter = 1;
}
else
{
document.getElementById('<%= params[:passfield] %>').value = '';
globalrangecounter = 0;
}
}
else
{
document.getElementById('<%= params[:passfield] %>').value = range1+'--'+tempmonth+'/'+day+'/'+year;
document.getElementById('<%= params[:passfield] %>calendar').style.display = 'none';
}
}
*/
}
function jump2year<%= params[:passfield] %>(inputyear)
{
var tmpyear;
var tmpyearstr;
inputyear = parseInt(inputyear);
if(inputyear != inputyear)
{
;
}
else
{
if(inputyear < 10)
{
tmpyear = inputyear + 2000;
yearjump<%= params[:passfield] %>(tmpyear);
}
else
{
if(inputyear < 100)
{
tmpyear = inputyear + 1900;
yearjump<%= params[:passfield] %>(tmpyear);
}
else
{
if(inputyear < 1000)
{
;
}
else
{
tmpyear = inputyear;
if(tmpyear > 2050)
{
;
}
else
{
yearjump<%= params[:passfield] %>(tmpyear);
}
}
}
}
}
}
</script>
<button onclick='yearback<%= params[:passfield] %>(); return(false);'>&laquo;</button><button onclick='monthback<%= params[:passfield] %>(); return(false);'>&lt;</button>&nbsp;&nbsp;<span id='monthname<%= params[:passfield] %>'></span>&nbsp;&nbsp;<button onclick='monthforward<%= params[:passfield] %>(); return(false);'>&gt;</button><button onclick='yearforward<%= params[:passfield] %>(); return(false);'>&raquo;</button> <input id='daterange<%= params[:passfield] %>' type='text' size='4' length='4' onkeyup='jump2year<%= params[:passfield] %>(this.value);'>Go To Year <button onclick='currentyear<%= params[:passfield] %>(); return(false);'>Current</button>
<table class='cal_display' id='calendar<%= params[:passfield] %>'>
<tr>
<th>
Sunday
</th>
<th>
Monday
</th>
<th>
Tuesday
</th>
<th>
Wednesday
</th>
<th>
Thursday
</th>
<th>
Friday
</th>
<th>
Saturday
</th>
<tr class='week1' id='week1<%= params[:passfield] %>'>
<td class='Sunday' id='Sunday1<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Monday' id='Monday1<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Tuesday' id='Tuesday1<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Wednesday' id='Wednesday1<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Thursday' id='Thursday1<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Friday' id='Friday1<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Saturday' id='Saturday1<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
</tr>
<tr class='week2' id='week2<%= params[:passfield] %>'>
<td class='Sunday' id='Sunday2<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Monday' id='Monday2<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Tuesday' id='Tuesday2<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Wednesday' id='Wednesday2<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Thursday' id='Thursday2<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Friday' id='Friday2<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Saturday' id='Saturday2<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
</tr>
<tr class='week3' id='week3<%= params[:passfield] %>'>
<td class='Sunday' id='Sunday3<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Monday' id='Monday3<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Tuesday' id='Tuesday3<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Wednesday' id='Wednesday3<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Thursday' id='Thursday3<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Friday' id='Friday3<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Saturday' id='Saturday3<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
</tr>
<tr class='week4' id='week4<%= params[:passfield] %>'>
<td class='Sunday' id='Sunday4<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Monday' id='Monday4<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Tuesday' id='Tuesday4<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Wednesday' id='Wednesday4<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Thursday' id='Thursday4<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Friday' id='Friday4<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Saturday' id='Saturday4<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
</tr>
<tr class='week5' id='week5<%= params[:passfield] %>'>
<td class='Sunday' id='Sunday5<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Monday' id='Monday5<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Tuesday' id='Tuesday5<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Wednesday' id='Wednesday5<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Thursday' id='Thursday5<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Friday' id='Friday5<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Saturday' id='Saturday5<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
</tr>
<tr class='week6' id='week6<%= params[:passfield] %>'>
<td class='Sunday' id='Sunday6<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Monday' id='Monday6<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Tuesday' id='Tuesday6<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Wednesday' id='Wednesday6<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Thursday' id='Thursday6<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Friday' id='Friday6<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
<td class='Saturday' id='Saturday6<%= params[:passfield] %>' onclick="placedate<%= params[:passfield] %>(this.innerHTML)">
</td>
</tr>
</table>
<script type="text/javascript">
function caldisplay<%= params[:passfield] %>()
{
if(month==0)
{
numdays = 31;
monthname = 'January';
}
if(month==1)
{
if(year%4 == 0 && (year%100!=0 || year%400==0))
numdays = 29
else
numdays = 28
monthname = 'February';
}
if(month==2)
{
numdays = 31;
monthname = 'March';
}
if(month==3)
{
numdays = 30;
monthname = 'April';
}
if(month==4)
{
numdays = 31;
monthname = 'May';
}
if(month==5)
{
numdays = 30;
monthname = 'June';
}
if(month==6)
{
numdays = 31;
monthname = 'July';
}
if(month==7)
{
numdays = 31;
monthname = 'August';
}
if(month==8)
{
numdays = 30;
monthname = 'September';
}
if(month==9)
{
numdays = 31;
monthname = 'October';
}
if(month==10)
{
numdays = 30;
monthname = 'November';
}
if(month==11)
{
numdays = 31;
monthname = 'December';
}
if(dayname==0)
dayname = 'Sunday';
if(dayname==1)
dayname = 'Monday';
if(dayname==2)
dayname = 'Tuesday';
if(dayname==3)
dayname = 'Wednesday';
if(dayname==4)
dayname = 'Thursday';
if(dayname==5)
dayname = 'Friday';
if(dayname==6)
dayname = 'Saturday';
document.getElementById('monthname<%= params[:passfield] %>').innerHTML = monthname+' '+year;
for(i=1;i<=numdays;i++)
{
if(i==1)
{
document.getElementById(dayname+'1<%= params[:passfield] %>').innerHTML = '1';
globalday = dayname;
globalweek = 1;
globalcounter = 1;
}
else if(globalday == 'Sunday')
{
globalcounter = globalcounter + 1;
document.getElementById('Monday'+globalweek+'<%= params[:passfield] %>').innerHTML = globalcounter;
globalday = 'Monday';
}
else if(globalday == 'Monday')
{
globalcounter = globalcounter + 1;
document.getElementById('Tuesday'+globalweek+'<%= params[:passfield] %>').innerHTML = globalcounter;
globalday = 'Tuesday';
}
else if(globalday == 'Tuesday')
{
globalcounter = globalcounter + 1;
document.getElementById('Wednesday'+globalweek+'<%= params[:passfield] %>').innerHTML = globalcounter;
globalday = 'Wednesday';
}
else if(globalday == 'Wednesday')
{
globalcounter = globalcounter + 1;
document.getElementById('Thursday'+globalweek+'<%= params[:passfield] %>').innerHTML = globalcounter;
globalday = 'Thursday';
}
else if(globalday == 'Thursday')
{
globalcounter = globalcounter + 1;
document.getElementById('Friday'+globalweek+'<%= params[:passfield] %>').innerHTML = globalcounter;
globalday = 'Friday';
}
else if(globalday == 'Friday')
{
globalcounter = globalcounter + 1;
document.getElementById('Saturday'+globalweek+'<%= params[:passfield] %>').innerHTML = globalcounter;
globalday = 'Saturday';
}
else if(globalday == 'Saturday')
{
globalcounter = globalcounter + 1;
globalweek = globalweek + 1;
document.getElementById('Sunday'+globalweek+'<%= params[:passfield] %>').innerHTML = globalcounter;
globalday = 'Sunday';
}
}
}
</script>
</div>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment