/* This script and many more are available free online at
The JavaScript Source!! http://javascript.internet.com
Created by: Shaun Bailey | http://www.sbwebdevelopment.co.uk */
// set up variables
var monthsArray = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var daysArray = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var prevYears = 10;	// number of years before current date
var futureYears = 10;	// number of years after current date
var today = new Date();
var nowMonth = today.getMonth();
var nowYear = today.getFullYear();
var curMonth = nowMonth;
var curYear = nowYear;
var monthEvents;
today.setDate(1);	// set to first day of the month

var eventsArray = new Array();
// format: dd,mm,yyyy,"event","frequency (Annual/Monthly/Weekly)" - Delete frequency for once-time occurrences
eventsArray[0] = new newEvent(25,12,2012,"عيد الميلاد","Annual");
eventsArray[1] = new newEvent(15,7,2011,"عيد مار قرياقوس","Annual");
eventsArray[2] = new newEvent(1,1,2012,"بداية الشهر","Monthly");
eventsArray[3] = new newEvent(8,12,2006,"Weekly occurence","Weekly");
eventsArray[4] = new newEvent(24,12,2010,"صوم الميلاد","Annual");
eventsArray[5] = new newEvent(4,12,2007,"الشهيدة بربارة","Annual");
eventsArray[6] = new newEvent(9,12,2007,"عيد البشارة");
eventsArray[7] = new newEvent(26,12,2006,"تهنئة العذراء مريم ثاتي أيام العيد","Annual");
eventsArray[8] = new newEvent(27,12,2006,"قتل اطفال بيت لحم","Annual");
eventsArray[9] = new newEvent(1,1,2011,"رأس السنة","Annual");
eventsArray[10] = new newEvent(21,12,2007,"الذكرى الرابعة لتنصيب غبطة البطريرك","Annual");
eventsArray[11] = new newEvent(6,1,2011,"عيد الدنح","Annual");
eventsArray[13] = new newEvent(28,1,2011,"مار اسطيفانوس");
eventsArray[16] = new newEvent(17,1,2011,"مار انطانيوس الكبير");
eventsArray[17] = new newEvent(18,1,2011,"صلاة لوحدة  المسيحين");
eventsArray[18] = new newEvent(19,1,2011,"صلاة لوحدة  المسيحين");
eventsArray[19] = new newEvent(20,1,2011,"صلاة لوحدة  المسيحين");
eventsArray[20] = new newEvent(21,1,2011,"الانجيلين الاربعة");
eventsArray[12] = new newEvent(14,2,2011,"صوم الباعوثة");
eventsArray[15] = new newEvent(15,2,2011,"صوم الباعوثة");
eventsArray[14] = new newEvent(16,2,2011,"صوم الباعوثة");
eventsArray[21] = new newEvent(23,2,2012,"بدء الصوم الكبير");
eventsArray[22] = new newEvent(3,4,2012,"جمعة لعازر");
eventsArray[23] = new newEvent(5,4,2012,"عيد الشعانين");
eventsArray[24] = new newEvent(3,4,2012,"بدء اسبوع الآلام");
eventsArray[25] = new newEvent(9,4,2012,"خميس الفصح عيد الكهنوت");
eventsArray[26] = new newEvent(10,4,2012,"جمعة الآلام");
eventsArray[27] = new newEvent(11,4,2012,"سبت النور");
eventsArray[28] = new newEvent(12,4,2012,"عيد القيامة");
eventsArray[29] = new newEvent(13,4,2012,"ثاني أيام عيد القيامة");
eventsArray[30] = new newEvent(17,4,2012,"جمعة الشهداء والمعترفين");
eventsArray[31] = new newEvent(19,4,2012,"الآحد الجديد مار اوراها");
eventsArray[35] = new newEvent(3,5,2012,"احد الدعوات الكهنوتية والرهبانية");
eventsArray[32] = new newEvent(6,4,2012,"الربان هرمز والشفعاء المحلين");
eventsArray[33] = new newEvent(1,5,2012," بدء شهر مريم / مار يوسف شفيع العمال ");
eventsArray[79] = new newEvent(10,5,2012,"عيد مار ادي رسول المشرق");
eventsArray[80] = new newEvent(21,5,2012,"هيد الصعود");
eventsArray[37] = new newEvent(5,5,2012,"القديسة شموني واولادها");
eventsArray[34] = new newEvent(21,5,2012,"عيد العنصرة");
eventsArray[35] = new newEvent(15,5,2012,"حافظة الزرع");
eventsArray[37] = new newEvent(31,5,2012,"عيد العنصرة / مريم ملكة الكون");
eventsArray[81] = new newEvent(7,6,2012,"احد الثالوث الاقدس");
eventsArray[37] = new newEvent(11,6,2012,"عيد الجسد");
eventsArray[36] = new newEvent(19,6,2012,"تذكار قلب يسوع");
eventsArray[38] = new newEvent(18,6,2012,"مار افرام معلم الكنيسة");
eventsArray[39] = new newEvent(21,6,2012,"زيارة مريم العذراء لاليصابات");
eventsArray[40] = new newEvent(27,6,2012,"أم المعونة الدائمة");
eventsArray[41] = new newEvent(19,7,2012,"نوسربل عيد 12 رسول");
eventsArray[42] = new newEvent(3,7,2012,"تذكار مار توما شفيع الكنيسة الكلدانية");
eventsArray[43] = new newEvent(24,7,2012,"مار يعقوب اسقف نصيبين");
eventsArray[44] = new newEvent(31,7,2012,"مار ماري رسول المشرق");
eventsArray[45] = new newEvent(17,7,2012,"تذكار ال 72 تلميذ");
eventsArray[46] = new newEvent(26,7,2012,"القديسة حنا");
eventsArray[47] = new newEvent(6,8,2012,"عيد التجلي");
eventsArray[48] = new newEvent(28,8,2012,"تذكار الشهيد مار شمعون برصباعي");
eventsArray[50] = new newEvent(14,8,2012,"صوم السيدة انقطاع عن اللحم");
eventsArray[49] = new newEvent(15,8,2012,"أنتقال العذراءالى السماء،وتذكار مار قرداغ");
eventsArray[51] = new newEvent(8,9,2012,"تذكار ولادة مريم العذراء");
eventsArray[52] = new newEvent(14,9,2012,"عيد الصليب المقدس");
eventsArray[53] = new newEvent(25,9,2012,"مارطهمزكرد وشيرين (مسكنتة)");
eventsArray[54] = new newEvent(1,10,2012,"تذكار القديسة تريزة الطفل يسوع)");
eventsArray[55] = new newEvent(3,10,2012,"تذكار ما إيليا الحيري)");
eventsArray[56] = new newEvent(4,10,2012," العذراء مريم سلطانة الوردية المقدسة");
eventsArray[57] = new newEvent(11,10,2012,"القديسة بريجيتا شفيعة السويد");
eventsArray[58] = new newEvent(15,10,2012,"مار ميخائيل رفيق الملائكة");
eventsArray[58] = new newEvent(25,10,2012,"تذكار مار بثيون الشهيد");
eventsArray[59] = new newEvent(1,11,2012,"تذكار مار ميخا النوهدري و عيد جميع القديسين)");
eventsArray[60] = new newEvent(2,11,2012,"عيد جميع الموتى / السويد");
eventsArray[61] = new newEvent(7,11,2012," تذكار مار أوجين ورفاقه");
eventsArray[62] = new newEvent(15,11,2012,"القديس البير الكبير");
eventsArray[63] = new newEvent(22,11,2012,"عيد يسوع الملك");
eventsArray[64] = new newEvent(27,11,2012,"مار يعقوب المقطع");
eventsArray[73] = new newEvent(30,11,2012,"مار اندراوس الرسول");
eventsArray[65] = new newEvent(1,12,2012,"بدء صلاة التبريكات");
eventsArray[66] = new newEvent(4,12,2012,"الشهيدة بربارة");
eventsArray[67] = new newEvent(6,12,2012," عيد البشارة");
eventsArray[68] = new newEvent(8,12,2012,"المحبول بها بلا دنس");
eventsArray[69] = new newEvent(20,12,2012,"عيد مار يوسف");
eventsArray[70] = new newEvent(24,12,2012,"  بدء صوم الميلاد انقطاع عن اللحم / الذكرى الخامسة لتنصيب غبطة الطريرك عمانوئيل الثالث");
eventsArray[71] = new newEvent(25,12,2012,"عيد الميلاد");
eventsArray[72] = new newEvent(26,12,2012,"ثاني ايام العيد وذكرى قتل أطفال بيت لحم");
eventsArray[74] = new newEvent(27,12,2012,"ذكرى قتل أطفال بيت لحم");
eventsArray[75] = new newEvent(11,2,2012,"ذكرى ظهورات لورد (151)");
eventsArray[76] = new newEvent(13,2,2012,"شفيع الكنيسة الخورنية");
eventsArray[77] = new newEvent(20,2,2012,"تذكار الموتى المؤمنين");
eventsArray[78] = new newEvent(24,4,2012,"مار كوركيس وذكرى تنصيب قداسة البابا ");
eventsArray[0] = new newEvent(25,12,2012,"عيد الميلاد","Annual");
// create event object
function newEvent(day, month, year, memo, occurrence) {
	this.day = day;
	this.month = month;
	this.year = year;
	this.memo = memo;
	this.occurrence = occurrence;
	this.createMonth = createMonth;
}

