function changeFecha (form, start, end, firstTime) {
	var de = document.getElementById(form + ':entrada1');
	var me = document.getElementById(form + ':entrada2');
	var ds = document.getElementById(form + ':salida1');
	var ms = document.getElementById(form + ':salida2');
	var noches = document.getElementById(form + ':noches');
	
	var dev = parseInt(de.value);
	var dsv = parseInt(ds.value);
	var mev = me.value;
	var msv = ms.value;	
	var entrada = mev.split(" - ");
	var salida = msv.split(" - ");
	mev = parseInt(entrada[0]);
	msv = parseInt(salida[0]);
	var yev = parseInt(entrada[1]);
	var ysv = parseInt(salida[1]);
	
	var hoy = new Date();
	var ent = new Date(yev, mev, dev,10,hoy.getMinutes(),59);
	var sal = new Date(ysv, msv, dsv,20,hoy.getMinutes(),59);

	if (ent.getTime() < hoy.getTime()) {
		if (firstTime) {
			ent = hoy;
		} else {
			ent = new Date(yev, mev + 1, dev,10,hoy.getMinutes(),59);
			firstTime = true;
		}
	}
	if (sal.getTime() <= ent.getTime()) {
		if (firstTime) {
			sal.setTime(ent.getTime());
			sal.setDate(sal.getDate() + 1);
		} else {
			sal = new Date(ysv, msv + 1, dsv,20,hoy.getMinutes(),59);
		}
	}
	var nv = Math.round((sal.getTime() -  ent.getTime()) / (1000 * 60 * 60 * 24)); 
	if (nv > 0) {
		noches.value = nv;
	} else {
		sal.setTime(ent.getTime());
		sal.setDate(sal.getDate() + 1);
	}
	
	generar_selects(de, me, ent, start, end);
	generar_selects(ds, ms, sal, start, end);
}

function changeNoches (form, start, end) {
	var de = document.getElementById(form + ':entrada1');
	var me = document.getElementById(form + ':entrada2');
	var ds = document.getElementById(form + ':salida1');
	var ms = document.getElementById(form + ':salida2');
	var noches = document.getElementById(form + ':noches');
	
	if (isNaN(noches.value) || noches.value <= 0)
		noches.value = 1;
	else 
		noches.value = parseInt(noches.value);
	
	var dev = parseInt(de.value);
	var mev = me.value;
	var entrada = mev.split(" - ");
	mev = parseInt(entrada[0]);
	var yev = parseInt(entrada[1]);
	
	var hoy = new Date();
	var ent = new Date(yev, mev, dev,10,hoy.getMinutes(),59);
	var sal = new Date();
	
	var val = Math.floor(ent.getTime() +  (noches.value * (1000 * 60 * 60 * 24)));
	sal.setTime(val);
	noches.value = noches.value;
	
	if (null != end) {
		var eDate = end.split("-");
		if (eDate.length == 3) {
			maxDate = new Date(eDate[0], eDate[1], eDate[2]);
			if (maxDate.getTime() > val) {
				noches.value = 1;
				sal.setTime(maxDate.getTime());
			}
		}
	}
	
	generar_selects(ds, ms, sal, start, end);
}

function generar_selects(select1, select2, fecha) {
	generar_selects(select1, select2, fecha, null, null);
}

function generar_selects(select1, select2, fecha, start, end) {
	
	var minDate = null;
	var maxDate = null;
	
	if (null != start && null != end) {
		var sDate = start.split("-");
		var eDate = end.split("-");
		if (sDate.length == 3 && eDate.length == 3) {
			minDate = new Date(sDate[0], sDate[1], sDate[2]);
			maxDate = new Date(eDate[0], eDate[1], eDate[2]);
		}
	}
	
	while (select1.options.length > 0) {
		select1.options[0] = null;
	}
	var fDay = 1;
	var lDay = lastDay(fecha.getMonth(), fecha.getFullYear());
	
	if (null != minDate) {
		if (minDate.getMonth() == fecha.getMonth() && minDate.getFullYear() == fecha.getFullYear()) {
			fDay = minDate.getDate();
		}
	}
	if (null != maxDate) {
		if (maxDate.getMonth() == fecha.getMonth() && maxDate.getFullYear() == fecha.getFullYear()) {
			lDay = maxDate.getDate();
		}
	}
	
	var j = 0;
	for (i = fDay; i <= lDay; i++) {
		var long = (i + '').length;
		var dia;
		if (long > 1) {
			dia = '' + i;
		} else {
			dia = '0' + i;
		}
		var opcion = new Option(dia, i);
		select1.options[j++] = opcion;
	}
	
	var s = fecha.getMonth() + " - " + fecha.getFullYear();
	select1.value = fecha.getDate();
	select2.value = s;
}

