jQuery(function($)
{
	// si aspetta le globali cal_target, cal_shown e cal_today
	var $cal = $('table.calendario'),
		$calsel = $('.cal-select').show(),
		$sel = $calsel.find('select, button'),
		$prev = $('#cal-prev'),
		$next = $('#cal-next'),
		$selanno = $('#cal-anno'),
		$selmese = $('#cal-mese'),
		$loading = $('<div class="loading"><img src="/img/loading.gif"></div>'),
		m = cal_target.match(/^\/sez,(\d+)/),
		sez = m[1]

	$sel.change(function()
	{
		$sel.attr('disabled', true).blur()
		$loading.css('height', $cal.height())
		$cal.replaceWith($loading)
		$.getJSON('/flow.int?func=ajax_calendario&sez=' + sez
			+ '&ym=' + $selanno.val() + '-' + $selmese.val(),
			function(arrmonth)
		{
			$cal.find('tr:not(:first)').remove()
			for (var i = 0; i < arrmonth.length; ++i)
			{
				var $tr = $('<tr/>').appendTo($cal),
					arrweek = arrmonth[i]
				for (var j = 0; j < 7; ++j)
				{
					var $td = $('<td/>').appendTo($tr),
						day = arrweek[j]
					if (! day)
						$td.append('&nbsp;')
					else
					{
						var $span = $('<span/>').appendTo($td),
							dayno = day.date.replace(/.*-0?/, '')
						if (! day.link)
							$span.text(dayno)
						else
							$('<a/>').text(dayno)
								.attr('href', cal_target + 'data=' + day.date)
								.appendTo($span)
						if (j == 6)
							$span.addClass('domenica')
						if (day.date == cal_shown)
							$span.addClass('selezionato')
						if (day.date == cal_today)
							$span.addClass('selezionato')
					}
				}
			}
			$loading.replaceWith($cal)
			$sel.attr('disabled', false)
		})
	})

	$prev.click(function()
	{
		var mese = $selmese.val(),
			newmese = String((Number(mese) + 10) % 12 + 101).substr(1),
			newanno = String(Number($selanno.val()) - (mese == 1 ? 1 : 0))
		if ($selanno.children('option[value=' + newanno + ']').length == 0)
			return
		$selmese.val(newmese)
		$selanno.val(newanno)
		$selmese.change()
	})

	$next.click(function()
	{
		var mese = $selmese.val(),
			newmese = String((Number(mese) + 12) % 12 + 101).substr(1),
			newanno = String(Number($selanno.val()) + (mese == 12 ? 1 : 0))
		if ($selanno.children('option[value=' + newanno + ']').length == 0)
			return
		$selmese.val(newmese)
		$selanno.val(newanno)
		$selmese.change()
	})
})

