var jevCalCurMonth;
var jevCalCurYear;

function fmtnum(num){
	var ret=""+num;
	if (ret.length==1)
		ret="0"+ret;
	return ret;
}

function jevcalMouseOut(e) {
	$(".jevcalEvHover-shown").removeClass("jevcalEvHover-shown");
	$(this).removeClass("jevcalDay-hover");
}
function jevcalMouseOver(e) {
	var id=".jevcalEvHover-"+fmtnum($(this).attr("rel"))
		+"-"+fmtnum(jevCalCurMonth+1)
		+"-"+jevCalCurYear;
	var list=$(id);
	list.addClass("jevcalEvHover-shown");
	if ($(this).hasClass("jevcalDay-with-event"))
		$(this).addClass("jevcalDay-hover");
}

function daysInMonth(month,year) {
	var m = [31,28,31,30,31,30,31,31,30,31,30,31];
	if (month != 1) return m[month];
	if (year%4 != 0) return m[1];
	if (year%100 == 0 && year%400 != 0) return m[1];
	return m[1] + 1;
}

function monthName(month){
	var m=[ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
	return m[month%12];
}

function monthNameShort(month){
	var m=[ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
	return m[month%12];
}

function jevcal_fill(month,year) {
	$(".jevcalDay").removeClass("jevcalDay-with-event");
	$(".jevcalEvHover").appendTo("#jevcalEvents");
	for (var w=0;w<6;w++){
		for (var d=0;d<7;d++){
			var id="#jevcalDay"+w+d;
			$(id)
				.text(" ")
				.append($("<div class='jevcalDay-inner'></div>"))
				.attr("rel","")
				.removeClass("jevcalDay-today");
		}
	}

	dt=new Date(year,month,1);
	var dnum=1;
	var maxdnum=daysInMonth(month,year);
	var d=dt.getDay();


	var today=new Date();
	var thisday=today.getDate();
	var thismonth=today.getMonth();
	var thisyear=today.getFullYear();

	for (var w=0;w<6;w++){
		for (d;d<7;d++){
			if(dnum>maxdnum)
				break;
			var id="#jevcalDay"+w+d;
			var eid=$(".jevcalEvHover-"+fmtnum(dnum)
					+"-"+fmtnum(month+1)
					+"-"+year);
			if (window.IN_SUBSITE)
				loc = SUBSITE_LOCATION+"../events.php?d="+dnum+"&m="+(month+1)+"&y="+year;
			else
				loc = "./events.php?d="+dnum+"&m="+(month+1)+"&y="+year;
			if (eid.length!=0){
				$(id)
					.text(" ")
					.append($("<div class='jevcalDay-inner'><a href='"+loc+"'>"+dnum+"</a><div class='jevcalDay-append'></div></div>"))
					.addClass("jevcalDay-with-event")
					.attr("rel",""+dnum);
			}else{
				$(id)
					.text(" ")
					.append($("<div class='jevcalDay-inner'>"+dnum+"<div class='jevcalDay-append'></div></div>"));
			}
			if (thisday==dnum && month==thismonth && year==thisyear)
				$(id).addClass("jevcalDay-today");
			eid.appendTo(id+" .jevcalDay-append")
				dnum+=1;
		}
		d=0;
	}
	var tn=monthNameShort(month+1)+" "+(year);
	var tp=monthNameShort(month-1)+" "+(year);
	if(month==11)
		tn=monthNameShort(0)+" "+(year+1);
	if(month==0)
		tp=monthNameShort(11)+" "+(year-1);

	$("#jevcalDayPrevLink a").text(tp);
	$("#jevcalDayNextLink a").text(tn);
	$("#jevcalTitle").text(monthName(month)+" "+year);
}

function jevcal_init() {
	var dt=new Date();
	var month=dt.getMonth();
	var year=dt.getFullYear();
	jevcal_fill(month,year);
	jevCalCurMonth=month;
	jevCalCurYear=year;

	$('.jevcalDay').mouseover(jevcalMouseOver);
	$('.jevcalDay').mouseout(jevcalMouseOut);
	$(window).unload(jevcalMouseOut);
};

function jevcal_next() {
	jevCalCurMonth+=1;
	if (jevCalCurMonth==12){
		jevCalCurMonth=0;
		jevCalCurYear+=1;
	}
	jevcal_fill(jevCalCurMonth,jevCalCurYear);
}

function jevcal_prev() {
	jevCalCurMonth-=1;
	if (jevCalCurMonth==-1){
		jevCalCurMonth=11;
		jevCalCurYear-=1;
	}
	jevcal_fill(jevCalCurMonth,jevCalCurYear);
}

$(document).ready(jevcal_init);

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-27558618-1']);
_gaq.push(['_trackPageview']);

(function() {
	var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
	ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
	var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();


