$(document).ready(function()
{
	$("<img>").attr("src", "/ajax-agenzie/loading.gif");
	$('#ajax_select_provincia').change(callback_select_provincia);	
	$('#reload_ajax_select_provincia').click(callback_reload);
	resetModuloContattoAgenzie();
});

/**
 * Funzione di callback sulla azione CLICK di una riga
 */
function callback_riga_agenzia()
{
	var cont = $('.contattabile', this).html() ;
	if (cont == '')
	{
		$(this).removeClass('mout').removeClass('mover').addClass('noclick');
		return;
	}
	$('tr.agenzia').hide();
	
	var f = $('#moduloContattoAgenzia');
	
	// ID agenzia
	$('input[name=ID]',f).val( 
		$(this).attr('id').replace('agenzia_','')
	);
	
	// provincia agenzia
	$('input[name=prov]',f).val(
		$('#ajax_select_provincia').val()
	);
	
	// dettaglio agenzia
	$('#agenzia_dettaglio').html('');
	$(this).children().each(function (i){
		if (i == 0 )
		$('#agenzia_dettaglio').append($(this).html()+ '<br />');
	});
	
	$('#form_container').show();
}


/**
 * Funzione di callback sulla azione CHANGE delle localita
 */
function callback_select_localita()
{
	resetModuloContattoAgenzie();
	
	// Carica elenco agenzie
	var url = '/ajax-agenzie/ricerca-agenzie.ajax.asp?id='+$('#ajax_select_provincia').val()+'&localita='+this.value;
	$('#ajax_form_container .lista_agenzie')
		.html('<img src="/ajax-agenzie/loading.gif" />')
		.load(url, function()
		{
			init_tr_agenzia('tr.agenzia');
			
			$('#reload_ajax_select_localita')
				.unbind('click')
				.click(callback_reload);
		});
		
}

/**
 * Funzione di callback sulla azione CHANGE delle province
 */
function callback_select_provincia()
{
	resetModuloContattoAgenzie();
	$('#ajax_form_container').show();
	
	var provincia = this.value;
	
	// carica elenco agenzie
	$('#ajax_form_container .lista_agenzie')
		.html('<img src="/ajax-agenzie/loading.gif" />')
		.load('/ajax-agenzie/ricerca-agenzie.ajax.asp?id='+this.value, function(data)
		{
			if (data == '<h2>Nessuna agenzia trovata</h2>')
			{
				var f = $('#moduloContattoAgenzia');
				
				// ID agenzia
				$('input[name=ID]',f).val('CONTATTA_TOUR_OPERATOR');
				
				// provincia agenzia
				$('input[name=prov]',f).val('');
				
				// dettaglio agenzia
				$('#agenzia_dettaglio').html( $('#info_tour_operator').html() );
				
				$('#form_container').show();
			}
			else
			{
				init_tr_agenzia('tr.agenzia');
				
				// carica elenco localita
				var url = '/ajax-agenzie/ricerca-agenzie.ajax.asp?localita_in_prov='+provincia;
				$('#ajax_form_container .lista_localita')
					.html('<img src="/ajax-agenzie/loading.gif" />')
					.load(url, function()
					{
						$('#ajax_select_localita')
							.unbind('change')
							.change(callback_select_localita);
					});
			}
		});
}

/**
 * Funzione di callback sulla azione CLICK del pulsante reload
 */
function callback_reload()
{
	var id = '#' + $(this).attr('id').replace('reload_','');
	if ($(id).val() == '0' )
		return;
	$(id).change();
}

/**
 * Inizializza il controller sulla riga della agenzia
 */
function init_tr_agenzia(sel)
{
	$(sel)	
		.unbind('click')
		.click(callback_riga_agenzia)
		.mouseover(function(){$(this).addClass('mover').removeClass('mout').removeClass('noclick')})
		.mouseout(function(){$(this).addClass('mout').removeClass('mover').removeClass('noclick')});
}

/**
 * Cancella il form
 */
function resetModuloContattoAgenzie()
{
	$('#form_container').hide();
	try {
		$('#agenzia_dettaglio').html('');
		document.getElementById('moduloContattoAgenzia').reset();
	} catch (e) {}
}

/**
 * Valida il form
 */
function controllaModuloContattoAgenzie()
{
	var f = $('#moduloContattoAgenzia');
	var e = $('#ajax_error');
	
	e.html('').hide();
	
	$('input[name=rif]',f).val(document.location.href);
	
	if ($('input[name=nome]',f).val() == "")
	{
		e.html("&Egrave; necessario compilare il campo \"nome\"").slideDown("slow");
		$('input[name=nome]',f).focus();
		return false;
	}
	else if ($('input[name=email]',f).val() == "")
	{
		e.html("&Egrave; necessario compilare il campo \"email\"").slideDown("slow");
		$('input[name=email]',f).focus();
		return false;
	}
	else if ($('input[name=telefono]',f).val() == "")
	{
		e.html("&Egrave; necessario compilare il campo \"telefono\"").slideDown("slow");
		$('input[name=telefono]',f).focus();
		return false;
	}
	else
	{
		return true;
	}
}