function changeFecha (form) {
	changeFecha(form, null, null, null, null);
}

function changeFecha (form, start, end) {
	changeFecha(form, start, end, null, null);
}

function changeFecha (form, start, end, min, max) {
	var ret = true;
	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 h = new Date();
	//var hoy = h;
	
	var hoy = new Date();
	var ent = new Date(yev, mev, dev,hoy.getHours(),hoy.getMinutes(),59);
	var sal = new Date(ysv, msv, dsv,hoy.getHours(),hoy.getMinutes(),59);
	//alert(ent +"  "+ent.getTime());
	//alert(sal+"  "+sal.getTime());
	//hoy.setHours(0);
	//hoy.setMinutes(0);
	//hoy.setSeconds(0);
	//alert(ent.getTime()+'<'+hoy.getTime());
	if (ent.getTime() < hoy.getTime()) ent = hoy;
	if (sal.getTime() <= ent.getTime()) {
		sal.setTime(ent.getTime());
		sal.setDate(sal.getDate() + 1);
	}
	var nv = Math.round((sal.getTime() -  ent.getTime()) / (1000 * 60 * 60 * 24));
	//alert((sal.getTime() -  ent.getTime()) / (1000 * 60 * 60 * 24)+"     "+nv);
	if (nv > 0) {
		noches.value = nv;
		if (min != null || max != null) {
			if (min!=null && nv < min) {
				noches.value = min;
				sal.setTime(ent.getTime());
				sal.setDate(ent.getDate() + min);
				ret = false;
			} else if (max!=null && nv > max) {
				noches.value = max;
				sal.setTime(ent.getTime());
				sal.setDate(ent.getDate() + max);
				ret = false;
			}
		}
	} else {
		sal.setTime(ent.getTime());
		sal.setDate(sal.getDate() + 1);
	}

	generar_selects(de, me, ent, start, end);
	generar_selects(ds, ms, sal, start, end);
	
	return ret;
}

function changeNoches (form, start, end, min, max) {
	var ret = true;
	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 if (null != min && null != max) {
		if (noches.value < min) {
			noches.value = min;
			ret = false;
		}
		if (noches.value > max) {
			noches.value = max;
			ret = false;
		}
	}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,hoy.getHours(),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);
	
	return ret;
}

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;
 }
 
 function show_rooms(select) {
	if (select.value == "2") {
 		document.getElementById('habitacion_2').removeAttribute("style");
 		document.getElementById('habitacion_3').style.display = "none";
 		document.getElementById('habitacion_4').style.display = "none";
 	} else if (select.value == "3") {
 		document.getElementById('habitacion_2').removeAttribute("style");
 		document.getElementById('habitacion_3').removeAttribute("style");
 		document.getElementById('habitacion_4').style.display = "none";
 	} else if (select.value == "4") {
 		document.getElementById('habitacion_2').removeAttribute("style");
 		document.getElementById('habitacion_3').removeAttribute("style");
 		document.getElementById('habitacion_4').removeAttribute("style");
 	} else {
 		document.getElementById('habitacion_2').style.display = "none";
 		document.getElementById('habitacion_3').style.display = "none";
 		document.getElementById('habitacion_4').style.display = "none";
 	}
 }
 
 function show_roomsOffer(select) {
	  	if (select.value == "2") {
	 		document.getElementById('hab_2').removeAttribute("style");
	 		document.getElementById('hab_3').style.display = "none";
	 		document.getElementById('hab_4').style.display = "none";
	 	} else if (select.value == "3") {
	 		document.getElementById('hab_2').removeAttribute("style");
	 		document.getElementById('hab_3').removeAttribute("style");
	 		document.getElementById('hab_4').style.display = "none";
	 	} else if (select.value == "4") {
	 		document.getElementById('hab_2').removeAttribute("style");
	 		document.getElementById('hab_3').removeAttribute("style");
	 		document.getElementById('hab_4').removeAttribute("style");
	 	} else {
	 		document.getElementById('hab_2').style.display = "none";
	 		document.getElementById('hab_3').style.display = "none";
	 		document.getElementById('hab_4').style.display = "none";
	 	}
	 }
 function show_childrenAges(select){	 
	 var id = select.id.substring(select.id.lastIndexOf(':')+1, select.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').removeAttribute("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').removeAttribute("style");
		 document.getElementById('edad_'+ id +'_2').removeAttribute("style");
		 document.getElementById('edad_'+ id +'_3').style.display = "none";
	 }else if (select.value=="3"){
		 document.getElementById('edad_'+ id +'_1').removeAttribute("style");
		 document.getElementById('edad_'+ id +'_2').removeAttribute("style");
		 document.getElementById('edad_'+ id +'_3').removeAttribute("style");
	 }
		 
 }

 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').removeAttribute("style");
		 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').removeAttribute("style");
		 document.getElementById('oedad_'+ id +'_2').removeAttribute("style");
		 document.getElementById('oedad_'+ id +'_3').style.display = "none";
	 }else if (select.value=="3"){
		 document.getElementById('oedad_'+ id +'_1').removeAttribute("style");
		 document.getElementById('oedad_'+ id +'_2').removeAttribute("style");
		 document.getElementById('oedad_'+ id +'_3').removeAttribute("style");
	 }
		 
 }
 
 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;
		}
	}
 }
