How to submit form when using javascript calendar popup

I am using coldfusion 7 and javascript
I am trying to submit a form when the javascript popup has closed and the date has been entered into the following input field:

td<cfinput type="Text" name= "InvDateRecd#CurrentRow#" id="InvDateRecd#CurrentRow#" value="#TTPayDate#" size="22"  onchange="this.form.submit"><a href="javascript:NewCal('InvDateRecd#CurrentRow#','ddmmmyyyy',false,24)"><img src="../Images/cal.gif" width="16" height="16" border="0" alt="Pick a date"></a

The javascript value 'onchange="this.form.submit' is being ignored whenever a change has been made.

Any help would be appreciated.
CaridAsked:
Who is Participating?
 
Jai STech ArchCommented:
ok...sorry for harressing you...just tried out and here you go

rever thte previous changes that you did(the one said before)
and change this line
      PCellStr="<td "+vColor+" width="+CellWidth+" align='center'><font face='verdana' size='2'"+vHLstr1+"<a href=\"javascript:winMain.document.getElementById('"+Cal.Ctrl+"').value='"+Cal.FormatDate(PValue)+"';"+vTimeStr+";window.close();\">"+PValue+"</a>"+vHLstr2+"</font></td>";

into

      PCellStr="<td "+vColor+" width="+CellWidth+" align='center'><font face='verdana' size='2'"+vHLstr1+"<a href=\"javascript:winMain.document.forms[0].submit();winMain.document.getElementById('"+Cal.Ctrl+"').value='"+Cal.FormatDate(PValue)+"';"+vTimeStr+";window.close();\">"+PValue+"</a>"+vHLstr2+"</font></td>";
0
 
Jai STech ArchCommented:
specify the following script...intead of jst this.form.submit...

onchange="javascript:window.document.form[0].submit();"
0
 
basicinstinctCommented:
try this:

onchange="this.form.submit();"
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

 
knightEknightCommented:
I don't know if this is your problem, but the correct syntax is:

'onchange="this.form.submit();"'

There is a quote problem, and you left off the parens
0
 
CaridAuthor Commented:
I'm sorry I did have onchange="this.form.submit();" in the cfinput field and it does not work if the change is made by selecting the popup calendar.

If I go into the field and manually change the value then the form submits ok??

Does anyone know if I could submit the form once the popup closes. ie maybe somehow including it into the href="javascript:NewCal('InvDateRecd#CurrentRow#','ddmmmyyyy',false,24)"><img src="../Images/cal.gif" width="16" height="16" border="0" alt="Pick a date"></a

Sorry about the error
thank you
0
 
Jai STech ArchCommented:
you can write in your popup calendar...during ONLOAD
as
window.opener.forms[0].submit()
0
 
CaridAuthor Commented:
I am a real beginner with javascript so you will have to bear with me.

Where would the window.opener.forms[0].submit() go??

I've looked at the code in the javascript function and tried submitting the form from there to no avail.
I've included the javascript function and hopefully someone can help me.

//Javascript name: My Date Time Picker
//Date created: 16-Nov-2003 23:19
//Scripter: TengYong Ng
//Website: http://www.rainforestnet.com
//Copyright (c) 2003 TengYong Ng
//FileName: DateTimePicker.js
//Version: 0.8
//Contact: contact@rainforestnet.com
// Note: Permission given to use this script in ANY kind of applications if
//       header lines are left unchanged.

//Global variables
var winCal;
var dtToday=new Date();
var Cal;
var docCal;
var MonthName=["January", "February", "March", "April", "May", "June","July",
      "August", "September", "October", "November", "December"];
var WeekDayName=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];      
var exDateTime;//Existing Date and Time

//Configurable parameters
var cnTop="200";//top coordinate of calendar window.
var cnLeft="500";//left coordinate of calendar window
var WindowTitle ="DateTime Picker";//Date Time Picker title.
var WeekChar=2;//number of character for week day. if 2 then Mo,Tu,We. if 3 then Mon,Tue,Wed.
var CellWidth=20;//Width of day cell.
var DateSeparator=" ";//Date Separator, you can change it to "/" if you want.
var TimeMode=24;//default TimeMode value. 12 or 24

