5,276,406 members and growing! (16,636 online)
Email Password   helpLost your password?
Web Development » Client side scripting » General     Intermediate

A JavaScript Weekly Calendar

By Massimo Beatini

This calendar can be used as a date picker or to select a weekly day range in the selected month.
Javascript, HTML, Windows, Visual Studio, Dev

Posted: 30 Jan 2006
Updated: 14 Feb 2006
Views: 105,560
Announcements
Want a new Job?



Search    
Advanced Search
Sitemap
26 votes for this Article.
Popularity: 6.66 Rating: 4.71 out of 5
0 votes, 0.0%
1
0 votes, 0.0%
2
2 votes, 7.7%
3
5 votes, 19.2%
4
19 votes, 73.1%
5

Sample Image - js_weekly_calendar_IE.jpg

Introduction

The calendar generated by this script can be used as a date picker or to select a weekly day range in the selected month. This script has been tested only with Internet Explorer 6.0, Firefox 1.0.7, and Opera 8.51 on a Windows 2003 Server.

Usage

Using this calendar, you can select the start week day, the default is Monday. The calendar's layout is customizable by CSS. To use it, you must insert the following HTML code in the head section of your page:

// insert this code in the head section
// use this css to modify the calendar layout
<LINK REL=StyleSheet HREF="calendar.css" TYPE="text/css">
// include the calendar javascript
<SCRIPT LANGUAGE="JavaScript" 
         SRC="weeklycalendar.js"></SCRIPT>
<script language="javascript">
    // call the function to build the calendar

    // function's param specify the first day of week 

    // 0=Sunday, 1 = Monday, ..., 6=Saturday

    buildWeeklyCalendar(1);
</script>

If the first day of the week is Monday, the column week contains the week number, otherwise it shows the "<" symbol.

Sample Image - js_weekly_calendar_firefox.jpg

The calendar is dynamically added to the HTML page and it is contained in a div element. To display the calendar, it is necessary to call the w_displayCalendar function. This function accepts two input parameters; they must be the existing element IDs used by the script to return values.

//

// display calendar

//

function w_displayCalendar(linkedId1, linkedId2) 
{
    w_linkedInputText_1 = linkedId1;
    w_linkedInputText_2 = linkedId2;
    
    w_renderCalendar(0);
    if(navigator.userAgent.indexOf("MSIE") != -1) 
    {
        weeklyCalendar.style.left=
          window.event.x+document.body.scrollLeft;
        weeklyCalendar.style.top=
          window.event.y+document.body.scrollTop;
    } 
    else if ((navigator.appName.indexOf("Netscape") != -1) || 
             (navigator.appName.indexOf("Opera") != -1))
    {
        document.getElementById('weeklyCalendar').style.left=gx + 5;
        document.getElementById('weeklyCalendar').style.top=gy + 5;
    }
    document.getElementById('weeklyCalendar').style.visibility = "visible";
}

Using the calendar as a date picker, it automatically fills an input text element passing its ID as a parameter of the w_displayCalendar function.

<tr>
   <td style="height: 78px">Date picker</td><td style="height: 78px">
      <!--  this is the datepicker input text -->    
      <input type="text"  name="DatePicker" id="DatePicker" size="35" maxlength="80">
      <!--  attach the w_displayCalendar function to the onClick event -->
      <input type="button" value="..." 
         onClick="w_displayCalendar('DatePicker',null);">
   </td>
</tr>

Using the calendar as a weekly range selector, clicking on the week number or the < symbol, it automatically fills the two input text.

<tr>
    <td style="height: 131px">Weekly Range Selector</td>
      <!--  this is start range input text -->    
      <td style="height: 131px">Start day:<input type="text" 
         name="WeeklyDateStart" id="WeeklyDateStart" 
         size="35" maxlength="80"><br />
      <!--  this is end range input text -->
      End day: <input type="text"  name="WeeklyDateEnd" 
         id="WeeklyDateEnd" size="35" maxlength="80">
      <!--  attach the w_displayCalendar function to the onClick event -->
      <input type="button" value="..." 
        onClick="w_displayCalendar('WeeklyDateStart','WeeklyDateEnd');">
   </td>
