//*****************************************************************************
//
// This script is copyright (c) 2000 by Max Software Consultants, Inc.
// All rights reserved.
//
//*****************************************************************************

var max_cal_year = 0;
var max_cal_month = 0;
var max_cal_prev_day_cell = null;
var max_cal_edit = false;
var max_cal_popup_ie = false;

function maxCalEvent(y,m,d,label,evtext,extext,link)
{
  this.y = y;
  this.m = m;
  this.d = d;
  this.label = label;
  this.evtext = evtext;
  this.extext = extext;
  this.link = link;
}

function maxCalOutputOption(v,t,sv)
{
  document.write('<option value=' + v);
  if (v == sv)
    document.write(' selected');
  document.writeln('>' + t + '</option>');
}

function maxCalGetDaysInMonth()
{
  var monthArray=new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
  var daysInMonth=monthArray[max_cal_month - 1];
  if (max_cal_month == 2) {
    if ((max_cal_year / 4) != parseInt(max_cal_year / 4))
      daysInMonth = 28;
    else
      daysInMonth = 29;
  }
  return daysInMonth;
}

function maxCalBuild()
{
  var aMonth = new Array();
  aMonth[0] = new Array(7);
  aMonth[1] = new Array(7);
  aMonth[2] = new Array(7);
  aMonth[3] = new Array(7);
  aMonth[4] = new Array(7);
  aMonth[5] = new Array(7);
  aMonth[6] = new Array(7);
  var dCalDate = new Date(max_cal_year,max_cal_month - 1,1);
  var iDayOfFirst = dCalDate.getDay();
  var iDaysInMonth = maxCalGetDaysInMonth();
  var iVarDate = 1;
  var i, d, w;
  aMonth[0][0] = "Sun";
  aMonth[0][1] = "Mon";
  aMonth[0][2] = "Tue";
  aMonth[0][3] = "Wed";
  aMonth[0][4] = "Thu";
  aMonth[0][5] = "Fri";
  aMonth[0][6] = "Sat";
  for (d = 0; d < iDayOfFirst; d++) {
    aMonth[1][d] = 0;
  }
  for (d = iDayOfFirst; d < 7; d++) {
    aMonth[1][d] = iVarDate;
    iVarDate++;
  }
  for (w = 2; w < 7; w++) {
    for (d = 0; d < 7; d++) {
      if (iVarDate <= iDaysInMonth) {
        aMonth[w][d] = iVarDate;
        iVarDate++;
      }
      else
        aMonth[w][d] = 0;
    }
  }
  return aMonth;
}

function maxCalLabel(cal_day)
{
  var s = "";
  var myList = maxCalBuildEventList();
  var i;

  for (i = 0; i < myList.length; i++) {
    if (myList[i].y == max_cal_year && myList[i].m == max_cal_month && myList[i].d == cal_day)
      return myList[i].label;
  }

  return s;
}

function maxCalEventText(cal_day)
{
  var s = "";
  var myList = maxCalBuildEventList();
  var i;

  for (i = 0; i < myList.length; i++) {
    if (myList[i].y == max_cal_year && myList[i].m == max_cal_month && myList[i].d == cal_day)
      return myList[i].evtext;
  }

  return s;
}

function maxCalExpandedText(cal_day)
{
  var s = "";
  var myList = maxCalBuildEventList();
  var i;

  for (i = 0; i < myList.length; i++) {
    if (myList[i].y == max_cal_year && myList[i].m == max_cal_month && myList[i].d == cal_day) {
      s = myList[i].extext;
      break;
    }
  }

  return s;
}

function maxCalEventURL(cal_day)
{
  var s = "";
  var myList = maxCalBuildEventList();
  var i;

  for (i = 0; i < myList.length; i++) {
    if (myList[i].y == max_cal_year && myList[i].m == max_cal_month && myList[i].d == cal_day)
      return myList[i].link;
  }

  return s;
}

function maxCalCallEventEdit(cal_day)
{
  maxCalEventEdit(cal_day,
                  maxCalLabel(cal_day),
                  maxCalEventText(cal_day),
                  maxCalExpandedText(cal_day),
                  maxCalEventURL(cal_day));
}