var ShowLongMonth=true;//Show long month name in Calendar header. example: "January".
var ShowMonthYear=true;//Show Month and Year in Calendar header.
var MonthYearColor="#cc0033";//Font Color of Month and Year in Calendar header.
var WeekHeadColor="#0099CC";//Background Color in Week header.
var SundayColor="#6699FF";//Background color of Sunday.
var SaturdayColor="#CCCCFF";//Background color of Saturday.
var WeekDayColor="white";//Background color of weekdays.
var FontColor="blue";//color of font in Calendar day cell.
var TodayColor="#FFFF33";//Background color of today.
var SelDateColor="#FFFF99";//Backgrond color of selected date in textbox.
var YrSelColor="#cc0033";//color of font of Year selector.
var ThemeBg="";//Background image of Calendar window.
//end Configurable parameters
//end Global variable

function NewCal(pCtrl,pFormat,pShowTime,pTimeMode)
{
      Cal=new Calendar(dtToday);
      if ((pShowTime!=null) && (pShowTime))
      {
            Cal.ShowTime=true;
            if ((pTimeMode!=null) &&((pTimeMode=='12')||(pTimeMode=='24')))
            {
                  TimeMode=pTimeMode;
            }            
      }      
      if (pCtrl!=null)
            Cal.Ctrl=pCtrl;
      if (pFormat!=null)
            Cal.Format=pFormat.toUpperCase();
      
      exDateTime=document.getElementById(pCtrl).value;
      if (exDateTime!="")//Parse Date String
      {
            var Sp1;//Index of Date Separator 1
            var Sp2;//Index of Date Separator 2
            var tSp1;//Index of Time Separator 1
            var tSp1;//Index of Time Separator 2
            var strMonth;
            var strDate;
            var strYear;
            var intMonth;
            var YearPattern;
            var strHour;
            var strMinute;
            var strSecond;
            //parse month
            Sp1=exDateTime.indexOf(DateSeparator,0)
            Sp2=exDateTime.indexOf(DateSeparator,(parseInt(Sp1)+1));
            
            if ((Cal.Format.toUpperCase()=="DDMMYYYY") || (Cal.Format.toUpperCase()=="DDMMMYYYY"))
            {
                  strMonth=exDateTime.substring(Sp1+1,Sp2);
                  strDate=exDateTime.substring(0,Sp1);
            }
            else if ((Cal.Format.toUpperCase()=="MMDDYYYY") || (Cal.Format.toUpperCase()=="MMMDDYYYY"))
            {
                  strMonth=exDateTime.substring(0,Sp1);
                  strDate=exDateTime.substring(Sp1+1,Sp2);
            }
            if (isNaN(strMonth))
                  intMonth=Cal.GetMonthIndex(strMonth);
            else
                  intMonth=parseInt(strMonth,10)-1;      
            if ((parseInt(intMonth,10)>=0) && (parseInt(intMonth,10)<12))
                  Cal.Month=intMonth;
            //end parse month
            //parse Date
            if ((parseInt(strDate,10)<=Cal.GetMonDays()) && (parseInt(strDate,10)>=1))
                  Cal.Date=strDate;
            //end parse Date
            //parse year
            strYear=exDateTime.substring(Sp2+1,Sp2+5);
            YearPattern=/^\d{4}$/;
            if (YearPattern.test(strYear))
                  Cal.Year=parseInt(strYear,10);
            //end parse year
            //parse time
            if (Cal.ShowTime==true)
            {
                  tSp1=exDateTime.indexOf(":",0)
                  tSp2=exDateTime.indexOf(":",(parseInt(tSp1)+1));
                  strHour=exDateTime.substring(tSp1,(tSp1)-2);
                  Cal.SetHour(strHour);
                  strMinute=exDateTime.substring(tSp1+1,tSp2);
                  Cal.SetMinute(strMinute);
                  strSecond=exDateTime.substring(tSp2+1,tSp2+3);
                  Cal.SetSecond(strSecond);
            }      
      }
      winCal=window.open("","DateTimePicker","toolbar=0,status=0,menubar=0,fullscreen=no,width=195,height=245,resizable=0,top="+cnTop+",left="+cnLeft);
      docCal=winCal.document;
      RenderCal();
}

