		var cal1;
		var cal2;

		function init() {
			if(document.frmReserva.hidHotel.value != "NO"){
				updatefield('otro');
			}else{
				updatefield('ambos');
			}

			this.today = new Date();

			var thisMonth = this.today.getMonth();
			var thisDay = this.today.getDate();
			var thisYear = this.today.getFullYear();

			this.link1 = document.getElementById('dateLink1');
			this.link2 = document.getElementById('dateLink2');

			this.selMonth1 = document.getElementById('selMonth1');
			this.selDay1 = document.getElementById('selDay1');
			this.selYear1 = document.getElementById('selYear1');

			this.selMonth1.selectedIndex = thisMonth;
			this.selDay1.selectedIndex = thisDay-1;
			this.selYear1.value = thisYear;

			this.selMonth2 = document.getElementById('selMonth2');
			this.selDay2 = document.getElementById('selDay2');
			this.selYear2 = document.getElementById('selYear2');

			var wNoches = document.getElementById('noches').value;

			var wMilisegundosDia=86400000; //24*60*60*1000;

			this.tomorrow = new Date();
  
			var wMilisegundosDesfase=0;

			this.tomorrow.setTime(this.today.getTime()+(wNoches*wMilisegundosDia));

			if (this.tomorrow.getHours()==23) 
			{
			wMilisegundosDesfase = 60*60*1000;
			}else if (this.tomorrow.getHours()==1)  wMilisegundosDesfase = -60*60*1000;

			this.tomorrow.setTime(this.today.getTime()+(wNoches*wMilisegundosDia)+wMilisegundosDesfase);  


			var thisMonth_a = this.tomorrow.getMonth();
			var thisDay_a = this.tomorrow.getDate();
			var thisYear_a = this.tomorrow.getFullYear();

			this.selMonth2.selectedIndex = thisMonth_a;
			this.selDay2.selectedIndex = thisDay_a-1;
			this.selYear2.value = thisYear_a;

			cal1 = new YAHOO.widget.Calendar2up_ES("cal1","container1",(thisMonth+1)+"/"+thisYear,(thisMonth+1)+"/"+thisDay+"/"+thisYear);
			cal1.setChildFunction("onSelect",setDate1);
			cal1.title = "Buscar desde la fecha:";
			cal1.render();

			cal2 = new YAHOO.widget.Calendar2up_ES("cal2","container2",(thisMonth_a+1)+"/"+thisYear_a,(thisMonth_a+1)+"/"+thisDay_a+"/"+thisYear_a);
			cal2.setChildFunction("onSelect",setDate2);
			cal2.title = "Buscar hasta la fecha:";
			cal2.render();
		}

		function RecalcFechaSalida(){
			var month_in = document.getElementById('selMonth1').selectedIndex;
			var day_in = document.getElementById('selDay1').selectedIndex + 1;
			var year_in = document.getElementById('selYear1').value;

			this.today = new Date(year_in, month_in, day_in);
			this.now = new Date();
			var thisMonth = this.now.getMonth();
			var thisDay = this.now.getDate();
			var thisYear = this.now.getFullYear();
			this.now = new Date(thisYear, thisMonth, thisDay);

			if(this.today.getTime() < this.now.getTime()){
				alert('No puede indicar una fecha menor a la fecha de entrada');
				this.today = this.now;
				cal1.select((thisMonth+1) + "/" + thisDay + "/" + thisYear);
				cal1.setMonth(thisMonth);
				cal1.setYear(thisYear);
				cal1.render();	
			}

			var wNoches = document.getElementById('noches').value;

			var wMilisegundosDia=86400000; //24*60*60*1000;

			this.tomorrow = new Date();
  
			var wMilisegundosDesfase=0;

			this.tomorrow.setTime(this.today.getTime()+(wNoches*wMilisegundosDia));

			if (this.tomorrow.getHours()==23) 
			{
			wMilisegundosDesfase = 60*60*1000;
			}else if (this.tomorrow.getHours()==1)  wMilisegundosDesfase = -60*60*1000;

			this.tomorrow.setTime(this.today.getTime()+(wNoches*wMilisegundosDia)+wMilisegundosDesfase);  

			var month_out = this.tomorrow.getMonth();
			var day_out = this.tomorrow.getDate();
			var year_out = this.tomorrow.getFullYear();

			cal2.select((month_out+1) + "/" + day_out + "/" + year_out);
			cal2.setMonth(month_out);
			cal2.setYear(year_out);
			cal2.render();
		}

		function RecalcNoches(){
			var month_out = document.getElementById('selMonth2').selectedIndex;
			var day_out = document.getElementById('selDay2').selectedIndex;
			var year_out = document.getElementById('selYear2').value;

			var month_in = document.getElementById('selMonth1').selectedIndex;
			var day_in = document.getElementById('selDay1').selectedIndex;
			var year_in = document.getElementById('selYear1').value;

			this.date_in = new Date(year_in, month_in, day_in);
			this.date_out = new Date(year_out, month_out, day_out);

			var wMilisegundosDia=86400000; //24*60*60*1000;

			var numDays = (this.date_out.getTime() - this.date_in.getTime()) / wMilisegundosDia;

			if(numDays <= 0){
				alert('No puede indicar una fecha menor a la fecha de entrada');
				var wNoches = 1;
				document.getElementById('noches').value = wNoches;

				this.tomorrow.setTime(this.today.getTime()+(wNoches*wMilisegundosDia));

				this.tomorrow = new Date();
	  
				var wMilisegundosDesfase=0;

				this.tomorrow.setTime(this.today.getTime()+(wNoches*wMilisegundosDia));

				if (this.tomorrow.getHours()==23) 
				{
				wMilisegundosDesfase = 60*60*1000;
				}else if (this.tomorrow.getHours()==1)  wMilisegundosDesfase = -60*60*1000;

				this.tomorrow.setTime(this.today.getTime()+(wNoches*wMilisegundosDia)+wMilisegundosDesfase);  

				var thisMonth_a = this.tomorrow.getMonth();
				var thisDay_a = this.tomorrow.getDate();
				var thisYear_a = this.tomorrow.getFullYear();

//				this.selMonth2.selectedIndex = thisMonth_a;
//				this.selDay2.selectedIndex = thisDay_a-1;
//				this.selYear2.value = thisYear_a;

				cal2.select((thisMonth_a+1) + "/" + thisDay_a + "/" + thisYear_a);
				cal2.setMonth(thisMonth_a);
				cal2.setYear(thisYear_a);
				cal2.render();

			}else if(numDays > 15){
				alert("El número máximo de noches es 15");
				var wNoches = 16;
				document.getElementById('noches').value = wNoches;

				this.tomorrow.setTime(this.date_in.getTime()+(wNoches*wMilisegundosDia));  

				var month_out = this.tomorrow.getMonth();
				var day_out = this.tomorrow.getDate();
				var year_out = this.tomorrow.getFullYear();

				cal2.select((month_out+1) + "/" + day_out + "/" + year_out);
				cal2.setMonth(month_out);
				cal2.setYear(year_out);
				cal2.render();
			}else{
				var wNoches = numDays;
				document.getElementById('noches').value = wNoches;
			}
		}


		function showCalendar1() {
			var offsetTrail = link1;
			var offsetLeft = 0;
			var offsetTop = 0;
			while (offsetTrail) {
			offsetLeft += offsetTrail.offsetLeft;
			offsetTop += offsetTrail.offsetTop;
			offsetTrail = offsetTrail.offsetParent;
			}
			if (navigator.userAgent.indexOf("Mac") != -1 && 
				typeof document.body.leftMargin != "undefined") {
				offsetLeft += document.body.leftMargin;
				offsetTop += document.body.topMargin;
			}

			cal2.hide();
			cal1.outerContainer.style.top = (offsetTop+link1.height+1) + "px";
			cal1.outerContainer.style.left = (offsetLeft) + "px";
			cal1.outerContainer.style.display='block';
		}

		function showCalendar2() {
			var offsetTrail = link2;
			var offsetLeft = 0;
			var offsetTop = 0;
			while (offsetTrail) {
			offsetLeft += offsetTrail.offsetLeft;
			offsetTop += offsetTrail.offsetTop;
			offsetTrail = offsetTrail.offsetParent;
			}
			if (navigator.userAgent.indexOf("Mac") != -1 && 
				typeof document.body.leftMargin != "undefined") {
				offsetLeft += document.body.leftMargin;
				offsetTop += document.body.topMargin;
			}

			cal1.hide();
			cal2.outerContainer.style.top = (offsetTop+link2.height+1) + "px";
			cal2.outerContainer.style.left = (offsetLeft) + "px";
//			cal2.outerContainer.style.top = (link2.offsetTop+link2.offsetParent.offsetTop+link2.height-1) + "px";
//			cal2.outerContainer.style.left = (link2.offsetLeft+link2.offsetParent.offsetLeft) + "px";
			cal2.outerContainer.style.display='block';
		}

		function setDate1() {
			var date1 = cal1.getSelectedDates()[0];
			selMonth1.selectedIndex=date1.getMonth();
			selDay1.selectedIndex=date1.getDate()-1;
			selYear1.value = date1.getFullYear();
			cal1.hide();

			RecalcFechaSalida();
		}

		function setDate2() {
			var date2 = cal2.getSelectedDates()[0];
			selMonth2.selectedIndex=date2.getMonth();
			selDay2.selectedIndex=date2.getDate()-1;
			selYear2.value = date2.getFullYear();
			cal2.hide();

			RecalcNoches();
		}

		function changeDate1() {
			RecalcFechaSalida();

			var month = this.selMonth1.selectedIndex;
			var day = this.selDay1.selectedIndex + 1;
			var year = this.selYear1.value;

			cal1.select((month+1) + "/" + day + "/" + year);
			cal1.setMonth(month);
			cal1.setYear(year);
			cal1.render();		
		}

		function changeDate2() {
			RecalcNoches();

			var month = this.selMonth2.selectedIndex;
			var day = this.selDay2.selectedIndex + 1;
			var year = this.selYear2.value;

			cal2.select((month+1) + "/" + day + "/" + year);
			cal2.setMonth(month);
			cal2.setYear(year);
			cal2.render();
		}


