 /*
  * This file is used for the Presentation of News/Events/Highlight
  * of ministry to visitor
  * Author              :   Shanmugaraja
  * Date of Creation    :   25-Apr-2002.
  * Last Modified       :   06-Aug-2002.
  * Modified by         :   Shanmugaraja
  */

//SET ARRAYS
var event  = new Array();
var Days_in_Month = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var day_of_week= new Array('&#160;','Sun','Mon','Tue','Wed','Thu','Fri','Sat');
var month_of_year = new Array('January','February','March','April','May','June','July','August','September','October','November','December');

function BuildCalendar(year,month,date,imgpath)
{
    //DECLARE AND INITIALIZE VARIABLES
    var Calendar = new Date();
    var today = new Date();

	today = today.getFullYear()+"/"+(today.getMonth()+1).toString().replace(/^([0-9]{1})$/, '0$1')+"/"+today.getDate().toString().replace(/^([0-9]{1})$/, '0$1');

    if (month.length > 1 && month.substr(0,1)=='0')
        month = month.substr(1);

    month = parseInt(month) - 1;

    var DAYS_OF_WEEK = 8;    // "constant" for number of days in a week
    var DAYS_OF_MONTH = 31;  // "constant" for number of days in a month
    var cal;                 // Used for printing
    var orig=Calendar.getMonth();

    Calendar.setDate(1);       // Start the calendar day at '1'
    Calendar.setMonth(month);   // Start the calendar month at now
    Calendar.setYear(year);

    /* VARIABLES FOR FORMATTING
    NOTE: You can format the 'BORDER', 'BGCOLOR', 'CELLPADDING', 'BORDERCOLOR'
          tags to customize your caledanr's look. */
    var week_day;
	var Font_start='<font face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular" color="#6666FF" size="2">';
	var Font_end='</font>';
	var Font_count_start='<font size="2" face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular" color="#009900">';

	var TR_start = '<TR>';
    var TR_end = '</TR>';
    var highlight_start = '<TD HEIGHT="30" ALIGN="right" valign="top" WIDTH="70" BGCOLOR="#bce7ff"><B>';
    var highlight_end   = '</B>';
    var TD_start = '<TD HEIGHT="70" BGCOLOR="#FFFFFF" valign="top" align="right" WIDTH="70">';
    var TD_end = '</TD>';

    /* BEGIN CODE FOR CALENDAR
    NOTE: You can format the 'BORDER', 'BGCOLOR', 'CELLPADDING', 'BORDERCOLOR'
    tags to customize your calendar's look.#C9DCEC*/
    title = '<table border="0" width="601" cellspacing="0" cellpadding="0">';
    title +='<tr><td width="2%"><img border="0" src="'+imgpath+'left.gif" width="12" height="23"></td>';
    title +='<td align="center" COLSPAN="' + DAYS_OF_WEEK + '" bgcolor="#C0C0C0"><b><font face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular" size="2" color="#000080">';
    title +=month_of_year[month] + '   ' + year + '</font></b></td><td width="2%"><img border="0" src="'+imgpath+'right.gif" width="12" height="23"></td>';
	title +='</tr></table>';

	cal=title;
	cal+='<table border="0" cellpadding="0" BGCOLOR="#CCCCCC" cellspacing="0" width="600" align="center">';
	cal+='<tr><td width="600">';
	cal +='<table align="center" border="0" cellpadding="2" cellspacing="1" width="600" bgcolor="#CCCCCC">'
 // cal += '<TD COLSPAN="' + DAYS_OF_WEEK + '" BGCOLOR="#CCCCCC"><CENTER><B>';	
 // cal += '<font size="2" face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular" color="#000080">'+month_of_year[month]  + '   ' + year + '</font></B>' + TD_end + TR_end;
    cal += TR_start;


    // LOOPS FOR EACH DAY OF WEEK
    for(index=0; index < DAYS_OF_WEEK; index++)
    {
		week_day_count = 0;
		if (index)
		{
			week_day_count = GetWeekDayCount(index,month,year);
		}

		if (week_day_count > 0)
		{
			prefix='';
			if ((month+1) < 10)
			{
				prefix = '0'
			}
	        cal += TD_start + "<a href="+year+prefix+(month+1)+"0"+(index-1)+"wda.1wd.html>"+Font_start+(day_of_week[index])+Font_end+"</a>"+ TD_end;
		}
		else
	        cal += TD_start +Font_start+ (day_of_week[index]) + Font_end+TD_end;
    }

    cal += TD_end + TR_end;

    var flag=0;
    var i=2;

    month = month + 1;
    month = month.toString().replace(/^([0-9]{1})$/,'0$1');

    // FILL IN BLANK GAPS UNTIL TODAY'S DAY
    for(index=0; index < Calendar.getDay()+1; index++)
    {
        if(index==0)
        {
            if(Calendar.getDay()!=0)
            {
				count=WeekCount(1,month,year);
				if (count==0)
				{
					cal += "<td BGCOLOR='#FFFFFF' WIDTH='70'>"+Font_start+"Week1"+Font_count_start+"("+count+")"+Font_end+Font_end+"</td>";
				}
				else
				{
					cal += "<td BGCOLOR='#FFFFFF' WIDTH='70'><a href='"+year+""+month+"01wa.1w.html'>"+Font_start+"Week1"+Font_count_start+"("+count+")"+Font_end+Font_end+"</a></td>";
				}
            }
            else{i=1;}
        }
        else
            cal += TD_start + ' &nbsp; ' + TD_end;
    }

    // LOOPS FOR EACH DAY IN CALENDAR
    for(index=0; index < DAYS_OF_MONTH; index++)
    {

        if((Calendar.getDate()< index && flag==0))
        {
            flag=1;
            if(week_day != 6)
            {
                for(x=0;x<(6-week_day);x++)
                {
                    cal += TD_start + '&nbsp;' + TD_end;
                }
            }
        }

        if( Calendar.getDate() > index )
        {
            // RETURNS THE NEXT DAY TO PRINT
            week_day =Calendar.getDay();

            // START NEW ROW FOR FIRST DAY OF WEEK
            if(week_day == 0)
            {
				count=WeekCount(i,month,year);
				if (count == 0)
				{
					cal += TR_start+"<td BGCOLOR='#FFFFFF' WIDTH='70'>"+Font_start+"Week"+i+Font_count_start+"(0)"+Font_end+Font_end+"</td>";
				}
				else
				{
					cal += TR_start+"<td BGCOLOR='#FFFFFF' WIDTH='70'><a href='"+year+""+month+"0"+i+"wa.1w.html'>"+Font_start+"Week"+i+Font_count_start+"("+count+")"+Font_end+Font_end+"</a></td>";
				}
                i=i+1;
            }

            if(week_day != DAYS_OF_WEEK)
            {
                // SET VARIABLE INSIDE LOOP FOR INCREMENTING PURPOSES
				var char_count = 5;
                var day  = Calendar.getDate();
                linkday = day.toString().replace(/^([0-9]{1})$/,'0$1');

                current_day = year+"/"+month.toString().replace(/^([0-9]{1})$/,'0$1')+"/"+day.toString().replace(/^([0-9]{1})$/,'0$1');
                if(event[day-1]!=0)
				{
					temp_day = day;
                    day="<a href='"+year+""+month+""+linkday+"a.1d.html'>"+Font_start+day+Font_count_start+"("+event[day-1]+")"+Font_end+Font_end+"</a>";

					if (event_title[temp_day].length > 2)
					{
						day += '<br><font size=1><a href="event.'+event_title[temp_day][0]+'.html">'+event_title[temp_day][1].substring(0,getWordLength(event_title[temp_day][1],char_count))+'..</a></font>';
					}
					if (event_title[temp_day].length > 4)
					{
						day += '<br><font size=1><a href="event.'+event_title[temp_day][2]+'.html">'+event_title[temp_day][3].substring(0,getWordLength(event_title[temp_day][3],char_count))+'..</a></font>';
					}
					if (event_title[temp_day].length > 6)
					{
						day += '<br><font size=1><a href="event.'+event_title[temp_day][4]+'.html">'+event_title[temp_day][5].substring(0,getWordLength(event_title[temp_day][5],char_count))+'..</a></font>';
					}
					if (event_title[temp_day].length > 8)
					{
						day += '<br><font size=1>'+"[<a href='"+year+""+month+""+linkday+"a.1d.html'>"+'More</a>]</font>';
					}
				}

              // HIGHLIGHT TODAY'S DATE
              if(current_day==today)
              {
                  cal += highlight_start + Font_start + day + Font_end + highlight_end + TD_end;
              }

              // PRINTS DAY ##########################################################
              else
                  cal += TD_start + Font_start + day + Font_end + TD_end;
            }
            // END ROW FOR LAST DAY OF WEEK


            if(Calendar.getDate()==31)
            {
                if(week_day != 6)
                {

                    for(x=0;x<(6-week_day);x++)
                    {
                        cal += TD_start + '&nbsp;' + TD_end;
                    }
                }
            }
            //if(week_day)
            if((week_day+2) == DAYS_OF_WEEK)
            {
                cal += TR_end;
            }
        }


        // INCREMENTS UNTIL END OF THE MONTH
        Calendar.setDate(Calendar.getDate()+1);

    }// end for loop

    cal += '</TD></TR></TABLE>';
	cal += '</td></tr></table>'
//  cal+='<table border="0" cellpadding="0" cellspacing="0" width="600" align="center"><tr><td width="600"><img src="/images/cal-bott.gif" width="100%" height="12" border="0"/></td></tr></table>';
	document.write(cal);
}

