// set up the calendar, via masterlands onload handling

// add it to listener, support standalone usage for this script

// @TODO: make date format, time format flexible in an elegant way.

/**
 * constructor, requires to be there..
 */ 
function MasterCalSetup() {
}
/**
 * initialize event context, this can be used if only a part of the page
 * is reloaded with an integrated ajax framework (currently not public available) 
 */ 
MasterCalSetup.init = function(anEvent) {
    var myElement = anEvent!=null?anEvent.getElement() : document;

    MasterCalSetup.initializeCalendars(myElement);    
}

MasterCalSetup.initializeCalendars =  function(aParentElement) {
  var myImgElements = aParentElement.getElementsByTagName("img");
  var myImgElement;
  for(var i=0; i<myImgElements.length; i++) {
    myImgElement  = myImgElements[i];
    if (MasterCalSetup.isCalendarIcon(myImgElement)) {
      MasterCalSetup.initializeCalendar(myImgElement);
    }
  }    
}

MasterCalSetup.isCalendarIcon = function(anImgElement) {
  return anImgElement!=null && 
         anImgElement.className!=null && 
         anImgElement.className.match("calendarIcon");
}

MasterCalSetup.initializeCalendar = function(anImgElement) {
    var myImgId = anImgElement.id;
      
    var myInputId = myImgId.substr(0, myImgId.length-4);
    
    var myDisplayId = myInputId+"Label";
    
    // TODO: date format handling    
    var myFormat  = "%d %b %Y";
    //alert(myInputId);
    var myShowsTime = false;
    
    if (anImgElement.className.match("showTime")) {
      myShowsTime = true;
      
      // TODO: time format handling
      myFormat += " %H:%M";
      
    }
    
    Calendar.setup( {
        inputField  : myInputId,
        ifFormat    : "%s",
        displayArea : myDisplayId,
        daFormat    : myFormat,
        button      : myImgId,
        align       : "Tl",
        singleClick : true,
        showsTime   : myShowsTime
        
    });
      
}


if (typeof(PageRequest)!='undefined') {    
    PageRequest.addOnPageStructureChangeEvent(MasterCalSetup.init);
} else {
    this.onload=MasterCalSetup.init;
}