var url = "inc/xml_request.php?op=";

function handleHttpResponse() {
	if (http.readyState == 4) {
		if (http.responseText.indexOf('invalid') == -1) {
			if(field == "pais"){
				var xmlDocument = http.responseXML; 
//				var response = http.responseText; 
				document.getElementById('list_ciudad').innerHTML =  xmlDocument.getElementsByTagName('pais').item(0).firstChild.data;;
			}else if (field == "ciudad"){
				var xmlDocument = http.responseXML; 
				document.getElementById('list_ciudad').innerHTML =  xmlDocument.getElementsByTagName('ciudad').item(0).firstChild.data;;
			}else if (field == "ambos"){
				var xmlDocument = http.responseXML; 
				document.getElementById('list_pais').innerHTML =  xmlDocument.getElementsByTagName('pais').item(0).firstChild.data;;
				document.getElementById('list_ciudad').innerHTML =  xmlDocument.getElementsByTagName('ciudad').item(0).firstChild.data;;
			}
			isWorking = false;
//			cambio('loading', 'off');
		}
	}
}

var isWorking = false;
function updatefield(campo, id_field) {
	//url=document.frmReserva.hidURL.value + url;
	if (campo == 'pais'){
		var str_guardar = 'pais';
		if (!isWorking && http) {
			field = 'pais';
			url1= document.frmReserva.hidURL.value + url + str_guardar + '&lang=' + document.frmReserva.hidLang.value;
			http.open("GET", url1, true);
			http.onreadystatechange = handleHttpResponse;
			isWorking = true;
//			cambio('loading', 'on');
			http.send(null);
		}
	}else  if(campo == 'ciudad'){
		// MOSTRAR CIUDAD
		document.getElementById("idCiudadStyle").style.visibility="visible";
		var str_guardar = 'ciudad';
		if (!isWorking && http) {
			field = campo; 
			url1= document.frmReserva.hidURL.value + url + str_guardar + '&lang=' +  document.frmReserva.hidLang.value + '&id_pais=' + id_field + ' &' + Math.round(Math.random()*1000000);
			http.open("GET", url1, true);
			http.onreadystatechange = handleHttpResponse;
			isWorking = true;
//			cambio('loading', 'on');
			http.send(null);
		}
	}else  if(campo == 'ambos'){
		var str_guardar = 'ambos';
		if (!isWorking && http) {
			field = campo; 			
			url1= document.frmReserva.hidURL.value + url+ str_guardar + '&lang=' + document.frmReserva.hidLang.value;
			http.open("GET", url1, true);
			http.onreadystatechange = handleHttpResponse;
			isWorking = true;
//			cambio('loading', 'on');
			http.send(null);
		}
	}
}

