var day           = 24*60*60*1000; //milliseconds in one day
var dateToday     = new Date();
var currentMonth, currentYear, currentDay;
var dateTodayDays = new Array(42);
var tempCounter, currentRow, currentCol;
var showloaded        = false;
var calloaded     = false;
var allDays       = new Array(42);

function setCalToday(){
  tempDateToday = new Date();
  month = tempDateToday.getMonth()+1;
  year = tempDateToday.getYear();
  if (year < 1900) year += 1900;
  date = month + '/1/' + year;
  dateToday.setTime(Date.parse(date));
  setCalDate();
  }

function InitCalendar(){
  setLeft = 0;
  setTop = 0;
  marker = '';

  agent = navigator.userAgent.toLowerCase();
  CALmac   = (agent.indexOf("CALmac")!=-1);
  CALie4   = (document.all) ? true : false;
  CALns4   = (document.layers)                          ? true : false;
  CALns6   = (document.getElementById && !document.all) ? true : false;
  
  for (i = 0; i <= 42; i++) { dateTodayDays[i] = 0; }
  //initialize date to 1st of current month
  month = dateToday.getMonth()+1;
  year = dateToday.getYear();
  if (year < 1900) year += 1900;
  
  //set current date
  currentMonth = month;
  currentYear = year;
  currentDay = dateToday.getDate();
  
  date = month + '/1/' + year;
  dateToday.setTime(Date.parse(date));
  
  setCalPositions(setLeft,setTop,marker);
  setCalDate();
  calloaded = true;
  showCalendar((currentMonth+'/'+currentDay+'/'+currentYear),0,0,'calendarMarker');
  }

function setCalPositions(setLeft,setTop,marker){
  if (marker){
    if (CALns6){ anchorObj = eval('document.getElementById("'+marker+'")'); }
    else    { anchorObj = eval('document.images["'+marker+'"]'); }
  
    setLeft = getImageLeft(anchorObj) - 150;
    setTop = getImageTop(anchorObj) + 10;
    }
  if (testing) { alert('setCalPositions: left '+setLeft+' top '+setTop); }
  //set main calendar position
    if (CALns4) {
      document.calendarDiv.left = setLeft;
      document.calendarDiv.top = setTop;
    } else if (CALie4) {
      document.all.calendarDiv.style.left = setLeft;
      document.all.calendarDiv.style.top = setTop;
    } else {
      document.getElementById("calendarDiv").style.left = setLeft + "px";
      document.getElementById("calendarDiv").style.top = setTop + "px";
    }
  
  //set day positions
  tempCounter = 1;
  for (currentRow = 1; currentRow < 7; currentRow++){
    for (currentCol = 1; currentCol < 8; currentCol++){
      thisLeft = setLeft + 3 + ((currentCol - 1) * 22);
      thisTop = setTop + 35 + ((currentRow - 1) * 18);
      if (CALmac && CALie4) { thisTop -= 15; }
      if (CALns4){
        eval('document.Day'+tempCounter+'.left = thisLeft;');
        eval('document.Day'+tempCounter+'.top = thisTop;');
        }
      else if (CALie4){
        eval('document.all.Day'+tempCounter+'.style.left = thisLeft;');
        eval('document.all.Day'+tempCounter+'.style.top = thisTop;');
        }
      else{
        eval('document.getElementById("Day'+tempCounter+'").style.left = thisLeft + "px";');
        eval('document.getElementById("Day'+tempCounter+'").style.top = thisTop + "px";');
        }
      tempCounter++;
      }
    }
  }

function showCalendar(thisDate,setLeft,setTop,marker) {
  if (calloaded){
    if ((setLeft && setTop) || marker) { setCalPositions(setLeft,setTop,marker); }
    if (thisDate) { eval('newDate = Date.parse('+thisDate+');'); }
    else { newDate = 0; }
    if (newDate > 0) { //date in field parses correctly
      dateToday.setTime(newDate); //set calendar to selected date
      month = dateToday.getMonth()+1;
      year = dateToday.getYear();
      if (year < 1900) { year += 1900; }
      selectedYear = year;
      selectedDay = dateToday.getDate();
      date = month + '/1/' + year;
      dateToday.setTime(Date.parse(date))
      }
    else { setCalToday(); }
    setCalDate(); //set up calendar
    
    //show calendar
    if (CALns4) { document.calendarDiv.visibility = "show"; }
    else if (CALie4) { document.all.calendarDiv.style.visibility = "visible"; }
    else { document.getElementById("calendarDiv").style.visibility = "visible"; }
  
    //show days
    for (tempCounter = 1; tempCounter < 43; tempCounter++){
      if (CALns4) { eval('document.Day'+tempCounter+'.visibility = "show";'); }
      else if (CALie4) { eval('document.all.Day'+tempCounter+'.style.visibility = "visible";'); }
      else { eval('document.getElementById("Day'+tempCounter+'").style.visibility = "visible";'); }
      }
    loaded = true;
    }
  }

