// Date Selector
// copyright Stephen Chapman, 11th March 2006, 30th October 2006
if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(elt /*, from*/)
  {
    var len = this.length;

    var from = Number(arguments[1]) || 0;
    from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
    if (from < 0)
      from += len;

    for (; from < len; from++)
    {
      if (from in this &&
          this[from] === elt)
        return from;
    }
    return -1;
  };
}
/*
if(!Array.indexOf){
	Array.prototype.indexOf = function(obj){
		for(var i=0; i<this.length; i++){
			if(this[i]){
				return i;
			}
		}
		return -1;
	}
}*/

	
var headbg = '#cccccc';  // table heading background colour
// var todaybg = '#ccaaff'; // current day of month background colour
var todaybg = '#ccddff'; // current day of month background colour
var textclr = '#3770b0'; // text colour

// 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'];

function dispCal(yy,mm,event_days) 
{
	if (mm < 0 || mm > 12) {
		alert('month must be between 1 and 12'); 
		return false;
	} if (yy != 0 && (yy < 1901 || yy > 2100)) {
		alert('year must be after 1900 and before 2101'); 
		return false;
	} 
	
// 	var dow = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']; 
	var dow = ['Mon','Tue','Wed','Thu','Fri','Sat','Sun']; 
	var calendar = new Date();  
	var today = calendar.getDate(); 
	//var event_days = new Array (2,5);
	//today = 2;
	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(); 
      if( month == 0 )
      {
        var previousmonth = 12;
        var previousyear = yy-1;
      }
      else
      {
        var previousmonth = month;
        var previousyear = year;
      }
      var nextmonth = ((month+1)%12)+1;
      var nextyear = Math.floor((month+1)/12)+yy;
			calendar.setDate(today); 
			var weekday = calendar.getDay(); 
			var daysInMonth = monthlength(month+1,year); 
			var hilite_start = '<td style="background:' + todaybg + ';"><b>'; 
			var td_start = '<td>'; 
			var cal = '<div id="cal"><table id="cal_table" border="0" cellspacing="0" cellpadding="2"><tr><td style="background:' + headbg+'"><a href="index.php?m='+previousmonth+'&y='+previousyear+'"><<</a></td><td colspan="5" style="background:' + headbg + ';width:100%;"><b>' + moy[month]  + ' ' + year + '</b></td><td style="background:' + headbg+'"><a href="index.php?m='+nextmonth+'&y='+nextyear+'">>></a></td></tr><tr>'; 
			
			for(dex=0; dex < 7; dex++) {
// 				if(weekday == dex) 
// 					cal += td_start + '<b>' + dow[dex] + '<\/b><\/td>'; 
// 				else 
					cal += td_start + dow[dex] + '</td>';
			} 
			cal += '</tr><tr>'; 
			var day2 = today; 

			for (dex = today; dex > 6; dex -=7) 
				day2 = dex; 
				weekday -= day2;
				while (weekday < 0) 
					weekday += 7; 
					for(dex=0; dex < weekday; dex++)
						cal += td_start + '&nbsp;</td>'; 
						for(dex=1; dex <= daysInMonth; dex++) {
							if(weekday == 7) {
								cal += '</tr><tr>'; weekday = 0;
							} 
							/*if (today==dex) 
								cal += hilite_start +'<a style="text-decoration:none;color:'+textclr+'" href="#" onclick="setDate(' + dex + ',' + month + ',' + year + ')">' + dex + '<\/a><\/b><\/td>'; 
							else 
								cal += td_start + '<a style="text-decoration:none;color:'+textclr+'" href="#" onclick="setDate(' + dex + ',' + month + ',' + year + ')">' + dex + '<\/a><\/td>'; 
							weekday += 1;*/
							if ( event_days.indexOf(dex) != -1)
								cal += hilite_start +'<a style="border-bottom:0px;text-decoration:none;color:'+textclr+'" href="index.php?id='+dex+'&m='+(month+1)+'&y='+yy+'">' + dex + '</a></b></td>'; 
							else 
								cal += td_start + '<span style="text-decoration:none;color:'+textclr+'">' + dex + '</span></td>'; 
							weekday += 1;
						} 
						for(dex=weekday; dex < 7; dex++) 
							cal += td_start + '&nbsp;</td>'; 
						
			cal += '</tr></table></div>';

	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 += '<table class="cal_table" border="0" cellspacing="0" cellpadding="2"><tr><td><a href="#" onclick="if (cala = dispCal('+yb+','+mm+')) 	 {document.getElementById(\'cal\').innerHTML = cala; return false;}"><<</a></td><td><a href="#" onclick="if (cala = dispCal('+yyb+','+mmb+')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><</a></td><td align="right"><a href="#" onclick="if (cala = dispCal('+yya+','+mma+')) {document.getElementById(\'cal\').innerHTML = cala; return false;}">></a></td><td align="right"><a href="#" onclick="if (cala = dispCal('+ya+','+mm+')) {document.getElementById(\'cal\').innerHTML = cala; return false;}">>></a></td></tr></table>';
		} 
		else {cal += '<div>';} 
			cal += '</div>'; 
		return cal;
	}