// creates calendar for the current month
function createMonth() {
	var startDay = today.getDay();	// first day of the month
	var monLength = monthLength();	// number of days in month
	var lastDay = startDay+monLength-1;	// last day of the month
	monthEvents = new Array();	// array to hold events for current month

	// search through events for current month
	for(i=0;i<eventsArray.length;i++) {
		if(eventsArray[i].month == (curMonth+1) && (eventsArray[i].year == curYear || eventsArray[i].occurrence == "Annual")) {
			monthEvents[monthEvents.length] = i;
		}
		else if(eventsArray[i].occurrence == "Monthly" || eventsArray[i].occurrence == "Weekly") {
			monthEvents[monthEvents.length] = i;
		}
	}

	var content = "<table class=\"calendar\" cellspacing=\"0\">\n";
	// create headers
	content += "<tr>\n<th><a class=\"button\" href=\"javascript:void(prev())\">Previous</a></th>\n";
	content += "<th colspan=\"5\">" + monthsArray[curMonth] + " " + curYear + "</th>\n";
	content += "<th><a class=\"button\" href=\"javascript:void(next())\">Next</a></th>\n</tr><tr>\n";
	for(i=0;i<7;i++) {
		content += "<th>" + daysArray[i] + "</th>\n";
	}
	content += "</tr>\n<tr>\n";

	// create main content of calendar
	for(i=0;i<42;i++) {
		var occ = "";
		var occContent = "";
		var curDay = i+1-startDay;
		// check day against months events
		for(j=0;j<monthEvents.length;j++) {
				var occDate = new Date();
				occDate.setDate(eventsArray[monthEvents[j]].day);
				occDate.setMonth(eventsArray[monthEvents[j]].month);
				occDate.setFullYear(eventsArray[monthEvents[j]].year);

				if(curDay == eventsArray[monthEvents[j]].day && eventsArray[monthEvents[j]].occurrence != "Weekly") {	// deal with day, monthly and annual events
					occ = " class=\"occassion\"";
					fullContent = eventsArray[monthEvents[j]].memo;
					if(eventsArray[monthEvents[j]].memo.length > 14) {
						occContent = fullContent.substr(0,13) + "...";
						break;
					}
					else {
						occContent = fullContent;
						break;
					}
				}
				else if(occDate.getDate() == (i%7) && eventsArray[monthEvents[j]].occurrence == "Weekly") {	// deal with weekly events
					occ = " class=\"occassion\"";
						fullContent = eventsArray[monthEvents[j]].memo;
					if(eventsArray[monthEvents[j]].memo.length > 14) {
						occContent = fullContent.substr(0,13) + "...";
						break;
					}
					else {
						occContent = fullContent;
						break;
					}
				}
		}
		if(i>lastDay && i==35) {	// do not show last row if not needed
			break;
		}
		if(i<startDay || i>lastDay) {	// show blank cells before and after month
			content += "<td class=\"blank\"> </td>\n";
		}
		else {
			if(!(i%7) || !((i+1)%7) ) {	// get days of the weekend
				if(!(i%7)&& i>0) {
					content += "</tr>\n<tr>\n";
				}
				content += "<td" + occ + "><span class=\"weekend\">"+curDay+"</span><br /><a href=\"javascript:void(alert('"+fullContent+"'));s\">"+occContent+"</a></td>\n";
			}
			else {
				content += "<td" + occ + ">"+curDay+"<br /><a href=\"javascript:void(alert('"+fullContent+"'));\">"+occContent+"</a></td>\n";
			}
		}
	}
	content += "</tr></table>\n";

	return content;
}

