// FIXME: use jscalendar's function?
function parseDate(dateString) {
  var m = /(\d\d\d\d).?(\d\d).?(\d\d)/.exec(dateString);
  if (m && m[1]>1990 && m[2]>0 && m[2]<13 && m[3]<32 && m[3]>0) {
    return new Date(m[1], m[2]-1, m[3]); 
  } else {
    var m = /(\d\d).?(\d\d).?(\d\d\d\d)/.exec(dateString);
    if (m && m[3]>1990 && m[2]>0 && m[2]<13 && m[1]<32 && m[1]>0) {
      return new Date(m[3], m[2]-1, m[1]); }
    else {
      return null; 
    }
  }
}
var DayNames = [ "sø", "ma", "ti", "on", "to", "fr", "lø" ];

       
function initJsCalendar(input) {
  var icon = document.createElement("img");
  icon.src = CALENDAR_ICON;
  icon.className = "calendar-icon";
  icon.alt = "...";
  icon.title = "Vis kalender";
  icon.id = "jscalendar-button-for-" + input.id;

  elementInsertAfter(input.parentNode, icon, input);
  input.daySpan = document.createElement("span");
  input.daySpan.className = "dayname";
  input.parentNode.insertBefore(input.daySpan, input);

  Calendar.setup(
    {
      inputField  : input.id,
      button      : icon.id,
      ifFormat    : "%d.%m.%Y",    // the date format
      firstDay    : 1
    }
  );

  input.daySpan.appendChild(document.createTextNode("ma "));
  var daynameWidth = input.daySpan.offsetWidth || 30;
  input.onkeyup = function () {
    var date = parseDate(input.value);
    if (date) {      
      input.daySpan.firstChild.nodeValue = DayNames[date.getDay()];
    } else {
      input.daySpan.firstChild.nodeValue = "";
    }
    input.daySpan.style.paddingRight = "0";
    input.daySpan.style.paddingRight = daynameWidth - input.daySpan.offsetWidth + "px";
  }
  input.onchange = input.onkeyup;
  input.onchange();

}  

function initCalendars() {
  mapArray(getElementsByClass(document, "kkal-date", "input"),initJsCalendar);
}
