Another Calendar : Calendar : GUI Components : JavaScript DHTML examples (example source code) Organized by topic

JavaScript DHTML
C++
PHP
JavaScript DHTML Home »  GUI Components   » [  Calendar  ]   
 



Another Calendar

Please note that some example is only working under IE or Firefox.

<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>

<script language="JavaScript">
//  written  by Tan Ling  Wee  on 2 Dec 2001
//  last updated 28 Mar 2002
//  email :  [email protected]
//  url : www.sparrowscripts.com

  var  fixedX = -1      // x position (-1 if to appear below control)
  var  fixedY = -1      // y position (-1 if to appear below control)
  var startAt = 1      // 0 - sunday ; 1 - monday
  var showWeekNumber = 1  // 0 - don't show; 1 - show
  var showToday = 1    // 0 - don't show; 1 - show
  var imgDir = ""      // directory for images ... e.g. var imgDir="/img/"

  var gotoString = "Go To Current Month"
  var todayString = "Today is"
  var weekString = "Wk"
  var scrollLeftMessage = "Click to scroll to previous month. Hold mouse button to scroll automatically."
  var scrollRightMessage = "Click to scroll to next month. Hold mouse button to scroll automatically."
  var selectMonthMessage = "Click to select a month."
  var selectYearMessage = "Click to select a year."
  var selectDateMessage = "Select [date] as date." // do not replace [date], it will be replaced by date.

  var  crossobj, crossMonthObj, crossYearObj, monthSelected, yearSelected, dateSelected, omonthSelected, oyearSelected, odateSelected, monthConstructed, yearConstructed, intervalID1, intervalID2, timeoutID1, timeoutID2, ctlToPlaceValue, ctlNow, dateFormat, nStartingYear

  var  bPageLoaded=false
  var  ie=document.all
  var  dom=document.getElementById

  var  ns4=document.layers
  var  today =  new  Date()
  var  dateNow   = today.getDate()
  var  monthNow = today.getMonth()
  var  yearNow   = today.getYear()
  var  imgsrc = new Array("drop1.gif","drop2.gif","left1.gif","left2.gif","right1.gif","right2.gif")
  var  img  = new Array()

  function HolidayRec (d, m, y, desc)
  {
    this.d = d
    this.m = m
    this.y = y
    this.desc = desc
  }

  var HolidaysCounter = 0
  var Holidays = new Array()

  function addHoliday (d, m, y, desc)
  {
    Holidays[HolidaysCounter++new HolidayRec d, m, y, desc )
  }

  if (dom)
  {
    for  (i=0;i<imgsrc.length;i++)
    {
      img[inew Image
      img[i].src = imgDir + imgsrc[i]
    }
    document.write ("<div id='calendar'  style='position:absolute;visibility:hidden;'><table  width="+((showWeekNumber==1)?250:220)+" style='font-family:arial;font-size:11px;border-width:1;border-style:solid;border-color:#a0a0a0;font-family:arial; font-size:11px}' bgcolor='#ffffff'><tr bgcolor='#0000aa'><td><table width='"+((showWeekNumber==1)?248:218)+"'><tr><td style='padding:2px;font-family:arial; font-size:11px;'><font color='#ffffff'><B><span id='caption'></span></B></font></td><td align=right><a href='javascript:hideCalendar()'><IMG SRC='"+imgDir+"close.gif' WIDTH='15' HEIGHT='13' BORDER='0' ALT='Close the Calendar'></a></td></tr></table></td></tr><tr><td style='padding:5px' bgcolor=#ffffff><span id='content'></span></td></tr>")
      
    if (showToday==1)
    {
      document.write ("<tr bgcolor=#f0f0f0><td style='padding:5px' align=center><span id='lblToday'></span></td></tr>")
    }
      
    document.write ("</table></div><div id='selectMonth' style='position:absolute;visibility:hidden;'></div><div id='selectYear'  style='position:absolute;visibility:hidden;'></div>");
  }

  var  monthName =  new  Array("January","February","March","April","May","June","July","August","September","October","November","December")
  if (startAt==0)
  {
    dayName = new Array  ("Sun","Mon","Tue","Wed","Thu","Fri","Sat")
  }
  else
  {
    dayName = new Array  ("Mon","Tue","Wed","Thu","Fri","Sat","Sun")
  }
  var  styleAnchor="text-decoration:none;color:black;"
  var  styleLightBorder="border-style:solid;border-width:1px;border-color:#a0a0a0;"

  function swapImage(srcImg, destImg){
    if (ie)  { document.getElementById(srcImg).setAttribute("src",imgDir + destImg) }
  }

  function init()  {
    if (!ns4)
    {
      if (!ie) { yearNow += 1900  }

      crossobj=(dom)?document.getElementById("calendar").style : ie? document.all.calendar : document.calendar
      hideCalendar()

      crossMonthObj=(dom)?document.getElementById("selectMonth").style : ie? document.all.selectMonth  : document.selectMonth

      crossYearObj=(dom)?document.getElementById("selectYear").style : ie? document.all.selectYear : document.selectYear

      monthConstructed=false;
      yearConstructed=false;

      if (showToday==1)
      {
        document.getElementById("lblToday").innerHTML =  todayString + " <a onmousemove='window.status=\""+gotoString+"\"' onmouseout='window.status=\"\"' title='"+gotoString+"' style='"+styleAnchor+"' href='javascript:monthSelected=monthNow;yearSelected=yearNow;constructCalendar();'>"+dayName[(today.getDay()-startAt==-1)?6:(today.getDay()-startAt)]+", " + dateNow + " " + monthName[monthNow].substring(0,3)  "  " +  yearNow  + "</a>"
      }

      sHTML1="<span id='spanLeft'  style='border-style:solid;border-width:1;border-color:#3366FF;cursor:pointer' onmouseover='swapImage(\"changeLeft\",\"left2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+scrollLeftMessage+"\"' onclick='javascript:decMonth()' onmouseout='clearInterval(intervalID1);swapImage(\"changeLeft\",\"left1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"' onmousedown='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"StartDecMonth()\",500)'  onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'>&nbsp<IMG id='changeLeft' SRC='"+imgDir+"left1.gif' width=10 height=11 BORDER=0>&nbsp</span>&nbsp;"
      sHTML1+="<span id='spanRight' style='border-style:solid;border-width:1;border-color:#3366FF;cursor:pointer'  onmouseover='swapImage(\"changeRight\",\"right2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+scrollRightMessage+"\"' onmouseout='clearInterval(intervalID1);swapImage(\"changeRight\",\"right1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"' onclick='incMonth()' onmousedown='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"StartIncMonth()\",500)'  onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'>&nbsp<IMG id='changeRight' SRC='"+imgDir+"right1.gif'  width=10 height=11 BORDER=0>&nbsp</span>&nbsp"
      sHTML1+="<span id='spanMonth' style='border-style:solid;border-width:1;border-color:#3366FF;cursor:pointer'  onmouseover='swapImage(\"changeMonth\",\"drop2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+selectMonthMessage+"\"' onmouseout='swapImage(\"changeMonth\",\"drop1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"' onclick='popUpMonth()'></span>&nbsp;"
      sHTML1+="<span id='spanYear' style='border-style:solid;border-width:1;border-color:#3366FF;cursor:pointer' onmouseover='swapImage(\"changeYear\",\"drop2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+selectYearMessage+"\"'  onmouseout='swapImage(\"changeYear\",\"drop1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"'  onclick='popUpYear()'></span>&nbsp;"
      
      document.getElementById("caption").innerHTML  =  sHTML1

      bPageLoaded=true

      //Calling a calendar function and passing the name of the text 
      //box which holds the date field. Added by D.T.
      popUpCalendar(this, opener.txtDate, 'm/d/yyyy')
    }
  }

  function hideCalendar()  {
    crossobj.visibility="hidden"
    if (crossMonthObj != null){crossMonthObj.visibility="hidden"}
    if (crossYearObj !=  null){crossYearObj.visibility="hidden"}

    //Closing a popup window when user clicked 'x', close the calendar. Added by D.T.
    self.closed
  }

  function padZero(num) {
    return (num  < 10)'0' + num : num ;
  }

  function constructDate(d,m,y)
  {
    sTmp = dateFormat
    sTmp = sTmp.replace  ("dd","<e>")
    sTmp = sTmp.replace  ("d","<d>")
    sTmp = sTmp.replace  ("<e>",padZero(d))
    sTmp = sTmp.replace  ("<d>",d)
    sTmp = sTmp.replace  ("mmm","<o>")
    sTmp = sTmp.replace  ("mm","<n>")
    sTmp = sTmp.replace  ("m","<m>")
    sTmp = sTmp.replace  ("<m>",m+1)
    sTmp = sTmp.replace  ("<n>",padZero(m+1))
    sTmp = sTmp.replace  ("<o>",monthName[m])
    return sTmp.replace ("yyyy",y)
  }

  function closeCalendar() {
    var  sTmp

    hideCalendar();
    ctlToPlaceValue.value =  constructDate(dateSelected,monthSelected,yearSelected)

    //Closing popup window when date is selected. Added By D.T.
    self.close()
  }

  /*** Month Pulldown  ***/

  function StartDecMonth()
  {
    intervalID1=setInterval("decMonth()",80)
  }

  function StartIncMonth()
  {
    intervalID1=setInterval("incMonth()",80)
  }

  function incMonth () {
    monthSelected++
    if (monthSelected>11) {
      monthSelected=0
      yearSelected++
    }
    constructCalendar()
  }

  function decMonth () {
    monthSelected--
    if (monthSelected<0) {
      monthSelected=11
      yearSelected--
    }
    constructCalendar()
  }

  function constructMonth() {
    popDownYear()
    if (!monthConstructed) {
      sHTML =  ""
      for  (i=0; i<12;  i++) {
        sName =  monthName[i];
        if (i==monthSelected){
          sName =  "<B>" +  sName +  "</B>"
        }
        sHTML += "<tr><td id='m" + i + "' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='monthConstructed=false;monthSelected=" + i + ";constructCalendar();popDownMonth();event.cancelBubble=true'>&nbsp;" + sName + "&nbsp;</td></tr>"
      }

      document.getElementById("selectMonth").innerHTML = "<table width=70  style='font-family:arial; font-size:11px; border-width:1; border-style:solid; border-color:#a0a0a0;' bgcolor='#FFFFDD' cellspacing=0 onmouseover='clearTimeout(timeoutID1)'  onmouseout='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"popDownMonth()\",100);event.cancelBubble=true'>" +  sHTML +  "</table>"

      monthConstructed=true
    }
  }

  function popUpMonth() {
    constructMonth()
    crossMonthObj.visibility = (dom||ie)"visible"  "show"
    crossMonthObj.left = parseInt(crossobj.left50
    crossMonthObj.top =  parseInt(crossobj.top26
  }

  function popDownMonth()  {
    crossMonthObj.visibility= "hidden"
  }

  /*** Year Pulldown ***/

  function incYear() {
    for  (i=0; i<7; i++){
      newYear  = (i+nStartingYear)+1
      if (newYear==yearSelected)
      txtYear =  "&nbsp;<B>"  + newYear +  "</B>&nbsp;" }
      else
      txtYear =  "&nbsp;" + newYear + "&nbsp;" }
      document.getElementById("y"+i).innerHTML = txtYear
    }
    nStartingYear ++;
  }

  function decYear() {
    for  (i=0; i<7; i++){
      newYear  = (i+nStartingYear)-1
      if (newYear==yearSelected)
      txtYear =  "&nbsp;<B>"  + newYear +  "</B>&nbsp;" }
      else
      txtYear =  "&nbsp;" + newYear + "&nbsp;" }
      document.getElementById("y"+i).innerHTML = txtYear
    }
    nStartingYear --;
  }

  function selectYear(nYear) {
    yearSelected=parseInt(nYear+nStartingYear);
    yearConstructed=false;
    constructCalendar();
    popDownYear();
  }

  function constructYear() {
    popDownMonth()
    sHTML =  ""
    if (!yearConstructed) {

      sHTML =  "<tr><td align='center'  onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='clearInterval(intervalID1);this.style.backgroundColor=\"\"' style='cursor:pointer'  onmousedown='clearInterval(intervalID1);intervalID1=setInterval(\"decYear()\",30)' onmouseup='clearInterval(intervalID1)'>-</td></tr>"

      j =  0
      nStartingYear =  yearSelected-3
      for  (i=(yearSelected-3); i<=(yearSelected+3); i++) {
        sName =  i;
        if (i==yearSelected){
          sName =  "<B>" +  sName +  "</B>"
        }

        sHTML += "<tr><td id='y" + j + "' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='selectYear("+j+");event.cancelBubble=true'>&nbsp;" + sName + "&nbsp;</td></tr>"
        j ++;
      }

      sHTML += "<tr><td align='center' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='clearInterval(intervalID2);this.style.backgroundColor=\"\"' style='cursor:pointer' onmousedown='clearInterval(intervalID2);intervalID2=setInterval(\"incYear()\",30)'  onmouseup='clearInterval(intervalID2)'>+</td></tr>"

      document.getElementById("selectYear").innerHTML  = "<table width=44 style='font-family:arial; font-size:11px; border-width:1; border-style:solid; border-color:#a0a0a0;'  bgcolor='#FFFFDD' onmouseover='clearTimeout(timeoutID2)' onmouseout='clearTimeout(timeoutID2);timeoutID2=setTimeout(\"popDownYear()\",100)' cellspacing=0>"  + sHTML  + "</table>"

      yearConstructed  = true
    }
  }

  function popDownYear() {
    clearInterval(intervalID1)
    clearTimeout(timeoutID1)
    clearInterval(intervalID2)
    clearTimeout(timeoutID2)
    crossYearObj.visibility= "hidden"
  }

  function popUpYear() {
    var  leftOffset

    constructYear()
    crossYearObj.visibility  = (dom||ie)"visible" "show"
    leftOffset = parseInt(crossobj.left+ document.getElementById("spanYear").offsetLeft
    if (ie)
    {
      leftOffset += 6
    }
    crossYearObj.left =  leftOffset
    crossYearObj.top = parseInt(crossobj.top+  26
  }

  /*** calendar ***/

  function WeekNbr(today)
    {
    Year = takeYear(today);
    Month = today.getMonth();
    Day = today.getDate();
    now = Date.UTC(Year,Month,Day+1,0,0,0);
    var Firstday = new Date();
    Firstday.setYear(Year);
    Firstday.setMonth(0);
    Firstday.setDate(1);
    then = Date.UTC(Year,0,1,0,0,0);
    var Compensation = Firstday.getDay();
    if (Compensation > 3Compensation -= 4;
    else Compensation += 3;
    NumberOfWeek =  Math.round((((now-then)/86400000)+Compensation)/7);
    return NumberOfWeek;
  }

  function takeYear(theDate)
  {
    x = theDate.getYear();
    var y = x % 100;
    y += (y < 382000 1900;
    return y;
  }


  function constructCalendar () {
    var aNumDays = Array (31,0,31,30,31,30,31,31,30,31,30,31)

    var dateMessage
    var  startDate =  new  Date (yearSelected,monthSelected,1)
    var endDate

    if (monthSelected==1)
    {
      endDate  = new Date (yearSelected,monthSelected+1,1);
      endDate  = new Date (endDate  - (24*60*60*1000));
      numDaysInMonth = endDate.getDate()
    }
    else
    {
      numDaysInMonth = aNumDays[monthSelected];
    }

    datePointer  = 0
    dayPointer = startDate.getDay() - startAt
    
    if (dayPointer<0)
    {
      dayPointer = 6
    }

    sHTML =  "<table   border=0 style='font-family:verdana;font-size:10px;'><tr>"

    if (showWeekNumber==1)
    {
      sHTML += "<td width=27><b>" + weekString + "</b></td><td width=1 rowspan=7 bgcolor='#d0d0d0' style='padding:0px'><img src='"+imgDir+"divider.gif' width=1></td>"
    }

    for  (i=0; i<7; i++)  {
      sHTML += "<td width='27' align='right'><B>"+ dayName[i]+"</B></td>"
    }
    sHTML +="</tr><tr>"
    
    if (showWeekNumber==1)
    {
      sHTML += "<td align=right>" + WeekNbr(startDate"&nbsp;</td>"
    }

    for  var i=1; i<=dayPointer;i++ )
    {
      sHTML += "<td>&nbsp;</td>"
    }
  
    for  datePointer=1; datePointer<=numDaysInMonth; datePointer++ )
    {
      dayPointer++;
      sHTML += "<td align=right>"
      sStyle=styleAnchor
      if ((datePointer==odateSelected&&  (monthSelected==omonthSelected)  && (yearSelected==oyearSelected))
      sStyle+=styleLightBorder }

      sHint = ""
      for (k=0;k<HolidaysCounter;k++)
      {
        if ((parseInt(Holidays[k].d)==datePointer)&&(parseInt(Holidays[k].m)==(monthSelected+1)))
        {
          if ((parseInt(Holidays[k].y)==0)||((parseInt(Holidays[k].y)==yearSelected)&&(parseInt(Holidays[k].y)!=0)))
          {
            sStyle+="background-color:#FFDDDD;"
            sHint+=sHint==""?Holidays[k].desc:"\n"+Holidays[k].desc
          }
        }
      }

      var regexp= /\"/g
      sHint=sHint.replace(regexp,"&quot;")

      dateMessage = "onmousemove='window.status=\""+selectDateMessage.replace("[date]",constructDate(datePointer,monthSelected,yearSelected))+"\"' onmouseout='window.status=\"\"' "

      if ((datePointer==dateNow)&&(monthSelected==monthNow)&&(yearSelected==yearNow))
      sHTML += "<b><a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer+";closeCalendar();'><font color=#ff0000>&nbsp;" + datePointer + "</font>&nbsp;</a></b>"}
      else if  (dayPointer % == (startAt * -1)+1)
      sHTML += "<a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer + ";closeCalendar();'>&nbsp;<font color=#909090>" + datePointer + "</font>&nbsp;</a>" }
      else
      sHTML += "<a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer + ";closeCalendar();'>&nbsp;" + datePointer + "&nbsp;</a>" }

      sHTML += ""
      if ((dayPointer+startAt== startAt) { 
        sHTML += "</tr><tr>" 
        if ((showWeekNumber==1)&&(datePointer<numDaysInMonth))
        {
          sHTML += "<td align=right>" (WeekNbr(new Date(yearSelected,monthSelected,datePointer+1))) "&nbsp;</td>"
        }
      }
    }

    document.getElementById("content").innerHTML   = sHTML
    document.getElementById("spanMonth").innerHTML = "&nbsp;" +  monthName[monthSelected"&nbsp;<IMG id='changeMonth' SRC='"+imgDir+"drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>"
    document.getElementById("spanYear").innerHTML =  "&nbsp;" + yearSelected  + "&nbsp;<IMG id='changeYear' SRC='"+imgDir+"drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>"
  }

  function popUpCalendar(ctl,  ctl2, format) {
    var  leftpos=0
    var  toppos=0

    if (bPageLoaded)
    {
      if crossobj.visibility ==  "hidden" ) {
        ctlToPlaceValue  = ctl2
        dateFormat=format;

        formatChar = " "
        aFormat  = dateFormat.split(formatChar)
        if (aFormat.length<3)
        {
          formatChar = "/"
          aFormat  = dateFormat.split(formatChar)
          if (aFormat.length<3)
          {
            formatChar = "."
            aFormat  = dateFormat.split(formatChar)
            if (aFormat.length<3)
            {
              formatChar = "-"
              aFormat  = dateFormat.split(formatChar)
              if (aFormat.length<3)
              {
                // invalid date  format
                formatChar=""
              }
            }
          }
        }

        tokensChanged =  0
        if formatChar  != "" )
        {
          // use user's date
          aData =  ctl2.value.split(formatChar)

          for  (i=0;i<3;i++)
          {
            if ((aFormat[i]=="d"|| (aFormat[i]=="dd"))
            {
              dateSelected = parseInt(aData[i]10)
              tokensChanged ++
            }
            else if  ((aFormat[i]=="m"|| (aFormat[i]=="mm"))
            {
              monthSelected =  parseInt(aData[i]101
              tokensChanged ++
            }
            else if  (aFormat[i]=="yyyy")
            {
              yearSelected = parseInt(aData[i]10)
              tokensChanged ++
            }
            else if  (aFormat[i]=="mmm")
            {
              for  (j=0; j<12;  j++)
              {
                if (aData[i]==monthName[j])
                {
                  monthSelected=j
                  tokensChanged ++
                }
              }
            }
          }
        }

        if ((tokensChanged!=3)||isNaN(dateSelected)||isNaN(monthSelected)||isNaN(yearSelected))
        {
          dateSelected = dateNow
          monthSelected =  monthNow
          yearSelected = yearNow
        }

        odateSelected=dateSelected
        omonthSelected=monthSelected
        oyearSelected=yearSelected

        /* Commented by D.T.  
          aTag = ctl
          do {
            aTag = aTag.offsetParent;
            leftpos  += aTag.offsetLeft;
            toppos += aTag.offsetTop;
          } while(aTag.tagName!="BODY");

          crossobj.left =  fixedX==-1 ? ctl.offsetLeft  + leftpos :  fixedX
          crossobj.top = fixedY==-1 ?  ctl.offsetTop +  toppos + ctl.offsetHeight +  2 :  fixedY
        */
        
        //Setting left and top of the calendar in a popUp window. Added by D.T.

        constructCalendar (1, monthSelected, yearSelected);
        crossobj.visibility=(dom||ie)"visible" "show"
      }
      else
      {
        hideCalendar()
        if (ctlNow!=ctl) {popUpCalendar(ctl, ctl2, format)}
      }
      ctlNow = ctl
    }
  }
  window.onload=init
  </script>
</HEAD>
<BODY>
<script language="javascript">

function window_open()
{
var newWindow;
var urlstring = 'calendar.htm'
newWindow = window.open(urlstring,'','height=200,width=280,toolbar=no,minimize=no,status=no,memubar=no,location=no,scrollbars=no')
}

</script>

<input type=text name='txtDate'><input type=button onClick="window_open()" value='...'>
</BODY>
</HTML>


           
       
Download: popwincal.zip   ( 10  K )  
Related examples in the same category
1.  HTML Calendar based on DynAPIHas Download File
2.  JavaScript Date Picker based on ComboBoxHas Download File
3.  Calendar Control - Single-Select ImplementationHas Download File
4.  Calendar Control - 2-Up ImplementationHas Download File
5.  Calendar Control - Handling onSelect / onDeselectHas Download File
6.  Calendar Control - Mix/Max ImplementationHas Download File
7.  Calendar Control - Multi-Select ImplementationHas Download File
8.  Calendar Control - Multi-Select 2-up ImplementationHas Download File
9.  Calendar Control - Custom Renderer Example (Holiday Renderer Implementation)Has Download File
10.  Calendar Control - Date Restriction Example (Date Restriction Implementation)Has Download File
11.  Calendar Control - Row Highlight Example (Row Highlight Implementation)Has Download File
12.  Popup calendarHas Download File
13.  Month Calendar
14.  Popup Calendar for a textfield
15.  Multiselection Calendar
16.  Free Date Picker : An easy plugin to add a date picker (calendar) in your web site
17.  HTML Date Picker
18.  Date Picker in new windowHas Download File
19.  All browser CalendarHas Download File
20.  DHTML Calendar for the impatientHas Download File
21.  Calendar: special dayHas Download File
22.  Calendar: day infoHas Download File
23.  Calendar: Multiple day selectionHas Download File
24.  Calendar with different themeHas Download File
25.  Calendar with image for each monthHas Download File
26.  Fancy Calendar Has Download File
27.  Date Time PickerHas Download File
28.  Month Calendar
29.  Building a Calculator
30.  A Dynamic Calendar Table
31.  Dynamic HTML Calendar
32.   A Static Calendar by JavaScript
33.  Displaying the Calendar
34.  Calendar (IE only)
35.  Calendar in slide tab
36.  Another DHTML Calendar
37.  Event CalendarHas Download File
38.  Open calendarHas Download File
























Home| Contact Us
Copyright 2003 - 04 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.