function RenderCal()
{
      var vCalHeader;
      var vCalData;
      var vCalTime;
      var i;
      var j;
      var SelectStr;
      var vDayCount=0;
      var vFirstDay;

      docCal.open();
      docCal.writeln("<html><head><title>"+WindowTitle+"</title>");
      docCal.writeln("<script>var winMain=window.opener;</script>");
      docCal.writeln("</head><body background='../JS_Calendar_1/"+ThemeBg+"' link="+FontColor+" vlink="+FontColor+"><form name='Calendar'>");

      vCalHeader="<table border=1 cellpadding=1 cellspacing=1 width='100%' align=\"center\" valign=\"top\">\n";
      //Month Selector
      vCalHeader+="<tr>\n<td colspan='7'><table border=0 width='100%' cellpadding=0 cellspacing=0><tr><td align='left'>\n";
      vCalHeader+="<select name=\"MonthSelector\" onChange=\"javascript:winMain.Cal.SwitchMth(this.selectedIndex);winMain.RenderCal();\">\n";
      for (i=0;i<12;i++)
      {
            if (i==Cal.Month)
                  SelectStr="Selected";
            else
                  SelectStr="";      
            vCalHeader+="<option "+SelectStr+" value >"+MonthName[i]+"\n";
      }
      vCalHeader+="</select></td>";
      //Year selector
      vCalHeader+="\n<td align='right'><a href=\"javascript:winMain.Cal.DecYear();winMain.RenderCal()\"><b><font color=\""+YrSelColor+"\"><</font></b></a><font face=\"Verdana\" color=\""+YrSelColor+"\" size=2><b> "+Cal.Year+" </b></font><a href=\"javascript:winMain.Cal.IncYear();winMain.RenderCal()\"><b><font color=\""+YrSelColor+"\">></font></b></a></td></tr></table></td>\n";      
      vCalHeader+="</tr>";
      //Calendar header shows Month and Year
      if (ShowMonthYear)
            vCalHeader+="<tr><td colspan='7'><font face='Verdana' size='2' align='center' color='"+MonthYearColor+"'><b>"+Cal.GetMonthName(ShowLongMonth)+" "+Cal.Year+"</b></font></td></tr>\n";
      //Week day header
      vCalHeader+="<tr bgcolor="+WeekHeadColor+">";
      for (i=0;i<7;i++)
      {
            vCalHeader+="<td align='center'><font face='Verdana' size='2'>"+WeekDayName[i].substr(0,WeekChar)+"</font></td>";
      }
      vCalHeader+="</tr>";      
      docCal.write(vCalHeader);
      
      //Calendar detail
      CalDate=new Date(Cal.Year,Cal.Month);
      CalDate.setDate(1);
      vFirstDay=CalDate.getDay();
      vCalData="<tr>";
      for (i=0;i<vFirstDay;i++)
      {
            vCalData=vCalData+GenCell();
            vDayCount=vDayCount+1;
      }
      for (j=1;j<=Cal.GetMonDays();j++)
      {
            var strCell;
            vDayCount=vDayCount+1;
            if ((j==dtToday.getDate())&&(Cal.Month==dtToday.getMonth())&&(Cal.Year==dtToday.getFullYear()))
                  strCell=GenCell(j,true,TodayColor);//Highlight today's date
            else
            {
                  if (j==Cal.Date)
                  {
                        strCell=GenCell(j,true,SelDateColor);
                  }
                  else
                  {       
                        if (vDayCount%7==0)
                              strCell=GenCell(j,false,SaturdayColor);
                        else if ((vDayCount+6)%7==0)
                              strCell=GenCell(j,false,SundayColor);
                        else
                              strCell=GenCell(j,null,WeekDayColor);
                  }            
            }                                    
            vCalData=vCalData+strCell;

            if((vDayCount%7==0)&&(j<Cal.GetMonDays()))
            {
                  vCalData=vCalData+"</tr>\n<tr>";
            }
      }
      docCal.writeln(vCalData);      
      //Time picker
      if (Cal.ShowTime)
      {
            var showHour;
            showHour=Cal.getShowHour();            
            vCalTime="<tr>\n<td colspan='7' align='center'>";
            vCalTime+="<input type='text' name='hour' maxlength=2 size=1 style=\"WIDTH: 22px\" value="+showHour+" onchange=\"javascript:winMain.Cal.SetHour(this.value)\">";
            vCalTime+=" : ";
            vCalTime+="<input type='text' name='minute' maxlength=2 size=1 style=\"WIDTH: 22px\" value="+Cal.Minutes+" onchange=\"javascript:winMain.Cal.SetMinute(this.value)\">";
            vCalTime+=" : ";
            vCalTime+="<input type='text' name='second' maxlength=2 size=1 style=\"WIDTH: 22px\" value="+Cal.Seconds+" onchange=\"javascript:winMain.Cal.SetSecond(this.value)\">";
            if (TimeMode==12)
            {
                  var SelectAm =(parseInt(Cal.Hours,10)<12)? "Selected":"";
                  var SelectPm =(parseInt(Cal.Hours,10)>=12)? "Selected":"";

                  vCalTime+="<select name=\"ampm\" onchange=\"javascript:winMain.Cal.SetAmPm(this.options[this.selectedIndex].value);\">";
                  vCalTime+="<option "+SelectAm+" value=\"AM\">AM</option>";
                  vCalTime+="<option "+SelectPm+" value=\"PM\">PM<option>";
                  vCalTime+="</select>";
            }      
            vCalTime+="\n</td>\n</tr>";
            docCal.write(vCalTime);
      }      
      //end time picker
      docCal.writeln("\n</table>");
      docCal.writeln("</form></body></html>");
      docCal.close();
}

