JavaScript two month calendar help.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • ajaydesai
    New Member
    • May 2007
    • 4

    #1

    JavaScript two month calendar help.

    I have JavaScript code to dispaly two month calendar days at a time, but i have a problem both month that disaplay at a time have same days (for example May and June has same days, June and July have same days etc.) Instate of correct days. Here is my code from 3 files.
    *************** *************** *************** *************** *************** ************
    calendr.js file:

    Code:
    isIE = (document.all ? true : false);
    isDOM = (document.getElementById ? true : false);
    
    // Initializing arrays
    var months = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul",
    	 "Aug", "Sep", "Oct", "Nov", "Dec", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul",
    	 "Aug", "Sep", "Oct", "Nov", "Dec");
    var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31,
                30, 31, 30, 31, 31, 28, 31, 30, 31, 30, 31, 31,
                30, 31, 30, 31);
    			
    var displayMonth = new Date().getMonth();
    var displayYear = new Date().getFullYear();
    var displayDivName;
    var displayElement;
    
    function getDays(month, year) {
    // Check for leap year when February is selected
    	if (1 == month)
        	return ((0 == year % 4) && (0 != (year % 100))) ||
                   (0 == year % 400) ? 29 : 28;
        else
             return daysInMonth[month];
    		
        }
    
    function getToday() {
    	// Create today's date.
        this.now = new Date();
        this.year = this.now.getFullYear();
        this.month = this.now.getMonth();
        this.day = this.now.getDate();
        }
    
    // Start calendar with today
        today = new getToday();
    
    function newCalendar(eltName,attachedElement) {
    	if (attachedElement) {
    		if (displayDivName && displayDivName != eltName) hideElement(displayDivName);
    	       displayElement = attachedElement;
    	    }
    		
    	    displayDivName = eltName;
                today = new getToday();
                var parseYear = parseInt(displayYear + '');
                var newCal = new Date(parseYear,displayMonth,1);
                var day = -1;
                var startDayOfWeek = newCal.getDay();
    			
                if ((today.year == newCal.getFullYear()) &&
                      (today.month == newCal.getMonth()))
    	    	{
                   day = today.day;
                }
    			
                var intDaysInMonth =
                   getDays(newCal.getMonth(), newCal.getFullYear());
    		   
    
                var daysGrid = makeDaysGrid(startDayOfWeek,day,intDaysInMonth,newCal,eltName) 
    		
    	    if (isIE) {
    	       var elt = document.all[eltName];
    	       elt.innerHTML = daysGrid;
                } else if (isDOM) {
    	       var elt = document.getElementById(eltName);
    	       elt.innerHTML = daysGrid;
    	    } else {
    	       var elt = document.layers[eltName].document;
    	       elt.open();
    	       elt.write(daysGrid);
    	       elt.close();
    	    }
    	 }
    
    	 function incMonth(delta,eltName) {
    	 	displayMonth = displayMonth+delta;
    	   		if (displayMonth >= 12) {
    	     		displayMonth = 0;
    	     		incYear(1,eltName);
    	   		} else if (displayMonth <= -1) {
    	     		displayMonth = 11;
    	     		incYear(-1,eltName);
    	   		} else {
    	    		 newCalendar(eltName);
    	   	}
    	}
    
    	 function incYear(delta,eltName) {
    	   displayYear = parseInt(displayYear + '') + delta;
    	   newCalendar(eltName);
    	 }
    	
    	 function makeDaysGrid(startDay,day,intDaysInMonth,newCal,eltName) {
    	    var daysGrid;
    	    var month = newCal.getMonth();
    	    var year = newCal.getFullYear();
    	    var isThisYear = (year == new Date().getFullYear());
    	    var isThisMonth = (day > -1)
    		
    	    daysGrid = '<table border=1 cellspacing=0 cellpadding=2><tr><td bgcolor=#ffffff nowrap>';
    	    daysGrid += '<font face="courier new, courier" size=2>';
    	    daysGrid += '&nbsp;&nbsp;';
    		
    		if (isThisMonth) {daysGrid += '&nbsp;&nbsp;';}
    		else
    		{daysGrid += '<a href="javascript:incMonth(-1,\'' + eltName + '\')"><img src="https://images.hertz.com/misc/arrow_lft.gif" border="0" valign="bottom"></a>';}
    
    		daysGrid += '<b>';
    	    if (isThisMonth) { daysGrid += '<font color=#ffcc00>' + months[month] + '</font>'; }
    	    else { daysGrid += months[month]; }
    	    daysGrid += '</b>';
    		
    		daysGrid += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
    		daysGrid += months[month+1]; 
    		
    	    daysGrid += '<a href="javascript:incMonth(1,\'' + eltName + '\')"><img src="https://images.hertz.com/misc/arrow_rgt.gif" border="0" valign="bottom"></a>';
    	    daysGrid += '&nbsp;&nbsp;&nbsp;';
    	    
    		daysGrid += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:hideElement(\'' + eltName + '\')">x</a><br>';
    		daysGrid += '<b>&nbsp;S&nbsp; M&nbsp; T&nbsp; W&nbsp; T&nbsp; F&nbsp; S&nbsp;</b>&nbsp;&nbsp;&nbsp;<br>';
    		
    	
    		var dayOfMonthOfFirstSunday = (7 - startDay + 1);
    	    for (var intWeek = 0; intWeek < 6; intWeek++) {
    	    	var dayOfMonth;
    	        for (var intDay = 0; intDay < 7; intDay++) {
    	        	dayOfMonth = (intWeek * 7) + intDay + dayOfMonthOfFirstSunday - 7;
    						
    		 			if (dayOfMonth <= 0) {
    	           			daysGrid += "&nbsp;&nbsp; ";
    		 			} else if (dayOfMonth <= intDaysInMonth) {
    		   				var color = "#3366AA";
    		   			if (day > 0 && day == dayOfMonth) color="#ffcc00";
    					
    		   				daysGrid += '<a href="javascript:setDay(';
    		   				daysGrid += dayOfMonth + ',\'' + eltName + '\')" '
    		   				daysGrid += 'style="color:' + color + '">';
    		   				var dayString = dayOfMonth + "</a> ";
    		   				if (dayString.length == 6) dayString = '0' + dayString;
    		   				daysGrid += dayString;
    					}
    	       }
    		   
    		    
    	       if (dayOfMonth < intDaysInMonth) daysGrid += "<br>&nbsp;";
    	    }
    
    
    	
    	daysGrid += '<br><br>' + months[month+1]  + '<br>'; 
    	
    		daysGrid += '<br><b>&nbsp;S&nbsp; M&nbsp; T&nbsp; W&nbsp; T&nbsp; F&nbsp; S&nbsp;</b><br>&nbsp;';
    		
    		
    		var dayOfMonthOfFirstSunday = (7 - startDay + 1);
    	    for (var intWeek = 0; intWeek < 6; intWeek++) {
    	    	var dayOfMonth;
    	        for (var intDay = 0; intDay < 7; intDay++) {
    	        	dayOfMonth = (intWeek * 7) + intDay + dayOfMonthOfFirstSunday - 7;
    						
    		 			if (dayOfMonth <= 0) {
    	           			daysGrid += "&nbsp;&nbsp; ";
    		 			} else if (dayOfMonth <= intDaysInMonth) {
    		   				var color = "#3366AA";
    		   			if (day > 0 && day == dayOfMonth) color="#ffcc00";
    					
    		   				daysGrid += '<a href="javascript:setDay(';
    		   				daysGrid += dayOfMonth + ',\'' + eltName + '\')" '
    		   				daysGrid += 'style="color:' + color + '">';
    		   				var dayString = dayOfMonth + "</a> ";
    		   				if (dayString.length == 6) dayString = '0' + dayString;
    		   				daysGrid += dayString;
    					}
    	       }
    		   
    		    
    	       if (dayOfMonth < intDaysInMonth) daysGrid += "<br>&nbsp;";
    	    }
    		
    		
    			
    	    return daysGrid + "</td></tr></table>";
    	 }
    
    
    	 function setDay(day,eltName) {
    	   displayElement.value = (displayMonth + 1) + "/" + day + "/" + displayYear;
    	   hideElement(eltName);
    	 }
    *************** *************** *************** *************** *************** *********
    leisure_cal.js file:

    Code:
    isIE = (document.all ? true : false);
    isDOM = (document.getElementById ? true : false);
    function getAbsX(elt) { return (elt.x) ? elt.x : getAbsPos(elt,"Left"); }
    function getAbsY(elt) { return (elt.y) ? elt.y : getAbsPos(elt,"Top"); }
    
    function getAbsPos(elt,which) {
     iPos = 0;
     while (elt != null) {
      iPos += elt["offset" + which];
      elt = elt.offsetParent;
     }
     return iPos;
    }
    
    function getDivStyle(divname) {
     var style;
     if (isDOM) { style = document.getElementById(divname).style; }
     else { style = isIE ? document.all[divname].style
                         : document.layers[divname]; }
     return style;
    }
    
    function hideElement(divname) {
     getDivStyle(divname).visibility = 'hidden';
    }
    
    function moveBy(elt,deltaX,deltaY) {
     elt.left = parseInt(elt.left) + deltaX;
     elt.top = parseInt(elt.top) + deltaY;
    }
    
    function toggleVisible(divname) {
     divstyle = getDivStyle(divname);
     if (divstyle.visibility == 'visible' || divstyle.visibility == 'show') {
       divstyle.visibility = 'hidden';
     } else {
       fixPosition(divname);
       divstyle.visibility = 'visible';
     }
    }
    
    function setPosition(elt,positionername,isPlacedUnder) {
     var positioner;
     if (isIE) {
      positioner = document.all[positionername];
     } else {
      if (isDOM) {
        positioner = document.getElementById(positionername);
      } else {
        positioner = document.images[positionername];
      }
     }
     elt.left = getAbsX(positioner);
     elt.top = getAbsY(positioner) + (isPlacedUnder ? positioner.height : 0);
    }
    *************** *************** *************** *************** *************** ********
    calendar.html file:

    [HTML]<html>
    <head><title>DH TML Calendar</title>
    <script language="JavaS cript1.2" src="leisure_ca l.js"></script>
    <script language="JavaS cript1.2" src="calendar.j s"></script>

    <script language="JavaS cript1.2">
    <!--

    function fixPosition(div name) {
    divstyle = getDivStyle(div name);
    positionerImgNa me = divname + 'Pos';
    isPlacedUnder = false;
    if (isPlacedUnder) {
    setPosition(div style,positione rImgName,true);
    } else {
    setPosition(div style,positione rImgName)
    }
    }

    function toggleDatePicke r(eltName,formE lt) {
    var x = formElt.indexOf ('.');
    var formName = formElt.substri ng(0,x);
    var formEltName = formElt.substri ng(x+1);
    newCalendar(elt Name,document.f orms[formName].elements[formEltName]);
    toggleVisible(e ltName);
    }

    function fixPositions()
    {
    fixPosition('da ysOfMonth');
    fixPosition('da ysOfMonth2');


    }



    // -->
    </script>

    </head>

    <body onresize="fixPo sitions()">

    <form name="date">

    <center>
    <table border=0>
    <tr>
    <td>Pick-Up Date:&nbsp;</td>
    <td><INPUT name=ret size="10" onmouseup="togg leDatePicker('d aysOfMonth','da te.ret')" id=daysOfMonthP os name=daysOfMont hPos align=absmiddle ><div id="daysOfMonth " style="position :absolute;"></div></td>
    </tr>

    <tr>
    <td>Return Date:&nbsp;</td>
    <td><INPUT name=ret2 size="10" onmouseup="togg leDatePicker('d aysOfMonth2','d ate.ret2')" id=daysOfMonth2 Pos name=daysOfMont h2Pos align=absmiddle ><div id="daysOfMonth 2" style="position :absolute;"></div></td>
    </tr>
    </table>
    </center>

    </form>

    <SCRIPT language=JavaSc ript1.2>
    function Cancel() {
    hideElement("da ysOfMonth");
    }
    </SCRIPT>

    <script language="JavaS cript1.2">
    <!--
    hideElement('da ysOfMonth');
    hideElement('da ysOfMonth2');
    //-->
    </script>[/HTML]
    Last edited by acoder; May 28 '07, 10:58 AM. Reason: Code in tags
  • ajaydesai
    New Member
    • May 2007
    • 4

    #2
    Please help with javaScript bug

    I have JavaScript code to dispaly two month calendar
    days at a time, but i have a problem. Both month that
    disaplay at a time have same days (for example May and
    June has same days, June and July have same days etc.)
    When May and June days dispaly, May has correct days
    but June has incorrect days becuase it has same as May
    etc.

    Here is my code from 3 files. Save this 1 html and 2 js files on your pc so that you can
    see problem on your browser screen.


    *************** *************** *************** ***** *************** *************** *******
    calendr.js file:

    Code:
    isIE = (document.all ? true : false);
    isDOM = (document.getElementById ? true : false);
    
    // Initializing arrays
    var months = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul",
    "Aug", "Sep", "Oct", "Nov", "Dec", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul",
    "Aug", "Sep", "Oct", "Nov", "Dec");
    var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31,
    30, 31, 30, 31, 31, 28, 31, 30, 31, 30, 31, 31,
    30, 31, 30, 31);
    
    var displayMonth = new Date().getMonth();
    var displayYear = new Date().getFullYear();
    var displayDivName;
    var displayElement;
    
    function getDays(month, year) {
    // Check for leap year when February is selected
    if (1 == month)
    return ((0 == year % 4) && (0 != (year % 100))) ||
    (0 == year % 400) ? 29 : 28;
    else
    return daysInMonth[month];
    
    }
    
    function getToday() {
    // Create today's date.
    this.now = new Date();
    this.year = this.now.getFullYear();
    this.month = this.now.getMonth();
    this.day = this.now.getDate();
    }
    
    // Start calendar with today
    today = new getToday();
    
    function newCalendar(eltName,attachedElement) {
    if (attachedElement) {
    if (displayDivName && displayDivName != eltName) hideElement(displayDivName);
    displayElement = attachedElement;
    }
    
    displayDivName = eltName;
    today = new getToday();
    var parseYear = parseInt(displayYear + '');
    var newCal = new Date(parseYear,displayMonth,1);
    var day = -1;
    var startDayOfWeek = newCal.getDay();
    
    if ((today.year == newCal.getFullYear()) &&
    (today.month == newCal.getMonth()))
    {
    day = today.day;
    }
    
    var intDaysInMonth =
    getDays(newCal.getMonth(), newCal.getFullYear());
    
    
    var daysGrid = makeDaysGrid(startDayOfWeek,day,intDaysInMonth,new Cal,eltName) 
    
    if (isIE) {
    var elt = document.all[eltName];
    elt.innerHTML = daysGrid;
    } else if (isDOM) {
    var elt = document.getElementById(eltName);
    elt.innerHTML = daysGrid;
    } else {
    var elt = document.layers[eltName].document;
    elt.open();
    elt.write(daysGrid);
    elt.close();
    }
    }
    
    function incMonth(delta,eltName) {
    displayMonth = displayMonth+delta;
    if (displayMonth >= 12) {
    displayMonth = 0;
    incYear(1,eltName);
    } else if (displayMonth <= -1) {
    displayMonth = 11;
    incYear(-1,eltName);
    } else {
    newCalendar(eltName);
    }
    }
    
    function incYear(delta,eltName) {
    displayYear = parseInt(displayYear + '') + delta;
    newCalendar(eltName);
    }
    
    function makeDaysGrid(startDay,day,intDaysInMonth,newCal,el tName) {
    var daysGrid;
    var month = newCal.getMonth();
    var year = newCal.getFullYear();
    var isThisYear = (year == new Date().getFullYear());
    var isThisMonth = (day > -1)
    
    daysGrid = '<table border=1 cellspacing=0 cellpadding=2><tr><td bgcolor=#ffffff nowrap>';
    daysGrid += '<font face="courier new, courier" size=2>';
    daysGrid += '&nbsp;&nbsp;';
    
    if (isThisMonth) {daysGrid += '&nbsp;&nbsp;';}
    else
    {daysGrid += '<a href="javascript:incMonth(-1,\'' + eltName + '\')"><img src="https://images.hertz.com/misc/arrow_lft.gif" border="0" valign="bottom"></a>';}
    
    daysGrid += '<b>';
    if (isThisMonth) { daysGrid += '<font color=#ffcc00>' + months[month] + '</font>'; }
    else { daysGrid += months[month]; }
    daysGrid += '</b>';
    
    daysGrid += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
    daysGrid += months[month+1]; 
    
    daysGrid += '<a href="javascript:incMonth(1,\'' + eltName + '\')"><img src="https://images.hertz.com/misc/arrow_rgt.gif" border="0" valign="bottom"></a>';
    daysGrid += '&nbsp;&nbsp;&nbsp;';
    
    daysGrid += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:hideElement(\'' + eltName + '\')">x</a><br>';
    daysGrid += '<b>&nbsp;S&nbsp; M&nbsp; T&nbsp; W&nbsp; T&nbsp; F&nbsp; S&nbsp;</b>&nbsp;&nbsp;&nbsp;<br>';
    
    
    var dayOfMonthOfFirstSunday = (7 - startDay + 1);
    for (var intWeek = 0; intWeek < 6; intWeek++) {
    var dayOfMonth;
    for (var intDay = 0; intDay < 7; intDay++) {
    dayOfMonth = (intWeek * 7) + intDay + dayOfMonthOfFirstSunday - 7;
    
    if (dayOfMonth <= 0) {
    daysGrid += "&nbsp;&nbsp; ";
    } else if (dayOfMonth <= intDaysInMonth) {
    var color = "#3366AA";
    if (day > 0 && day == dayOfMonth) color="#ffcc00";
    
    daysGrid += '<a href="javascript:setDay(';
    daysGrid += dayOfMonth + ',\'' + eltName + '\')" '
    daysGrid += 'style="color:' + color + '">';
    var dayString = dayOfMonth + "</a> ";
    if (dayString.length == 6) dayString = '0' + dayString;
    daysGrid += dayString;
    }
    }
    
    
    if (dayOfMonth < intDaysInMonth) daysGrid += "<br>&nbsp;";
    }
    
    
    
    daysGrid += '<br><br>' + months[month+1] + '<br>'; 
    
    daysGrid += '<br><b>&nbsp;S&nbsp; M&nbsp; T&nbsp; W&nbsp; T&nbsp; F&nbsp; S&nbsp;</b><br>&nbsp;';
    
    
    var dayOfMonthOfFirstSunday = (7 - startDay + 1);
    for (var intWeek = 0; intWeek < 6; intWeek++) {
    var dayOfMonth;
    for (var intDay = 0; intDay < 7; intDay++) {
    dayOfMonth = (intWeek * 7) + intDay + dayOfMonthOfFirstSunday - 7;
    
    if (dayOfMonth <= 0) {
    daysGrid += "&nbsp;&nbsp; ";
    } else if (dayOfMonth <= intDaysInMonth) {
    var color = "#3366AA";
    if (day > 0 && day == dayOfMonth) color="#ffcc00";
    
    daysGrid += '<a href="javascript:setDay(';
    daysGrid += dayOfMonth + ',\'' + eltName + '\')" '
    daysGrid += 'style="color:' + color + '">';
    var dayString = dayOfMonth + "</a> ";
    if (dayString.length == 6) dayString = '0' + dayString;
    daysGrid += dayString;
    }
    }
    
    
    if (dayOfMonth < intDaysInMonth) daysGrid += "<br>&nbsp;";
    }
    
    
    
    return daysGrid + "</td></tr></table>";
    }
    
    
    function setDay(day,eltName) {
    displayElement.value = (displayMonth + 1) + "/" + day + "/" + displayYear;
    hideElement(eltName);
    }
    *************** *************** *************** ***** *************** *************** ****
    leisure_cal.js file:

    Code:
    isIE = (document.all ? true : false);
    isDOM = (document.getElementById ? true : false);
    function getAbsX(elt) { return (elt.x) ? elt.x : getAbsPos(elt,"Left"); }
    function getAbsY(elt) { return (elt.y) ? elt.y : getAbsPos(elt,"Top"); }
    
    function getAbsPos(elt,which) {
    iPos = 0;
    while (elt != null) {
    iPos += elt["offset" + which];
    elt = elt.offsetParent;
    }
    return iPos;
    }
    
    function getDivStyle(divname) {
    var style;
    if (isDOM) { style = document.getElementById(divname).style; }
    else { style = isIE ? document.all[divname].style
    : document.layers[divname]; }
    return style;
    }
    
    function hideElement(divname) {
    getDivStyle(divname).visibility = 'hidden';
    }
    
    function moveBy(elt,deltaX,deltaY) {
    elt.left = parseInt(elt.left) + deltaX;
    elt.top = parseInt(elt.top) + deltaY;
    }
    
    function toggleVisible(divname) {
    divstyle = getDivStyle(divname);
    if (divstyle.visibility == 'visible' || divstyle.visibility == 'show') {
    divstyle.visibility = 'hidden';
    } else {
    fixPosition(divname);
    divstyle.visibility = 'visible';
    }
    }
    
    function setPosition(elt,positionername,isPlacedUnder) {
    var positioner;
    if (isIE) {
    positioner = document.all[positionername];
    } else {
    if (isDOM) {
    positioner = document.getElementById(positionername);
    } else {
    positioner = document.images[positionername];
    }
    }
    elt.left = getAbsX(positioner);
    elt.top = getAbsY(positioner) + (isPlacedUnder ? positioner.height : 0);
    }
    *************** *************** *************** ***** *************** *************** ***
    calendar.html file:

    [HTML]<html>
    <head><title>DH TML Calendar</title>
    <script language="JavaS cript1.2" src="leisure_ca l.js"></script>
    <script language="JavaS cript1.2" src="calendar.j s"></script>

    <script language="JavaS cript1.2">
    <!--

    function fixPosition(div name) {
    divstyle = getDivStyle(div name);
    positionerImgNa me = divname + 'Pos';
    isPlacedUnder = false;
    if (isPlacedUnder) {
    setPosition(div style,positione rImgName,true);
    } else {
    setPosition(div style,positione rImgName)
    }
    }

    function toggleDatePicke r(eltName,formE lt) {
    var x = formElt.indexOf ('.');
    var formName = formElt.substri ng(0,x);
    var formEltName = formElt.substri ng(x+1);
    newCalendar(elt Name,document.f orms[formName].elements[formEltName]);
    toggleVisible(e ltName);
    }

    function fixPositions()
    {
    fixPosition('da ysOfMonth');
    fixPosition('da ysOfMonth2');


    }



    // -->
    </script>

    </head>

    <body onresize="fixPo sitions()">

    <form name="date">

    <center>
    <table border=0>
    <tr>
    <td>Pick-Up Date:&nbsp;</td>
    <td><INPUT name=ret size="10" onmouseup="togg leDatePicker('d aysOfMonth','da te.ret')" id=daysOfMonthP os name=daysOfMont hPos align=absmiddle ><div id="daysOfMonth " style="position :absolute;"></div></td>
    </tr>

    <tr>
    <td>Return Date:&nbsp;</td>
    <td><INPUT name=ret2 size="10" onmouseup="togg leDatePicker('d aysOfMonth2','d ate.ret2')" id=daysOfMonth2 Pos name=daysOfMont h2Pos align=absmiddle ><div id="daysOfMonth 2" style="position :absolute;"></div></td>
    </tr>
    </table>
    </center>

    </form>

    <SCRIPT language=JavaSc ript1.2>
    function Cancel() {
    hideElement("da ysOfMonth");
    }
    </SCRIPT>

    <script language="JavaS cript1.2">
    <!--
    hideElement('da ysOfMonth');
    hideElement('da ysOfMonth2');
    //-->
    </script>[/HTML]
    Last edited by acoder; May 28 '07, 10:55 AM. Reason: Code in tags

    Comment

    • acoder
      Recognized Expert MVP
      • Nov 2006
      • 16032

      #3
      Threads merged. Please do not double post.

      Comment

      • ajaydesai
        New Member
        • May 2007
        • 4

        #4
        Html Help !!!!!!!!!!!!!!! !!!!!!!!!!!!!!!

        Copy and Paste all bottom code and save it as .html file so that you can preview it on browser to fix it. I have two month calendar code. Currently calendar months show up at top and bottom. I want to fix it so that calendar months show up side by side (months parallel to each other instate of at top and bottom).
        ------------------------------------------------------------------------------------------------------

        [HTML]<html>
        <head><title>Ca lendar</title>

        <script language="JavaS cript1.2">

        //*************** ************* DHTML CODE

        isIE = (document.all ? true : false);
        isDOM = (document.getEl ementById ? true : false);
        function getAbsX(elt) { return (elt.x) ? elt.x : getAbsPos(elt," Left"); }
        function getAbsY(elt) { return (elt.y) ? elt.y : getAbsPos(elt," Top"); }

        function getAbsPos(elt,w hich) {
        iPos = 0; //This will move DIV away from input field.
        while (elt != null) {
        iPos += elt["offset" + which];
        elt = elt.offsetParen t;
        }
        return iPos;
        }

        function getDivStyle(div name) {
        var style;
        if (isDOM) { style = document.getEle mentById(divnam e).style; }
        else { style = isIE ? document.all[divname].style
        : document.layers[divname]; }
        return style;
        }

        function hideElement(div name) {
        getDivStyle(div name).visibilit y = 'hidden';
        }

        function moveBy(elt,delt aX,deltaY) {
        elt.left = parseInt(elt.le ft) + deltaX;
        elt.top = parseInt(elt.to p) + deltaY;
        }

        function toggleVisible(d ivname) {
        divstyle = getDivStyle(div name);
        if (divstyle.visib ility == 'visible' || divstyle.visibi lity == 'show') {
        divstyle.visibi lity = 'hidden';
        } else {
        fixPosition(div name);
        divstyle.visibi lity = 'visible';
        }
        }

        function setPosition(elt ,positionername ,isPlacedUnder) {
        var positioner;
        if (isIE) {
        positioner = document.all[positionername];
        } else {
        if (isDOM) {
        positioner = document.getEle mentById(positi onername);
        } else {
        positioner = document.images[positionername];
        }
        }
        elt.left = getAbsX(positio ner);
        elt.top = getAbsY(positio ner) + (isPlacedUnder ? positioner.heig ht : 0);
        }

        //*************** ************* DHTML CODE - END


        //*************** ************* Javascript CODE

        isIE = (document.all ? true : false);
        isDOM = (document.getEl ementById ? true : false);

        // Initializing arrays
        var months = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul",
        "Aug", "Sep", "Oct", "Nov", "Dec");
        var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31,
        30, 31, 30, 31);

        var displayMonth = new Date().getMonth ();
        var displayYear = new Date().getFullY ear();
        var displayDivName;
        var displayElement;

        function getDays(month, year) {
        // Check for leap year when February is selected
        if (1 == month)
        return ((0 == year % 4) && (0 != (year % 100))) ||
        (0 == year % 400) ? 29 : 28;
        else
        return daysInMonth[month];
        }

        function getToday(d) {
        // Create today's date.
        this.now = (d)?d:new Date();
        this.year = this.now.getFul lYear();
        this.month = this.now.getMon th();
        this.day = this.now.getDat e();
        }

        // Start calendar with today
        today = new getToday();

        function newCalendar(elt Name,attachedEl ement) {
        if (attachedElemen t) {
        if (displayDivName && displayDivName != eltName) hideElement(dis playDivName);
        displayElement = attachedElement ;
        }

        displayDivName = eltName;
        today = new getToday();
        var parseYear = parseInt(displa yYear + '');
        var newCal = new Date(parseYear, displayMonth,1) ;
        var day = -1;
        var startDayOfWeek = newCal.getDay() ;

        if ((today.year == newCal.getFullY ear()) &&
        (today.month == newCal.getMonth ()))
        {
        day = today.day;
        }

        var intDaysInMonth =
        getDays(newCal. getMonth(), newCal.getFullY ear());
        var daysGrid = makeDaysGridA(s tartDayOfWeek,d ay,intDaysInMon th,newCal,eltNa me)

        // next month

        newCal.setMonth (newCal.getMont h()+1) //imp
        day = -1;
        startDayOfWeek = newCal.getDay() ;

        if ((today.year == newCal.getFullY ear()) &&
        (today.month == newCal.getMonth ())) {
        day = today.day;
        }

        intDaysInMonth = getDays(newCal. getMonth(), newCal.getFullY ear());
        daysGrid += makeDaysGridA(s tartDayOfWeek,d ay,intDaysInMon th,newCal,eltNa me)

        if (isIE) {
        var elt = document.all[eltName];
        elt.innerHTML = daysGrid;
        } else if (isDOM) {
        var elt = document.getEle mentById(eltNam e);
        elt.innerHTML = daysGrid;
        } else {
        var elt = document.layers[eltName].document;
        elt.open();
        elt.write(daysG rid);
        elt.close();
        }
        }

        function incMonth(delta, eltName) {
        displayMonth += delta;
        if (displayMonth >= 12) {
        displayMonth = 0;
        incYear(1,eltNa me);
        } else if (displayMonth <= -1) {
        displayMonth = 11;
        incYear(-1,eltName);
        } else {
        newCalendar(elt Name);
        }
        }

        function incYear(delta,e ltName) {
        displayYear = parseInt(displa yYear + '') + delta;
        newCalendar(elt Name);
        }

        function makeDaysGridA(s tartDay,day,int DaysInMonth,new Cal,eltName) {
        var daysGrid;
        var month = newCal.getMonth ();
        var year = newCal.getFullY ear();
        var isThisYear = (year == new Date().getFullY ear());
        var isThisMonth = (day > -1)

        daysGrid = '<table border=1 cellspacing=0 cellpadding=2>< tr><td bgcolor=#ffffff nowrap>';
        daysGrid += '<font face="courier new, courier" size=2>';
        daysGrid += '&nbsp;&nbsp; ';

        if (isThisMonth) {daysGrid += '&nbsp;&nbsp;'; }
        else
        {daysGrid += '<a href="javascrip t:incMonth(-1,\'' + eltName + '\')"><<</a>';}

        daysGrid += '<b>';

        if (isThisMonth) { daysGrid += '<font color=#ffcc00>' + months[month] + '</font>'; }
        else { daysGrid += months[month]; }
        daysGrid += '</b>';

        daysGrid += '&nbsp;<b>' + year + '</b>';

        daysGrid += '<a href="javascrip t:incMonth(1,\' ' + eltName + '\')">>></a>';
        daysGrid += '&nbsp;&nbsp;&n bsp;';

        daysGrid += '<br><b>S&nbsp ; M&nbsp; T&nbsp; W&nbsp; T&nbsp; F&nbsp; S&nbsp;</b><br>';

        var dayOfMonthOfFir stSunday = (7 - startDay + 1);
        for (var intWeek = 0; intWeek < 6; intWeek++) {
        var dayOfMonth;
        for (var intDay = 0; intDay < 7; intDay++) {
        dayOfMonth = (intWeek * 7) + intDay + dayOfMonthOfFir stSunday - 7;

        if (dayOfMonth <= 0) {
        daysGrid += "&nbsp;&nbsp;&n bsp;";
        } else if (dayOfMonth <= intDaysInMonth) {
        var color = "#3366AA";
        if (day > 0 && day == dayOfMonth) color="#ffcc00" ;

        daysGrid += '<a href="javascrip t:setDay(';
        daysGrid += year + ','
        daysGrid += (month+1) + ','
        daysGrid += dayOfMonth + ',\'' + eltName + '\')" '
        daysGrid += 'style="color:' + color + '">';
        var dayString = dayOfMonth + "</a> ";
        if (dayString.leng th == 6) dayString = '0' + dayString;
        daysGrid += dayString;

        }
        }


        if (dayOfMonth < intDaysInMonth) daysGrid += "<br>";
        }

        return daysGrid + "</td></tr>";
        }

        function setDay(year,mon th,day,eltName) {
        displayElement. value = month + "/" + day + "/" + year;
        hideElement(elt Name);
        }

        //*************** ************* Javascript CODE - END

        //*************** ************ HTML CODE - START

        <!--

        function fixPosition(div name) {
        divstyle = getDivStyle(div name);
        positionerImgNa me = divname + 'Pos';
        isPlacedUnder = false;
        if (isPlacedUnder) {
        setPosition(div style,positione rImgName,true);
        } else {
        setPosition(div style,positione rImgName)
        }
        }

        function toggleDatePicke r(eltName,formE lt) {
        var x = formElt.indexOf ('.');
        var formName = formElt.substri ng(0,x);
        var formEltName = formElt.substri ng(x+1);
        newCalendar(elt Name,document.f orms[formName].elements[formEltName]);
        toggleVisible(e ltName);
        }

        function fixPositions()
        {
        fixPosition('da ysOfMonth');
        fixPosition('da ysOfMonth2');
        }

        // -->
        </script>

        </head>

        <body onresize="fixPo sitions()">

        <form name="date">

        <center>
        <table border=0>
        <tr>
        <td>Pick-Up Date:&nbsp;</td>
        <td><INPUT name=ret size="10" onmouseup="togg leDatePicker('d aysOfMonth','da te.ret')" id=daysOfMonthP os name=daysOfMont hPos align=absmiddle ><div id="daysOfMonth " style="position :absolute;"></div></td>
        </tr>

        <tr>
        <td>Return Date:&nbsp;</td>
        <td><INPUT name=ret2 size="10" onmouseup="togg leDatePicker('d aysOfMonth2','d ate.ret2')" id=daysOfMonth2 Pos name=daysOfMont h2Pos align=absmiddle ><div id="daysOfMonth 2" style="position :absolute;"></div></td>
        </tr>
        </table>
        </center>

        </form>

        <SCRIPT language=JavaSc ript1.2>
        function Cancel() {
        hideElement("da ysOfMonth");
        }
        </SCRIPT>

        <script language="JavaS cript1.2">
        <!--
        hideElement('da ysOfMonth');
        hideElement('da ysOfMonth2');
        //-->
        </script>[/HTML]
        Last edited by acoder; May 28 '07, 10:46 AM. Reason: Code in tags

        Comment

        • acoder
          Recognized Expert MVP
          • Nov 2006
          • 16032

          #5
          Merged yet another thread. If you have some new information, post in the same thread. Do not start another thread for every single post.

          Comment

          • acoder
            Recognized Expert MVP
            • Nov 2006
            • 16032

            #6
            Read about element positions.

            Comment

            • ajaydesai
              New Member
              • May 2007
              • 4

              #7
              This has been fixed so no need to put time towards it.

              Comment

              • acoder
                Recognized Expert MVP
                • Nov 2006
                • 16032

                #8
                Originally posted by ajaydesai
                This has been fixed so no need to put time towards it.
                It's good that you got it working. What particular solution worked for you?

                Comment

                Working...