Event.observe(window, "load", function(){
	document.body.insert("<div id=\"datepicker\"></div>");
	$('datepicker').setStyle({
		opacity: 0.85
	});
	$('datepicker').showing = false;
	//months = (string -> [int, int] array) hash
	var months = {"Jan": [1, 31, "January"], "Feb": [2, 28, "Febuary"], "Mar": [3, 31, "Mars"], "Apr": [4, 30, "April"], 
				"May": [5,31, "May"], "Jun": [6, 30, "June"], "Jul": [7, 31, "July"], "Aug": [8, 31, "August"], 
				"Sep": [9, 30, "September"], "Oct": [10, 31, "October"], "Nov": [11, 30, "November"], "Dec": [12, 31, "December"]};
	var date = new Date().toUTCString().split(" ");
	var this_year = date[3];
	var this_day = date[1];
	var this_month = months[date[2]][0];
	$('datepicker').update("<h3><a href=\"#change_month\" id=\"dp_change_month\">"+months[date[2]][2]+"</a> <a href=\"#change_year\" id=\"dp_change_year\">"+this_year+"</a></h3>");
	$('datepicker').insert("<div id=\"dp_dates\">");
	for(var i = 1; i<=months[date[2]][1]; i++){
		if(i < this_day) $('dp_dates').insert("<div class=\"dp_datediv dp_inactive\">"+i+"</div>");
		else if(i == this_day) $('dp_dates').insert("<div class=\"dp_datediv dp_today\">"+i+"</div>");
		else $('dp_dates').insert("<div class=\"dp_datediv dp_active\">"+i+"</div>");
	}
	$('datepicker').insert("</div>");
	$$("input.datepicker").each(function(n){
		n.observe('click', function(e){
			$('datepicker').setStyle({
				display: 'block',
				left: Event.pointerX(e)+10+"px",
				top: Event.pointerY(e)+10+"px"
			});
			$('datepicker').showing = true;
			$$("#datepicker div.dp_datediv").each(function(dp_date){
				dp_date.observe('click', function(){
					var m = this_month < 10 ? "0"+this_month : this_month;
					var d = dp_date.innerHTML < 10 ? "0"+dp_date.innerHTML : dp_date.innerHTML;
					n.value = this_year + "-" + m + "-" + d;
				});
			});
		});
	});
	
	$('dp_change_month').observe('click', function(){
		//show months, on month select change dp_dates
		$('dp_dates').innerHTML = "";
		$H(months).each(function(n){
			$('dp_dates').insert("<a href=\"#dp_month\" class=\"dp_set_month\">"+n[1][2]+"</a> ");
		});
		$$("dp_dates div.dp_set_month").each(function(n){
			n.observe('click', function(){
				$('dp_dates').innerHTML = "";
				for(var i = 1; i<=n[1][1]; i++){
					if(i < this_day) $('dp_dates').insert("<div class=\"dp_datediv dp_inactive\">"+i+"</div>");
					else if(i == this_day) $('dp_dates').insert("<div class=\"dp_datediv dp_today\">"+i+"</div>");
					else $('dp_dates').insert("<div class=\"dp_datediv dp_active\">"+i+"</div>");
				}
			});
		});
	});
	Event.observe(document, 'keyup', function(e){
		if(e.keyCode == Event.KEY_ESC && $('datepicker').showing){
			$('datepicker').hide();
			$('datepicker').showing = false;
		}
	});
});