function lastDay(mes, anno) {
	mes = parseInt(mes);
	anno = parseInt(anno);
    switch (mes) {
   		case 0 : case 2 : case 4 : case 6 : case 7 : case 9 : case 11 : return 31;
		case 1 : return (anno % 4 == 0) ? 29 : 28;
 	}
 	return 30;
 }
 


var max_edad_1=0;
var max_edad_2=0;
var max_edad_3=0;

function show_rooms(select,style) {
	var form = select.id.substring(0, select.id.lastIndexOf(':')+1);
  	if (select.value == "2") {
 		document.getElementById('habitacion_2').style.display = style;
 		ocultar(3);
 		ocultar(4);
 		ocultar(5);
  	} else if(select.value == "3") {
  		document.getElementById('habitacion_2').style.display = style;
  		document.getElementById('habitacion_3').style.display = style;
  		ocultar(4);
  		ocultar(5);
  	}else if(select.value == "4") {
  		document.getElementById('habitacion_2').style.display = style;
  		document.getElementById('habitacion_3').style.display = style;
  		document.getElementById('habitacion_4').style.display = style;
  		ocultar(5);
  	}else if(select.value == "5") {
  		document.getElementById('habitacion_2').style.display = style;
  		document.getElementById('habitacion_3').style.display = style;
  		document.getElementById('habitacion_4').style.display = style;
  		document.getElementById('habitacion_5').style.display = style;
  	} else if(select.value == "1") {
 		ocultar(2);
 		ocultar(3);
 		ocultar(4);
 		ocultar(5);
		max_edad_2=0;
		max_edad_3=0;
		max_edad_4=0;
 	}
 }
 
function ocultar(idx){
	document.getElementById('habitacion_'+idx).style.display = "none";
	document.getElementById('abode:dfBookBox:edad_ninos_'+idx+'_1').value = "0";
	document.getElementById('abode:dfBookBox:edad_ninos_'+idx+'_2').value = "0";
	document.getElementById('abode:dfBookBox:edad_ninos_'+idx+'_3').value = "0";
	// document.getElementById('cant_ninos'+idx).value = "0";
	document.getElementById('edad_ninos'+idx+'_1').style.display = "none";
	document.getElementById('edad_ninos'+idx+'_2').style.display = "none";
	document.getElementById('edad_ninos'+idx+'_3').style.display = "none";	
}

