var calendar = null;
function selected(cal, date) {
  cal.sel.value = date;
}
function closeHandler(cal) {
  cal.hide();  
  removeEvent(document, "mousedown", checkCalendar);
}
function checkCalendar(ev) {
  var el = is_ie ? getElement(ev) : getTargetElement(ev);
  for (; el != null; el = el.parentNode)
    if (el == calendar.element || el.tagName == "A") break;
  if (el == null) {
    calendar.callCloseHandler();
    stopEvent(ev);
  }
}
function showCalendar(id, format) {
  var el = document.getElementById(id);
  if (calendar != null) {
    calendar.hide();
  } else {
    var cal = new Calendar(true, null, selected, closeHandler);
    calendar = cal;
    cal.setRange(1900, 2070);
  }
  calendar.setDateFormat(format);
  calendar.parseDate(el.value);
  calendar.sel = el;
  calendar.showAtElement(el);
  addEvent(document, "mousedown", checkCalendar);
  return false;
}