function GenCell(pValue,pHighLight,pColor)//Generate table cell with value
{
      var PValue;
      var PCellStr;
      var vColor;
      var vHLstr1;//HighLight string
      var vHlstr2;
      var vTimeStr;
      
      if (pValue==null)
            PValue="";
      else
            PValue=pValue;
      
      if (pColor!=null)
            vColor="bgcolor=\""+pColor+"\"";
      else
            vColor="";      
      if ((pHighLight!=null)&&(pHighLight))
            {vHLstr1="color='red'><b>";vHLstr2="</b>";}
      else
            {vHLstr1=">";vHLstr2="";}      
      
      if (Cal.ShowTime)
      {
            vTimeStr="winMain.document.getElementById('"+Cal.Ctrl+"').value+=' '+"+"winMain.Cal.getShowHour()"+"+':'+"+"winMain.Cal.Minutes"+"+':'+"+"winMain.Cal.Seconds";
            if (TimeMode==12)
                  vTimeStr+="+' '+winMain.Cal.AMorPM";
      }      
      else
            vTimeStr="";            
      PCellStr="<td "+vColor+" width="+CellWidth+" align='center'><font face='verdana' size='2'"+vHLstr1+"<a href=\"javascript:winMain.document.getElementById('"+Cal.Ctrl+"').value='"+Cal.FormatDate(PValue)+"';"+vTimeStr+";window.close();\">"+PValue+"</a>"+vHLstr2+"</font></td>";
      return PCellStr;
}

function Calendar(pDate,pCtrl)
{
      //Properties
      this.Date=pDate.getDate();//selected date
      this.Month=pDate.getMonth();//selected month number
      this.Year=pDate.getFullYear();//selected year in 4 digits
      this.Hours=pDate.getHours();      
      
      if (pDate.getMinutes()<10)
            this.Minutes="0"+pDate.getMinutes();
      else
            this.Minutes=pDate.getMinutes();
      
      if (pDate.getSeconds()<10)
            this.Seconds="0"+pDate.getSeconds();
      else            
            this.Seconds=pDate.getSeconds();
            
      this.MyWindow=winCal;
      this.Ctrl=pCtrl;
      this.Format="ddMMyyyy";
      this.Separator=DateSeparator;
      this.ShowTime=false;
      if (pDate.getHours()<12)
            this.AMorPM="AM";
      else
            this.AMorPM="PM";      
}

function GetMonthIndex(shortMonthName)
{
      for (i=0;i<12;i++)
      {
            if (MonthName[i].substring(0,3).toUpperCase()==shortMonthName.toUpperCase())
            {      return i;}
      }
}
Calendar.prototype.GetMonthIndex=GetMonthIndex;

function IncYear()
{      Cal.Year++;}
Calendar.prototype.IncYear=IncYear;

function DecYear()
{      Cal.Year--;}
Calendar.prototype.DecYear=DecYear;
      
function SwitchMth(intMth)
{      Cal.Month=intMth;}
Calendar.prototype.SwitchMth=SwitchMth;

