function initCalendar() {
  var cal = document.getElementById('calendar');
  var dds = getElementsByClassName('start', cal).concat(getElementsByClassName('startend', cal));
  
  for (var i=0; i<dds.length; i++) {
    dds[i].onclick = function() { setInfo(this, this.childNodes[2].innerHTML); }
  }
  
  var now = new Date();
  today = document.getElementById('d' + now.getFullYear().toString().substr(2, 2) + (now.getMonth() < 9 ? '0' + (now.getMonth() + 1) : now.getMonth() + 1) + (now.getDate() < 10 ? '0' + now.getDate() : now.getDate()));
  today.className += ' today';
  
  var b = document.getElementById("bookingInfo");
  //b.style.cursor = 'pointer';
  b.onclick = function() {
    this.style.display = 'none';
  }
}

function setInfo(el, info) {
  var offset = cumulativeOffset(el);
  var b = document.getElementById("bookingInfo");
  b.innerHTML = info;
  b.style.display = 'block';
  b.style.top = offset.top + 'px';
  b.style.left = offset.left + 'px';
}

function getElementsByClassName(className) {
  var children = document.getElementsByTagName('*') || document.all;
  var elements = new Array();
  
  for (var i = 0; i < children.length; i++) {
    var child = children[i];
    var classNames = child.className.split(' ');
    for (var j = 0; j < classNames.length; j++) {
      if (classNames[j] == className) {
        elements.push(child);
        break;
      }
    }
  }
  
  return elements;
}

function cumulativeOffset(element) {
  var valueT = 0, valueL = 0;
  do {
    valueT += element.offsetTop  || 0;
    valueL += element.offsetLeft || 0;
    element = element.offsetParent;
  } while (element);
  return { left: valueL, top: valueT};
}
