function initCalendar() {
			var elements = $$('table#calendar td .toggle');

			for (i=0;i<elements.length;i++) {
				elements[i].onclick = toggleDetails;
			}
			
			// hide all infos
			var elements = $$('table#calendar tr .info');
			for (i=0;i<elements.length;i++) {
				elements[i].addClassName('hide');
			}
		}

		function toggleDetails() {

            if (this.ancestors()[1].hasClassName("expanded")) {
                var collapse = true;
            } else {
                collapse = false
            }
            
			// contract all
			var elements = $$('table#calendar tr');
			for (i=0;i<elements.length;i++) {
                elements[i].removeClassName('expanded');
			}


			
			// hide all infos
			var elements = $$('table#calendar tr .info');
			for (i=0;i<elements.length;i++) {
				elements[i].addClassName('hide');
			}
			
			// expand the selected row
			var row = this.ancestors()[1];
			if (!collapse) {

                 row.addClassName('expanded');
			     var details = row.next().down('td.info');
			     details.removeClassName('hide');
			}
		}