Vediamo, fai così:
1- Metti ad entrambi gli input readonly="readonly", così che non si possano editare.
2- metti disabled="true" al secondo bottone (se non può schiacciarlo non può selezionare la data) e mettici un id (tipo id="secondoButton")
3- Modifica la funzione selected così:
Codice PHP:
function selected(caldate) {
   
cal.sel.value date// just update the date in the input field.
   
if (cal.dateClicked && (cal.sel.id == "sel" || cal.sel.id == "sel3"))
      
cal.callCloseHandler();
      if(
cal.sel.id == 'sel3' && cal.sel.value)
      {
         
document.getElementById("secondoButton").disabled false;
      }
   }

Per impostare la data nello script che usi per gestire il calendario devi passare una stringa in un formato supportato dall'oggetto Date (new Date("Mese gg, aaaa"), in inglese il mese ovviamente), nel costruttore dell'oggetto Calendar.

Ti conviene modificare la tua funzione showCalendar in modo che accetti anche la data:
Codice PHP:
function showCalendar(idformatdateStrshowsTimeshowsOtherMonths) {
 var 
el document.getElementById(id);
 if (
_dynarch_popupCalendar != null) {
 
// we already have some calendar created
 
_dynarch_popupCalendar.hide(); // so we hide it first.
 
} else {
 
// first-time call, create the calendar.
 
var cal = new Calendar(1dateStrselectedcloseHandler);
 
// 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;
 }
 
_dynarch_popupCalendar cal// remember it in the global var

 
cal.setRange(19002070); // min/max year allowed.
 
cal.create();
 }
 
_dynarch_popupCalendar.setDateFormat(format); // set the specified date format
 
_dynarch_popupCalendar.parseDate(el.value); // try to parse the text in field
 
_dynarch_popupCalendar.sel el// inform it what input field we use

 
_dynarch_popupCalendar.showAtElement(el.nextSibling"Br"); // show the calendar

 
return false;

non so se si vede, ma oltre ai parametri ho modificato anche la linea dove fai new Calendar.

poi crei un array fuori dalle funzioni:

Codice PHP:
var engMonth = new Array();
engMonth[1] = 'January';
engMonth[2] = 'February';
engMonth[3] = 'March';
engMonth[4] = 'April';
engMonth[5] = 'May';
engMonth[6] = 'June';
engMonth[7] = 'July';
engMonth[8] = 'August';
engMonth[9] = 'September';
engMonth[10] = 'October';
engMonth[11] = 'November';
engMonth[12] = 'December'
A questo punto, dal secondo bottone togli l'onclick e trasformi ancora la funzione select()

Codice PHP:
function selected(caldate) {
   
cal.sel.value date// just update the date in the input field.
   
if (cal.dateClicked && (cal.sel.id == "sel" || cal.sel.id == "sel3"))
      
cal.callCloseHandler();
      if(
cal.sel.id == 'sel3' && cal.sel.value)
      {
         var 
button document.getElementById("secondoButton");
         
button.disabled false;
         var 
splitted date.split("/");
         var 
dateStr engMonth[parseInt(splitted[1])]+" "+splitted[0]+", "+splitted[2]:
         
button.onclick = function(){
            return 
showCalendar('sel1''%d/%m/%Y'dateStr);
         }
      }
   }

Dovrebbe andare...