var numEvents = 0;

var numCal = 0;
var calMonths = new Array();
var calYears = new Array();
var calDOMs = new Array();
var calEvents = new Array();
var calTimes = new Array();
var calLinks = new Array();
var calLinkTexts = new Array();
var calNumLines = new Array();

var numList = 0;
var listMonths = new Array();
var listYears = new Array();
var listDOMs = new Array();
var listEvents = new Array();
var listTimes = new Array();
var listLinks = new Array();
var listLinkTexts = new Array();
var listSeries = new Array();

function GetNumber(check_elem)
{
    return GetAttr(check_elem, "number");
}

function GetNumLines(check_elem)
{
    num_lines_attr = GetAttr(check_elem, "num-lines");
    if (num_lines_attr.length == 0)
    {
        return 0;
    }
    return num_lines_attr;
}    

function GetSeries(check_elem)
{
    return GetAttr(check_elem, "series");
}

function GetEvent(check_elem)
{
    return GetAttr(check_elem, "event");
}

function GetTime(check_elem)
{
    return GetAttr(check_elem, "time");
}

function GetLink(check_elem)
{
    return GetAttr(check_elem, "link");
}

function GetLinkText(check_elem)
{
    return GetAttr(check_elem, "link-text");
}

function GetAttr(check_elem, attr_name)
{
    the_attr = check_elem.attributes;
    num_attr = the_attr.length;
    for (acount=0; acount<num_attr; acount++)
    {
        curr_attr = the_attr[acount];
        curr_name = String(curr_attr.nodeName);
        search_name = attr_name;
        
        if ( (curr_name.indexOf(search_name) >= 0) &&
             (curr_name.length == search_name.length) )
        {
             return curr_attr.nodeValue;
        }  
    }
    return "";
}

function GetParentNumber(the_elem)
{
    parent_node = the_elem.parentNode;
    return GetNumber(parent_node);
}

function IsParentNumber(check_elem, check_val)
{
    parent_node = check_elem.parentNode;
    return CheckNumber(parent_node, check_val);     
}

function GetGrandParentNumber(the_elem)
{
    grandparent_node = the_elem.parentNode.parentNode;
    return GetNumber(grandparent_node);
}

function IsGrandParentNumber(check_elem, check_val)
{
    grandparent_node = check_elem.parentNode.parentNode;
    return CheckNumber(grandparent_node, check_val);
}

function CheckNumber(check_elem, check_val)
{
    if (GetNumber(check_elem) == String(check_val))
    {
        return 1;
    } 
    return 0;     
}

function writeSundaySchedule(which_sunday, num_sundays)
{
    document.write('Church<BR/><TABLE><TR><TD class="menuButton" ><A class="sunday_link" HREF="services.htm" >Service Times</A></TD></TR></TABLE>');
    if (which_sunday == num_sundays)
    {
        writeLastSunday();
    }
}

function writeLastSunday()
{
    document.write('9:15-9:45 Birthday Breakfast<BR/>');
}

function writeWednesdaySchedule()
{
    document.write('Church<BR/><TABLE><TR><TD class="menuButton"><A class="day_link" HREF="services.htm">Service Times</A></TD></TR></TABLE>');
}

function writeMondaySchedule(curr_monday, dispMonthNumber)
{
    if ((dispMonthNumber == 5) && (curr_monday == 5))
    {
        document.write('<FONT COLOR="000000">Memorial Day</FONT>');
    }
}

function writeThursdaySchedule(curr_thursday, dispMonthNumber)
{
    if ((dispMonthNumber == 11) && (curr_thursday == 4))
    {
        document.write('<FONT COLOR="FF6600">Thanksgiving</FONT>');
    }
}

function initAdhocDayParams(curr_month, curr_year, next_month, next_months_year)
{
    years = xmlDoc.getElementsByTagName("Year");
    months = xmlDoc.getElementsByTagName("Month");
    doms = xmlDoc.getElementsByTagName("DOM");
    numEvents = doms.length;
   
    for (count=0; count<numEvents; count++)
    {
        curr_dom = doms[count];
        
        if (IsElemInSpecMonth(curr_dom, curr_month, curr_year) ||
            IsElemInSpecMonth(curr_dom, next_month, next_months_year))
        {
            calYears[numCal] = GetGrandParentNumber(curr_dom);
            calMonths[numCal] = GetParentNumber(curr_dom);
            calDOMs[numCal] = GetNumber(curr_dom); 
            calEvents[numCal] = GetEvent(curr_dom);
            calTimes[numCal] = GetTime(curr_dom);
            calLinks[numCal] = GetLink(curr_dom);
            calLinkTexts[numCal] = GetLinkText(curr_dom);
            calNumLines[numCal] = GetNumLines(curr_dom);
            numCal++;
        }
        else
        {
            listYears[numList] = GetGrandParentNumber(curr_dom);
            listMonths[numList] = GetParentNumber(curr_dom);
            listDOMs[numList] = GetNumber(curr_dom);
            listEvents[numList] = GetEvent(curr_dom);
            listTimes[numList] = GetTime(curr_dom);
            listLinks[numList] = GetLink(curr_dom);
            listLinkTexts[numList] = GetLinkText(curr_dom);
            listSeries[numList] = GetSeries(curr_dom);
            numList++;
        }
    }
}

