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,hoy.getHours(),hoy.getMinutes(),59);
	var sal = new Date(ysv, msv, dsv,hoy.getHours(),hoy.getMinutes(),59);

	if (ent.getTime() < hoy.getTime()) {
		if (firstTime) {
			ent = hoy;
		} else {
			ent = new Date(yev, mev + 1, dev,hoy.getHours(),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,hoy.getHours(),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,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);
}

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 = '';
 		document.getElementById('habitacion_3').style.display = 'none';
 	} else {
 		if (select.value=="1"){
	 		document.getElementById('habitacion_2').style.display = "none";
	 		document.getElementById(form+'edad_ninos_2_1').value = "0";
			document.getElementById(form+'edad_ninos_2_2').value = "0";
			document.getElementById(form+'edad_ninos_2_3').value = "0";
			document.getElementById(form+'ninos2').value = "0";
			document.getElementById('edad_ninos2_1').style.display = "none";
			document.getElementById('edad_ninos2_2').style.display = "none";
			document.getElementById('edad_ninos2_3').style.display = "none";
			max_edad_2=0;
			document.getElementById('habitacion_3').style.display = "none";
	 		document.getElementById(form+'edad_ninos_3_1').value = "0";
			document.getElementById(form+'edad_ninos_3_2').value = "0";
			document.getElementById(form+'edad_ninos_3_3').value = "0";
			document.getElementById(form+'ninos3').value = "0";
			document.getElementById('edad_ninos3_1').style.display = "none";
			document.getElementById('edad_ninos3_2').style.display = "none";
			document.getElementById('edad_ninos3_3').style.display = "none";
			max_edad_3=0;
 		}
 	}
  	if (select.value == "3") {
 		document.getElementById('habitacion_2').style.display = '';
 		document.getElementById('habitacion_3').style.display = '';
 	} else {
 		if (select.value=="1"){
	 		document.getElementById('habitacion_2').style.display = "none";
	 		document.getElementById(form+'edad_ninos_2_1').value = "0";
			document.getElementById(form+'edad_ninos_2_2').value = "0";
			document.getElementById(form+'edad_ninos_2_3').value = "0";
			document.getElementById(form+'ninos2').value = "0";
			document.getElementById('edad_ninos2_1').style.display = "none";
			document.getElementById('edad_ninos2_2').style.display = "none";
			document.getElementById('edad_ninos2_3').style.display = "none";
			max_edad_2=0;
			document.getElementById('habitacion_3').style.display = "none";
	 		document.getElementById(form+'edad_ninos_3_1').value = "0";
			document.getElementById(form+'edad_ninos_3_2').value = "0";
			document.getElementById(form+'edad_ninos_3_3').value = "0";
			document.getElementById(form+'ninos3').value = "0";
			document.getElementById('edad_ninos3_1').style.display = "none";
			document.getElementById('edad_ninos3_2').style.display = "none";
			document.getElementById('edad_ninos3_3').style.display = "none";
			max_edad_3=0;
 		}
 		if (select.value=="2"){
 			document.getElementById('habitacion_3').style.display = "none";
	 		document.getElementById(form+'edad_ninos_3_1').value = "0";
			document.getElementById(form+'edad_ninos_3_2').value = "0";
			document.getElementById(form+'edad_ninos_3_3').value = "0";
			document.getElementById(form+'ninos3').value = "0";
			document.getElementById('edad_ninos3_1').style.display = "none";
			document.getElementById('edad_ninos3_2').style.display = "none";
			document.getElementById('edad_ninos3_3').style.display = "none";
			max_edad_3=0;
 		}
 	}
 }
  
 function show_childrenAges(select,style){	 
	 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').style.display = '';
		 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 = '';
		 document.getElementById('edad_'+ id +'_2').style.display = '';
		 document.getElementById('edad_'+ id +'_3').style.display = "none";
	 }else if (select.value=="3"){
		 document.getElementById('edad_'+ id +'_1').style.display = '';
		 document.getElementById('edad_'+ id +'_2').style.display = '';
		 document.getElementById('edad_'+ id +'_3').style.display = '';
	 }		 
 }
 
 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;}

	 document.getElementById('etiqueta_edades_1').style.display = "none";
	 document.getElementById('etiqueta_edades_2').style.display = "none";
	 document.getElementById('etiqueta_edades_3').style.display = "none";
	 for(i=1;i<=3;i++){
		 document.getElementById('edad_'+i).style.display = "none";
	 }
	 if(max_edad_1 > 0)document.getElementById('etiqueta_edades_1').style.display = '';
	 if(max_edad_2 > 0)document.getElementById('etiqueta_edades_2').style.display = '';
	 if(max_edad_3 > 0)document.getElementById('etiqueta_edades_3').style.display = '';
	 
	 if(max_edad_1 > max_edad_2){
		 for(i=1;i<=max_edad_1;i++){
			 document.getElementById('edad_'+i).style.display = '';
		 }
	 }else  if(max_edad_1 <= max_edad_2){
		 for(i=1;i<=max_edad_2;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;
		}
	}
 }
