var financial_calendar={
			init:function(){
			
				this.div_calendar = $$('.new_archive')[0];
				this.elementi = $$('.event_calendar'); 
				this.mese_attuale = $('all');
				this.id_cat = 'all';
				this.openOnce = true;
				this.position_mese = 1;
				this.position_giorno = 0;
				this.lang = lang;
				if(this.lang == 'en'){
					this.position_mese = 0;
					this.position_giorno = 1;
				}
				
				
				if($('form_anno').getElementsByTagName('option')[0].selected && $('form_anno').getElementsByTagName('option')[0].value=='0000') this.future = true;
				else this.future=false;
				
				this.div_categ = $('list_category');
				
				this.info = $('service_info');
				
				this.categories = new Array();
				
				var categs = $('list_category').getElementsByTagName('li')
				for(var i = 0;i<categs.length;i++){
					if(categs.id!='all')	this.categories.push(categs[i].id)	
				}
				
				
				
				this.message = new Array();
				this.message['it'] = new Array();
				this.message['en'] = new Array();
				this.message['it'][0] = 'non sono presenti eventi in questo mese';
				this.message['en'][0] = 'There are no events this month';
				
				this.message['it'][1] = 'Mostra:';
				this.message['en'][1] = 'Show:';
				
				this.mesi = new Array();
				this.mesi['it'] = new Array();
				this.mesi['en'] = new Array();
				this.mesi['it']['01'] = 'Gennaio';
				this.mesi['it']['02'] = 'Febbraio';
				this.mesi['it']['03'] = 'Marzo';
				this.mesi['it']['04'] = 'Aprile';
				this.mesi['it']['05'] = 'Maggio';
				this.mesi['it']['06'] = 'Giugno';
				this.mesi['it']['07'] = 'Luglio';
				this.mesi['it']['08'] = 'Agosto';
				this.mesi['it']['09'] = 'Settembre';
				this.mesi['it']['10'] = 'Ottobre';
				this.mesi['it']['11'] = 'Novembre';
				this.mesi['it']['12'] = 'Dicembre';
				
				this.mesi['en']['01'] = 'January';
				this.mesi['en']['02'] = 'February';
				this.mesi['en']['03'] = 'March';
				this.mesi['en']['04'] = 'April';
				this.mesi['en']['05'] = 'May';
				this.mesi['en']['06'] = 'June';
				this.mesi['en']['07'] = 'July';
				this.mesi['en']['08'] = 'August';
				this.mesi['en']['09'] = 'September';
				this.mesi['en']['10'] = 'October';
				this.mesi['en']['11'] = 'November';
				this.mesi['en']['12'] = 'December';
				if(this.future == true){
					this.div_calendar.getElementsByClassName('mesi_tabs')[0].style.display = 'none';
					this.initEvent();
					this.del_old_events();
					this.initCategory();
					this.initPaginator();
					this.alternateRow();
				}
				else{
					this.initTab();
					this.getEventByMonth(); //comprende anche initcat
					this.initEvent();
				}
				
				this.skinYear();
				
				this.getVar();
				
			},
			skinYear: function(){
				$('form_anno').getElementsByTagName('label')[0].style.display='none';

				var combo = new Element('div', { 'class': 'combo'}).update('<a href="javascript:;" onclick="financial_calendar.opencombo()">'+this.message[this.lang][1]+'</a>');
				var ul = new Element('ul', {id:'combo_select'});
				
				option = $('form_anno').getElementsByTagName('option');
				
				for ( var i=0;i<option.length;i++){
					val = option[i].value;
					var li = '<li value="'+val+'">'+option[i].innerHTML+'</li>';
					ul.innerHTML+=li;
				}
				combo.appendChild(ul);
				
				
				
				var selects= $('form_anno').getElementsByTagName('select')[0];
				$(selects).wrap(combo);
				
				
				var li = $('combo_select').getElementsByTagName('LI');
				
				for (var i=0;i<li.length;i++){
					li[i].onclick=function(){
						for ( var j=0;j<option.length;j++){
							if(option[j].value == this.value){
								option[j].selected=true;
								$('form_anno').submit();
							}
						}}
				}
				$('form_anno').getElementsByTagName('select')[0].style.display='none';
				
			},
			opencombo :function(){
				var height1 = Element.getHeight($$('.combo')[0].getElementsByTagName('LI')[0]);
				height2 = height1 *  $$('.combo')[0].getElementsByTagName('LI').length;
				
				if($$('.combo')[0].getElementsByTagName('UL')[0].style.height == '' || $$('.combo')[0].getElementsByTagName('UL')[0].style.height == '0px'){
		            sheet = document.styleSheets[3];
		            if (sheet.addRule) {        //Internet Explorer
		                sheet.addRule(".event_calendar_list", "z-index: -1 !important;");
		            }
					new Effect.Morph($$('.combo')[0].getElementsByTagName('UL')[0],{
					  style: 'height:'+height2+'px; border-width:1px;',
					  duration: 0.3 // Core Effect properties
					});
				}
				else{
					sheet = document.styleSheets[3];
		            if (sheet.addRule) {        //Internet Explorer
		                sheet.addRule(".event_calendar_list", "z-index: 1 !important;");
		            }
					new Effect.Morph($$('.combo')[0].getElementsByTagName('UL')[0],{
					  style: 'height:0px; border-width:0px;',
					  duration: 0.3 // Core Effect properties
					});
				}
			},
			getViewedElement:function(){
				this.viewed_element = new Array();
				this.elementi.each(function(el,i){
					if (el.style.display == 'block'){
						financial_calendar.viewed_element.push(el);	
					}
				})
			},
			del_old_events : function(){
				d = new Date();
				giorno = d.getDate() >= 10 ? d.getDate() : '0'+d.getDate();
				mese = (d.getMonth() + 1) >= 10 ? (d.getMonth() + 1) : '0'+ (d.getMonth() + 1)
				anno = d.getFullYear();
				this.elementi.each(function(el,i){
					var mese_el = el.select('.data')[0].innerHTML.split('.')[financial_calendar.position_mese].replace(' ','');
					mese_el = mese_el.substring(mese_el.length-2,mese_el.length);
					
					var giorno_el = el.select('.data')[0].innerHTML.split('.')[financial_calendar.position_giorno].replace(' ','');
					giorno_el = giorno_el.substring(giorno_el.length-2,giorno_el.length);
					
					var anno_el = el.select('.data')[0].innerHTML.split('.')[2].replace(' ','');
						anno_el = anno_el.substring(0,4);
					
					
					if(anno_el == anno){
						if ( mese_el > mese){
							el.style.display = 'block';
						}
						else if (mese_el == mese && giorno_el >= giorno){
							el.style.display = 'block';
						}
						else{
							el.style.display = 'none';	
						}
					}
					else{
						el.style.display = 'block';	
					}
				});
			},
			initEvent:function(){
				for (var i=0; i<this.elementi.length; i++){
					var links = this.elementi[i].getElementsByClassName('nome_evento')[0].getElementsByTagName('a');
					var elemento = this.elementi[i];
					
					if (links.length != 0){
						this.ahref = links[0].href;
						elemento.getElementsByClassName('event_calendar-hd')[0].onclick = function(){document.location.href = financial_calendar.ahref}	
					}
					else{
						elemento.getElementsByClassName('event_calendar-hd')[0].onclick = (function(elemento){return function(){financial_calendar.getEvent(elemento);}})(elemento);
					}
				
				//sistemo i mesi
					elemento.select('.data')[0].style.visibility='hidden';
					
					var data = elemento.select('.data')[0].innerHTML;
					var data_array = data.split('.');
				
					mese_el = data_array[financial_calendar.position_mese].substring(data_array[financial_calendar.position_mese].length-2,data_array[financial_calendar.position_mese].length);
					mese_el= String(mese_el).replace(' ','');
					
					mese_el = this.mesi[this.lang][''+mese_el];
					
					data_array[financial_calendar.position_mese] = mese_el;
					//data_array = data_array.join(" ");
					
					var datastamp = data_array[0]+' '+data_array[1]+', '+data_array[2];
					if(financial_calendar.position_mese==1){
						datastamp = data_array[0]+' '+data_array[1]+' '+data_array[2];
					}

					var data2 =  new Element('div',{'class':'data2'}).update(datastamp)
				
					elemento.getElementsByClassName('event_calendar-hd')[0].appendChild(data2)
					
				
				}
				//aggiungo la funzione di apertura dei subaggregatori
				$$('.event_calendar-body-sub').each(function(e,i){
						e.getElementsByTagName('a')[0].onclick=function(){
							var funzione = function(){
								e.style.height=e.getElementsByClassName('archTable')[0].getHeight()+e.getHeight()+'px';	
								var new_height = financial_calendar.elemento_act.getHeight()+e.getHeight();
								financial_calendar.elemento_act.morph('height:'+new_height+'px');
							}
							if(e.getAttribute('disclaimer')!= null) disclaimer.init(e.getAttribute('disclaimer'),5,funzione)
							else{
						 	 	funzione()
							}
						};
																						 
																						})
			},
			getEvent: function(elemento,mode){
				mode = mode
				this.elemento_act = elemento;
				sign = this.elemento_act.getElementsByClassName('category')[0];
				if (sign.style.width != '100%'){
					var funzione = function(){
						if(financial_calendar.openOnce == true) financial_calendar.fastCloseAll();
						new Effect.Morph(sign, {
						  style: 'width:100%', // CSS Properties
						  duration: 0.8,
							afterFinishInternal: function() {
								if(mode!='light'){
									var new_height = financial_calendar.elemento_act.getElementsByClassName('event_calendar-body')[0].getHeight()+financial_calendar.elemento_act.getHeight();
									financial_calendar.elemento_act.morph('height:'+new_height+'px');
								}
							}
						});
					}
					if(this.elemento_act.getAttribute('disclaimer') != null) disclaimer.init(this.elemento_act.getAttribute('disclaimer'),5,funzione)
					else{
				 	 	funzione()
					}
					
				}
				else{
					financial_calendar.closeItem();
				}
			},
			closeItem: function(){
				
				new Effect.Morph(financial_calendar.elemento_act, {
					  style: 'height:26px', // CSS Properties
					  duration: 0.8,
						afterFinishInternal: function() {
							financial_calendar.elemento_act.getElementsByClassName('category')[0].morph('width:0.5%');
						}
					});
			},
			fastCloseAll:function(){
				this.elementi.each(function(el,i){
					el.style.height='26px';
					el.getElementsByClassName('category')[0].style.width='0.5%';
				})
			},
			initCategory:function(){
				this.getViewedElement();
				//primo step vanno controllati gli elementi presenti e in base alle categorie degli elementi mostro/nascondo 
				for (var i=0;i<financial_calendar.categories.length;i++){
					$(financial_calendar.categories[i]).style.display = 'none';	
				}
				this.viewed_element.each(function(el,i){
					//NASCONDO TUTTE LE CATEGORIE
					for (var i=0;i<financial_calendar.categories.length;i++){
						if (el.className.indexOf(financial_calendar.categories[i])!=-1){
							$(financial_calendar.categories[i]).style.display = 'block';
						}
					}
				});
				
				//secondo step attribuisco alle categorie la funzione di visualizzazione
				this.div_categ.select('LI').each(function(el,i){
					el.onclick =  function(){
						financial_calendar.id_cat = el.id
						financial_calendar.getEventByCat();
					}													 
				})
			},
			getEventByCat:function(){
				this.fastCloseAll();
				if(this.future == true){this.del_old_events();}
				else {this.getEventByMonth(2);}
				financial_calendar.getViewedElement ();
				this.viewed_element.each(function(el,i){
					if (financial_calendar.id_cat == 'all') el.style.display = 'block';
					else
						if (el.className.indexOf(financial_calendar.id_cat)==-1) el.style.display = 'none';
						else el.style.display = 'block';
				})
				
				this.alternateRow()
				this.initPaginator();
			},
			initTab:function(){
					
				var tabs = this.div_calendar.getElementsByClassName('mesi_tabs')[0].select('LI');
				tabs.each(function(el,i){
					el.onclick  = function(){
						if(el != financial_calendar.mese_attuale){
							financial_calendar.mese_attuale = el;
							financial_calendar.id_cat = 'all'
							financial_calendar.getEventByMonth();
						}
					}			   
				}
				)
			},
			getEventByMonth:function(paginator){
				
				this.fastCloseAll();
				var tab_viewed = 0;

				if(this.div_calendar.getElementsByClassName('mesi_tabs')[0].getElementsByClassName('active')[0]) this.div_calendar.getElementsByClassName('mesi_tabs')[0].getElementsByClassName('active')[0].removeClassName('active');
				this.div_calendar.getElementsByClassName('mesi_tabs')[0].getElementsByClassName('big')[0].removeClassName('bigactive');
				
				if(financial_calendar.mese_attuale.className=='big') financial_calendar.mese_attuale.addClassName('bigactive');
				else financial_calendar.mese_attuale.addClassName('active');
				
				this.elementi.each(function(el,i){
					var mese_el = el.select('.data')[0].innerHTML.split('.')[financial_calendar.position_mese].replace(' ','');
					mese_el = mese_el.substring(mese_el.length-2,mese_el.length);
					if ( mese_el == financial_calendar.mese_attuale.id || financial_calendar.mese_attuale.id == 'all'){
						el.style.display = 'block';
						tab_viewed++;
					}
					else
						el.style.display = 'none';
				});
				
				if (tab_viewed == 0) this.info.innerHTML = this.message[this.lang][0];
				else this.info.innerHTML = '';
				
				this.initCategory();
				if (paginator != 2) this.initPaginator();
				this.alternateRow();
				
			},
			alternateRow:function(){
			
				this.getViewedElement();
				this.viewed_element.each(function(el,i){
					indicatore = i+1;
					//per sicurezza elimino sempre la classe dark
					el.removeClassName('dark');
					if (indicatore%2==0) el.addClassName('dark');
				})
				
				
				$$('.contLeft')[0].style.visibility='visible';
				
			},
			initPaginator:function(){
				
				var num_element = this.viewed_element.length;
				
				$('paginatore').innerHTML='';
				if (num_element > 10){
					var pagine = 0;
					var contatore = 0;
					for(var i=0;i<num_element;i++){
						contatore++;
						if (i>9){ this.viewed_element[i].style.display = 'none';}
						if (contatore==10) contatore = 0;
						if (contatore == 1){
							pagine++;
							
							page = new Element('a',{href:'javascript:;'}).update(pagine);
							if(pagine==1) page.className='now';
							$('paginatore').appendChild(page);
							
							
						}
					}
					
					$('paginatore').select('a').each(function(el,i){
						el.onclick = function(){
							financial_calendar.getEventByPage(i)							
						}
					})
					
				}
				
			},
			getEventByPage:function(id_page){
				this.getEventByMonth();
				this.getEventByCat();
				var inizio = (id_page*10)-1;
				var fine = (id_page+1)*10;

				this.viewed_element.each(function(el,i){
					if(i > inizio && i<fine) el.style.display='block';
					else el.style.display='none';
				});
				
				var pagine = $('paginatore').getElementsByTagName('A');
				var now = $('paginatore').getElementsByClassName('now')[0];
				now.className='';
				pagine[id_page].className='now';
			},
			getVar :function(){
				var vars = {};
				var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
				vars[key] = value;
				});
				
				if(vars['id']){
					$$('.contLeft')[0].style.visibility='hidden';
					var el = document.getElementsByClassName(vars['id'])[0];
					
					var mese_el = $(el).select('.data')[0].innerHTML.split('.')[financial_calendar.position_mese].replace(' ','');
					mese_el = Number(mese_el *1)
					this.div_calendar.getElementsByClassName('mesi_tabs')[0].select('LI')[mese_el].onclick()
					el.getElementsByClassName('event_calendar-hd')[0].onclick()
					$$('.contLeft')[0].style.visibility='visible';
				}
			
			}
		}
		window.onload = function(){
			financial_calendar.init()	
		}