function cambio(idCapa, op){
 if (document.layers) capa = eval("document." + idCapa);
 if (document.all) capa = eval(idCapa + ".style");
 if (document.getElementById) capa = eval('document.getElementById("' + idCapa + '").style');

 if ((op == "on")){
  capa.visibility = (document.layers) ? "show" : "visible" ;
 }else if ((op == "off")){
  capa.visibility = (document.layers) ? "hide" : "hidden" ;
 }
}

function active_date(el){
	var chk = document.getElementById(el);
	var idCapa1 = "calendar_1";
	var idCapa2 = "calendar_2";

	capa1 = eval('document.getElementById("' + idCapa1 + '").style');
	capa2 = eval('document.getElementById("' + idCapa2 + '").style');


	if (chk.checked == true ) {
		document.getElementById('selMonth1').disabled = false;
		document.getElementById('selDay1').disabled = false;
		document.getElementById('selMonth2').disabled = false;
		document.getElementById('selDay2').disabled = false;
	  capa1.visibility = (document.layers) ? "show" : "visible" ;
	  capa2.visibility = (document.layers) ? "show" : "visible" ;
	}else{
		document.getElementById('selMonth1').disabled = true;
		document.getElementById('selDay1').disabled = true;
		document.getElementById('selMonth2').disabled = true;
		document.getElementById('selDay2').disabled = true;
	  capa1.visibility = (document.layers) ? "hide" : "hidden" ;
	  capa2.visibility = (document.layers) ? "hide" : "hidden" ;
	}
}