function show_childrenAges(select,style){
	 var id = select.id.substring(select.id.lastIndexOf(':')+1, select.id.length);
	 id = id.substring(id.indexOf('_')+1,id.length);
	 
	 if (select.value=="0"){
		 document.getElementById('edad_'+ id +'_1').style.display = "none";
		 document.getElementById('edad_'+ id +'_2').style.display = "none";
		 document.getElementById('edad_'+ id +'_3').style.display = "none";
	 }else if (select.value=="1"){
		 document.getElementById('edad_'+ id +'_1').style.display = style;
		 document.getElementById('edad_'+ id +'_2').style.display = "none";
		 document.getElementById('edad_'+ id +'_3').style.display = "none";
	 }else if (select.value=="2"){ 
		 document.getElementById('edad_'+ id +'_1').style.display = style;
		 document.getElementById('edad_'+ id +'_2').style.display = style;
		 document.getElementById('edad_'+ id +'_3').style.display = "none";
	 }else if (select.value=="3"){
		 document.getElementById('edad_'+ id +'_1').style.display = style;
		 document.getElementById('edad_'+ id +'_2').style.display = style;
		 document.getElementById('edad_'+ id +'_3').style.display = style;
	 } 
}

 function show_childrenAgesFull(select,style){
	 
	 show_childrenAges(select,style)
	 
	 var id = select.id.substring(select.id.lastIndexOf(':')+1, select.id.length);
	 id = id.substring(id.length-1, select.id.length);
	 
	 if(id==1){max_edad_1=select.value;}
	 else if(id==2) {max_edad_2=select.value;}
	 else if(id==3) {max_edad_3=select.value;}
	 
	 etiqueta_edades_1 = document.getElementById('etiqueta_edades_1');
	 etiqueta_edades_2 = document.getElementById('etiqueta_edades_2');
	 etiqueta_edades_3 = document.getElementById('etiqueta_edades_3');

	 if (etiqueta_edades_1 != null) etiqueta_edades_1.style.display = "none";
	 if (etiqueta_edades_2 != null) etiqueta_edades_2.style.display = "none";
	 if (etiqueta_edades_3 != null) etiqueta_edades_3.style.display = "none";
	 for(i=1;i<=3;i++){
		 if (document.getElementById('edad_'+i)) document.getElementById('edad_'+i).style.display = "none";
	 }
	 if(max_edad_1 > 0 && etiqueta_edades_1 != null) etiqueta_edades_1.style.display = '';
	 if(max_edad_2 > 0 && etiqueta_edades_2 != null) etiqueta_edades_2.style.display = '';
	 if(max_edad_3 > 0 && etiqueta_edades_3 != null) etiqueta_edades_3.style.display = '';
	 
	 if(max_edad_1 > max_edad_2){
		 for(i=1;i<=max_edad_1;i++){
			 if (document.getElementById('edad_'+i)) document.getElementById('edad_'+i).style.display = '';
		 }
	 }else  if(max_edad_1 <= max_edad_2){
		 for(i=1;i<=max_edad_2;i++){
			 if (document.getElementById('edad_'+i)) document.getElementById('edad_'+i).style.display = '';
		 }
	 }
 }
 

 function show_childrenAgesOffers(select){	 
	 var id = select.id.substring(select.id.lastIndexOf(':')+1, select.id.length);
	 if (select.value=="0"){
		 document.getElementById('oedad_'+ id +'_1').style.display = "none";
		 document.getElementById('oedad_'+ id +'_2').style.display = "none";
		 document.getElementById('oedad_'+ id +'_3').style.display = "none";
	 }else if (select.value=="1"){
		 document.getElementById('oedad_'+ id +'_1').style.display = '';
		 document.getElementById('oedad_'+ id +'_2').style.display = "none";
		 document.getElementById('oedad_'+ id +'_3').style.display = "none";
	 }else if (select.value=="2"){
		 document.getElementById('oedad_'+ id +'_1').style.display = '';
		 document.getElementById('oedad_'+ id +'_2').style.display = '';
		 document.getElementById('oedad_'+ id +'_3').style.display = "none";
	 }else if (select.value=="3"){
		 document.getElementById('oedad_'+ id +'_1').style.display = '';
		 document.getElementById('oedad_'+ id +'_2').style.display = '';
		 document.getElementById('oedad_'+ id +'_3').style.display = '';
	 }
		 
 }
 
 function actualizar_dias(d, m, a) {
 	var dias = document.getElementById(d);
 	var meses = document.getElementById(m);
 	var annos = document.getElementById(a);
 
 
 	while (dias.options.length > 0) {
		dias.options[0] = null;
	}
	
	for (i = 1; i <= lastDay(meses.value, annos.value); i++) {
		opcion = new Option(i, i,"","");
		dias.options[i - 1] = opcion;
	}
 }
 
 function actualizar_hoteles(json) {
 	var hoteles = document.getElementById('abode:dfBookBox:hoteles');
 	var destinos = document.getElementById('abode:dfBookBox:destinos');
 	var id_destino = destinos.options[destinos.selectedIndex].value;
 	var encontrado = false;
 	var i = 0;
 	
 	while ( i < json.destinos.length && !encontrado) {
 		if (json.destinos[i].id_destino == id_destino) {
 			encontrado = true; 			
 		} else {
 			i++;
 		}
 	}
 	
 	if (encontrado) {
	 	while (hoteles.options.length > 0) {
			hoteles.options[0] = null;
		}
		
		var array_hoteles = json.destinos[i].hoteles;
		
		for (k = 0; k < array_hoteles.length; k++) {
			var opcion = new Option(array_hoteles[k].nom_hotel,array_hoteles[k].id_hotel, "","");
			hoteles.options[k] = opcion;
		}
	}
 }