function getWordLength(str,min_char)
{
	var i=0;
	for (i=min_char; i < str.length; i++)
	{
		if (str.charAt(i)==' ')
		{
			return i;
		}
	}
	return i;
}

function WeekCount(eventWeek,eventMonth,eventYear)
{	
	var count=0;
	var week_range=GetWeekRange(eventWeek,eventMonth,eventYear);
	arr_week_range = week_range.split("-");

	var start = arr_week_range[0];
	var end = arr_week_range[1];

	for(i=eval(start);i<=eval(end);i++)
	{
		count+=parseInt(event[i-1]);
	}

	return parseInt(count);

}

function GetWeekRange(eventWeek,eventMonth,eventYear)
{
	curr_date = new Date(eventYear,eventMonth-1,1);
	arr_weeks = new Array();
	arr_week_range = new Array();
	start=curr_date.getDay();

	month = eventMonth-1;
	maxday=GetMaxday(month,eventYear);

	arr_weekday = new Array(6,5,4,3,2,1,0);
	x = 1;
	y = 1 + arr_weekday[start];
	
	arr_weeks="";
	while(y <= maxday)
	{
		arr_weeks += x+"-"+y+"/";
		x = y + 1;
		y = x + 6;
	}
	if(x>maxday) x=maxday;
	y = maxday;
	arr_weeks += x+"-"+y+"/";
	arr_week_range = arr_weeks.split("/");
	return arr_week_range[eventWeek-1];
}

function GetMaxday(month,year)
{
	if (month == 2)
	{
		if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)))
		{
			 Days_in_Month[1] = 29;
		}
	}
	maxday=Days_in_Month[month];
	return maxday;
}


function GetWeekDays(day,month,year)
{
	curr_date = new Date(year,month,1);
	start=curr_date.getDay();
	arr_day=new Array();

	maxday=GetMaxday(month,year);

	temp = start;
	arr_day[temp]=1;
	for(k=1;k<=6;k++)
	{
		temp++;
		if (temp>6)
			temp=0;
		arr_day[temp]=k+1;
	}
	
	date_range = "";
	temp = arr_day[day-1];
	while (temp<=maxday)
	{
		date_range+=temp+"-";
		temp+=7;
	}
	date_range = date_range.substr(0,date_range.length-1);
	return date_range;
}

function GetWeekDayCount(day,month,year)
{	
	var count=0;
	var week_day_range=GetWeekDays(day,month,year)

	arr_week_day_range = week_day_range.split("-");

	var start = arr_week_day_range[0];
	var end = arr_week_day_range[arr_week_day_range.length-1];

	for(i=eval(start);i<=eval(end);i=i+7)
	{
		count+=parseInt(event[i-1]);
	}
	return parseInt(count);
}