</tr>

Sample Image - js_weekly_calendar_opera.jpg

New Feature

Now you can use the calendar as a simple date picker using the new function w_displayDatePicker. This function shows the calendar and automatically hides the column week using a new CSS class.

<tr>
   <td style="height: 78px">Date picker</td>
   <td style="height: 78px">
      <!--  this is the datepicker input text -->
      <input type="text"  name="DatePicker" 
             id="DatePicker" size="35" maxlength="80">
      <!--  attach the w_displayCalendar function to the onClick event -->
      <input type="button" value="..."
         onClick="w_displayDatePicker('DatePicker');">
   </td>
</tr>

Conclusion

The Zip source file contains the weekly calendar script, the CSS and two demo HTML pages.

I hope you enjoy this article.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

Massimo Beatini



Occupation: Web Developer
Location: Italy Italy

Other popular Client side scripting articles:

Article Top
Sign Up to vote for this article
You must Sign In to use this message board.
FAQ FAQ Noise ToleranceSearch Search Messages 
 Layout  Per page   
 Msgs 1 to 25 of 78 (Total in Forum: 78) (Refresh)FirstPrevNext
Subject  Author Date 
GeneralOctbermembercuervomonkey4:44 1 Jul '08  
Generalno images displayed in calendar!memberazizo233:01 4 Jun '08  
Generalfill fields by default?membernalanthi10:23 25 Apr '08  
QuestionHow can i get week numbering in place of "<" sign (In Week column) in IE7memberrajkumaryadav3:17 25 Mar '08  
Questionhow to disable all the future datesmembersriram543123:07 19 Mar '08  
GeneralHow to disable all the days after today's datemembersriram543123:05 19 Mar '08  
GeneralDisable all the days before today plus 3 days of today?memberMember 23840178:40 26 Feb '08  
Generaljavascript event calendarmembernbohr99a5:03 9 Sep '07  
QuestionHow to disable particular days of a week in a month.memberprakash.konakanchi0:34 28 Aug '07  
Questionchange output type and get value in textbox [modified]memberwilliams5518:14 10 May '07  
AnswerRe: change output type and get value in textboxmemberMassimo Beatini23:34 10 May '07  
GeneralRe: change output type and get value in textboxmemberwilliams5523:55 10 May '07  
GeneralDoesn't work outside of included downloadsmemberxizwyck5:50 28 Feb '07  
QuestionSeparate text field: the month, day and year?memberjogijopo17:24 21 Feb '07  
GeneralHow to select the whole week regardless of monthmemberyysharon10:07 4 Jan '07  
GeneralRe: How to select the whole week regardless of monthmembernalanthi7:51 5 Jun '08  
Generalsimple questionmemberhuseyin5:16 14 Dec '06  
GeneralHow to set WeekDate the first day of row ?! exactly that it is one day of the previous monthmemberleopx10:37 14 Nov '06  
AnswerRe: How to set WeekDate the first day of row ?! exactly that it is one day of the previous monthmemberMassimo Beatini23:02 14 Nov '06  
GeneralRe: How to set WeekDate the first day of row ?! exactly that it is one day of the previous monthmemberleopx10:36 6 Dec '06  
GeneralWay to pass date to calendar ?memberbluter5:25 13 Oct '06  
AnswerRe: Way to pass date to calendar ?memberMassimo Beatini0:10 15 Nov '06  
QuestionDisable all the days before today!memberwebmangr4:27 9 Oct '06  
AnswerRe: Disable all the days before today!memberMassimo Beatini5:27 9 Oct '06  
GeneralRe: Disable all the days before today!memberwebmangr22:31 9 Oct '06  

General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

PermaLink | Privacy | Terms of Use
Last Updated: 14 Feb 2006
Editor: Smitha Vijayan