function setCalDate(){
  loaded = false;
  var dateToday2 = new Date();
  dateToday2.setTime(dateToday.getTime());
  
  dow = dateToday.getDay();
  dayOfMonth = 0;
  eom = false;
  for (dayDivs = 1; dayDivs <= 42; dayDivs++){
    if (dayDivs > dow && !eom){
      today = 24 * 60 * 60 * 1000;
      today += dateToday2.getTime(); //add one day to current date
      dateToday2.setTime(today);
      if (dateToday2.getHours() != 0){ //fix for daylight savings time
        today = 60 * 60 * 1000;
        if (dateToday2.getHours() == 1) today *= -1
        today += dateToday2.getTime();
        dateToday2.setTime(today);
        }
      if (dateToday2.getDate() == 1) { eom = true; } //if it is the first of next month, set the flag to stop
      dayOfMonth++;
      dateTodayDays[dayDivs] = dayOfMonth;
      }
    else{
      dateTodayDays[dayDivs] = 0;
      dayOfMonth = 0;
      }
    todaySelected = 'ffffff';
    teststring = '';
    if (daystring) {
      var teststring = "," + daystring + ",";
      }
    allDays[dayDivs] = dayOfMonth;
    //custom code for campo - if more than one event (in multiple_days array on index page),
    //                        link only to calendar page
    calendar_page_link = false;
    //multiple_alert_made = false;
    if (typeof(multiple_days) != 'undefined'){
      for (j = 0; ((j < multiple_days.length) && (!calendar_page_link)); j++){
        if (multiple_days[j] == allDays[dayDivs]) { calendar_page_link = true; }
        }
      }
    if (dayOfMonth == 0) { layerWrite('Day' + dayDivs,''); }
    //else if (multiple_alert_made) { alert('multiple_days undefined'); multiple_alert_made = true; }
    //else if (month == currentMonth && year == currentYear && ((!CALmac && dayOfMonth == currentDay) || (CALmac && dayOfMonth == currentDay+1))) { layerWrite('Day' + dayDivs,'<table cellpadding="1" cellspacing="0" border="0"><tr><td align="center" bgcolor="#cc0000"><table cellpadding="0" cellspacing="0" border="0"><tr><td align="center" width="18" height="16" bgcolor="#'+todaySelected+'"><a href="javascript:CalSelect(' + dayDivs + ');" onmouseover="ShowEvent(' + dayDivs + ');" onmouseout="HideEvent();" class="calendarToday">' + dayOfMonth + '</a></td></tr></table></td></tr></table>'); }
    else if (month == currentMonth && year == currentYear && ((!CALmac && dayOfMonth == currentDay) || (CALmac && dayOfMonth == currentDay+1))) {
      if (teststring != '' && teststring.indexOf(','+dayOfMonth+',') >= 0) { layerWrite('Day' + dayDivs,'<table cellpadding="0" cellspacing="0" border="0"><tr><td align="center" width="20" height="18" bgcolor="#ffffff"><b><a href="' + ((calendar_page_link) ? 'calendar.php' : 'javascript:CalSelect(' + dayDivs + ');') + '" onmouseover="ShowEvent(' + dayOfMonth + ');" onmouseout="HideEvent();" class="calendarDay">' + dayOfMonth + '</a></b></td></tr></table>'); }
      else { layerWrite('Day' + dayDivs,'<table cellpadding="0" cellspacing="0" border="0"><tr><td align="center" width="20" height="18" bgcolor="#ffffff"><b>' + dayOfMonth + '</b></td></tr></table>'); }
      }
    else if (teststring != '' && teststring.indexOf(','+dayOfMonth+',') >= 0) { layerWrite('Day' + dayDivs,'<table cellpadding="0" cellspacing="0" border="0"><tr><td align="center" width="20" height="18"><a href="' + ((calendar_page_link) ? 'calendar.php' : 'javascript:CalSelect(' + dayDivs + ');') + '" onmouseover="ShowEvent(' + dayOfMonth + ');" onmouseout="HideEvent();" class="calendarDay">' + dayOfMonth + '</a></td></tr></table>'); }
    else { layerWrite('Day' + dayDivs,'<table cellpadding="0" cellspacing="0" border="0"><tr><td align="center" width="20" height="18">' + dayOfMonth + '</td></tr></table>'); }
    }
  loaded = true;
  }
function layerWrite(id,text){
  if (CALns4){
    eval('var lyr = document.'+id+'.document');
    lyr.open();
    lyr.write(text);
    lyr.close();
    }
  else if (CALie4) { document.all[id].innerHTML = text }
  else if (CALns6){
    rng = document.createRange();
    el = document.getElementById(id);
    rng.setStartBefore(el);
    htmlFrag = rng.createContextualFragment(text);
    while (el.hasChildNodes()) el.removeChild(el.lastChild);
    el.appendChild(htmlFrag);
    }
  }
function CalSelect(day){
  //alert('function missing for calendar selection');
  window.location.href = "calendar.php?e_id=" + dayIds[allDays[day]];
  //window.location.href = "calendar.php";
  }
