function ajaxJs() {
	
	var days			= $$('.a01')
	var ssearch			= $$('#search')
	var td 				= $$('#calendario td')
	var calendario 		= $('calendario')
	var eventi 			= $('eventi-day')
	var prev_eventi		= $('prev_e')
	var nxt_eventi 		= $('nxt_e')
	var prev_calendario	= $('prev')
	var nxt_calendario	= $('nxt')
	var apriSearch 		= $('apriSearch')

	var today 			= $$('td.today')
	
	var page_eventi		= 'eventi-day.php'
	var page_calendario	= 'c-call.php'
	var err  			= 'Problemi nel caricamento'

	var hCalendOpen		= calendario.getStyle('height')
	var hSearchOpen		= ssearch.getStyle('height')
	var bgTitleSearch	= apriSearch.getStyle('background-image')
	var hCalendClose	= 0//48
	var hSearchClose	= 30
	var t1				= 500
	var t2				= 300
	var cOpen 			= true

	var param, apriCal, apriSearch
	
	calendario.set('tween', {duration: t1, transition: Fx.Transitions.Expo.easeInOut}).set('opacity', 0).tween('opacity', 1)
	eventi.set('tween', {duration: t1, transition: Fx.Transitions.Expo.easeInOut}).set('opacity', 0).tween('opacity', 1)
	ssearch.set('tween', {duration: t1, transition: Fx.Transitions.Expo.easeInOut}).tween('opacity', 1)
	calendario.set('morph', {duration: t2, transition: Fx.Transitions.Expo.easeInOut});
	ssearch.set('morph', {duration: t2, transition: Fx.Transitions.Expo.easeInOut}).set('opacity', 0).set('opacity', 0)
	ssearch.setStyle('height', hSearchClose)
	
	function calendarioSearch() {
		apriCal	= $('apriCall')
		apriSearch = $('apriSearch')
		apriCal.addClass('cursoreOff')
		apriSearch.addClass('cursoreOn')
		
		apriCal.addEvent('click', $lambda(false))
		apriCal.addEvents({
		   'click':  function(){
				if(!cOpen) openCalendar()
			}
		})	
	
		apriSearch.addEvent('click', $lambda(false))
		apriSearch.addEvents({
		   'click':  function(){
				if(cOpen) openSearch()
			}
	  	})
	}

	function openCalendar() {
		ssearch.morph({
			'height': hSearchClose
		})
		calendario.morph({
			'height': hCalendOpen
		})
		
		cOpen = true
		
		apriCal.removeClass('cursoreOn')
		apriCal.addClass('cursoreOff')
		
		apriSearch.removeClass('cursoreOff')
		apriSearch.addClass('cursoreOn')
		apriSearch.setStyle('background-image', bgTitleSearch)

		prev_calendario.tween('opacity','1')
		nxt_calendario.tween('opacity','1')
	}

	function openSearch() {
		ssearch.morph({
			'height': hSearchOpen
		})
		calendario.morph({
			'height': hCalendClose
		})
		cOpen = false

		apriCal.removeClass('cursoreOff')
		apriCal.addClass('cursoreOn')
		
		apriSearch.removeClass('cursoreOn')
		apriSearch.addClass('cursoreOff')
		apriSearch.setStyle('background-image', 'none')
		
		prev_calendario.tween('opacity','0')
		nxt_calendario.tween('opacity','0')
	}
	
	function switchIE(e) {
		if(e.contains('://')) 
		{
			param = e.replace(ie_bug, '')
		}
		else 
		{
			param = e.replace('?', '')
		}
	}

	var setClickDays = function(s){
		td.addEvent('click',$lambda(false))
		td.addEvent('click',function(){
			if(this.getElement('a').hasClass('a01')) {
				var llink = this.getElement('a').getProperty('href')
				if(this.hasClass('week')) 
				{
					td.removeClass('today')
					this.addClass('today')
				}
				else if(this.hasClass('today')) 
				{
					td.removeClass('today')
					this.addClass('today')
				}
				else 
				{
					td.removeClass('today')
					this.addClass('today')
				}
				switchIE(llink)		
				req_day.send(param)
			}
			
		})
	}
	setClickDays('inizo')
	



	var setClickCall = function(){
		calendarioSearch()
		
		prev_calendario.addEvent('click', $lambda(false))
		nxt_calendario.addEvent('click', $lambda(false))

		prev_calendario.addEvents({
		   'click':  function(){
				var llink = this.getProperty('href')
				switchIE(llink)			
				req.send(param)
			}
		  })	

		nxt_calendario.addEvents({
		   'click':  function(){
				var llink = this.getProperty('href')
				switchIE(llink)			
				req.send(param)
			}
		  })		
	}
	
	setClickCall()

	/* Impostazione dei link di navigazione tra gli eventi */
	
	var setClickNav = function()
	{
		//alert('load')
		var slider = new Fx.Scroll(window, {duration: t1, transition: Fx.Transitions.Expo.easeInOut})//.set(0,0)
		
		nxt_eventi.addEvent('click', $lambda(false))
		prev_eventi.addEvent('click', $lambda(false))

		prev_eventi.addEvent('click',function(){
			var llink = this.getProperty('href')
			switchIE(llink)
			function sendParam() {req_day.send(param)}
			sendParam.delay(t2)
			slider.toElement('topEventi')
		})

		nxt_eventi.addEvent('click',function(){
			var llink = this.getProperty('href')
			switchIE(llink)			
			function sendParam() {req_day.send(param)}
			sendParam.delay(t2)
			slider.toElement('topEventi')
		})		
	}
	
	setClickNav()

	/* Costruzione chiamata ajax per aggiornare il calendario */
	
	var req = new Request.HTML({
		url: page_calendario, 
		method:'get',
		encoding:'iso-8859-1',
		onSuccess: function() {
			
		},
		onComplete: function(html){
			deleteCalendario()
			calendario.adopt(html)
			calendario.tween('opacity', 1)
			//days = $$('.a01')
			td = $$('#calendario td')
			prev_calendario	= $('prev')
			nxt_calendario	= $('nxt')
			setClickCall()
			setClickDays()
			
		},
		onFailure: function() {
			calendario.set('text', err)
		}
	})
		
	function deleteCalendario() {		
		calendario.set('text', '').set('opacity', 0)
	}
	
	/* Costruzione della chiamata ajax per aggiornare la pagina degli eventi */
	
	var req_day = new Request.HTML({
		url: page_eventi, 
		headers: {'Content-type': 'text/html; charset=iso-8859-1'},
		method:'get',
		onComplete: function(html){
			deleteEventi()
			eventi.adopt(html)
			eventi.tween('opacity', 1)
			prev_eventi		= $('prev_e')
			nxt_eventi 		= $('nxt_e')
			setClickNav()
		},
		onFailure: function() {
			eventi.set('text', err)
		}
	}).setHeader('Content-type', 'text/html; charset=iso-8859-1')
		
	function deleteEventi() {
		eventi.set('text', '').set('opacity', 0)
	}
	
	
	
	
	

 Request.HTML.implement({ //per visualizzare correttamente la request in chrome, safari e opera

	 processHTML: function(text){
		 var match = text.match(/<body[^>]*>([\s\S]*?)<\/body>/i);
		 text = (match) ? match[1] : text;
		
		 var container = new Element('div');
		
		 return $try(function(){
			 var root = '<root>' + text + '</root>', doc;
			 if (Browser.Engine.trident){
				 doc = new ActiveXObject('Microsoft.XMLDOM');
				 doc.async = false;
				 doc.loadXML(root);
			 } else {
				 doc = new DOMParser().parseFromString(root, 'text/html');
			 }
			 root = doc.getElementsByTagName('root')[0];
			 for (var i = 0, k = root.childNodes.length; i < k; i++){
				 var child = Element.clone(root.childNodes[i], true, true);
				 if (child) container.grab(child);
			 }
			 return container;
		 }) || container.set('html', text);
	 }

 })	
	
		

today.fireEvent('click')

}

function refreshLinks(){
	ajaxJs()
}
	

window.addEvent('domready', ajaxJs)