function IsElemInSpecMonth(the_elem, spec_month, spec_year)
{
    month_flag = IsParentNumber(the_elem, spec_month);
    year_flag = IsGrandParentNumber(the_elem, spec_year);
    if (month_flag && year_flag)
    {
        return 1;
    }
    return 0;
}

function writeAllComingEvents()
{   
    document.write('<TABLE width="850">');
    document.write('<TR>');
    document.write('<TD>');
    document.write('<A name="coming_events"/>');
    document.write('<H3> COMING EVENTS </H3>');
    document.write('The Lord\'s Return:  <A HREF="eternal_life.htm">How to get ready</A><BR/><BR/>');
    for (lcount=0; lcount<numList; lcount++)
    {
        if (listSeries[lcount].length == 6) // "middle"
        {
            continue;
        }
        if (listYears[lcount] < currYear)
        {
            continue;
        }
        if ( (listYears[lcount] == currYear) && (listMonths[lcount] < currMonth) )
        {
            continue;
        }
        if (listEvents[lcount].length == 0)
        {
            continue;
        }
     
        document.write(getMonthName(listMonths[lcount]));
        if (listDOMs[lcount] > 0)
        {
            document.write(" " + listDOMs[lcount] + ", ");
        }
        document.write(" " + listYears[lcount]);
        
        if (listSeries[lcount].length == 5) // "start" -- list date only if start of series 
        {
            document.write(" to ");
            continue;
        }
        document.write(" -- " );
        document.write(" " + listEvents[lcount]);
        if (listTimes[lcount].length > 0)
        {
            if (listSeries[lcount].length == 0)
            {
                document.write(" (");
                document.write(listTimes[lcount]);
                document.write(") ");
            }
        }
        if (listLinks[lcount].length > 0)
        {
            curr_link_text = listLinks[lcount];
            if (listLinkTexts[lcount].length > 0)
            {
                curr_link_text = listLinkTexts[lcount];
            }
            document.write(" -- <A HREF='" + listLinks[lcount] + "'>" + curr_link_text + "</A>");
        }
        document.write("<BR/><BR/>");
    }
    document.write('</TD>');
    document.write('</TR>');
    document.write('</TABLE>');
}


function writeAdhocDay(dom_number, month_number, year_number)
{
    same_day_count = 0;
    prev_dom = -9999;
    prev_month = -9999;
    prev_year = -9999;
    for (ecount=0; ecount<numEvents; ecount++)
    {
        if ( (dom_number == calDOMs[ecount])  &&
             (month_number == calMonths[ecount]) &&
             (year_number == calYears[ecount]))
        {
            for (line_count=0; line_count<calNumLines[ecount]; line_count++)
            {
                document.write(" <BR/>");
            }
            if ((dom_number == prev_dom) && (month_number == prev_month) && (year_number == prev_year))
            {
                same_day_count = same_day_count + 1;
            }
            else
            {
                same_day_count = 1;
            }
            if (same_day_count > 1)
            {
                document.write("<BR/>");
            }
            prev_dom = dom_number;
            prev_month = month_number;
            prev_year = year_number;

            document.write(calEvents[ecount] + "<BR/>");
            if (calTimes[ecount].length > 0)
            {
                 document.write(calTimes[ecount] + "<BR/>");   
            }
            if (calLinks[ecount].length > 0)
            {
                curr_link_text = calLinks[ecount];
                if (calLinkTexts[ecount].length > 0)
                {
                    curr_link_text = calLinkTexts[ecount];
                }
                document.write("<A HREF='" + calLinks[ecount] + "'>" + 
                                         curr_link_text + "</A><BR/>");
            }
        }
    }
}

function writeAdhocDayHoliday(dom_number, month_number, year_number)
{

    if (month_number == 12)
    {
         if (dom_number == 25)
         {
             document.write('<FONT color="red">Christmas</FONT>');
         }            
    }

    if (month_number == 7)
    {
         if (dom_number == 4)
         {
             document.write('Independence Day');
         }            
    }

    if (month_number == 1)
    {
        if (dom_number == 1)
        {
            document.write('New Year\'s Day');
        }
    }

    if (month_number == 2)
    {
        if (dom_number == 14)
        {
            document.write('Valentine\'s Day');
        }
    }

    if (year_number == 2009)
    {
        if (month_number == 4)
        {
            if (dom_number == 12)
            {
                document.write('Easter');
            }
        }
    }

}

