function initDxCalendar(aperto, mese, anno, url_path){
	//alert("ci sono con "+jqready);
	if(jqready){
		$('#bigcal').hide();
		if(aperto){
			$('#bigcal').show();
			$('#boxsmallcal').hide();
                        //$('#top_linea_calendario').hide();
			$('#apri_calendario').text("Chiudi il calendario");
		}
		$('#apri_calendario').click(function() {
                        var idint = setInterval("if(typeof NitroBanner != 'undefined'){ NitroBanner.fixBannerPosition(); }", 20);
			if($('#bigcal').css('display')=='none'){
				$('#bigcal').slideDown();
				$('#boxsmallcal').slideUp(400, function(){ clearInterval(idint); NitroBanner.fixBannerPosition(); } );
				//$('#top_linea_calendario').hide();
				$('#apri_calendario').text("Chiudi il calendario");
			}else{
				$('#bigcal').slideUp();
				$('#boxsmallcal').slideDown(400, function(){ clearInterval(idint); NitroBanner.fixBannerPosition(); } );
                                //$('#top_linea_calendario').show();
				$('#apri_calendario').text("Apri il calendario");
			}
		});
                
                Calendario.init(mese, anno, url_path);
	}else pending.push("initDxCalendar(" + aperto + ", " + mese + ", " + anno + ", '" + url_path +"');");
}

var Calendario = {
    current_month : 0,
    current_year : 0,
    mese: 0,
    anno: 0,
    pre_url: '',
    init : function(m, a, url){
        Calendario.mese = m;
        Calendario.current_month = m;
        Calendario.anno = a;
        Calendario.current_year = a;
        Calendario.pre_url = url;
        $('#calendario_mese a.freccia_sinistra').click(function(event){
            event.preventDefault();
            if(Calendario.mese == 1){
                Calendario.mese = 12;
                Calendario.anno = Calendario.anno -1;
            }else{
                Calendario.mese = Calendario.mese - 1;
            }
            Calendario.create();
        });
        
        $('#calendario_mese a.freccia_destra').click(function(event){
            event.preventDefault();
            if(Calendario.mese == 12){
                Calendario.mese = 1;
                Calendario.anno = Calendario.anno + 1;
            }else{
                Calendario.mese = Calendario.mese + 1;
            }
            Calendario.create();
        });;
    },
    create: function(){
        var day_names = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
        //$('#griglia_calendario').html(Calendario.mese + " / " + Calendario.anno+ " = " + Calendario.daysInMonth(Calendario.mese, Calendario.anno));
        var m_next = {m:0 , y:0, max:0};
        var m_prev = {m:0 , y:0, max:0};
        
        if(Calendario.mese == 1){
            m_prev.m = 12;
            m_prev.y = Calendario.anno - 1;
        }else{
            m_prev.m = Calendario.mese - 1;
            m_prev.y = Calendario.anno;
        }
        m_prev.max = Calendario.daysInMonth(m_prev.m, m_prev.y);
        //alert('m_prev.max = '+m_prev.max);
        
        if(Calendario.mese == 12){
            m_next.m = 1;
            m_next.y = Calendario.y + 1;
        }else{
            m_next.m = Calendario.mese + 1;
            m_next.y = Calendario.anno;
        }
        m_next.max = Calendario.daysInMonth(m_next.m, m_next.y);
        
        var html = $('.cal_data_giorno:first').clone();
        $('#griglia_calendario').html('');
        
        $('#griglia_calendario').append('<div class="cal_linea"></div>');
        var linea = $('#griglia_calendario').find('.cal_linea:last');
        
        var giorni = new Array("lun","mar","mer","gio","ven","sab","dom");
        
        var fd = Calendario.getFirstDay(Calendario.mese , Calendario.anno);
        
        var el = 0;
        
        if(fd != 0){
            var giorno = 0;
            var tmp;
            for(i = fd-1; i >= 0; i--){
                tmp = $(html).clone();
                $(linea).append(tmp);
                tmp.addClass('altro_mese');
                tmp.find('.data_gio').html(giorni[giorno]).parent().find('.data_num').html(m_prev.max - i);
                tmp.find('a').attr('href',Calendario.pre_url+(m_prev.max - i)+"-"+m_prev.m+"-"+m_prev.y+".html");
                giorno ++;
                el++;
            }
        }
        var max = Calendario.daysInMonth(Calendario.mese , Calendario.anno);
        var st = "";
        el = fd;
        for(i = 0; i < max; i++){
            if(el > 6){
               $('#griglia_calendario').append('<div class="cal_linea"></div>');
               linea = $('#griglia_calendario').find('.cal_linea:last');
               el = 0;
            }
            tmp = $(html).clone();
            $(linea).append(tmp);
            tmp.find('.data_gio').html(giorni[el]);
            tmp.find('.data_num').html(i+1);
            tmp.find('a').attr('href',Calendario.pre_url+(i + 1)+"-"+Calendario.mese+"-"+Calendario.anno+".html");
            el++;
        }
        el--;
        if(el<6){
            for(i=0; i < (6-el); i++){
                tmp = $(html).clone();
                $(linea).append(tmp);
                tmp.addClass('altro_mese');
                tmp.find('.data_gio').html(giorni[el+i+1]);
                tmp.find('.data_num').html(i+1);
                tmp.find('a').attr('href',Calendario.pre_url+(i + 1)+"-"+m_next.m+"-"+m_next.y+".html");
            }
        }
        var mesi = new Array('gennaio','febbraio','marzo','aprile','maggio','giugno','luglio','agosto','settembre','ottobre','novembre','dicembre');
        $('#calendario_data_mese').html(mesi[Calendario.mese-1]+" "+Calendario.anno);
    },
    getFirstDay: function(month,year) {
        // correggo il mese
        month = month -1;
        //
        //alert('getFirstDay');
        var dateObj =  new Date();
        dateObj.setFullYear(year);

        dateObj.setMonth(month);
        dateObj.setDate(1);

        var first_day = dateObj.getDay();

        // fix lingua inglese
        first_day--;
        if(first_day < 0 ) first_day = 6;

        //alert(day_names[first_day]);
        return first_day;
    },
    daysInMonth: function(month,year) {
        // i mesi vanno da 0 a 11 ecco perche' nn aggiungo 1
        var dd = new Date(year, month, 0);
        return dd.getDate();
    } 
}
