
//////////////////////////////////////////////////////////////////////////
//
//	loadCalenderActivities
//
//////////////////////////////////////////////////////////////////////////

function loadCalenderActivities ( )
{
		
	updateCalenderActivitiesLinksFromFile("..//Documents//calendar.txt" )
	
}

//////////////////////////////////////////////////////////////////////////
//
//	updateCalenderActivitiesLinksFromFile
//
//////////////////////////////////////////////////////////////////////////

function updateCalenderActivitiesLinksFromFile(pURL ) {
	
	xmlhttp=null
	
	if (window.ActiveXObject) { //IE 
		xmlhttp=new ActiveXObject('Microsoft.XMLHTTP')
	} else if (window.XMLHttpRequest) { // code for Mozilla, Safari, etc 
		xmlhttp=new XMLHttpRequest()
	}
  
	if (xmlhttp) {
		xmlhttp.onreadystatechange=updateCalenderActivitiesLinks
		xmlhttp.open('GET', pURL, true)
		xmlhttp.send(null)
	} else {
		alert ("Your browser does not support XMLHTTP.")
  }
}


//////////////////////////////////////////////////////////////////////////
//
//	getCalendarNumberDaysInMonth
//
//////////////////////////////////////////////////////////////////////////

function getCalendarNumberDaysInMonth ( month, year ) {

	var noDaysArray  = new Array(31, 28, 31, 30, 31, 30, 
                    			     31, 31, 30, 31, 30, 31)

  // determine number of days in month
	var noDays = noDaysArray[month-1]
  
	if ( month == 2 ) {
    if ( ( year % 4   == 0 && year % 100 != 0 ) || year % 400 == 0) {
      	noDays = 29
     }
	}
	
	return noDays
}

//////////////////////////////////////////////////////////////////////////
//
//	getCalendarMonth
//
//////////////////////////////////////////////////////////////////////////

function getCalendarMonth( month ) {

	var monthArray = new Array("January", "February", 
                   "March", "April", "May", "June", 
                   "July", "August", "September", 
                   "October", "November", "December")
	
	return monthArray [month-1]
	
}

//////////////////////////////////////////////////////////////////////////
//
//	getCalendarDaysOfMonth
//
//////////////////////////////////////////////////////////////////////////

function getCalendarDaysOfMonth(month, year) {

	if(year < 1000) {
		year += 1900
	}

	var daysOfMonth  	= new Array()
	
	var firstOfMonth 	= new Date(month + "/1/" + year )
	var day 		 			= -firstOfMonth.getDay()
	var noDays 				= getCalendarNumberDaysInMonth ( month, year )
  
  var dayOfMonthIndex = 0

  //fabricate first week of month
  for (i = 0; i <= 6; i++) {
		
    day++
		
    if ( day > 0) {
			daysOfMonth[dayOfMonthIndex++] = day
		} else {
			daysOfMonth[dayOfMonthIndex++] = " "
		}
		
	}

  //fabricate remaining weeks
  for(var j=1; j < 6; j++) {
    for (i = 0; i <= 6; i++) {
			
      day++
			
      if ( day <= noDays) {
				daysOfMonth[dayOfMonthIndex++] = day
			} else { 
				daysOfMonth[dayOfMonthIndex++] = " "
    	}
			
    	if (day >= noDays) {
				daysOfMonth[dayOfMonthIndex++] = " "
			}
			
		} // End i
  } // End j
  
  return daysOfMonth
	
}

//////////////////////////////////////////////////////////////////////////
//
//	getCalendarDaysOfMonth
//
//	Days of week starts at row 2 and then repeats ever 3 rows
//
//////////////////////////////////////////////////////////////////////////

function updateCalenderDaysOfMonth ( year, month, theTableID ) {

	var theTable = document.getElementById(theTableID)
	
	myrow     = theTable.getElementsByTagName("tr")[0]
	mycel     = myrow   .getElementsByTagName("td")[0]
	mycelText = mycel   .getElementsByTagName("em")[0]
	
	mycelText.innerText = getCalendarMonth ( month ) + " " + year

	daysofMonth = getCalendarDaysOfMonth ( month, year )

	// update Calander Days
	var indexDay = 0 
	
  for(var j=0; j < 6; j++) {
    for (var i = 0; i <= 6; i++) {
	
			myrow = theTable.getElementsByTagName("tr")[3+j*3]
			mycel = myrow   .getElementsByTagName("td")[i]
			
			mycel.innerText = daysofMonth[indexDay++]
		}
	}
}

//////////////////////////////////////////////////////////////////////////
//
//	updateCalenderActivitiesLinks
//
//////////////////////////////////////////////////////////////////////////

