function buildCal(m, y, d, cM, cH, cDW, cD, brdr){
var mn=['January','February','March','April','May','June','July','August','September','October','November','December'];
var dim=[31,0,31,30,31,30,31,31,30,31,30,31];

var oD = new Date(y, m-1, 1); //DD replaced line to fix date bug when current day is 31st
//var oD = new Date(y, m-1, d); //DD replaced line to fix date bug when current day is 31st
oD.od=oD.getDay()+1; //DD replaced line to fix date bug when current day is 31st

var todaydate=new Date() //DD added
//var scanfortoday=(y==todaydate.getFullYear() && m==todaydate.getMonth()+1)? todaydate.getDate() : 0 //DD added

dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;

var t='<div class="'+cM+'"><table width="175" height="1" border=1 cellspacing=0 cellpadding=1 bordercolor="#DFDFDF" style="border-collapse: collapse">';
t+='<tr>';
t+='<td align="center" height="1">';

t+='<table width="100%" height="1" border=0 cellspacing=0 cellpadding=0 bordercolor="#E6E6E6" bgcolor="#F8F8F8" style="border-collapse: collapse">';
t+='<tr>';
t+='<td class="smtealfont" bgcolor="#F0F0F0" valign="top" align="center" height="1"><b>'+mn[m-1]+' - '+y+'</b></td>';
t+='</tr>';
t+='</table>';


t+='<table class="smtealfont" bgcolor="#ffffff" cellpadding="0" border="'+brdr+'" cellspacing="0">';
t+='<tr>';
t+='<td><img border="0" src="images/clear.gif" width="25" height="1" /></td>';
t+='<td><img border="0" src="images/clear.gif" width="25" height="1" /></td>';
t+='<td><img border="0" src="images/clear.gif" width="25" height="1" /></td>';
t+='<td><img border="0" src="images/clear.gif" width="25" height="1" /></td>';
t+='<td><img border="0" src="images/clear.gif" width="25" height="1" /></td>';
t+='<td><img border="0" src="images/clear.gif" width="25" height="1" /></td>';
t+='<td><img border="0" src="images/clear.gif" width="25" height="1" /></td>';
t+='<td><img border="0" src="images/clear.gif" width="1" height="1" /></td>';
t+='</tr>';
	
t+='<tr align="center">';
for(s=0;s<7;s++)t+='<td width=25 background=images/calendar/blank.gif class=tealfont>'+"SMTWTFS".substr(s,1)+'</td>';
t+='<td><img border="0" src="images/clear.gif" width="1" height="25" /></td>';
t+='</tr><tr align="center">';
for(i=1;i<=42;i++){
var x=((i-oD.od>=0)&&(i-oD.od<dim[m-1]))? i-oD.od+1 : '&nbsp;';
if (x==d) //DD added
x='<span id="today">'+x+'</span>'
t+='<td width="25" background="images/calendar/blank.gif" class="'+cD+'">'+x+'</td>';
if(((i)%7==0)&&(i<36))t+='<td width=1 height=25><img border=0 src=images/clear.gif width=1 height=25 /></td></tr><tr align="center">';
}
return t+='<td width=1 height=25><img border=0 src=images/clear.gif width=1 height=25 /></td></tr></table></td></tr></table></div>';
}



// note: 0=arr; 1=dep for arg_arrivalOrDeparture
function refreshWeekdayTag(arg_arrivalOrDeparture)
{
    if (!arg_arrivalOrDeparture) {
        var whichDatePulldowns="arrival"
        var outputText=""
        var labelDivId="arriving"
    } else {
        var whichDatePulldowns="departure"
        var outputText=""
        var labelDivId="leaving"
    }
    var els = document.forms.datesForm.elements
    var chosenYear = parseInt(els[whichDatePulldowns+"Year"].options[els[whichDatePulldowns+"Year"].selectedIndex].value)
    var chosenMonth= parseInt(els[whichDatePulldowns+"Month"].options[els[whichDatePulldowns+"Month"].selectedIndex].value) - 1
    var chosenDate = parseInt(els[whichDatePulldowns+"Date"].options[els[whichDatePulldowns+"Date"].selectedIndex].value)
    var thisDate = new Date(chosenYear, chosenMonth, chosenDate, 0, 0, 0, 0)
    rewriteText(labelDivId, outputText+' <span><b>'+weekdays[thisDate.getDay()]+'</b></span>')
    
    
    var todaydate = new Date(chosenYear, chosenMonth, chosenDate, 0, 0, 0, 0)
    var curday = todaydate.getDate() 
	var curmonth = todaydate.getMonth()+1 //get current month (1-12)
	var curyear = todaydate.getFullYear() //get current year
    
    rewriteText('cal',buildCal(curmonth ,curyear, curday, "main", "month", "daysofweek", "days", 0))
}

function rewriteText(divId, text) {
    if (document.layers) {
        var obj = document.layers[divId].document;
        obj.open();
        obj.write(text);
        obj.close();
    }
    else if (document.all) {
        document.all[divId].innerHTML = text;
    }
    else if (document.documentElement) {
        document.getElementById(divId).innerHTML = text;
    }
}

//change departure date values from arrival dropdowns
function updateDepartureDates()
{
  arrMonth = document.forms.datesForm.elements["arrivalMonth"]
  arrDay   = document.forms.datesForm.elements["arrivalDate"]
  arrYear  = document.forms.datesForm.elements["arrivalYear"]
  newArrDate = new Date(arrYear.options[arrYear.selectedIndex].value, arrMonth.options[arrMonth.selectedIndex].value-1, arrDay.options[arrDay.selectedIndex].value, 0, 0, 0)

  depMonth = document.forms.datesForm.elements["departureMonth"]
  depDay   = document.forms.datesForm.elements["departureDate"]
  depYear  = document.forms.datesForm.elements["departureYear"]

  diffDays = 1

  newDepDate = new Date(newArrDate.getFullYear(), newArrDate.getMonth(), newArrDate.getDate()+diffDays, 0, 0, 0)

  for (var i=0; i < depMonth.options.length; i++) {
    if (depMonth.options[i].value == newDepDate.getMonth()+1) {
      depMonth.selectedIndex = i
      break
    }
  }
  for (i=0; i < depDay.options.length; i++) {
    if (depDay.options[i].value == newDepDate.getDate()) {
      depDay.selectedIndex = i
      break
    }
  }
  yearFound = 0
  for (i=0; i < depYear.options.length; i++) {
    if (depYear.options[i].value == newDepDate.getFullYear()) {
      depYear.selectedIndex = i
      yearFound = 1
      break
    }
  }
  if (!yearFound) depYear.selectedIndex = depYear.options.length-1

  refreshWeekdayTag(1);
}


