
var animation_speed = 500; 

// ANIMAZIONE PAGINE DEL CATALOGO

$(document).ready(
	function()
	{	
		if (window.location.hash)
		{
			// refresh
			url = window.location.href.replace(".html#","/c/");			
			$("div#main_content").load(
					url, 
					{ stampa_capitoli: 1, stampa_categorie: 1, stampa_famiglie: 1 },
					function ()
					{
						bind_click_capitoli();
						bind_click_categorie();
						bind_click_paginazione();
						scroll_categorie();
						hover_simboli();
						bind_search_button();
					});
		}
		else
		{
			// link esterno ad una pagina interna del catalogo
			if (window.location.href.indexOf("/c/")!=-1)
			{
				url = window.location.href.replace("/c/",".html#");
				window.location = url;
			}
			bind_click_capitoli();
		}

	}
);

//------------------------------------ helpers ------------------------------------

function bind_click_capitoli()    { $("ul#ul_capitoli li a").click(chapters_clik_handler); }
function bind_click_categorie()   { $("ul#ul_categorie li a").click(category_clik_handler); }
function bind_click_paginazione() { $("div#pagination a").click(family_pager_clik_handler); }
function bind_search_button()     { $("input#do_search").click(search_click_handler); }

function animate_hide_content(element, callback) 
{ 
	element.hide("slide", { direction: "right" }, animation_speed, callback);
}
function animate_show_content(element, callback) 
{ 
	element.show("drop", { direction: "right" }, animation_speed, callback);
}


function animate_hide_content_pager(element, new_url, callback)
{	
	element.hide("slide", { direction: "right" }, animation_speed, callback );
}

function animate_show_content_pager(element, callback)
{	
	element.show("drop", { direction: "right" }, animation_speed, callback );
}
 

function showLoader() 
{ 
	$('#load').fadeIn('normal'); 
}
function hideLoader() 
{ 
	$('#load').fadeOut('normal');
	if (jQuery.browser.msie) 
		this.style.removeAttribute('filter');
}

function setUrlHash(url) 
{ 
	if (url.lastIndexOf('/c/')!=-1) 
		 window.location.hash = url.slice(url.lastIndexOf('/c/')+3);
	else window.location.hash = '';
}

function block_element_height(id)
{
	$(id).css('height',$(id).height());
}

function unblock_element_height(id)
{
	$(id).css('height','auto');
}


//HOVER SUI SIMBOLI
function hover_simboli()
{
	$("div.immagine_simbolo").hover(
			function(){$(this).find("div.descrizione_simbolo:hidden").fadeIn(500);},
			function(){$(this).find("div.descrizione_simbolo:visible").fadeOut(500);}
		);
};


// SCROLL DELLE CATEGORIE
var name = "#catalogo_contenuto.level2 #catalogo_categorie, #catalogo_contenuto.level3 #catalogo_categorie";
var menuYloc = null;

function scroll_categorie()
{		
	if ($(name).attr('id') == 'catalogo_categorie')
	{
		$(name).css("position","absolute");
		menuYloc = $(name).position().top;
		
		$(window).scroll(function () { 
			var scroll = $(document).scrollTop()-185;
			if (scroll<0)
			{ 
				scroll = 0; 
			}
	        var offset = menuYloc+scroll+"px";
	        
	        $(name).animate({top:offset},{duration:500,queue:false});        
	    });
	}
}; 