function updateCalenderActivitiesLinks()
{
	// if xmlhttp shows "loaded"
	if (xmlhttp.readyState==4) { // if "OK"
		xmlResponseArray=xmlhttp.responseText.split('\n')

		var activityDay  			   = new Array
		var activityDescription  = new Array
		var activityLink  			 = new Array
		var activityCatagory		 = new Array
		var activityIndex 			 = 0
		
		for (var idx=0;idx<xmlResponseArray.length;idx++) {
			tmpArr=xmlResponseArray[idx].split(',');
	
			if ( refYear  == tmpArr[0] &&
				 	 refMonth == tmpArr[1] ) {
				activityDay				 [activityIndex] = tmpArr[2]
				activityCatagory	 [activityIndex] = tmpArr[3]
			  activityDescription[activityIndex] = tmpArr[4]
				activityLink			 [activityIndex] = tmpArr[5]
				activityIndex++

			}
		}
	
		daysofMonth = getCalendarDaysOfMonth ( refMonth, refYear )
		var today = new Date()
		var todayYear  = today.getYear()
		var todayMonth = today.getMonth() +1
		var todayDate  = today.getDate()
		if ( todayYear < 1000) {
			todayYear += 1900
		}
		
		var mytable = document.getElementById(refTheTableID)
		index = findArrayLocation(todayDate, daysofMonth)

		// Clear the table
		var count = 0;
		for (var ir = 0; ir <= 5; ir++) {
			for (var ic = 0; ic <= 6; ic++) {
				myrow = mytable.getElementsByTagName("tr")[4+ir*3]
				mycel = myrow  .getElementsByTagName("td")[ic]
				
        mycel.style.backgroundColor="rgb(255,255,255)"
				mycel.innerText = "";
				
				if ( (todayYear  == refYear  ) &&
						 (todayMonth == refMonth ) && 
						 (count      == index    ) ) {
				  mycel.style.backgroundColor="rgb(200,255,255)"
				}
				
				count++
						 
			}
		}
		
		for (var i = 0; i <= activityDay.length; i++) {
			
			index = findArrayLocation(activityDay[i], daysofMonth)
			
			if ( index >= 0 ) {
				
				var icol = index % 7
				var irow = parseInt( index / 7)
				myrow = mytable.getElementsByTagName("tr")[4+irow*3]
				mycel = myrow  .getElementsByTagName("td")[icol]
		
			  imageFile = ""
				if ( activityCatagory[i] == "PH" ) {
					imageFile = "../v4_images/Flags/PHSmall.gif"
				} else if ( activityCatagory[i] == "FAN" ) {
					imageFile = "../v4_images/Flags/FANSSmall.jpg"
				} else if ( activityCatagory[i] == "CAN" ) {
					imageFile = "../v4_images/Flags/CANSmall.gif"
				}
				
				if ( imageFile != "" ) {
						img = document.createElement('img'); 
						img.setAttribute('src',imageFile); 
				  	mycel.appendChild(img) 
				}
				
			  if ( activityLink[i] == "" ) {
					mycel.innerText = activityDescription[i]+"<BR>"
				} else {
						a = document.createElement('a'); 
						a.setAttribute('href',activityLink[i]); 
						a.innerHTML=" " + activityDescription[i]+"<BR>";
				  	mycel.appendChild(a) 
				}
			}
		}
	}
}


//////////////////////////////////////////////////////////////////////////
//
//	setCalanderTableID
//
//////////////////////////////////////////////////////////////////////////

var refMonth 		  = '';
var refYear 		  = '';
var refTheTableID = '';

function setCalanderTableID (theTableID )
{
	
	refTheTableID = theTableID
			
}

//////////////////////////////////////////////////////////////////////////
//
//	setCurrentYearMonth
//
//////////////////////////////////////////////////////////////////////////

function setCurrentYearMonth ( year, month )
{
	
	refYear  		  = year
	refMonth 		  = month
	
	updateCalenderDaysOfMonth 	  (refYear,refMonth,refTheTableID);
	updateCalenderActivitiesLinks ( );
			
}



//////////////////////////////////////////////////////////////////////////
//
//	OnNextMonth
//
//////////////////////////////////////////////////////////////////////////

function OnNextMonth (  ) {
								 
	nextYear  = refYear;
	nextMonth = refMonth+1;
	
	if ( nextMonth > 12 ) {
		nextYear = nextYear +1
		nextMonth = 1;
	}
	
	setCurrentYearMonth(nextYear,nextMonth);
	
}

//////////////////////////////////////////////////////////////////////////
//
//	OnPrevMonth
//
//////////////////////////////////////////////////////////////////////////

function OnPrevMonth (  ) {
								 
	nextYear  = refYear;
	nextMonth = refMonth-1;
	
	if ( nextMonth < 1 ) {
		nextYear = nextYear-1
		nextMonth = 12;
	}
	
	setCurrentYearMonth(nextYear,nextMonth);
	
}

//////////////////////////////////////////////////////////////////////////
//
//	findArrayLocation
//
//////////////////////////////////////////////////////////////////////////

function findArrayLocation ( searchForItem, inArray ) {

	var finish = false
	var index  = 0
	
	while (finish != true && index <  inArray.length )
	{
		if ( searchForItem == inArray[index] ) {
			finish = true
		} else {
			index++
		}
	}
	
	if ( finish == true ) {
		return index
	} else { 
	  return -1
	}
		
}
			