
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, loc) {
  var el = document.getElementById(id);
  var locel = document.getElementById(loc);
  if (calendar != null) {
    calendar.hide();           
  } else {
    var cal = new Calendar(false, null, selected, closeHandler);
    calendar = cal;                 
    cal.setRange(2004, 2050);       
  }
  calendar.setDateFormat(format);   
  calendar.parseDate(el.value);     
  calendar.sel = el;                
	if (locel)
	{
	  calendar.showAtElement(locel);
	}
	else       
	{
	  calendar.showAtElement(el);
	}

  addEvent(document, "mousedown", checkCalendar);
  return false;
}