function maxCalPopupExpanded(cal_day)
{
  if (cal_day > 0) {
    if (max_cal_edit)
      maxCalCallEventEdit(cal_day);
    else {
      var label = maxCalLabel(cal_day);
      var evtext = maxCalEventText(cal_day);
      var extext = maxCalExpandedText(cal_day);
      if (label.length > 0 || evtext.length > 0 || extext.length > 0) {
        var i = document.forms.maxcalfrm.maxcalmn.selectedIndex;
        var s = document.forms.maxcalfrm.maxcalmn.options[i].text;
        s += ' ' + cal_day + ', ' + max_cal_year;
        if (label.length > 0)
          s += '\n' + label;
        if (evtext.length > 0)
          s += '\n\n' + evtext;
        if (extext.length > 0)
          s += '\n\n' + extext;
        alert(s);
      }
      maxAdRefresh();
    }
  }
}

function maxCalDayHTML(cal_day,day_cell_width,day_cell_height)
{
  var s;
  var label;
  var evtext;
  var extext;
  var make_href;

  label = maxCalLabel(cal_day);
  evtext = maxCalEventText(cal_day);
  extext = maxCalExpandedText(cal_day);
  make_href = (max_cal_edit || label.length > 0 || evtext.length > 0 || extext.length > 0) && (maxIsWebTV() || maxIsNetscape());

  s = '';

  s += '<div id=maxCalIdLabel class=maxCalClsLabel>';
  if (make_href)
    s += '<a class=maxCalClsLabel href="javascript:maxCalPopupExpanded(' + cal_day + ')">';
  s += cal_day;
  if (label.length > 0) {
    s += '<br>';
    s += label;
  }
  if (make_href)
    s += '</a>';
  s += '</div>';

  s += '<div id=maxCalIdEvent class=maxCalClsEvent>';
  if (make_href) {
    s += '<a class=maxCalClsEvent href="javascript:maxCalPopupExpanded(' + cal_day + ')">';
    if (label.length == 0 && evtext.length == 0 && maxIsNetscape()) {
      var iw = day_cell_width - 8;
      var ih = day_cell_height - 12;
      s += '<center><img border=0 src=pixel.gif width=' + iw + ' height=' + ih + '></center>';
    }
  }
  if (evtext.length > 0)
    s += evtext;
  else
    s += '<br>';
  if (make_href)
    s += '</a>';
  s += '</div>';

  var u = maxCalEventURL(cal_day);
  if (u.length > 0) {
    if (max_cal_edit) {
      if (maxIsExplorer())
        s += '<span class=maxCalClsLink>Click Here</span>';
      else
        s += '<a class=maxCalClsLink href="javascript:maxCalPopupExpanded(' + cal_day + ')">Click Here</a>';
    }
    else {
      s += '<a class=maxCalClsLink href="';
      s += u;
      s += '" target="_blank">Click Here</a>';
    }
  }

  return s;
}

function maxCalResetPrevDay()
{
  if (max_cal_prev_day_cell != null) {
    max_cal_prev_day_cell.className = 'maxCalClsDay';
    max_cal_prev_day_cell.children.maxCalIdEvent.className = 'maxCalClsEvent';
    var s = maxCalEventText(max_cal_prev_day_cell.value);
    var t = max_cal_prev_day_cell.children.maxCalIdEvent.innerText;
    if (s.length > 0 || t.length > 0)
      max_cal_prev_day_cell.children.maxCalIdEvent.innerText = s;
    max_cal_prev_day_cell = null;
  }
}

function maxCalSelectDay(day_cell)
{
  var cal_day;

  if (window.event.srcElement.className != 'maxCalClsLink') {
    cal_day = day_cell.value;
    if (cal_day > 0) {
      if (max_cal_prev_day_cell == day_cell) {
        maxCalResetPrevDay();
        maxAdRefresh();
      }
      else {
        if (max_cal_edit)
          maxCalCallEventEdit(cal_day);
        else if (max_cal_popup_ie)
          maxCalPopupExpanded(cal_day);
        else {
          maxCalResetPrevDay();
          var s = maxCalExpandedText(cal_day);
          day_cell.className = 'maxCalClsDayHighlight';
          day_cell.children.maxCalIdEvent.className = 'maxCalClsExpand';
          if (s.length > 0) {
            if (day_cell.children.maxCalIdEvent.innerText.length > 0)
              day_cell.children.maxCalIdEvent.innerText += '\n\n' + s;
            else
              day_cell.children.maxCalIdEvent.innerText = s;
          }
          max_cal_prev_day_cell = day_cell;
          maxAdRefresh();
        }
      }
    }
  }
}

