YAHOO.namespace("example.calendar");

function init() {
	YAHOO.example.calendar.cal1 = new YAHOO.widget.Calendar("cal1", "startCalendar", { title:"Start date:", close:true } );
	YAHOO.example.calendar.cal1.render();
	YAHOO.util.Event.addListener("showStartCalendar", "click", YAHOO.example.calendar.cal1.show, YAHOO.example.calendar.cal1, true);
  
	YAHOO.example.calendar.cal2 = new YAHOO.widget.Calendar("cal2", "endCalendar", { title:"End date:", close:true } );
	YAHOO.example.calendar.cal2.render();
	YAHOO.util.Event.addListener("showEndCalendar", "click", YAHOO.example.calendar.cal2.show, YAHOO.example.calendar.cal2, true);

  YAHOO.example.calendar.cal1.selectEvent.subscribe(handleStartSelect, YAHOO.example.calendar.cal1, true);
  
  updateStartCal();
  
  YAHOO.example.calendar.cal2.selectEvent.subscribe(handleEndSelect, YAHOO.example.calendar.cal2, true);
  
  updateEndCal();
}

YAHOO.util.Event.addListener(window, "load", init);

function handleSelect(type,args,obj,textfield) { 
  var dates = args[0];  
  var date = dates[0]; 
  var year = date[0], month = date[1], day = date[2]; 
  
  var txtDate1 = document.getElementById(textfield); 
  txtDate1.value = month + "/" + day + "/" + year; 
}

function handleStartSelect(type,args,obj) {
  handleSelect(type,args,obj,"sd");
}

function handleEndSelect(type,args,obj) {
  handleSelect(type,args,obj,"ed");
}

function updateStartCal() {
  var txtDate1 = document.getElementById("sd");
  
  if (txtDate1.value != "")
  { 
    // Select the date typed in the field
    YAHOO.example.calendar.cal1.select(txtDate1.value); 
    
    var firstDate = YAHOO.example.calendar.cal1.getSelectedDates()[0];
    
    // Set the Calendar's page to the earliest selected date
    YAHOO.example.calendar.cal1.cfg.setProperty("pagedate", (firstDate.getMonth()+1) + "/" + firstDate.getFullYear()); 
    
    YAHOO.example.calendar.cal1.render();
  }
}

function updateEndCal() {
  var txtDate2 = document.getElementById("ed");
  
  if (txtDate2.value != "")
  { 
    // Select the date typed in the field
    YAHOO.example.calendar.cal2.select(txtDate2.value); 
    
    var firstDate = YAHOO.example.calendar.cal2.getSelectedDates()[0];
    
    // Set the Calendar's page to the earliest selected date
    YAHOO.example.calendar.cal2.cfg.setProperty("pagedate", (firstDate.getMonth()+1) + "/" + firstDate.getFullYear()); 
    
    YAHOO.example.calendar.cal2.render();
  }
}