
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(false, null, selected, closeHandler);
    calendar = cal;                 
    cal.setRange(2000, 2010);       
  }
  calendar.setDateFormat(format);   
  calendar.parseDate(el.value);     
  calendar.sel = el;                
  calendar.showAtElement(el);       

  addEvent(document, "mousedown", checkCalendar);
  return false;
}