// ------------------------------------ gestione dei click sui capitoli ------------------------------------
function chapters_clik_handler(event)
{
	block_element_height('div#main_content');
	// espande i capitoli
	$("#catalogo_capitoli").animate({ width: "290px" }, animation_speed);
	$("#catalogo_container").animate({ marginLeft: "290px", top: "0px" }, animation_speed);	
	
	var toLoad = $(this).attr('href'); 
	animate_hide_content($('div#catalogo_container'),loadContent);
	showLoader();	
	setUrlHash(toLoad);
	document.title = $(this).attr('title');
			
	function loadContent() 
	{  
		// ricarica il menu dei capitoli con la nuova voce selezionata		
		$("div#catalogo_capitoli").load(
				toLoad + " #ul_capitoli",
				{ stampa_capitoli: 1 },
				bind_click_capitoli
		);
		
		// carica il nuovo contenuto
		$('#catalogo_container').load(
				toLoad + " #catalogo_contenuto",
				{ stampa_categorie: 1 },
				showNewContent
		);
	}
	
	function showNewContent()
	{
		$("div#catalogo_categorie").css("float","none");
		animate_show_content($('div#catalogo_container'),hideLoader);
		unblock_element_height('div#main_content');
		
		// riattiva gli effetti sui click delle categorie
		bind_click_categorie();			
		bind_search_button();
	}
	
	
	return false;
}



// ------------------------------------ gestione dei click sulle categorie ------------------------------------
function category_clik_handler(event)
{
	// comprime i capitoli
	$("#catalogo_capitoli").animate({ width: "40px" }, animation_speed);
	$('#catalogo_container').animate({ marginLeft: "40px", top: "0px" }, animation_speed);

	var toLoad = $(this).attr('href');
	block_element_height('div#catalogo_contenuto');	
	animate_hide_content($('div#catalogo_famiglie'),loadContent);
	showLoader();
	setUrlHash(toLoad);
	document.title = $(this).attr('title');
		
	function loadContent() 
	{
		// carica il nuovo contenuto
		$('div#catalogo_container').load(
				toLoad + " #catalogo_contenuto",
				{ stampa_categorie: 1, stampa_famiglie: 1 },
				showNewContent
		);
	}
	
	function showNewContent()
	{
		$("div#catalogo_categorie").css("float","left");
		animate_show_content($('div#catalogo_famiglie'),hideLoader);
		unblock_element_height('div#catalogo_contenuto');
				
		// riattiva gli effetti sui click delle categorie
		bind_click_categorie();
		scroll_categorie();
		bind_click_paginazione();
		hover_simboli();
		bind_search_button();
	}
	
	return false;
}



// ------------------------------------ gestione click sulle pagine delle famiglie ------------------------------------
function family_pager_clik_handler(event)
{
	var toLoad = $(this).attr('href');		
	block_element_height('div#catalogo_contenuto');
	animate_hide_content_pager($('div#catalogo_famiglie'), toLoad, loadContent);
	showLoader(); 
	setUrlHash(toLoad);
	
	function loadContent() 
	{
		// carica il nuovo contenuto
		$('div#catalogo_famiglie').load(
				toLoad + " #catalogo_famiglie_content",
				{ stampa_famiglie: 1 },
				showNewContent
		);
	}	
	
	function showNewContent()
	{
		animate_show_content_pager($('div#catalogo_famiglie'),hideLoader);
		unblock_element_height('div#catalogo_contenuto');
		
		// riattiva gli effetti sui click del cambio pagina
		bind_click_paginazione();
		hover_simboli();
	}
	
	return false;
}

//------------------------------------ gestione click sul tasto cerca ------------------------------------
function search_click_handler(event)
{
	var toLoad = $('form#ricerca_codice_form').attr('action');
	toLoad += '/c/search/query/' + $('input#search_query').val();
	// espande i capitoli
	$("#catalogo_capitoli").animate({ width: "290px" }, animation_speed);
	$("#catalogo_container").animate({ marginLeft: "290px", top: "0px" }, animation_speed);	
	animate_hide_content($('div#catalogo_container'),loadContent);
	showLoader(); 
	setUrlHash(toLoad);
	
	function loadContent() 
	{
		// carica il nuovo contenuto
		$('div#catalogo_container').load(
				toLoad + " #catalogo_contenuto",
				{ stampa_famiglie: 1 },
				showNewContent
		);
	}
	
	function showNewContent()
	{
		animate_show_content($('div#catalogo_container'),hideLoader);
				
		// riattiva gli effetti sui click delle categorie
		bind_click_categorie();
		scroll_categorie();
		bind_click_paginazione();
		hover_simboli();
	}	
	return false;
}

