function daysinmonth(lnMonth,lnYear) {
var dt1, cmn1, cmn2, dtt, lflag, dycnt, lmn
lmn = lnMonth-1
dt1 = new Date(lnYear,lmn,1)
cmn1 = dt1.getMonth()
dtt=dt1.getTime()+2332800000
lflag = true
dycnt=28
while (lflag) {
   dtt = dtt + 86400000
   dt1.setTime(dtt)
   cmn2 = dt1.getMonth()
   if (cmn1!=cmn2) {
      lflag = false }
   else {dycnt = dycnt + 1}}
if (dycnt > 31) {dycnt = 31}
return dycnt
}

function setdays(sobjname, datemode){
var dobj = eval(sobjname + "d")
var mobj = eval(sobjname + "m")
var yobj = eval(sobjname + "y")
var hobj = eval(sobjname)
var monthdays = daysinmonth(mobj.options[mobj.selectedIndex].value,yobj.options[yobj.selectedIndex].value)
var selectdays = dobj.length - 1;
var curdy = dobj.options[dobj.selectedIndex].value
if (curdy.length==1) {curdy = "0"+curdy}
var curmn = mobj.options[mobj.selectedIndex].value
if (curmn.length==1) {curmn = "0"+curmn}
var curyr = yobj.options[yobj.selectedIndex].value
if (selectdays > monthdays) {
   for (var dlp=selectdays + 1; dlp > monthdays + 1; dlp--) {
       dobj.options[dlp-1] = null }}
else if (monthdays > selectdays) {
   for (var dlp=selectdays; dlp < monthdays; dlp++) {
       dobj.options[dlp + 1] = new Option(dlp+1,dlp+1) }}       
if (curdy > monthdays) {
   dobj.options[monthdays-1].selected = true
   curdy = monthdays }
if (datemode==1) {
   var curdate = curmn+"/"+curdy+"/"+curyr }
else if (datemode==2) {
   var curdate = curdy+"/"+curmn+"/"+curyr }
else if (datemode==3) {
   var curdate = curyr+curmn+curdy }
else if (datemode==4) {
   var cdate = new Date(curyr,curmn-1,curdy)
   var curdate = cdate.toGMTString() }
hobj.value = curdate
}
