var arrEvents=[];

$(function() {
	var eventnav=$('#eventnav');
	
	if (eventnav.length) {
		$('#eventnav').prepend('<div id="eventcalendar"></div>');
	
		today=new Date();
		today=new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0);
		minDate=new Date(today.getFullYear(), today.getMonth(), 1);
		maxDate=new Date(today.getFullYear(), today.getMonth()+12, 1);
		maxDate.setDate(maxDate.getDate()-1);
		
		var defaultdate=today;
		if (0!=daydisplayed) {
			defaultdate=new Date(yeardisplayed, monthdisplayed-1, daydisplayed);
		}
	
		var datepicker=$('#eventcalendar', eventnav).datepicker({
			minDate: minDate,
			maxDate: maxDate,
			hideIfNoPrevNext: true,
			beforeShowDay: function(date) {
				$('#tooltip').hide();
			
				var strDateID=''+date.getFullYear()+
					zeroPad(date.getMonth()+1, 2)+
					zeroPad(date.getDate(), 2);
				
				var strClass='chpaevents chpaevents_'+strDateID;
				if ('undefined'!=typeof(arrEvents[strDateID])) {
					strClass+=' hasevents';
				}
				
				$(this).data('init', false);
				
				var result=[true, strClass, ''];
				return result;
			},
			onChangeMonthYear: function() {
				//today's hover was flashing up after changing month, this stops that
				setTimeout( function() { $('.chpaevents', eventnav).mouseout() }, 1);
			},
			onSelect: function(dateText) {
				arrdate=dateText.split('/');
				date=new Date(arrdate[2], arrdate[0]-1, arrdate[1]);
				
				if (date >= today) {
					url=calendarurl;
					if (-1 == url.search(/\?/)) {
						url+='?';
					}
					else {
						url+='&';
					}
					url+='Day='+arrdate[1]+'&Month='+arrdate[0]+'&Year='+arrdate[2];
					window.location.href=url;
				}
			},
			defaultDate: defaultdate
		});
		$('td a', datepicker).attr('href', '');
		
		//tooltip doesn't support live events so this gets over that
		$('.chpaevents', eventnav).live('mouseover', function() {
			if (!$(this).data('init')) {
				$(this).data('init', true);
				
				$(this).tooltip({
					track: true,
					delay: 200, 
					showURL: false,
					extraClass: 'eventtooltip',
					bodyHandler: function() {
						var result=null;

						var strClass=$(this).attr('class');
						var strClass=strClass.replace(/.*(chpaevents_[0-9]+).*/, '$1');
						var id=getID(strClass);
						if ('undefined'!=typeof(arrEvents[id])) {
							result='<div class="inner">';
							for (i=0; i<arrEvents[id].length; i++) {
								result+=arrEvents[id][i]+'<br />';
							}
							result+='</div>';
						}
						return result;
					} 
				});
				
				$(this).trigger('mouseover');
			}
		});

	}
	
	$('#eventcalendar .ui-state-disabled', eventnav).text('');
	
	$('#eventcategoryfilter .nojssubmit', eventnav).remove();
	$('#eventcategory', eventnav).bind('change', function() {
		$('#eventcategoryfilter', eventnav).submit();
	});
});

function zeroPad(number, width) {
	var ret = ""+number;
	
	while (ret.length < width)
		ret="0" + ret;
	
	return ret;
}
