//impostazione dei tooltip per corsi, e eventi od entrambi
function prepareCalendarTooltips(){
	$('div#main div#menu div#calendar div#days div.c a, div#main div#menu div#calendar div#days div.e a, div#main div#menu div#calendar div#days div.a a')
		.tooltip({
			delay:		0,
			track:		true,
			showURL:	false,
			opacity:	1,
			fixPNG:		true,
			extraClass:	'pretty fancy',
			bodyHandler:	function(){
				return $.ajax({
					type:		'get',
					url:		$(this).attr('rel'),
					async:		false
				}).responseText;
			}
		});
}


//piccola estensione: aggiunge il metodo "enabled" per abilitare / disabilitare rapidamente un elemento jQuery
jQuery.fn.enable = function(en) {
	return this.each(function() {
		if (en)
			$(this).removeAttr('disabled');
		else
			$(this).attr('disabled', 'disabled');
	});
};


$(document).ready(function(){
	//costante indicatore di caricamento ajax
	var loaderHTML	= '<div class="loading"><img src="/images/ajax-loader.gif" /><br />Caricamento...<br /><br /></div>';
	
	//oggetti
	$reg	= $('div#main div#menu form select[name=reg]');
	$prov	= $('div#main div#menu form select[name=prov]');
	$citta	= $('div#main div#menu form select[name=citta]');
	$submit	= $('div#main div#menu form :submit');
	
	
	//sistema menu superiore
	$('div#main div#head ul li a.btn').mouseenter(function() {
		$(this)
			.css('background-position', 'bottom left')
			.prev().stop().animate({height: 53, marginTop: 0}, 500, 'linear');
	});
	
	$('div#main div#head ul li[id]').mouseleave(function(){
		$(this).children(':last').css('background-position', 'top left');
		$(this).children(':first').stop().animate({height: 0, marginTop: 53}, 500, 'linear');
	});
	
	
	//caricamento regioni
	$.getJSON('/ajax.regioni.asp', function(data) {
		$reg
			.html(
				'<option value="">Seleziona...</option>' +
				$.map(data.regioni, function(e, i) {
					return '<option value="' + e.codice + '">' + e.nome + '</option>';
				}).join()
			)
			.removeAttr('disabled')
	});
	
	//evento alla scelta della regione
	$reg.change(function() {
		if ($reg.val() != '') {
			$prov.attr('disabled', 'disabled');
			
			$.getJSON('/ajax.province.asp', 'reg=' + $reg.val(), function(data) {
				$prov
					.html(
					      '<option value="">Seleziona...</option>' +
						$.map(data.province, function(e, i) {
							return '<option value="' + e.codice + '">' + e.nome + '</option>';
						}).join()
					)
					.removeAttr('disabled')
			});
		}
	});
	
	//evento alla scelta della provincia
	$prov.change(function() {
		if ($prov.val() != '') {
			$submit.enable(true);
			$citta.attr('disabled', 'disabled');
			
			$.getJSON('/ajax.citta.asp', 'prov=' + $prov.val(), function(data) {
				$citta
					.html(
					      '<option value="">Seleziona...</option>' +
						$.map(data.citta, function(e, i) {
							return '<option value="' + e.codice + '">' + e.nome + '</option>';
						}).join()
					)
					.removeAttr('disabled')
			});
		}
	});
	
	//evento alla scelta della citta
	$citta.change(function() {
		$submit.enable($citta.val() != '');
	});
	
	//caricamento del calendario
	$('div#main div#menu div#calendar')
		.load('/ajax.calendar.asp', function(){
			//preparazione dei tooltip associati
			prepareCalendarTooltips();
		});
	
	//sostituzione link mesi e "oggi" con chiamate ajax
	$('div#main div#menu div#calendar div#month a, div#main div#menu div#calendar a#gototoday').live('click', function(){
		$('div#main div#menu div#calendar')
			.html(loaderHTML)
			.load($(this).attr('href'), prepareCalendarTooltips);
		
		return false;
	});
	
	//inizializzazione del sistema accordion
	try {
		$('div#main div#content ul.drawers')
			.accordion({
				header:		'h2.drawer-handle',
				selectedClass:	'open',
				collapsible:	true,
				active:		false
			})
		
		//devo appplicare questa piccola correzione perchè il sistema accordion sbaglia a calcolare lo spazio
		//da lui stesso occupato se si parte (come in questo caso) con tutti i pannelli chiusi
		$('div#main div#content').height($('div#main div#content').height() + 40);
	}
	catch(e) {
	}
	
	
	//virtualtour in popup
	try {
		$('.virtualtour').nyroModal({width: 800, height: 600});
	}
	catch(e) {
	}
});

$(window).load(function(){
	$('div#main').height(157 + $('div#main div#content').position().top + $('div#main div#content').outerHeight());
	$('div#bottom').show();
});