function SetHour(intHour)
{      
      var MaxHour;
      var MinHour;
      if (TimeMode==24)
      {      MaxHour=23;MinHour=0}
      else if (TimeMode==12)
      {      MaxHour=12;MinHour=1}
      else
            alert("TimeMode can only be 12 or 24");            
      var HourExp=new RegExp("^\\d\\d$");
      if (HourExp.test(intHour) && (parseInt(intHour,10)<=MaxHour) && (parseInt(intHour,10)>=MinHour))
      {      
            if ((TimeMode==12) && (Cal.AMorPM=="PM"))
            {
                  if (parseInt(intHour,10)==12)
                        Cal.Hours=12;
                  else      
                        Cal.Hours=parseInt(intHour,10)+12;
            }      
            else if ((TimeMode==12) && (Cal.AMorPM=="AM"))
            {
                  if (intHour==12)
                        intHour-=12;
                  Cal.Hours=parseInt(intHour,10);
            }
            else if (TimeMode==24)
                  Cal.Hours=parseInt(intHour,10);      
      }
}
Calendar.prototype.SetHour=SetHour;

function SetMinute(intMin)
{
      var MinExp=new RegExp("^\\d\\d$");
      if (MinExp.test(intMin) && (intMin<60))
            Cal.Minutes=intMin;
}
Calendar.prototype.SetMinute=SetMinute;

function SetSecond(intSec)
{      
      var SecExp=new RegExp("^\\d\\d$");
      if (SecExp.test(intSec) && (intSec<60))
            Cal.Seconds=intSec;
}
Calendar.prototype.SetSecond=SetSecond;

function SetAmPm(pvalue)
{
      this.AMorPM=pvalue;
      if (pvalue=="PM")
      {
            this.Hours=(parseInt(this.Hours,10))+12;
            if (this.Hours==24)
                  this.Hours=12;
      }      
      else if (pvalue=="AM")
            this.Hours-=12;      
}
Calendar.prototype.SetAmPm=SetAmPm;

function getShowHour()
{
      var finalHour;
    if (TimeMode==12)
    {
          if (parseInt(this.Hours,10)==0)
            {
                  this.AMorPM="AM";
                  finalHour=parseInt(this.Hours,10)+12;      
            }
            else if (parseInt(this.Hours,10)==12)
            {
                  this.AMorPM="PM";
                  finalHour=12;
            }            
            else if (this.Hours>12)
            {
                  this.AMorPM="PM";
                  if ((this.Hours-12)<10)
                        finalHour="0"+((parseInt(this.Hours,10))-12);
                  else
                        finalHour=parseInt(this.Hours,10)-12;      
            }
            else
            {
                  this.AMorPM="AM";
                  if (this.Hours<10)
                        finalHour="0"+parseInt(this.Hours,10);
                  else
                        finalHour=this.Hours;      
            }
      }
      else if (TimeMode==24)
      {
            if (this.Hours<10)
                  finalHour="0"+parseInt(this.Hours,10);
            else      
                  finalHour=this.Hours;
      }      
      return finalHour;      
}                        
Calendar.prototype.getShowHour=getShowHour;            

function GetMonthName(IsLong)
{
      var Month=MonthName[this.Month];
      if (IsLong)
            return Month;
      else
            return Month.substr(0,3);
}
Calendar.prototype.GetMonthName=GetMonthName;

