var tb = 't'; // top or bottom (t or b)
var headbg = '#DFEAEE';  // table heading background colour
var todaybg = '#B2B9C3'; // current selected date background colour
var daybg = '#ffffff';
var nonmbg = '#DFEAEE';
var textclr = '#FFFFFF'; // text colour
var linkclr = '#000000'; // link text colour
var noMessage =  'No event messages to display for today'; // message to display when no entry in array
var sPagePath = self.location.href;
var page_array = sPagePath.split("?");
//var page_array[0] = page_array[0];

var dA = new Array(); var x = 0;
// first 8 characters in ccyymmdd format for single date events
// first 8 characters in 0000mmdd format for every year events
dA[x++] = "00000101 New Year";
dA[x++] = "00000214 Valentine's day";
dA[x++] = "00000709 Steve's Birthday";
dA[x++] = "00000919 Site Anniversary";
dA[x++] = "00001206 St Nicholas' Day";
// dA[x++] = "20060610 New Event Calendar Started today";

// permission is granted to use this javascript provided that the below code is not altered
var pageLoaded = 0; window.onload = function() {pageLoaded = 1;}

function loaded(i,f)
{
	if (document.getElementById && document.getElementById(i) != null) 
		f();
	else if (!pageLoaded) 
		setTimeout('loaded(\''+i+'\','+f+')',100);
}

function monthlength(month,year) 
{
	var dd = new Date(year, month, 0);
	return dd.getDate();
}

var moy = ['January','February','March','April','May','June','July','August','September','October','November','December'];

var today = new Date();