function maxCalMouseOver(day_cell)
{
  if (day_cell.value > 0)
    day_cell.children.maxCalIdLabel.className = 'maxCalClsLabelHighlight';
}

function maxCalMouseOut(day_cell)
{
  if (day_cell.value > 0)
    day_cell.children.maxCalIdLabel.className = 'maxCalClsLabel';
}

function maxCalDrawDays(day_cell_width,day_cell_height)
{
  var myMonth;
  myMonth = maxCalBuild();
  document.writeln('<table id=maxcaldays border=1>');
  document.writeln('<tr>');
  document.writeln('<td class=maxCalClsDayOfWeek>' + myMonth[0][0] + '</td>');
  document.writeln('<td class=maxCalClsDayOfWeek>' + myMonth[0][1] + '</td>');
  document.writeln('<td class=maxCalClsDayOfWeek>' + myMonth[0][2] + '</td>');
  document.writeln('<td class=maxCalClsDayOfWeek>' + myMonth[0][3] + '</td>');
  document.writeln('<td class=maxCalClsDayOfWeek>' + myMonth[0][4] + '</td>');
  document.writeln('<td class=maxCalClsDayOfWeek>' + myMonth[0][5] + '</td>');
  document.writeln('<td class=maxCalClsDayOfWeek>' + myMonth[0][6] + '</td>');
  document.writeln('</tr>');
  var w, d;
  for (w = 1; w < 7; w++) {
    document.writeln('<tr>');
    for (d = 0; d < 7; d++) {
      document.write('<td align=left valign=top ' + ' width=' + day_cell_width + ' height=' + day_cell_height);
      if (maxIsExplorer())
        document.write(' class=maxCalClsDay value=' + myMonth[w][d] + ' onClick="maxCalSelectDay(this)" onMouseOver="maxCalMouseOver(this)" onMouseOut="maxCalMouseOut(this)"');
      document.writeln('>');
      if (myMonth[w][d] > 0)
        document.writeln(maxCalDayHTML(myMonth[w][d],day_cell_width,day_cell_height));
      else 
        document.writeln('&nbsp;');
      document.writeln('</td>')
    }
    document.writeln('</tr>');
  }
  document.writeln('</table>')
}

function maxCalUpdate(days_tbl,cal_year,cal_month)
{
  var myMonth;
  var w, d;

  maxCalResetPrevDay();
  max_cal_year = cal_year;
  max_cal_month = cal_month;

  myMonth = maxCalBuild();

  for (w = 1; w < 7; w++) {
    for (d = 0; d < 7; d++) {
      days_tbl.rows(w).cells(d).value = myMonth[w][d];
      if (myMonth[w][d] > 0) {
        days_tbl.rows(w).cells(d).innerHTML = maxCalDayHTML(myMonth[w][d],0,0);
      } 
      else
        days_tbl.rows(w).cells(d).innerHTML = '&nbsp;';
    }
  }

  maxAdRefresh();
}

function maxCalDateTimeNow()
{
  var n = new Date();
  var y = n.getYear();
  var m = n.getMonth();
  var d = n.getDay();
  var day = ((n.getDate()<10) ? "0" : "")+ n.getDate();
  var h = n.getHours();
  var mn = n.getMinutes();
  var s = n.getSeconds()
  if (y < 1000) y = y + 1900;
  dow = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
  mon = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
  Da = dow[d];
  Mo = mon[m];
  var date = (Da + " " + Mo + " " + day + ", " + y);
  var t = "" + ((h >12) ? h -12 : h)
  if (t == "0") t = 12;
  t += ((mn < 10) ? ":0" : ":") + mn;
  t += ((s < 10) ? ":0" : ":") + s;
  t += (h >= 12) ? "pm" : "am"
  return (date + "  " + t);
}

function maxCalShowTime()
{
  if (maxIsExplorer())
    document.all.maxcalclk.innerText = maxCalDateTimeNow();
  else
    document.forms.maxcalfrm.maxcalclk.value = maxCalDateTimeNow();
  
  setTimeout("maxCalShowTime()",1000);
}

