
  var linkEnabled = true;
  
  function parsePopupMap(place, address1, city, state, zip)
  {
    mapPopup(address, "<b><font class='secondaryHeader'>" + place + "</font></b><br>" + address, "Y");
  }

  var currentYear;
  var currentMonth;

  function clearCalendar()
  {
    var calendar = document.getElementById("calendar");
    calendar.innerHTML = "";
  }

  function initCalendar()
  {
    var monthYear = document.getElementById("thisMonthYear");
    monthYear.innerHTML = "Loading...";
  }

  function failedCalendar()
  {
    clearCalendar();
    var calendar = document.getElementById("calendar");
    calendar.innerHTML = calWrapper("Unable to Load Calendar");
    var monthYear = document.getElementById("thisMonthYear");
    monthYear.innerHTML = "";
    var events = document.getElementById("events");
    if(events && events != null)
    { events.innerHTML = ""; }
  }

  function noInfoCalendar()
  {
    clearCalendar();
    var calendar = document.getElementById("calendar");
    calendar.innerHTML = calWrapper("There isn't any information for this month.");
    var monthYear = document.getElementById("thisMonthYear");
    monthYear.innerHTML = monthMapping(currentMonth) + " " + currentYear;
    var events = document.getElementById("events");
    if(events && events != null)
    { events.innerHTML = ""; }
  }

  function calWrapper(text)
  {
    var html = new String();
    html += "<table width='172' border='0' cellspacing='0' cellpadding='0'>";
    html += " <tr>";
    html += "  <td width='1' class='calBorder'></td>";
    html += "  <td width='170' height='100' align='center' valign='middle'>";
    html += text;
    html += "  </td>";
    html += "  <td width='1' class='calBorder'></td>";
    html += " </tr>";
    html += " <tr>";
    html += "  <td colspan='3' height='1' class='calBorder'></td>";
    html += " </tr>";
    html += "</table>";

    return html;
  }

  function getCalendar(year, month)
  {
    initCalendar();
    var url = "calEventData/" + twoDigitMonth(month) + "" + year + ".xml";
    new AjaxCall().async(url, null, parseCalendar2, noInfoCalendar); 
  }

  function twoDigitMonth(intMonth)
  {
    if(intMonth.toString().length == 1)
    { return (0 + "" + intMonth);}
    else
    { return intMonth; }
  }

  function monthMapping(intMonth)
  {
    try
    {
      im = parseInt(intMonth);
      if(im == 0)
      { return "January"; }
      else if(im == 1)
      { return "February"; }
      else if(im == 2)
      { return "March"; }
      else if(im == 3)
      { return "April"; }
      else if(im == 4)
      { return "May"; }
      else if(im == 5)
      { return "June"; }
      else if(im == 6)
      { return "July"; }
      else if(im == 7)
      { return "August"; }
      else if(im == 8)
      { return "September"; }
      else if(im == 9)
      { return "October"; }
      else if(im == 10)
      { return "November"; }
      else if(im == 11)
      { return "December"; }
      else
      { return ""; }
    }
    catch(e)
    { return ""; }
  }

  function dayPostfixMapping(intDay)
  {
    try
    {
      id = parseInt(intDay);
      if(id == 1 || id == 21 || id == 31)
      { return "st"; }
      else if(id == 2 || id == 22)
      { return "nd"; }
      else if(id == 3 || id == 23)
      { return "rd"; }
      else if(id >= 4 && id <= 30)
      { return "th"; }
      else
      { return ""; }
    }
    catch(e)
    { return ""; }
  }

  function parseCalendar(reqCal)
  { //for larger calendar
    var jsDate = new Date();

    var xmlCalendar = reqCal.responseXML.getElementsByTagName('calendar');
    initCalendar();

    var thisMonthYear = document.getElementById("thisMonthYear");
    var xmlYear  = xmlCalendar[0].getElementsByTagName('year')[0].firstChild.nodeValue;
    currentYear = parseInt(xmlYear);
    var xmlMonth = xmlCalendar[0].getElementsByTagName('month')[0].firstChild.nodeValue;
    currentMonth = parseInt(xmlMonth);
    thisMonthYear.innerHTML = monthMapping(xmlMonth) + " " + xmlYear;

    var xmlAllDays  = xmlCalendar[0].getElementsByTagName('day');
    var weekDayCtr = 0;

    var calendarHtml = new String();
    var eventHtml = new String();

    calendarHtml += "<table width='100%' border='0' cellspacing='0' cellpadding='0' class='default'>";
    calendarHtml += "  <tr>";
    calendarHtml += "    <td width='1' class='calBorder'></td>";
    calendarHtml += "    <td width='41' class='subhead' align='center'>S</td>";
    calendarHtml += "    <td width='1' class='calBorder'></td>";
    calendarHtml += "    <td width='41' class='subhead' align='center'>M</td>";
    calendarHtml += "    <td width='1' class='calBorder'></td>";
    calendarHtml += "    <td width='41' class='subhead' align='center'>T</td>";
    calendarHtml += "    <td width='1' class='calBorder'></td>";
    calendarHtml += "    <td width='41' class='subhead' align='center'>W</td>";
    calendarHtml += "    <td width='1' class='calBorder'></td>";
    calendarHtml += "    <td width='41' class='subhead' align='center'>T</td>";
    calendarHtml += "    <td width='1' class='calBorder'></td>";
    calendarHtml += "    <td width='41' class='subhead' align='center'>F</td>";
    calendarHtml += "    <td width='1' class='calBorder'></td>";
    calendarHtml += "    <td width='41' class='subhead' align='center'>S</td>";
    calendarHtml += "    <td width='1' class='calBorder'></td>";
    calendarHtml += "  </tr>";
    calendarHtml += "<tr><td colspan='15' height='1' class='calBorder'></td></tr>";

    for (var i=0;i<xmlAllDays.length;i++)
    {
      weekDayCtr++;
      if(weekDayCtr == 1)
      {
        calendarHtml += "<tr><td width='1' class='calBorder'></td>";
      }

      var classes = "";
      var theDate = "";
      var hasEvent = "";
      if(xmlAllDays[i].getAttribute("dayOfMonth") != "")
      { theDate = xmlAllDays[i].getAttribute("dayOfMonth"); }

      if(xmlAllDays[i].getAttribute("hasEvent") == "Y")
      { classes += " calendarHasEvent "; hasEvent = "Y"; }

      if(currentYear == jsDate.getFullYear() && currentMonth == jsDate.getMonth() && theDate == jsDate.getDate() )
      { classes += " calendarToday "; }

      if(hasEvent == "Y")
      {
        calendarHtml += "<td class='" + classes + "' width='41' height='41' align='center' valign='middle'>";
        calendarHtml += "<a href='javascript:calPopup("+currentYear+","+currentMonth+","+theDate+")'><big><b>" + theDate + "</b><big></a>";
        calendarHtml += "</td>";

        //events
        var xmlAllEvents  = xmlAllDays[i].getElementsByTagName('event');
        for(var j=0;j<xmlAllEvents.length;j++)
        {
          var title = ((xmlAllEvents[j].getElementsByTagName('title').length > 0 && xmlAllEvents[j].getElementsByTagName('title')[0].firstChild != null)?xmlAllEvents[j].getElementsByTagName('title')[0].firstChild.nodeValue:"");
          var info = ((xmlAllEvents[j].getElementsByTagName('info').length > 0 && xmlAllEvents[j].getElementsByTagName('info')[0].firstChild != null)?xmlAllEvents[j].getElementsByTagName('info')[0].firstChild.nodeValue:"");
          eventHtml += "<b>" + theDate + "<sup>" + dayPostfixMapping(theDate) + "</sup></b> <b>" + title + "</b>";
          if(info != "") { eventHtml += " - " + info; }
          eventHtml += "<hr color='#033E6A' style='height:1px'>";
        }
      }
      else
      {
        classes += " calendarNoEvent ";
        calendarHtml += "<td class='" + classes + "' width='41' height='41' align='center' valign='middle'>";
        calendarHtml += "<big><b>" + theDate + "</b></big>";
        calendarHtml += "</td>";
      }

      if(weekDayCtr != 7)
      {
        calendarHtml += "<td width='1' class='calBorder'></td>";
      }
      else
      {
        calendarHtml += "<td width='1' class='calBorder'></td></tr>";
        calendarHtml += "<tr><td colspan='15' height='1' class='calBorder'></td></tr>";
        weekDayCtr = 0;
      }
    }
    calendarHtml += "</table>";

    var calendar = document.getElementById("calendar");
    calendar.innerHTML = calendarHtml;

    var events = document.getElementById("events");
    if(events && events != null)
    { events.innerHTML = eventHtml; }

    var monthYear = document.getElementById("thisMonthYear");
    monthYear.innerHTML = monthMapping(currentMonth) + " " + currentYear;
  }

  function parseCalendar2(reqCal)
  {
    var jsDate = new Date();

    var xmlCalendar = reqCal.responseXML.getElementsByTagName('calendar');
    initCalendar();

    var thisMonthYear = document.getElementById("thisMonthYear");
    var xmlYear  = xmlCalendar[0].getElementsByTagName('year')[0].firstChild.nodeValue;
    currentYear = parseInt(xmlYear);
    var xmlMonth = xmlCalendar[0].getElementsByTagName('month')[0].firstChild.nodeValue;
    currentMonth = parseInt(xmlMonth);
    thisMonthYear.innerHTML = monthMapping(xmlMonth) + " " + xmlYear;

    var xmlAllDays  = xmlCalendar[0].getElementsByTagName('day');
    var weekDayCtr = 0;

    var calendarHtml = new String();
    var eventHtml = new String();

    calendarHtml += "<table width='169' border='0' cellspacing='0' cellpadding='0' class='default'>";
    calendarHtml += "  <tr>";
    calendarHtml += "    <td width='1' class='calBorder'></td>";
    calendarHtml += "    <td width='23' class='subhead' align='center'>S</td>";
    calendarHtml += "    <td width='1' class='calBorder'></td>";
    calendarHtml += "    <td width='23' class='subhead' align='center'>M</td>";
    calendarHtml += "    <td width='1' class='calBorder'></td>";
    calendarHtml += "    <td width='23' class='subhead' align='center'>T</td>";
    calendarHtml += "    <td width='1' class='calBorder'></td>";
    calendarHtml += "    <td width='23' class='subhead' align='center'>W</td>";
    calendarHtml += "    <td width='1' class='calBorder'></td>";
    calendarHtml += "    <td width='23' class='subhead' align='center'>T</td>";
    calendarHtml += "    <td width='1' class='calBorder'></td>";
    calendarHtml += "    <td width='23' class='subhead' align='center'>F</td>";
    calendarHtml += "    <td width='1' class='calBorder'></td>";
    calendarHtml += "    <td width='25' class='subhead' align='center'>S</td>";
    calendarHtml += "    <td width='1' class='calBorder'></td>";
    calendarHtml += "  </tr>";
    calendarHtml += "<tr><td colspan='15' height='1' class='calBorder'></td></tr>";

    for (var i=0;i<xmlAllDays.length;i++)
    {
      weekDayCtr++;
      if(weekDayCtr == 1)
      {
        calendarHtml += "<tr><td width='1' class='calBorder'></td>";
      }

      var classes = "";
      var theDate = "";
      var hasEvent = "";
      var todayTableStart = "";
      var todayTableEnd = "";

      if(xmlAllDays[i].getAttribute("dayOfMonth") != "")
      { theDate = xmlAllDays[i].getAttribute("dayOfMonth"); }

      if(xmlAllDays[i].getAttribute("hasEvent") == "Y")
      { classes += " calendarHasEvent "; hasEvent = "Y"; }

      if(currentYear == jsDate.getFullYear() && currentMonth == jsDate.getMonth() && theDate == jsDate.getDate() )
      {
        todayTableStart = "<table width='24' border='0' cellspacing='0' cellpadding='0' class='default'><tr><td class='calendarToday' width='24' height='26' align='center' valign='middle'>";
        todayTableEnd = "</td></tr></table>";
        //classes += " calendarToday ";
      }
      else
      {
        todayTableStart = "";
        todayTableEnd = "";
      }

      if(hasEvent == "Y")
      {
        calendarHtml += "<td class='" + classes + "' width='24' height='26' align='center' valign='middle'>";
        calendarHtml += todayTableStart;
        if(linkEnabled){ calendarHtml += "<a href='javascript:calPopup("+currentYear+","+currentMonth+","+theDate+")' class='hasEvent'><big><b>" + theDate + "</b><big></a>"; }
        else{ calendarHtml += "<big class='hasEvent'><b>" + theDate + "</b><big>"; }
        calendarHtml += todayTableEnd;
        calendarHtml += "</td>";

        //events
        var xmlAllEvents  = xmlAllDays[i].getElementsByTagName('event');
        for(var j=0;j<xmlAllEvents.length;j++)
        {
          var title = ((xmlAllEvents[j].getElementsByTagName('title').length > 0 && xmlAllEvents[j].getElementsByTagName('title')[0].firstChild != null)?xmlAllEvents[j].getElementsByTagName('title')[0].firstChild.nodeValue:"");
          var info = ((xmlAllEvents[j].getElementsByTagName('info').length > 0 && xmlAllEvents[j].getElementsByTagName('info')[0].firstChild != null)?xmlAllEvents[j].getElementsByTagName('info')[0].firstChild.nodeValue:"");
          eventHtml += "<b>" + theDate + "<sup>" + dayPostfixMapping(theDate) + "</sup></b> <b>" + title + "</b>";
          if(info != "") { eventHtml += " - " + info; }
          eventHtml += "<hr color='#033E6A' style='height:1px'>";
        }
      }
      else
      {
        classes += " calendarNoEvent ";
        calendarHtml += "<td class='" + classes + "' width='25' height='26' align='center' valign='middle'>";
        calendarHtml += todayTableStart;
        calendarHtml += "<big><b>" + theDate + "</b></big>";
        calendarHtml += todayTableEnd;
        calendarHtml += "</td>";
      }

      if(weekDayCtr != 7)
      {
        calendarHtml += "<td width='1' class='calBorder'></td>";
      }
      else
      {
        calendarHtml += "<td width='1' class='calBorder'></td></tr>";
        calendarHtml += "<tr><td colspan='15' height='1' class='calBorder'></td></tr>";
        weekDayCtr = 0;
      }
    }
    calendarHtml += "</table>";

    var calendar = document.getElementById("calendar");
    calendar.innerHTML = calendarHtml;

    var events = document.getElementById("events");
    if(events && events != null)
    { events.innerHTML = eventHtml; }

    var monthYear = document.getElementById("thisMonthYear");
    monthYear.innerHTML = monthMapping(currentMonth) + " " + currentYear;
  }

  function calPopup(year, month, day)
  {
    location.href="compact_event_calendar_data.htm?year=" + year + "&month=" + month + "&day=" + day;
    //defaultCallback(year, month, day);
  }

  function defaultCallback(year, month, day)
  {
    alert("Month: " + month + "   (based on 0-11)\nDay: " + day + "\nYear: " + year);
  }

  function getPrevCalendar()
  {
    if(currentMonth == 0)
    {
      currentMonth = 11;
      currentYear = currentYear - 1;
    }
    else
    {
      currentMonth = currentMonth - 1;
    }

    getCalendar(currentYear, currentMonth);
  }

  function getNextCalendar()
  {
    if(currentMonth == 11)
    {
      currentMonth = 0;
      currentYear = currentYear + 1;
    }
    else
    {
      currentMonth = currentMonth + 1;
    }

    getCalendar(currentYear, currentMonth);
  }
  
  function createCalendar()
  {
    var html = new String();
    
    html += "";
    html += "<table class='calendarBackGround' width='169' border='0' cellspacing='0' cellpadding='0'>";
    html += "  <tr>";
    html += "    <td width='1' class='calHeaderDivider'></td>";
    html += "    <td width='24' class='calHeader' align='center'>";
    html += "      <a href='javascript:getPrevCalendar()'><img src='images/leftArrow.gif' border='0'></a>";
    html += "    </td>";
    html += "    <td width='122' class='calHeader' align='center'>";
    html += "    <div id='thisMonthYear'>Loading...</div>";
    html += "    </td>";
    html += "    <td width='24' class='calHeader' align='center'>";
    html += "      <a href='javascript:getNextCalendar()'><img src='images/rightArrow.gif' border='0'></a>";
    html += "    </td>";
    html += "    <td width='1' class='calHeaderDivider'></td>";
    html += "  </tr>";
    html += "  <tr>";
    html += "    <td colspan='5'>";
    html += "      <div id='calendar'>";
    html += "        <table width='172' border='0' cellspacing='0' cellpadding='0'>";
    html += "         <tr>";
    html += "           <td width='1' class='calBorder'></td>";
    html += "           <td width='170' height='187' align='center' valign='middle'>";
    html += "             ";
    html += "           </td>";
    html += "           <td width='1' class='calBorder'></td>";
    html += "         </tr>";
    html += "         <tr>";
    html += "           <td colspan='3' height='1' class='calBorder'></td>";
    html += "         </tr>";
    html += "        </table>";
    html += "      </div>";
    html += "    </td>";
    html += "  </tr>";
    html += "</table>";
    
    return html;
  }