var selDate = today.getFullYear()+getmmdd(today.getMonth()+1,today.getDate());


    
function dispCal(yy,mm) 
{
    var today = "";
    var str = window.location.search.substring(1);
    var currentTime = new Date()
    
    var tmmonth = currentTime.getMonth() + 1
    var tmday = currentTime.getDate()
    var tmyear = currentTime.getFullYear()
    if (str != "")
	{
	
	var strArray = str.split("&");
    
	var string = strArray[0];
	var strDate = string.split("=");    	
	if(strDate[0] == "LookUpDate")
	{
	var date = strDate[1];
	
	var currentTime = new Date()
    
    var tmmonth = currentTime.getMonth() + 1
    var tmday = currentTime.getDate()
    var tmyear = currentTime.getFullYear()

		
	var datesplit = date.split("/");
	
	today = datesplit[1];
	
	if(mm != datesplit[0])
	{
	    if(mm != 0)
	    {
	    datesplit[0] = mm;
	    //alert('datesplit[0] = nm');
	    }
	    else
	    {
	    mm = datesplit[0];
	    //alert('mm = datesplit[0]');
	    }
	}
	
	if(yy != datesplit[2])
	{
	    if(yy != 0)
	    {
	    datesplit[2] = yy;
	    //alert('datesplit[2] = yy');
	    }
	    else
	    {
	    yy = datesplit[2];
	    //alert('yy = datesplit[2]');
	    }
	}
	}
	else
	{
	if(mm == 0)
	{
	    mm = tmmonth;
	    //alert('mm = tmmonth #1');
	}
		
	if(yy == 0)
	{
	     yy = tmyear;
	     //alert('yy = tmyear #1');
	    
	}
	
	}
    }
    else
    {
    if(mm == 0)
	{
	    mm = tmmonth;
	    //alert('mm = tmmonth #2');
	}
		
	if(yy == 0)
	{
	     yy = tmyear;
	     //alert('yy = tmyear #2');
	    
	}
    }
	//alert(mm + '/' + today + '/' + yy);
	if (mm < 0 || mm > 12) 
	{
		alert('month must be between 1 and 12 -- ' + mm); 
		return false;
	} 
	if (yy != 0 && (yy < 1901 || yy > 2100)) 
	{
		alert('year must be after 1900 and before 2101 - year =' + yy); 
		return false;
	} 

	var dow = ['S','M','T','W','T','F','S']; 

	var calendar = new Date();  	
	
	today = calendar.getDate();
	
	
   
	calendar.setDate(1);
	
	if (yy > 1900) 
		calendar.setFullYear(yy); 
	
	if (mm > 0) 
		calendar.setMonth(mm - 1);
		 
	var yy = year = calendar.getFullYear(); 
	
	var month = calendar.getMonth();
	
	var prtMonth = month + 1;
	
	calendar.setDate(today); 
	
		
	var weekday = calendar.getDay();
	
	var daysInMonth = monthlength(month+1,year); 
	
	var hilite_start = '<td width="15" height="15" style="background:' + todaybg + '; vertical-align:middle" align="center" ><b>'; 

	var td_dowstart = '<td width="15" height="15" align="center" style="background:' + todaybg + '; vertical-align:middle">';
	
	var td_start = '<td width="15" height="15" align="center" style="background:' + daybg + '; vertical-align:middle">';
	
	var td_arrowstart = '<td width="15" height="15" align="center" style="vertical-align:middle">';
	
	var nonMtd_start = '<td width="15" height="15" align="center" style="background:' + nonmbg + '; vertical-align:middle">';
	
	var range = 0;
	
	if(prtMonth == 1 || prtMonth == 3 || prtMonth == 5 || prtMonth == 7 || prtMonth == 8 || prtMonth == 10 || prtMonth == 12)
	{
		range = 30;
	}
	else if(prtMonth == 2)
	{
		if(daysInMonth == 29)
			range = 28;
		else
			range = 27;
		
	}
	else
	{
		range = 29;
	}
	
	var cal = '<div id="cal""><table border="1" bordercolor="black" cellspacing="0" cellpadding="2" align="center" style="background:white;font-family:arial; font-size:x-small"><tr><td colspan="8" style="background:' + headbg + '" align="center"><b>View Events<br><a href="' + page_array[0] + '?LookUpDate='+ prtMonth +'/1/' + year + '&Range=' + range +'">' + moy[month]  + ' ' + year + '<\/a><\/b><\/td><\/tr><tr>'; 

	
	cal += td_start + '<a  href="' + page_array[0] + '?LookUpDate='+ prtMonth +'/1/' + year + '&Range=' + range +'"><img src="images/cross.png" alt="View all events this month" border="0"><\/a><\/td>'
	
	for(dex=0; dex < 7; dex++) 
	{
	cal += td_dowstart + '<b>' + dow[dex] + '<\/b></td>';
	}
	
	cal += '</tr><tr>'; 

	var day2 = today; 
	
	for (dex = today; dex > 6; dex -=7) 
		day2 = dex; 

	weekday -= day2 - 1; 
	
	while (weekday < 0)
		weekday += 7;

	for(dex=0; dex < weekday; dex++) 
		if (weekday > 0)
		{
			if(dex==0)
			{
			var weekrange = (6 - weekday); 
			cal+= td_arrowstart + '<a  href="' + page_array[0] + '?LookUpDate=' + prtMonth + '/' + (dex+1) + '/' + year +'&Range=' + weekrange +'"><img src="images/arrow.png" alt="View Events for the week of ' + prtMonth + '/' + (dex+1) + '" border="0"><\/a><\/td>';
			}
			
			cal += nonMtd_start + '&nbsp; <\/td>';
		}
	for(dex=1; dex <= daysInMonth; dex++) 
	{
		
		if(weekday == 7) 
		{
			cal += '</tr><tr>'; 
			weekday = 0;
		}
		if(weekday==0)
		{
			cal+= td_arrowstart + '<a  href="' + page_array[0] + '?LookUpDate=' + prtMonth + '/' + dex + '/' + year +'&Range=6"><img src="images/arrow.png" alt="View Events for the week of ' + prtMonth + '/' + (dex) + '" border="0"><\/a><\/td>';
		}	
		if(selDate==year+getmmdd(month+1,dex))
			{ 
			
			cal += hilite_start +'<a  href="' + page_array[0] + '?LookUpDate=' + prtMonth + '/' + dex + '/' + year +'&Range=0">'+ dex + '<\/a><\/b><\/td>';
			}
		else 
			cal += td_start + '<a  href="' + page_array[0] + '?LookUpDate=' + prtMonth + '/' + dex + '/' + year +'&Range=0">'+ dex + '<\/a><\/td>'; 
			
		weekday += 1;
	}
	
	for(dex=weekday; dex < 7; dex++) 
		cal += nonMtd_start + '&nbsp; <\/td>';

	
    var yes = "yes";
	if (document.getElementById) 
	{
		var mmb = month;
		mm = month + 1;
		var yya = yyb = yy;
		
		if (mmb <1) 
		{
			mmb += 12;
			yyb--;
		} 
		var mma = month + 2; 
		if (mma > 12) 
		{
			mma -= 12; 
			yya++;
		} 
		var yb = yy -1; 
		var ya = yy +1;
		
		
		cal += '<\/tr><tr><td colspan="8"><table width="100%"><tr><td><a href="#" onclick="if (cala = dispCal('+yb+','+mm+')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><img src="images/dblleft.png" alt="View Events for this month Last Year" border="0"></a><\/td><td><a  href="#" onclick="if (cala = dispCal('+yyb+','+mmb+')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><img src="images/arrowleft.png" alt="View Events for last month" border="0"></a><\/td><td align="right"><a href="#" onclick="if (cala = dispCal('+yya+','+mma+')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><img src="images/arrow.png" alt="View Events next month" border="0"></a><\/td><td align="right"><a href="#" onclick="if (cala = dispCal('+ya+','+mm+')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><img src="images/dblright.png" alt="View Events for this month next year" border="0"></a><\/td><\/tr><\/table><\/td><\/tr><\/table></div>';
	} 
	else 
	{
	cal += '<\/tr><\/table>';
	} 
		
		cal += '</div>'; 
		return cal;
	}