function maxCalDraw(cal_title,year_first,year_last,cal_year,cal_month,
                    day_cell_width,day_cell_height,clock_size,
                    cal_popup_ie,cal_edit)
{
  max_cal_year = cal_year;
  max_cal_month = cal_month;
  max_cal_popup_ie = cal_popup_ie;
  max_cal_edit = cal_edit;
  var is_netscape = maxIsNetscape();
  var curr_date = new Date();

  if (year_first == 0)
    year_first = curr_date.getFullYear() - 1;
  if (year_last == 0)
    year_last = year_first + 4;

  if (max_cal_year == 0) {
    max_cal_year = curr_date.getFullYear();
    max_cal_month = curr_date.getMonth() + 1;
  }
  else {
    if (max_cal_month < 1)
      max_cal_month = 1;
    else if (max_cal_month > 12)
      max_cal_month = 12;
  }

  document.writeln('<table class=maxCalClsCal border=0 cellpadding=0 cellspacing=0><tr><td>');
  document.writeln('<table border=1 cellspacing=2 cellpadding=0>');
  document.writeln('<tr><td class=maxCalClsHeading nowrap>');
  if (maxIsExplorer())
    document.writeln('<form name=maxcalfrm>');
  else
    maxCalOpenForm();
  if (cal_title.length < 1)
    cal_title = 'Max Pages Calendar';
  document.writeln('<center><b>' + cal_title + '</b></center>');
  document.writeln('<table border=0 cellpadding=0 cellspacing=0 width=100%><tr valign=bottom>');
  document.writeln('<td nowrap width=33%>');
  document.write('<select class=maxCalClsSelect name=maxcalmn onChange="');
  if (maxIsExplorer())
    document.write('maxCalUpdate(document.all.maxcaldays,maxcalfrm.maxcalyr.value,maxcalfrm.maxcalmn.value)');
  else
    document.write('form.submit()');
  document.writeln('">');
  maxCalOutputOption(1,'January',max_cal_month);
  maxCalOutputOption(2,'February',max_cal_month);
  maxCalOutputOption(3,'March',max_cal_month);
  maxCalOutputOption(4,'April',max_cal_month);
  maxCalOutputOption(5,'May',max_cal_month);
  maxCalOutputOption(6,'June',max_cal_month);
  maxCalOutputOption(7,'July',max_cal_month);
  maxCalOutputOption(8,'August',max_cal_month);
  maxCalOutputOption(9,'September',max_cal_month);
  maxCalOutputOption(10,'October',max_cal_month);
  maxCalOutputOption(11,'November',max_cal_month);
  maxCalOutputOption(12,'December',max_cal_month);
  document.write('</select>');
  document.write('<select class=maxCalClsSelect name=maxcalyr onChange="');
  if (maxIsExplorer())
    document.write('maxCalUpdate(document.all.maxcaldays,maxcalfrm.maxcalyr.value,maxcalfrm.maxcalmn.value)');
  else
    document.write('form.submit()');
  document.writeln('">');
  var yr;
  for (yr = year_first; yr <= year_last; yr++)
    maxCalOutputOption(yr,yr,max_cal_year);
  document.writeln('</select>');
  if (maxIsExplorer()) {
    max_cal_year = maxcalfrm.maxcalyr.value;
    max_cal_month = maxcalfrm.maxcalmn.value;
  }
  document.writeln('</td>');
  document.writeln('<td nowrap align=center class=maxCalClsSubhdg width=34%>Click on a cell for details on that day.</td>');
  document.writeln('<td nowrap align=right width=33%>');
  if (maxIsExplorer())
    document.writeln('<span class=maxCalClsClock id=maxcalclk></span>');
  else if (maxIsNetscape())
    document.writeln('<input type=text class=maxCalClsClock name=maxcalclk size=' + clock_size + '>');
  document.writeln('</td>');
  document.writeln('</tr></table>');
  document.writeln('</td></tr>');
  document.writeln('</form>');
  document.writeln('<tr><td>');
  if (maxIsValid())
    maxCalDrawDays(day_cell_width,day_cell_height)
  document.writeln('</td>');
  document.writeln('</tr>');
  document.writeln('</table>');
  document.writeln('</td></tr></table>');

  maxCalShowTime();
}