// get length of month
function monthLength() {
	monLength = 31;
	if(curMonth == 3 || curMonth == 5 || curMonth == 8 || curMonth == 10) monLength = 30;
	if(curMonth == 1) {
		if(curYear%4) {
			monLength = 28;
		}
		else {
			monLength = 29;
		}
	}
	return monLength;
}

function droplists() {
	content = "<form name=\"calNav\" method=\"post\" action=\"\">\n";
	content += "<select name=\"month\">\n";
	for(i=0;i<12;i++) {
		content += "<option value=\""+i +"\"";
		if(i == curMonth) {
			content += " selected=\"selected\"";
		}
		content += ">" + monthsArray[i] + "</option>\n";
	}
	content += "</select> <select name=\"year\">\n";
	for(i=(nowYear-prevYears);i<=(nowYear+futureYears);i++) {
		content += "<option value=\""+i +"\"";
		if(i == curYear) {
			content += " selected=\"selected\"";
		}
		content += ">" + i + "</option>\n";
	}
	content += "</select>\n<input type=\"button\" value=\"Go\" onclick=\"newMonth()\" />\n";
	content += "</form>\n";
	return content;
}

function newMonth() {
	var mon = document.calNav.month.selectedIndex;
	curMonth = parseInt(document.calNav.month.options[mon].value);
	var yr = document.calNav.year.selectedIndex;
	curYear = parseInt(document.calNav.year.options[yr].value);
	today.setMonth(curMonth);
	today.setFullYear(curYear);
	document.getElementById("showCal").innerHTML = droplists() + createMonth();
}

// goto previous month
function prev() {
	curMonth -= 1;
	if(curMonth<0) {
		curMonth=11;
		if(curYear>(nowYear-prevYears)) {
			curYear -= 1;
		}
	}
	today.setMonth(curMonth);
	today.setFullYear(curYear);
	document.getElementById("showCal").innerHTML = droplists() + createMonth();
}

// goto next month
function next() {
	curMonth += 1;
	if(curMonth>11) {
		curMonth=0;
		if(curYear<(nowYear+futureYears)) {
			curYear += 1;
		}
	}
	today.setMonth(curMonth);
	today.setFullYear(curYear);
	document.getElementById("showCal").innerHTML = droplists() + createMonth();
}