function start() 
{
	var x = '<div id="calDate""><\/div>'; 
	var y = ''; 
	if (tb == 't') 
		y = dispCal(0,0); 
	else 
		y = dispCal(0,0);
	
	document.getElementById('calendar').innerHTML = y; 
		
	//ev();
}

loaded('calendar',start);

function clickDate(day, month, year) 
{
	var ct = nextDate(year + getmmdd(month+1,day));
	if (ct == '') 
		ct = nextDate('0000' + getmmdd(month+1,day));
	
	if (ct == '')
		return 'style="color:'+textclr+'"'; 
	else return 'style="cursor:pointer;color:'+linkclr+'" onclick="selDate = '+year+ getmmdd(month+1,day)+'; isDate(' + day + ',' + month + ',' + year + ');return false;"';
}

/*function isDate(dayVal,monthVal,yearVal) 
{
	var ct = nextDate(yearVal + getmmdd(monthVal+1,dayVal));
	
	if (ct == '') 
		ct = nextDate('0000' + getmmdd(monthVal+1,dayVal));
	
	if (ct == '')
		ct = noMessage;document.getElementById('calDate').innerHTML = selDate + ':<br \/>' +ct; 
	
	return false;
}*/

function nextDate(yymmdd) 
{
	var x = dA.length;
	
	for (var i = 0; i < x; i++) 
	{
		if (dA[i].substr(0,8) == yymmdd) 
			return dA[i].substr(8);}return '';
	}
function getmmdd(mm,dd) 
{
	return (mm > 9 ? '' + mm : '0' + mm) + (dd > 9 ? dd : '0' + dd);
}
/*function ev()
{
	var ct = nextDate(selDate);
	var ct = nextDate(selDate);
	
	if (ct == '') 
		ct = nextDate('0000' + selDate.substr(4));
		
	if (ct == '') ct = noMessage; 
	
	document.getElementById('calDate').innerHTML = '';
}*/
