var Magilia_Core = {};

Magilia_Core.cache = new Array();

Magilia_Core.translate = function (stringa)
{
	if(Magilia_Core.cache[stringa])
		return Magilia_Core.cache[stringa];
		  		
	url = "http://" + document.domain + "/ajax/translate/" + stringa;	
	new Ajax.Request(url, {
		  method: 'post',
		  asynchronous: 'false',
		  onSuccess: function(transport) {
		    record = eval(transport.responseText);
		    Magilia_Core.cache[stringa] = record[1];
		    return record[1];
		  },
		  onFailure: function(transport) {
		   	return stringa;
		  }
	});	
}

Magilia_Core.showPage = function(event){	
	
	// Fermo la propagazione dell'evento
	Event.stop(event);
	
	// Ottengo l'elemento da cui deriva il click
	var element = Event.element(event);

	if(element.hasClassName('disabled-link'))
		return;

	if(element.tagName != 'A')
		element = element.parentNode;	
	
	// Ricavo l'url dall'attributo href dell'elemento
	var path = new URL(element.href);
	var path = path.getPath();
	
	block = document.getElementById("view-page-block");
	contentBlock = ($('content-region')) ? $('content-region') : ( ($('content-region-one-column')) ? $('content-region-one-column') : $('content-region-news'));
	
	// mando una richiesta ajax al server
	url = "http://" + document.domain + "/ajax/" + path;		
	
	new Ajax.Request(url, {
		  method: 'get',
		  onLoaded: function()
		  {
		    //window.scroll(0,0);
		    Effect.ScrollTo("view-page-block");
		  	contentBlock.update(Magilia_Core.getLoadingSpinnerHTML());
		  },
		  onFailure: function()
		  {
		  	alert("Errore");
		  },
		  onSuccess: function(transport) {
		    try{record = eval(transport.responseText);} catch(e) {}					 
			if(block != null)
			{								
				document.title = record[0];				
				
				var ulNode = $('breadcrumbs').firstDescendant();
				if(ulNode && record[2])
				{									
					ulNode.update();
					
					var homeNode = new Element('li', {'class': 'inline-li'});
					var homeLink = new Element('a', {href: 'http://' + document.domain});
					homeLink.update('Home');
					homeNode.update(homeLink);
							
					ulNode.insert({top: homeNode});
					
					// Leggo la breadcrumb					
					try{eval(record[2]);} catch(e) {}
										
					for(var i=0; i<breadcrumb.length; i++)
					{
						var breadcrumbNode = new Element('li', {'class': 'inline-li'});
						if(breadcrumb[i].url != '#')
						{
							var breadcrumbLink = new Element('a', {href: breadcrumb[i].url});
							breadcrumbLink.update(breadcrumb[i].titolo);
							breadcrumbNode.update(breadcrumbLink);
						}
						else
						{
							breadcrumbNode.update(breadcrumb[i].titolo);
						}
						
						ulNode.insert({bottom: breadcrumbNode});
					}					
				}			
				
				var tmpNode = new Element('div');
				tmpNode.update(record[1]);
				var newNode = tmpNode.firstDescendant();
				newNode.hide();				
				contentBlock.update(newNode);
				newNode.appear({ duration: 0.5 });				
												
				Magilia_Core.setAjaxLinks();				
				Magilia_Pages.initialize();							
				try{Magilia_Google_Maps.initMaps();} catch(e) {}
				try{Magilia_Gallery.initGallery();} catch(e) {}
				try{Magilia_Contacts.initialize();} catch(e) {}																		
			}		    
		  }
	});
}

Magilia_Core.getLoadingSpinnerHTML = function()
{
	return '<div style="margin: 100px 0px 0px 200px;"><h3>Caricamento della pagina...</h3>'+
			'<img style="border: 0px; margin: 10px 0px 0px 70px;" src="/images/loading.gif"/></div>';
}

Magilia_Core.backPage = function()
{
	history.back();
}

Magilia_Core.setAjaxLinks = function(){
	
	if($('mini-search-input'))
	{
		Event.observe('mini-search-input', 'focus', Magilia_Links.miniSearchFocus);
		Event.observe('mini-search-input', 'blur', Magilia_Links.miniSearchBlur);
	}
		
	if($('newsletter-mini-input'))
	{
		Event.observe('newsletter-mini-input', 'focus', Magilia_Links.miniSearchFocus);	
		Event.observe('newsletter-mini-input', 'blur', Magilia_Links.miniSearchBlur);
	}
	
	$$('a:([rel~=ajax])').each(
	function(s, index)
	{			
		Event.observe(s, 'click', Magilia_Core.showPage);
	});	
	
	if ($('back-link'))
		$('back-link').observe('click', Magilia_Core.backPage);
}

Event.observe(document, 'dom:loaded', Magilia_Core.setAjaxLinks);

var Magilia_Links = {};

Magilia_Links.miniSearchMessage = '';

Magilia_Links.miniSearchFocus = function (event)
{
	var element = Event.element(event);
	Magilia_Links.miniSearchMessage = element.value;
	element.value = '';		
}

Magilia_Links.miniSearchBlur = function (event)
{
	var element = Event.element(event);
	element.value = Magilia_Links.miniSearchMessage;
}
