var dcm=document;
function resize_iframe() {
 var t=dcm.getElementsByTagName("TABLE");
 if (t[0].offsetWidth == 0) {
  var ifs=parent.window.frames; // need frame, not DOM, to get document
  for (var x=0;x<ifs.length;x++) {
   try { // use try{} because of domain security on other frames
    if (ifs[x].document.getElementById('tafmaster_formbox')) {
     // now we need the DOM obj, not the frame obj
     var f=parent.window.document.getElementById(ifs[x].name).style;
     f.width='1px';
     f.height='1px';
     break;
    }
   } catch(e) {}
  }
 }
 if (t[0].offsetWidth > 300 && t[0].offsetHeight > 400) {
  // only try to run _w(), since it won't be defined in opera
  try {_w();} catch (e) {};
 } else {
  setTimeout("resize_iframe();",250);
 }
}


var monthNames = new Array('January','February','March','April','May','June',
'July','August','September','October','November','December');

var monthdays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var today = new Date();
var month = today.getMonth();
var cm = month + 1;
var day = today.getDay();
var dayN = today.getDate();
var cd = dayN;
var days = monthdays[month];
var currentyear = today.getFullYear();
var cy = currentyear;

if (month == 1) {
  var year = today.getYear();
  if (year%4 ==0 && year%100 == 0  && year%400 != 0) days = 29;
}

var dm = cm;
var dd = cd;
var dy = cy;

function calDays( i ) {
  if (!i) { i = 0 };
  dm += i;
  if (dm == 13) {
    dm = 1;
    dy += 1;
  } else if (dm == 0) {
    dm = 12;
    dy -= 1;
  }
  var d = new Date( dy, dm - 1, dd );
  day = d.getDay();
  days = monthdays[ dm - 1 ];
  var mn = monthNames[ dm - 1 ];

  // Create a date string.
  var ds = dy +
    (dm < 10 ? '0' + dm : '' + dm) +
    (dd < 10 ? '0' + dd : '' + dd);
  var cs = cy +
    (cm < 10 ? '0' + cm : '' + cm) +
    (cd < 10 ? '0' + cd : '' + cd);

  // Convert the date string to a number for comparison.
  ds -= 0;
  cs -= 0;

  var html = '<div id="tafcal">' +
    '<table border="0" id="cal" cellpadding="0" cellspacing="0" align="center">' +
    '  <tr  align="center" id="calheader">' +
    '    <td><a href="#" onclick="reset_cal(); return false;" id="cal_reset" class="calbutton">reset</a></td>' +
    '    <td>';

  if (ds > cs) {
    html += '<a href="#" onclick="calDays( -1 );return false" id="cal_prev" class="calbutton">&laquo;</a>';
  } else {
    html += '&nbsp;';
  }

  html += '</td>' +
    '    <td colspan="3">' +
    mn + '&nbsp;' + dy +
    '    </td>' +
    '    <td>';

  if (ds < cs + 10000) {
    html += '<a href="#" onclick="calDays( 1 );return false;" id="cal_next" class="calbutton">&raquo;</a>';
  } else {
    html += '&nbsp;';
  }

  html += '</td>' +
    '    <td><a href="#" onclick="hide_cal();return false;" id="cal_close" class="calbutton">close</a></td>' +
    '  </tr>' +
    '  <tr align="center" id="caldaylabel">' +
    '    <td>S</td>' +
    '    <td>M</td>' +
    '    <td>T</td>' +
    '    <td>W</td>' +
    '    <td>T</td>' +
    '    <td>F</td>' +
    '    <td>S</td>' +
    '  </tr>';

  var jumped = 0;
  var inserted = 1;
  var start = day - dayN%7 + 1;
  if (start < 0) {
    start += 7
  } else if (start >=7) {
    start -= 7;
  }
  var weeks = parseInt((start + days)/7);
  if ((start + days)%7 != 0) {
    weeks++
  }

  for (var i=weeks; i>0; i--) {
    html += '<tr align="center" class="caldays">';
    for (var j=7; j>0; j--) {
      if (jumped<start || inserted>days) {
        html += '<td class="day_disabled">&nbsp;';
        jumped++;
      } else {
        if ((dm == cm && dy == cy && inserted >= cd) ||
            (ds > cs && ds < cs + 10000) ||
            (dm == cm && dy == cy + 1 && inserted <= cd)) {
          html += '<td><a href="#" onclick="' +
            'update_send_date(' + dm + ', ' + inserted + ', ' + dy + ' );' +
            'hide_cal();return false;"' +
            'style="color: #000;">';
        } else {
          html += '<td class="day_disabled">';
        }
        if (inserted == dayN && dm == cm && dy == cy) {
          html += '<span id="currentday">' + inserted + '</span>'
        } else {
          html += inserted;
        }
        if ((dm == cm && dy == cy && inserted >= cd) ||
            (ds > cs && ds < cs + 10000) ||
            (dm == cm && dy == cy + 1 && inserted <= cd)) {
          html += '</a>';
        }
        inserted++;
      }
      html += '</td>';
    }
    html += '</tr>';
  }

  html += '  <tr align="center" id="calfooter">' +
    '    <td colspan="7"><em>choose your month and day</em></td>' +
    '  </tr>' +
    '</table>' +
    '</div>';

  var o = dcm.getElementById( 'calDsp' );
  o.innerHTML = html;
  o.style.visibility = 'visible';
  o.style.display    = 'block';

  resize_iframe();

}

function reset_cal() {
  dm = cm;
  dd = cd;
  dy = cy;
  calDays();
}

function update_send_date( m, d, y ) {
  var dt = dcm.getElementById("tafmasterform");
  dt.send_month.value = m;
  dt.send_day.value   = d;
  dt.send_year.value  = y;
  var dto = new Date(y,m-1,d);
  dcm.tafmaster.time_zone_offset.value = -1*dto.getTimezoneOffset()/60;
  display_send_date();
}

function display_send_date() {
  var o  = dcm.getElementById('send_date');
  var dt = dcm.getElementById("tafmasterform");
  if (dt.send_month.value == cm &&
      dt.send_day.value   == cd &&
      dt.send_year.value  == cy) {
    o.innerHTML = 'Today';
  } else {
     o.innerHTML = dt.send_month.value +
       '/' + dt.send_day.value +
       '/' + dt.send_year.value;
  }
}

function hide_cal() {
  var o  = dcm.getElementById( 'calDsp' );
  o.style.display    = 'none';
  resize_iframe();
}

function set_user_time() {

  dcm.tafmaster.time_zone_offset.value = -1*today.getTimezoneOffset()/60;

  dcm.tafmaster.send_year_default.value  = cy;
  dcm.tafmaster.send_month_default.value = cm;
  dcm.tafmaster.send_day_default.value   = cd;

  var u_month = (cm<10) ? '0' + cm : cm;
  var u_day   = (cd<10) ? '0' + cd : cd;

  var u_hour = today.getHours();
  if(u_hour<10){u_hour='0'+u_hour}

}