function GetMonDays()//Get number of days in a month
{
      var DaysInMonth=[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
      if (this.IsLeapYear())
      {
            DaysInMonth[1]=29;
      }      
      return DaysInMonth[this.Month];      
}
Calendar.prototype.GetMonDays=GetMonDays;

function IsLeapYear()
{
      if ((this.Year%4)==0)
      {
            if ((this.Year%100==0) && (this.Year%400)!=0)
            {
                  return false;
            }
            else
            {
                  return true;
            }
      }
      else
      {
            return false;
      }
}
Calendar.prototype.IsLeapYear=IsLeapYear;

function FormatDate(pDate)
{
      if (this.Format.toUpperCase()=="DDMMYYYY")
            return (pDate+DateSeparator+(this.Month+1)+DateSeparator+this.Year);
      else if (this.Format.toUpperCase()=="DDMMMYYYY")
            return (pDate+DateSeparator+this.GetMonthName(false)+DateSeparator+this.Year);
      else if (this.Format.toUpperCase()=="MMDDYYYY")
            return ((this.Month+1)+DateSeparator+pDate+DateSeparator+this.Year);
      else if (this.Format.toUpperCase()=="MMMDDYYYY")
            return (this.GetMonthName(false)+DateSeparator+pDate+DateSeparator+this.Year);                  
}
Calendar.prototype.FormatDate=FormatDate;      
0
 
Jai STech ArchCommented:
in your javascript change this
docCal.writeln("</head><body background='../JS_Calendar_1/"+ThemeBg+"' link="+FontColor+" vlink="+FontColor+"><form name='Calendar'>");

to
docCal.writeln("</head><body onUnload="javascript:window.opener.forms[0].submit();"  background='../JS_Calendar_1/"+ThemeBg+"' link="+FontColor+" vlink="+FontColor+"><form name='Calendar'>");
0
 
CaridAuthor Commented:
Hi
I tried changing the docCal.writin function but now the calendar doesn't popup anymore.
I can't see why this should happen. Any ideas
 
0
 
Jai STech ArchCommented:
oops...sorry ...typo again
we should not use double quotes"" ...try this

docCal.writeln("</head><body onUnload='javascript:window.opener.forms[0].submit();'  background='../JS_Calendar_1/"+ThemeBg+"' link="+FontColor+" vlink="+FontColor+"><form name='Calendar'>");

0
 
CaridAuthor Commented:
The calendar is poping up again but the form is still not submitting.
0
 
CaridAuthor Commented:
Yipee!!! this one worked. My form is submitting

Thanks for all the trouble you went to.  

You certainly deserve the 500 pts

Thanks again

cheers Cari
0
 
Jai STech ArchCommented:
thnx for the grade !!!! iam reaching to top 1000 !!!! in 50 days !!!!! yeeeehaaaaa...
0
 
HumanScaleDevCommented:
Hello,

Im having the same problem but my JS code is different. Can anyone help?
<!--
Title: Tigra Calendar
URL: http://www.softcomplex.com/products/tigra_calendar/
Version: 3.2
Date: 10/14/2002 (mm/dd/yyyy)
Note: Permission given to use this script in ANY kind of applications if
   header lines are left unchanged.
Note: Script consists of two files: calendar?.js and calendar.html
-->
<html>
<head>
<title>Select Date, Please.</title>
<style>
      td {font-family: Tahoma, Verdana, sans-serif; font-size: 12px;}
</style>
<script language="JavaScript">

// months as they appear in the calendar's title
var ARR_MONTHS = ["January", "February", "March", "April", "May", "June",
            "July", "August", "September", "October", "November", "December"];
// week day titles as they appear on the calendar
var ARR_WEEKDAYS = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
// day week starts from (normally 0-Su or 1-Mo)
var NUM_WEEKSTART = 1;
// path to the directory where calendar images are stored. trailing slash req.
var STR_ICONPATH = '/calendar/tigra_calendar/img/';

var re_url = new RegExp('datetime=(\\-?\\d+)');
var dt_current = (re_url.exec(String(window.location))
      ? new Date(new Number(RegExp.$1)) : new Date());
var re_id = new RegExp('id=(\\d+)');
var num_id = (re_id.exec(String(window.location))
      ? new Number(RegExp.$1) : 0);
var obj_caller = (window.opener ? window.opener.calendars[num_id] : null);

if (obj_caller && obj_caller.year_scroll) {
      // get same date in the previous year
      var dt_prev_year = new Date(dt_current);
      dt_prev_year.setFullYear(dt_prev_year.getFullYear() - 1);
      if (dt_prev_year.getDate() != dt_current.getDate())
            dt_prev_year.setDate(0);
      
      // get same date in the next year
      var dt_next_year = new Date(dt_current);
      dt_next_year.setFullYear(dt_next_year.getFullYear() + 1);
      if (dt_next_year.getDate() != dt_current.getDate())
            dt_next_year.setDate(0);
}

// get same date in the previous month
var dt_prev_month = new Date(dt_current);
dt_prev_month.setMonth(dt_prev_month.getMonth() - 1);
if (dt_prev_month.getDate() != dt_current.getDate())
      dt_prev_month.setDate(0);

// get same date in the next month
var dt_next_month = new Date(dt_current);
dt_next_month.setMonth(dt_next_month.getMonth() + 1);
if (dt_next_month.getDate() != dt_current.getDate())
      dt_next_month.setDate(0);

// get first day to display in the grid for current month
var dt_firstday = new Date(dt_current);
dt_firstday.setDate(1);
dt_firstday.setDate(1 - (7 + dt_firstday.getDay() - NUM_WEEKSTART) % 7);

// function passing selected date to calling window
function set_datetime(n_datetime, b_close) {
      if (!obj_caller) return;

      var dt_datetime = obj_caller.prs_time(
            (document.cal ? document.cal.time.value : ''),
            new Date(n_datetime)
      );

      if (!dt_datetime) return;
      if (b_close) {
            window.close();
            obj_caller.target.value = (document.cal
                  ? obj_caller.gen_tsmp(dt_datetime)
                  : obj_caller.gen_date(dt_datetime)
            );
      }
      else obj_caller.popup(dt_datetime.valueOf());
}

</script>
</head>
<body bgcolor="#FFFFFF" marginheight="5" marginwidth="5" topmargin="5" leftmargin="5" rightmargin="5">
<table class="clsOTable" cellspacing="0" border="0" width="100%">
<tr><td bgcolor="#4682B4">
<table cellspacing="1" cellpadding="3" border="0" width="100%">
<tr><td colspan="7"><table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<script language="JavaScript">
document.write(
'<td>'+(obj_caller&&obj_caller.year_scroll?'<a href="javascript:set_datetime('+dt_prev_year.valueOf()+')"><img src="'+STR_ICONPATH+'prev_year.gif" width="16" height="16" border="0" alt="previous year"></a>&nbsp;':'')+'<a href="javascript:set_datetime('+dt_prev_month.valueOf()+')"><img src="'+STR_ICONPATH+'prev.gif" width="16" height="16" border="0" alt="previous month"></a></td>'+
'<td align="center" width="100%"><font color="#ffffff">'+ARR_MONTHS[dt_current.getMonth()]+' '+dt_current.getFullYear() + '</font></td>'+
'<td><a href="javascript:set_datetime('+dt_next_month.valueOf()+')"><img src="'+STR_ICONPATH+'next.gif" width="16" height="16" border="0" alt="next month"></a>'+(obj_caller && obj_caller.year_scroll?'&nbsp;<a href="javascript:set_datetime('+dt_next_year.valueOf()+')"><img src="'+STR_ICONPATH+'next_year.gif" width="16" height="16" border="0" alt="next year"></a>':'')+'</td>'
);
</script>
</tr>
</table></td></tr>
<tr>
<script language="JavaScript">

// print weekdays titles
for (var n=0; n<7; n++)
      document.write('<td bgcolor="#87cefa" align="center"><font color="#ffffff">'+ARR_WEEKDAYS[(NUM_WEEKSTART+n)%7]+'</font></td>');
document.write('</tr>');

// print calendar table
var dt_current_day = new Date(dt_firstday);
while (dt_current_day.getMonth() == dt_current.getMonth() ||
      dt_current_day.getMonth() == dt_firstday.getMonth()) {
      // print row heder
      document.write('<tr>');
      for (var n_current_wday=0; n_current_wday<7; n_current_wday++) {
            if (dt_current_day.getDate() == dt_current.getDate() &&
                  dt_current_day.getMonth() == dt_current.getMonth())
                  // print current date
                  document.write('<td bgcolor="#ffb6c1" align="center" width="14%">');
            else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6)
                  // weekend days
                  document.write('<td bgcolor="#dbeaf5" align="center" width="14%">');
            else
                  // print working days of current month
                  document.write('<td bgcolor="#ffffff" align="center" width="14%">');

            document.write('<a href="javascript:set_datetime('+dt_current_day.valueOf() +', true);">');

            if (dt_current_day.getMonth() == this.dt_current.getMonth())
                  // print days of current month
                  document.write('<font color="#000000">');
            else
                  // print days of other months
                  document.write('<font color="#606060">');
                  
            document.write(dt_current_day.getDate()+'</font></a></td>');
            dt_current_day.setDate(dt_current_day.getDate()+1);
      }
      // print row footer
      document.write('</tr>');
}
if (obj_caller && obj_caller.time_comp)
      document.write('<form onsubmit="javascript:set_datetime('+dt_current.valueOf()+', true)" name="cal"><tr><td colspan="7" bgcolor="#87CEFA"><font color="White" face="tahoma, verdana" size="2">Time: <input type="text" name="time" value="'+obj_caller.gen_time(this.dt_current)+'" size="8" maxlength="8"></font></td></tr></form>');
</script>
</table></tr></td>
</table>
</body>
</html>

Thank you!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.