Primero corrige tu HTML, empezamos con sólo un datepicker, pero necesitas revisar toda tu página:
--- El el for de cada label debes especificar la ID del campo al que pertenece, si hacen click en el label, el campo toma el foco
--- No es necesario (ni recomendable) tener <label><input /></label>
--- Los atributos name, onchange, onfocus, onblur, etc., de las etiquetas html son en minúsculas
-- La forma correcta de agregar un script es todo en minúsculas y especificando sólo el tipo, porque language ya es obsoleto:
<script type="text/javascript"></script>
Como ejemplo de lo anterior y para resolver tu problema:
1- Agregas el atributo onfocus al datepicker, para que cuando el usuario ingrese a ese campo, tome los valores de fecha mínima y máxima desde select7 y select8 ("desde" y "hasta").
Código HTML:
Ver original <input type="text" id="datepicker_1" name="llegada" class="datepicker" onfocus="datepickers_init();" onchange="calcular();" />
Debes hacer lo mismo para el segundo datepicker (si es que lo vas a usar)
2- Elimina la función de inicialización automática de los datepickers, realmente no es útil al cargar la página, porque no se ha seleccionado posada y plan, es decir, quita todo el bloque siguiente.
Código HTML:
Ver original<script language="JavaScript" type="text/JavaScript"> $(document).ready(function()
{
$("#datepicker").datepicker();
}
);
$(function(){
var pickerOpts = {
minDate: new Date()
};
$("#datepicker_1").datepicker(pickerOpts);
});
3- Agrega la función para cargar opciones de los datepickers cuando el usuario seleccione cualquiera de los dos
Código HTML:
Ver original<script type="text/javascript"> function datepickers_init () {
var pickerOpts = {
minDate: new Date($('#select7').value),
maxDate: new Date($('#select8').value),
};
$("#datepicker_1").datepicker(pickerOpts);
// Si vas a usar el segundo datepicker
// No necesitas crear otras opciones, son las mismas del anterior
$("#datepicker_2").datepicker(pickerOpts);
}
4- La recomendación más importante es: Limpia tu código, porque me parece que vas dejando cosas que probaste y luego ya no usas (HTML y Javascript).
--- Ya que tienes jQuery, como bien te sugirió
emprear, deja de usar document.getElementById('id_de_elemento') y, en su lugar, usa $('#id_de_elemento')
Finalmente, creo que estás en el mismo caso de hace un tiempo, desesperándote y queriendo avanzar rápido y eso no te deja ver que la solución puede ser un poco menos complicada de lo que parece y te desesperas más.
Tú puedes lograrlo, ya lo has demostrado muchas veces, solo necesitas un poco de paciencia y despejarte un poco.