//the ajax xml object
var xmlhttp=null;
//the xml file that will be loaded into memory
var ldate = new Date()
var toLoad = "/events/" + ldate.getFullYear()+"-"+(ldate.getMonth()+1)+".xml";
//var toLoad = ldate.getFullYear()+"_"+"0.xml";
//var toLoad = "/events/2008_3.xml";
var xmlDoc;
//the string that gets printed to the dynamic div
var strOutput = "";
var daysToAdd = 0;
var lBound = 0;
var uBound = 9;
var epm = 10;
var pages = 0;
var activePage = 1;
var paginate = "";
var prevDay = 0;
var prevMonth = 0;
var prevYear;
var arbitrary = false;
var noEvents = false;
var months = new Array("January", "February", "March", "April", "May", "June","July", "August", "September", "October", "November","December");
var days = new Array("Sunday","Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
var displayType = new Array("ThisMonth", "ThisWeek", "Today", "spMonth");
daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31]

//this method sets up the xml object to work with the javascript depending on the browser
function sendRequest()
{
   //setting up the firefox 1.5 ,safari 1.3, and opera 8.5 way
   if (window.XMLHttpRequest)
   {
      xmlhttp=new XMLHttpRequest();
   }
   //if that fails try set up for IE
   else if (window.ActiveXObject)
   {
      try
      {
         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch(e)
      {
         try
         {           
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
         }
         catch(e)
         {
            xmlhttp = false;
         }
      }
   }
   //if the ajax object was set up properly then download and open the xml file in the 'toLoad' variable
   if (xmlhttp)
   {
      //setting up the eventhandler 
      xmlhttp.onreadystatechange=onReadyState;
      //opening the xml file
      xmlhttp.open("GET", toLoad, true);
      //no need to send anything back to the server                
      xmlhttp.send(null);
   }
}
function onReadyState()
{  
   if (xmlhttp.readyState==4)
   {
      if (xmlhttp.status==200)
      {
         xmlDoc = xmlhttp.responseXML;
         
         try
         {
            var query = window.location.search.substring(1);
            var pair = query.split("date=");
            var rawDate = pair[1].split("/");            
            reloadXML(rawDate[0]+"_"+rawDate[1]+".xml");
            
            if(rawDate[2] == 0)
            {
               monthView(rawDate[1],rawDate[0]);
               drawCal(rawDate[1],rawDate[0]);
            }
            else if(rawDate[1] > 12)
            {                    
               if(rawDate[1] == 13)
                  testSelect(displayType[0],rawDate[2]);
               else if(rawDate[1] == 14)
                  testSelect(displayType[1],rawDate[2]);
               else if(rawDate[1] == 15)
                  testSelect(displayType[2],rawDate[2]);
               else if(rawDate[1] == 16)
                  testSelect(displayType[3],rawDate[2]);                                                                  
            }
            else
            {
               dayView(rawDate[0],rawDate[1],rawDate[2]);
               drawCal(rawDate[1],rawDate[0]);
            }                        
         }
         catch(e)
         {                     
            var today = new Date();
            var year = today.getFullYear();
            var month = today.getMonth()+1;
            var day = today.getDate();
            
            //dayView(year,month,day);
            monthView(month,year);
            //displayEvent();
            //drawCal(month,year,0);
         }         
      }
   }
}
function dayView(year,month,day)
{   
   if(!dayViewer(year,month,day))
      drawError(year,month,day);      
}
function dayViewer(year,month,day)
{
   if(xmlDoc == null)
      return false;
   var dateClicked = new Date();
   dateClicked.setFullYear(year,month-1,day);
   
   var eventTitles = xmlDoc.getElementsByTagName("title");
   var startDates  = xmlDoc.getElementsByTagName("startDate");
   var endDates    = xmlDoc.getElementsByTagName("endDate");
   var descripts   = xmlDoc.getElementsByTagName("description");
   var locations   = xmlDoc.getElementsByTagName("location");

   var even = true;
   
   //var contactX    = xmlDoc.getElementsByTagName("contactInfo");
   //var organs      = xmlDoc.getElementsByTagName("organization");
   var strOutput  = "";
 
   var count = 0;
   for (var i=0; i < startDates.length; i++)
   {      
      var syear  = startDates[i].attributes.getNamedItem("year").value;
      var smonth = startDates[i].attributes.getNamedItem("month").value;
      var sday   = startDates[i].attributes.getNamedItem("day").value;
    
      var eyear  = endDates[i].attributes.getNamedItem("year").value;
      var emonth = endDates[i].attributes.getNamedItem("month").value;
      var eday   = endDates[i].attributes.getNamedItem("day").value; 
      var endDate = new Date();
      endDate.setFullYear(eyear,emonth-1,eday);
      var startDate = new Date();
      startDate.setFullYear(syear,smonth-1,sday);

      if(startDate < dateClicked && dateClicked < endDate || syear == year && smonth == month && sday == day || eyear == year && emonth == month && eday == day)
      {
         if(lBound <= count && count <= uBound)
         {            
            strOutput += generateCalData(eventTitles,startDates,endDates,descripts,locations,even,i,count);
            if(even)
              even = false;
            else
              even = true;
         }
         count++;
      }
   }  
   
   
   if(count > 0)
   {
      pages = Math.ceil(count/epm);
      var results = "";  
      results = generateResults(dateClicked,count,"day");
      
      
      strOutput = '<div id="events_schedule">' + strOutput + '</div>';
      strOutput = results + strOutput;
      //if(pages > 1)
      //   strOutput += '<div class="pager-results clearfix"><p class="pages">'+paginate+'</p></div>';                          
      
      document.getElementById('divContent').innerHTML=strOutput;
   }
   else
   {
      noEvents = true;
      arbitraryDayView(year,month,day,7);
      noEvents = false;
      
   }
   return true;
}
function monthView(month,year)
{    
    if(xmlDoc == null)
       return false;
    var strOutput ="";
    var dateClicked = new Date();
    dateClicked.setFullYear(year,month-1,1);
    
    var eventTitles = xmlDoc.getElementsByTagName("title");
    var startDates  = xmlDoc.getElementsByTagName("startDate");
    var endDates    = xmlDoc.getElementsByTagName("endDate");
    var descripts   = xmlDoc.getElementsByTagName("description");
    var locations   = xmlDoc.getElementsByTagName("location");  
 
    var count = 0;
    var write = 1;
    var even = true;
    for (i =0; i < eventTitles.length; i++)
    {   
       var syear  = startDates[i].attributes.getNamedItem("year").value;
       var smonth = startDates[i].attributes.getNamedItem("month").value;
       var sday   = startDates[i].attributes.getNamedItem("day").value;
        
       var eyear  = endDates[i].attributes.getNamedItem("year").value;
       var emonth = endDates[i].attributes.getNamedItem("month").value;
       var eday   = endDates[i].attributes.getNamedItem("day").value;
        
       var endDate = new Date();
       endDate.setFullYear(eyear,emonth-1,eday);
       var startDate = new Date();
       startDate.setFullYear(syear,smonth-1,sday);       
       
       
       if(syear < eyear && eyear <= year)
       {
          
          if(emonth >= month)
          {
             if(lBound <= count && count <= uBound)
             {
                strOutput += generateCalData(eventTitles,startDates,endDates,descripts,locations,even,i,count);
                if(even)
                  even = false;
                else
                  even = true;
             }
             count++;
          }
          
       }
       else if((smonth < month) && (month < emonth)  || (smonth == month && syear == year) || emonth == month && eyear == year )
       {  
          if(lBound <= count && count <= uBound) 
          {
             strOutput += generateCalData(eventTitles,startDates,endDates,descripts,locations,even,i,count);
             if(even)
                even = false;
             else
               even = true;
          }
          count++; 
       }
    }
    
    plural = "";
   
    if(count == 1)
       plural = " event";
    else
       plural = " events";    
    
    temp = "";
    temp += '<div class="story-col" id="shaded-col-thin">';
    temp += '<p class="search-results-number">'+count+ plural+' Found for '+getMonth(month-1)+' '+year+'</p>';
    temp += drawMonthBoard(year,month,6)
    //strOutput = temp + strOutput;        
    
    pages = Math.ceil(count/epm);
    var results = "";
    results = generateResults(dateClicked,count,"month");
    
    var header = generateResultHead();
    
    strOutput = '<div id="events_schedule">' + header + strOutput + '</div>';
    strOutput = results + strOutput;
   
    if(pages > 1)
       strOutput += '<div class="pager-results clearfix"><p class="pages">'+paginate+'</p></div>';                      
    document.getElementById('divContent').innerHTML=strOutput;     
    return true;
}
function generateResultHead()
{
   var results = "";
   results = '<div id="tools_wrap">';
   results += '<ul id="tools">';   
   results += '<li id="rss"><a href="/interact/rss-feeds-29375.aspx">RSS</a></li>';
   //results += '<li id="share"><a href="#">Share</a></li>';
   //results += '<li id="save"><a href="#">Save</a></li>';
   //results += '<li id="print"><a href="/forms/print-29196.aspx">Print</a></li>';
   results += '<li id="e_mail"><a href="/forms/email-29195.aspx?string_referer2=/events/index.aspx">Email</a></li>';
   results += '</ul></div>';
   
   return results;
  
}
function generateErrorMessage(month,year)
{   
   var results = "";
   results += '<div class="story-col" id="shaded-col-thin">';
   results += '<p class="search-results-number"> 0 events found for '+getMonth(month-1)+' '+year+'</p>';
   results += drawMonthBoard(year,month,6)
   results += '</div>';
   
   document.getElementById('divContent').innerHTML=results;
}
function arbitraryDayView(year,month,day,add)
{
   arbitrary = true
   if(!arbitraryDayViewer(year,month,day,add))
      drawError(year,month,day);
}
function arbitraryDayViewer(year,month,day,add)
{
   
   if(xmlDoc == null)
      return false;
   var dateClicked = new Date();
   dateClicked.setFullYear(year,month-1,day);
   
   var dayBound = addDays(year,month,day,add);
   dbyear = dayBound[0];
   dbmonth = dayBound[1];
   dbday = dayBound[2];
         
   var checkDate = new Date();
   var boundDate = new Date();
   checkDate.setFullYear(year,month-1,day);
   boundDate.setFullYear(dbyear,dbmonth-1,dbday);   
        
   var eventTitles = xmlDoc.getElementsByTagName("title");
   var startDates  = xmlDoc.getElementsByTagName("startDate");
   var endDates    = xmlDoc.getElementsByTagName("endDate");
   var descripts   = xmlDoc.getElementsByTagName("description");
   var locations   = xmlDoc.getElementsByTagName("location");
   
   var even = true;
   var strOutput  = "";
   var results = "";
   
 
   var count = 0;
   var total = 0;
   for (var i=0; i < eventTitles.length; i++)
   {      
      var syear  = startDates[i].attributes.getNamedItem("year").value;
      var smonth = startDates[i].attributes.getNamedItem("month").value;
      var sday   = startDates[i].attributes.getNamedItem("day").value;
    
      var eyear  = endDates[i].attributes.getNamedItem("year").value;
      var emonth = endDates[i].attributes.getNamedItem("month").value;
      var eday   = endDates[i].attributes.getNamedItem("day").value; 
      var endDate = new Date();
      endDate.setFullYear(eyear,emonth-1,eday);
      var startDate = new Date();
      startDate.setFullYear(syear,smonth-1,sday);
      if(lBound <= count && count <= uBound)
      { 
         if((year==syear && month == smonth && day == sday) || (dbyear == syear &&  dbmonth == smonth && dbday == sday))
         {  //alert("1");       
            results += generateCalData(eventTitles,startDates,endDates,descripts,locations,websites,sponsors,images,even,i,count);
            found = true;
            total++;
         }
         else if((year == eyear && month == emonth && day == eday) || (dbyear == eyear &&  dbmonth == emonth && dbday == eday))
         {  //alert("2");
            results += generateCalData(eventTitles,startDates,endDates,descripts,locations,websites,sponsors,images,even,i,count);
            found = true;
            total++;
         }
         else if((checkDate < startDate && startDate < boundDate)||( checkDate < endDate && endDate < boundDate ))
         {  //alert("3");                
            results += generateCalData(eventTitles,startDates,endDates,descripts,locations,websites,sponsors,images,even,i,count);
            found = true;
            total++;
         }            
         else if(startDate <= checkDate && checkDate <= endDate) 
         {  //alert("4");
            results += generateCalData(eventTitles,startDates,endDates,descripts,locations,websites,sponsors,images,even,i,count);
            found = true;
            total++;  
         }
         if(even)
            even = false;
         else
            even = true;         
      }
         //count++;      
   }  
   
   pages = Math.ceil(total/epm);
   //var results = "";  
   page = generateResults(dateClicked,total,"arbitrary");
   strOutput = page + results + strOutput;
   
   if(pages > 1)
      strOutput += '<div class="pager-results clearfix"><p class="pages">'+paginate+'</p></div>';
   document.getElementById('divContent').innerHTML=strOutput;
   return true;
}
function displayEvent()
{
   //arbitrary = true
   if(!displayEvents())
      drawError(year,month,day);
}
function displayEvents()
{  
   if(xmlDoc == null)
      return false;
   
   var eventTitles = xmlDoc.getElementsByTagName("title");
   var startDates  = xmlDoc.getElementsByTagName("startDate");
   var endDates    = xmlDoc.getElementsByTagName("endDate");
   var descripts   = xmlDoc.getElementsByTagName("description");
   var locations   = xmlDoc.getElementsByTagName("location");

   var even = true;
   var strOutput  = "";
   var results = "";
     
   var count = 0;
   var total = 0;
   for (var i=0; i < eventTitles.length; i++)
   {      
      //if(lBound <= count && count <= uBound)
      {       
          results += generateCalData(eventTitles,startDates,endDates,descripts,locations,even,i,count);
          found = true;
          total++;
          
          if(even)
             even = false;
          else
             even = true;             
      } 
      count++;
   }  
   
   pages = Math.ceil(count/epm);    
   page = generateResults("",count,"month");

   var header = generateResultHead(); 
   
   strOutput = '<div id="events_schedule">' + header + results + '</div>';
   strOutput = page + strOutput;     
   
   //if(pages > 1)
   //   strOutput += '<div class="pager-results clearfix"><p class="pages">'+paginate+'</p></div>';        
      
   document.getElementById('divContent').innerHTML=strOutput;
   return true;
}
function addDays(year,month,day,add)
{
   var endYear,endMonth,endDay;
   var totalDays = getDaysInMonth(month,year);
   daysToAdd = parseInt(add);
   
   endDay = day + daysToAdd;
   endMonth = month;
   endYear = year;
   if(endDay > totalDays)
   {
       endDay = endDay - totalDays;
       if(month == 12)
       {   
           endMonth = 1;
           endYear++;
       }
       else
       {
          endMonth++;
       }
   }
   var results = new Array(endYear,endMonth,endDay);
   return results;
}
function checkOverlap(month,year)
{
   var nmonth,nyear;
   
   if(month==12)
   {
      nmonth = 1;
      nyear = year;
      nyear++;
   }
   else if(month == 0)
   {
      nmonth = 11;
      //nmonth = 12;
      nyear = year;
      nyear--;
   }
   else
   {
      nmonth = month;
      nmonth++;
      nyear = year;
   }
   var results = new Array(nmonth,nyear);
   return results;  
}
function generateCalData(eventTitles,startDates,endDates,descripts,locations,even,i,count)
{

   var strOutput = "";
   var title = eventTitles[i].firstChild.nodeValue;  
   
   if(title.toString() == "blank")
      title = "";
   
   var url = eventTitles[i].attributes.getNamedItem("href").value;
   var sDate = startDates[i].firstChild.nodeValue;
   
   if(descripts[i].firstChild != null)
      var descript=descripts[i].firstChild.nodeValue;
   else
      var descript=""; 
      
   var artLink = descripts[i].attributes.getNamedItem("href").value;
   
   if(artLink == "blank")
      artLink = "";
   else
      artLink = '<a href=" '+artLink + '">Details</a>';       
   
   var state = "";
   var city  = "";
   
   city = locations[i].attributes.getNamedItem("city").value;
   state = locations[i].attributes.getNamedItem("state").value;
   
   var location = city
   
   if(location != "" && state != "")
      location += ", " + state;
           
   var fone  = "";
   //var sponsor = images[i].attributes.getNamedItem("sponsor").value;
   var sponsor = "";     
   
   /*
   var none = "NONE";
   if(org.toString() == none.toString())
      org = "";
   
   var tokens = new Array()
   tokens = cUrl.split(" ");
   var directions = ""
   if(tokens.length > 1)
   {
      cUrl = tokens[0];
   }
   
   tokens = cname.split(" ")
   if(tokens.length > 1)
   {
      cname = tokens[0];
      for(i = 1; i < tokens.length; i++)
      {
         directions += tokens[i] + " ";
      }
   }*/
   
   
   
   if(descript.length > 300)
   {
      var tempTokens = new Array();
      tempTokens = descript.split(" ");

      descript = descript.substring(0,300);

      var artTokens = new Array();
      artTokens = descript.split(" ");

      if(tempTokens[artTokens.length-1] != artTokens[artTokens.length-1] )
      {
         descript = artTokens[0];
         for(var j = 1; j < artTokens.length-1; j++)
          descript +=  " " + artTokens[j];
      }                    

      descript += "...";
   }
   
   
   if(count == 0)
      var divTag = '<div class="event first">';
   else
      var divTag = '<div class="event">';
     
             
   strOutput += divTag;
   strOutput += '<div class="date">' + sDate + '</div>';
   strOutput += '<h4><a href="' + url + '">' + title + '</a></h4>';
   strOutput += '<span class="location">' + location + '</span>';
   strOutput += '<p>' + descript + ' ' + artLink + '</p>';
   strOutput += '</div>';
     
   return strOutput;  
}
function generateResults(dateClicked,count,type)
{
   var results = "";
   paginate = "";

   var events = "Event";
   if(count > 1) 
      events+="s";
   results += '<div id="schedule_header">';
   results += '<h3>Complete Schedule</h3>';
   
   if(type == "day")
   {
      results += '<span class="submit">' +count + ' '+ events + ' | ' + '<a href="/events/submit-event-29188.aspx">Submit an Event</a></span>';
   }
   else if(type == "month")
   {
      results += '<span class="submit">' +count + ' '+ events + ' | ' + '<a href="/events/submit-event-29188.aspx">Submit an Event</a></span>';
   }


   results += '<div><span class="dates">Dates</span>';
   results += '<span class="event">Event</span></div>';
   results += '</div>';
         
         
         
   return results;
}
function drawMonthBoard(year,month,months)
{
   var overLap = checkOverlap(month,year);
   var context = "'month'";
   
   var results = ""; '<div class="story-col" id="shaded-col-thin">';
   
   results += '<p class="search-results-number">'; 
   results += "Next 6 Months: ";  
   
   for(var i = 0; i < months; i++)
   {
      results += '<a href="';
      results += 'javascript:loadMonth('+ overLap[0] +','+ overLap[1] + ')'; //getMonth(overLap[0]-1) + " " + overLap[1] + " ";
      results += '">';
      results += getMonth(overLap[0]-1).slice(0,3) + " " + overLap[1];
      results += '</a>';
      if(i != months-1)
         results += " | ";          
      overLap = checkOverlap(overLap[0],overLap[1]);
   }
   results += '</p>';
   //results += '</div>';
   return results;
   //document.getElementById('monthListing').innerHTML=results;

}
function turnPage(day,month,year,pageNum)
{
   activePage = pageNum;
   uBound = (pageNum*epm)-1;
   lBound = uBound - 9;      
   
   if(arbitrary)
      arbitraryDayView(year,month,day,daysToAdd);
   else if(day != 0)
      dayView(year,month,day);
   else if(day == 0 && month == 0 && year == 0)
      displayEvents();
   else
      monthView(month,year);
            
   document.location.href="#top";
}
function resetBounds(year,month,day,drawMonth,context,daysToAdd)
{
   
   activePage = 1;
   lBound = 0;
   uBound = epm - 1;
   arbitrary = false
  // count = 0;
  
   if(context == "month")
      monthView(month,year);
   else if(context=="day")
      dayView(year,month,day);
   else
      arbitraryDayView(year,month,day,daysToAdd);
}
function handleDay(year,month,day)
{

   if(year == prevYear && month == prevMonth && day == prevDay)
   {  
      resetBounds(year,month,day,-1,"day",0);
      //dayView(year,month,day);
   }
   else
   {
      resetBounds(year,month,day,-1,"day",0);
      //dayView(year,month,day);
      prevYear = year;
      prevMonth = month;
      prevDay = day;
   }
}
function setBounds(lbound,ubound,month,year)
{
   lBound = lbound;
   uBound = ubound;
   pages = 0;
   monthView(month,year);
}
function loadMonth(month,year)
{
   /*
   if(reloadXML(year+"_"+month+".xml"))
      resetBounds(year,month,1,-1,"month",0)
   else
     generateErrorMessage(month,year);        
   */
   drawMonth(month,year,0);
   
}
function drawMonth(month,year,drawFirst)
{
   //loadMonth(month,year);
   document.getElementById('calendar').innerHTML = "Loading. . .";
   reloadXML(year+"_"+month+".xml");
   drawCal(month,year,drawFirst);
   if(!drawFirst)
      resetBounds(year,month,1,-1,"month",0);
}
//This function draws the calender for the given month and year
function drawCal(month,year,drawFirst)
{   
   //these 4 values hold the next and previous month and year with respect
   //to the provided month and year.
   var pMonth;
   var nMonth;
   var pYear = year;
   var nYear = year;
   
   //checking for calendar wrap around one year behind
   if(month != 1)
      pMonth = month-1;
   else
   {
      pMonth = 12;
      pYear--;
      
   }
      
   //checking for calendar wrap around one year before
   if(month != 12)
   {
      nMonth = month;
      nMonth++;
   }
   else
   {
      nMonth=1
      nYear++;
   } 
          
   //generating the calendar header
   var calCode = "";
   
   calCode += '<table class="cal-small">';
   calCode += '<tr class="month">';
   calCode += '<th><a href="javascript:drawMonth('+pMonth+','+pYear+',0)" title="previous month">&laquo;</a></th>';
   calCode += '<th colspan="5"><a href="javascript:resetBounds('+year+','+month+',1,-1,'+ "'month'" +',0)">'+getMonth(month-1)+' '+year+'</a></th>';
   calCode += '<th><a href="javascript:drawMonth('+nMonth+','+nYear+',0)">&raquo;</a></th></tr>';
   calCode += '<tr class="weekdays"><th scope="col">Su</th><th scope="col">M</th><th scope="col">Tu</th><th scope="col">W</th><th scope="col">Th</th><th scope="col">F</th><th scope="col">Sa</th></tr><tr>';
   
   var daysThisMonth = getDaysInMonth(month,year);
   var weekDay = 0;
   var lastDay = getDaysInMonth(pMonth,pYear);
   
   //this loop is used to create the calendar
   for(var i = 1; i<=daysThisMonth; i++)
   {
      var currDate = new Date();
      currDate.setFullYear(year,month-1,i);
      day = currDate.getDay();
      
      //starting a new week
      if(weekDay == 7)
      {
         weekDay=0;
         calCode += '</tr><tr>';
      }
      
      //checking if the current weekDay in the loop matches with the current weekday of the month
      //if so print that day, else we print the previous month's date
      if(day==weekDay)
      {
         if(checkForEvent(year,month,currDate.getDate()))
         {
            calCode += '<td><a href="javascript:handleDay('+currDate.getFullYear()+','+(currDate.getMonth()+1)+','+currDate.getDate()+')">'+i+'</a></td>';
         }
         else
         {
            calCode += '<td>'+i+'</td>';
         }
      }
      else
      {
         var dDay = weekDay;
         dDay++;
         var lastMonthDay = lastDay-(day-dDay);
         //if(checkForEvent(pYear,pMonth,lastMonthDay))
         //{
         //   calCode += '<td class="off"><a href="javascript:dayView('+pYear+','+pMonth+','+lastMonthDay+')">'+lastMonthDay+'</a></td>';
         //}
         //else
         //{
            calCode += '<td class="off">'+lastMonthDay+'</td>';
         //}
         i--;
      }
      
      //checking if it's the last day of the month, and if there is an incomplete
      //week that needs to be filled with the first j days of the next month
      if(i==daysThisMonth && weekDay!=6)
      {  
         var j = 1;
         while(weekDay!=6)
         {
            //if(checkForEvent(nYear,nMonth,j))
            //{
            //   calCode += '<td class="nextMonth"><a href="javascript:dayView('+nYear+','+nMonth+','+j+')">'+j+'</a></td>';
            //}
            //else
            //{
               calCode += '<td class="off">'+j+'</a></td>';
            //}
            weekDay++;
            j++;
         }
      }
      weekDay++;
   }
   calCode += '</table>';
   //calCode += '<br /><div class="moreLink"><NOBR><a href="/socialdatebook/31478.asp">SUBMIT YOUR EVENT &#xBB;</a></NOBR></div>';
   //calCode += '<br /><br />Sponsored by: <br /><img src="/images/graves_164px.gif">';
   document.getElementById('calendar').innerHTML = calCode;     
   
   if(drawFirst == 1)
   {
      dayView(year,month,1);
   }
}
function drawError(year,month,day)
{
   date = new Date();
   date.setFullYear(year,month-1,day);
   var results = "";
   results += '<table class="resultsHeader" cellpadding="0" cellspacing="0">';
   results += '<tr>';
   results += '<td valign="baseline"><h3>0 events found for <BR /> ' + getDay(date.getDay()) +" "+getMonth(month-1)+ " " +day +', '+year + '</h3></td>';
   //results += '<td valign="baseline"><h3>0 events found for ' +getMonth(month-1)+ '</h3></td>';
   results += '<td valign="baseline" class="pageToolList" align="right">';
   results += '<ul><li><a href="/code/26171.asp">E-MAIL</a></li>';
   results += '<li><a href="/entertainment/calendar/default.asp?action=print">PRINT</a></li>';
   results += '</td></ul></tr></table>';
   document.getElementById('divContent').innerHTML = results;
}
function checkForEvent(year,month,day)
{

    if(xmlDoc == null)
      return false;
    var startDates  = xmlDoc.getElementsByTagName("startDate");
    var endDates    = xmlDoc.getElementsByTagName("endDate");
    
    for(var i = 0; i < startDates.length; i++)
    {
       var syear  = startDates[i].attributes.getNamedItem("year").value;
       var smonth = startDates[i].attributes.getNamedItem("month").value;
       var sday   = startDates[i].attributes.getNamedItem("day").value;
       var eyear  = endDates[i].attributes.getNamedItem("year").value;
       var emonth = endDates[i].attributes.getNamedItem("month").value;
       var eday   = endDates[i].attributes.getNamedItem("day").value;
       var startDate = new Date();
       var endDate = new Date();
       var checkDate = new Date();
       
       startDate.setFullYear(syear,smonth-1,sday);
       endDate.setFullYear(eyear,emonth-1,eday);
       checkDate.setFullYear(year,month-1,day);
       
       
       if(syear == year && smonth == month && sday == day)
          return true;
       else if(eyear == year && emonth == month && eday == day)
          return true;
       else if(startDate < checkDate && checkDate < endDate)
          return true;
    }
    return false;
}
//this function returns the name of the month given a number
function getMonth(month)
{   
   return months[month];
}
//this function returns the name of the weekday given a number
function getDay(day)
{
   return days[day];
}
//this function retrieves the number of days in a month given an month and a year
//it also takes into account a leap year.
function getDaysInMonth(month,year)
{
   if ((month-1==1)&&(year%4==0)&&((year%100!=0)||(year%400==0)))
{
      return 29;
   }
   else
   {
      return daysInMonth[month-1];
   }
}
function filterMe(txt)
{
   if(txt != null)
   {
      txt = txt.replace(/&gt;/g,">");
      txt = txt.replace(/&lt;/g,"<");
      txt = txt.replace(/&amp;/g,"&");
      return txt;
   }
}
function reloadXML(url)
{  
   //alert(url);
   if (xmlhttp!=null)
   {
      xmlhttp.onreadystatechange=state_Change;
      xmlhttp.open("GET",url,false);
      xmlhttp.send(null);
   }
   else
   {
      alert("Your browser does not support XMLHTTP.");
   }
   
   if (xmlhttp.status==200)
   {  //alert("no problems");
      xmlDoc = null;
      xmlDoc = xmlhttp.responseXML;
      
      return true;
   }
   else
   {
      //alert("Problem retrieving XML data");
      return false;
   }
}
function state_Change()
{
   if (xmlhttp.readyState==4)
   {
   }
}
function testSelect(form,days) 
{
   //item = form.list.selectedIndex;
   //result = form.list.options[item].text;
   //result = form
   
   result = form;
   
   //alert("testSelect(" + form + "," + days +")");
   
   var year = ldate.getFullYear();
   var month = ldate.getMonth()+1;
   var day = ldate.getDate();
   
   //alert(ldate);
      
   if(result == "ThisMonth")
   {
      reloadXML(year+"_"+month+".xml");
      resetBounds(year,month,0,-1,"month",0);
      drawCal(month,year,0);
   }
   else if(result == "ThisWeek")
   {
      //alert(year + " " + month + " " + day + " " + "week " + days);
      reloadXML(year+"_"+month+".xml");
      resetBounds(year,month,day,-1,"week",days);      
      drawCal(month,year,0);
   }
   else if(result == "Today")
   {  
      reloadXML(year+"_"+month+".xml");
      resetBounds(year,month,day,-1,"day",0); 
      drawCal(month,year,0);
   }
   else if(result == "spMonth")
   {
      var dayString = "" + days;
      var datePieces = dayString.split("42");            
      //resetBounds(datePieces[1],datePieces[0],0,-1,"month",0);
      //drawMonth(datePieces[0],datePieces[1]);
      loadMonth(datePieces[0],datePieces[1]);
      drawCal(datePieces[0],datePieces[1]);
   }
    
   //document.list.submit();      
      
   //alert (result);
}