function setCalendarEvents(id) {
    var elplace = $(id);
    $$('table.calDays a').each(function(lk) {
        lk.addEvent('click', function(e) {
            e.stop()
            var ins = this.getParent().getElement('ins');
            if (ins) elplace.innerHTML = ins.innerHTML;
        }.bindWithEvent(lk));
    });
    
    $$('.calMonth a').each(function(lk) {
        lk.onclick = function() {
            var currcalendar = this.href.replace(/^.+#/g, '');
            if ($(currcalendar)) {
                closeAllCalendars();  
                $(currcalendar).setStyle('display', 'block');
            }
            return false;
        }
    });
    
    $$('ul.monthslist a').each(function(lk) {
        lk.onclick = function() {
            var currcalendar = this.href.replace(/^.+#/g, '');
            if ($(currcalendar)) {
                if ($('currentmonth')) $('currentmonth').removeAttribute('id');
                this.parentNode.setAttribute('id', 'currentmonth');
                closeAllCalendars();  
                $(currcalendar).setStyle('display', 'block');
            }
            return false;
        }
    });

}

function closeAllCalendars() {
    $$('div.calNews').each(function(c) {
        c.setStyle('display', 'none');
    });
};


function setCalendarEventsHP(id) {
    var elplace = $(id);
    $$('table.calDays a').each(function(lk) {
        lk.addEvent('click', function(e) {
            e.stop();
            var ins = this.getParent().getElement('ins');
            if (ins) {
              elplace.innerHTML = ins.innerHTML;
              var enter = elplace.getNext('a.enter');
              enter.href = enter.href.replace(/(\?.*)?$/, ins.getElement('small').get('text').replace(/^(\d+)\-(\d+)\-(\d+)$/, '?anno=$3&mese=$2&giorno=$1'));
            }
        }.bindWithEvent(lk));
    });

	var totlinkcal = $$('.calMonth a.calRw');
	for (var j=0; j<totlinkcal.length; j++) {
      totlinkcal[j].parentNode.onclick = ( function(j) {
        return function(){
          var meseAnno = this.getElementsByTagName('a')[0].href.match(/^.*#mese(\w+)_anno(\d+)$/);
          if (parseInt(meseAnno[2]) == CALENDAR_STATUS.year) {
            var currcalendar = 'mese' + meseAnno[1];
            if ($(currcalendar)) {
              if ($('currentmonth')) $('currentmonth').id = "";
              this.setAttribute('id', 'currentmonth');
              closeAllCalendarsHP();
              $(currcalendar).setStyle('display', 'block');
            }
          } else {
            var href = location.href;
            if (href.match(/[?&]anno=/)) {
              href = href.replace(/([?&])anno=\d+/, '$1anno=' + meseAnno[2]);
            } else {
              href = href + (href.contains('?') ? '&' : '?') + 'anno=' + meseAnno[2];
            }
            if (href.match(/[?&]mese=/)) {
              href = href.replace(/([?&])mese=\d+/, '$1mese=' + 12);
            } else {
              href = href + (href.contains('?') ? '&' : '?') + 'mese=' + 12;
            }
            location.href = href;
          }
          return false;
        };
      })(j);
    }
	var totlinkcal = $$('.calMonth a.calFw');
	for (var j=0; j<totlinkcal.length; j++) {
  
        totlinkcal[j].parentNode.onclick = ( function(j) {
	    return function(){
          var meseAnno = this.getElementsByTagName('a')[0].href.match(/^.*#mese(\w+)_anno(\d+)$/);
          if (parseInt(meseAnno[2]) == CALENDAR_STATUS.year) {
            var currcalendar = 'mese' + meseAnno[1];
            if ($(currcalendar)) {
              if ($('currentmonth')) $('currentmonth').id = "";
              this.setAttribute('id', 'currentmonth');
              closeAllCalendarsHP();
              $(currcalendar).setStyle('display', 'block');
            }
          } else {
            var href = location.href;
            if (href.match(/[?&]anno=/)) {
              href = href.replace(/([?&])anno=\d+/, '$1anno=' + meseAnno[2]);
            } else {
              href = href + (href.indexOf('?') == -1 ? '?' : '&') + 'anno=' + meseAnno[2];
            }
            if (href.match(/[?&]mese=/)) {
              href = href.replace(/([?&])mese=\d+/, '$1mese=' + 1);
            } else {
              href = href + (href.indexOf('?') == -1 ? '?' : '&') + 'mese=' + 1;
            }
            location.href = href;
          }
        return false;
	}
        })(j);
	}
}

function closeAllCalendarsHP() {
    $$('div.hCalendar').each(function(c) {
        c.setStyle('display', 'none');
    });
};
