 var dayStr = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
  var monthStr = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
  var msInDay = (1000 * 60 * 60 * 24);
  var lastDate = new Date(0);
  var now = new Date();
  var today = new Date(now.getFullYear(), now.getMonth(), now.getDate()); // Midnight for the current day
  var expired = true;
  var toofar = false;
  var fontclass = "";
  var firstEvent = false;
  var defaultDaysToDisplay = 14;
  var daysToDisplay = 14;

 // Single line across diary
 function sLine() {
   document.write('<tr><td class="line" colspan="3">&nbsp;</td></tr>');
 }

 // Double line across diary
 function dLine() {
   document.write('<tr><td class="dline" colspan="3">&nbsp;</td></tr>');
 }

function getQueryVariable(variable, defaultValue) {
	var query = window.location.search.substring(1);

  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  }
 
  return defaultValue;  
}

function setDays()
{
    daysToDisplay = getQueryVariable("days", defaultDaysToDisplay);
}


 // Puts in a date field with appropriate line above
 function diaryDate(dateStr, nEvents) {
   var theDate = new Date(dateStr);
   
   // Omit events already expired
   expired = (today.getTime() > theDate.getTime());
   if (expired) {
	 return;
   }

   // Omit events more than 2 weeks ahead
   if (daysToDisplay > 0)
   {   
   	toofar = ((theDate.getTime() - today.getTime()) >= (daysToDisplay * msInDay));
   	if (toofar) {
	     return;
	}
   }
   
   // Single line for 1 day gap, double line for more
   if ((theDate.getTime()-lastDate.getTime()) <= msInDay) { 
     sLine();
   } else {
     dLine();
   }
     
   // "Distant" font for events 1 week or more in future
   if ((theDate.getTime() - today.getTime()) >= (7 * msInDay)) {
     fontclass = ' class = "distant"';
   }
   else {
     fontclass = '';
   }
   
   // Write the date - if today, just put "TODAY"
   var dateString;
   
   if (theDate.getTime() == today.getTime()) {
     fontclass = ' class = "today"';
	 dateString = "TODAY";
   }
   else {
	 dateString = dayStr[theDate.getDay()].substr(0,3) + ' ' + theDate.getDate() + ' ' + monthStr[theDate.getMonth()].substr(0,3);
   }
   document.write('<tr' + fontclass + '><td class="date" rowspan="' + nEvents + '" >' + dateString + '</td>');

  lastDate.setTime(theDate.getTime());
  firstEvent = true;
 }
   
  // Puts in the rest of a diary event and closes off the row
  function diaryEvent(time, event) {
    if (expired || toofar) {
	  return;
	}
    if (!firstEvent) {
	  document.write('<tr' + fontclass + '>');
	}
    document.write('<td class="time">' + time + '</td>');
    document.write('<td class="event">' + event + '</td></tr>');
	firstEvent = false;
  }
  
  // Functions for various parts of Sunday Service

  function preacher(name) {
    return ('<em> - ' + name + '</em>');
  }
  
  function communion() {
    return ('<br />Communion service');
  }
  
  function baptism() {
    return ('<br />Baptism service');
  }
  
  function dedication() {
    return ('<br />Infant dedication service');
  }

  function tagref(scriptref) {
    return ('<cite class="bibleref" title="' + scriptref + '" style="font-style: normal;">' + scriptref + '</cite>');
  }