// This function gets called when the end-user clicks on some date.
function selected(cal, date) {
  cal.sel.value = date; // just update the date in the input field.
  if (cal.dateClicked && (cal.sel.id == "sel1" || cal.sel.id == "sel3"))
    // if we add this call we close the calendar on single-click.
    // just to exemplify both cases, we are using this only for the 1st
    // and the 3rd field, while 2nd and 4th will still require double-click.
    cal.callCloseHandler();
}

// And this gets called when the end-user clicks on the _selected_ date,
// or clicks on the "Close" button.  It just hides the calendar without
// destroying it.
function closeHandler(cal) {
  cal.hide();                        // hide the calendar
//  cal.destroy();
  _dynarch_popupCalendar = null;
}

var Ski = {
	showCalendar:function(id, format, showsTime, showsOtherMonths) {
	  var el = document.getElementById(id);
	  if (this.calendar != null) {
	    // we already have some calendar created
	    this.calendar.hide();                 // so we hide it first.
	  } else {
	  	// This function gets called when the end-user clicks on some date.
		// first-time call, create the calendar.
	    var cal = new Calendar(1, null, selected, closeHandler);
	    // uncomment the following line to hide the week numbers
	    // cal.weekNumbers = false;
	    if (typeof showsTime == "string") {
	      cal.showsTime = true;
	      cal.time24 = (showsTime == "24");
	    }
	    if (showsOtherMonths) {
	      cal.showsOtherMonths = true;
	    }
	    this.calendar = cal;                  // remember it in the global var
	    cal.setRange(2008, 2070);        // min/max year allowed.
	    cal.create();
	  }
	  this.calendar.setDateFormat(format);    // set the specified date format
	  this.calendar.parseDate(el.value);      // try to parse the text in field
	  this.calendar.sel = el;                 // inform it what input field we use
	  // the reference element that we pass to showAtElement is the button that
	  // triggers the calendar.  In this example we align the calendar bottom-right
	  // to the button.
	  this.calendar.showAtElement(el, "Br");        // show the calendar

	  return false;
	}
}