// Mostra els resultats de la plana.
var datos;
var _offset=0;
var c1;

function fd(v)
{
datos.filtroDuracion(v);
}


// Slider:
var slider;
var range;


function arrancaSlider() {
    YAHOO.namespace('Atrapalo.viajes');

    var Dom = YAHOO.util.Dom;

    // Slider has a range of 150 pixels
    var range = 150;

    // No ticks for this example
    var tickSize = 0;

    // We'll set a minimum distance the thumbs can be from one another
    var minThumbDistance = 1;

    // Initial values for the thumbs
    var initValues = [0,150];

    var cf = rLimits[1]/(range - 20);

    // Set up a function to convert the min and max values into something useful
    var convert = function (val) {
        return Math.round(val * cf );
    };


	obj_maskara_modal.init();
    YAHOO.util.Event.onDOMReady(function () {
        var sl_bg = Dom.get("sliderbg"),
            info    = Dom.get("currentIdx"),
            from    = Dom.get("vmin"),
            to      = Dom.get("vmax");

        slider = YAHOO.widget.Slider.getHorizDualSlider(sl_bg, "minthumb", "maxthumb", range, tickSize, initValues);
        slider.minRange = minThumbDistance;
        var updateUI = function () {
            var min = convert(slider.minVal),
                max = convert(slider.maxVal - 20);
            from.innerHTML = min+"&euro;";
            to.innerHTML   = max+"&euro;";
        };
        var updateUIFilter = function() {
            var min = convert(slider.minVal),
                max = convert(slider.maxVal - 20);
            	setTimeout('datos.filtroPrecio('+min+','+max+');',100);
        }
        slider.subscribe('ready', updateUI);
        slider.subscribe('change', updateUI);
        slider.subscribe('slideEnd', updateUIFilter);
       // YAHOO.viajes.slider = slider;
    });
};

// Punto salida
var limpiaCategoriasMarcadasPs = function ()
{
	var _cp=$('con_ps');
	var _objs=_cp.getElementsByTagName('input');
	for (i=0;i<_objs.length;i++)
	{
		if (_objs[i].checked && _objs[i].id!="vbd0") _objs[i].checked=false;
		else if (_objs[i].id=="vbd0") _objs[i].checked=true;
	}
    datos.filtros['p'].valores=[];
}

// Punto salida
var limpiaCategoriasMarcadasCats = function ()
{
	var _cp=$('con_ca');
	var _objs=_cp.getElementsByTagName('input');
	for (i=0;i<_objs.length;i++)
	{
		if (_objs[i].checked && _objs[i].id!="cbd0") _objs[i].checked=false;
		else if (_objs[i].id=="cbd0") _objs[i].checked=true;
	}
    datos.filtros['c'].valores=[];
}



// Promos
var limpiaCategoriasMarcadasPromos = function ()
{
	var _cp=$('con_pr');
	var _objs=_cp.getElementsByTagName('input');
	for (i=0;i<_objs.length;i++)
	{
		if (_objs[i].checked && _objs[i].id!="abd0") _objs[i].checked=false;
		else if (_objs[i].id=="abd0") _objs[i].checked=true;
	}
    datos.filtros['a'].valores=[];
}

// Duracion
 var limpiaCategoriasMarcadas = function ()
 {
     $("dbd1").checked=false;
     $("dbd2").checked=false;
     $("dbd3").checked=false;
     $("dbd4").checked=false;
     $('dbd0').checked=true;
     datos.filtros['d'].valores=[];
};

var limpiaPrecio = function ()
{
	slider.setValues(0,150);
}

var eliminarFiltros = function ()
{
	limpiaCategoriasMarcadas();
	limpiaCategoriasMarcadasPs();
	limpiaCategoriasMarcadasPromos();
	limpiaPrecio();
	paginar_viajes(0);
}



function paginar_viajes(n)
{
	_offset=n;
	if (vDataFiltered.length==0) vDataFiltered=vData;
	datos.MostrarDatosFromArray(vDataFiltered);
	document.location = "#";
}

function finestraPaginacio(pagines)
{
    hi = pagines.length-1;
    lo = 0;
    idx = Math.floor(_offset/20);

    if (pagines.length<=5)
    {
        return pagines;
    }
    else
    {
        if ((idx-2)>=lo)
        {
            if ((idx+3)>hi)
            {
                lo = hi-4;
            }
            else
            {
                lo = idx-2;
                hi = idx+3;
            }
        }
        return array_slice(pagines,lo,5);
    }
}

function array_slice(arr, offst, lgth) {
	if (lgth === undefined) {
		return arr.slice(offst);
	}
	else {
		if (lgth > 0) {
			return arr.slice(offst, offst + lgth);
		}
		else if (lgth < 0) {
			return arr.slice(offst, lgth);
		}
	}
}

function is_array(obj) { return (obj.constructor.toString().indexOf("Array") > 0); }

// Viajes
Atrapalo.viajes={};

/* Atrapalo.viajes */


Atrapalo.viajes.filtros = function ()
{
this.maxPrecio=rLimits[1];

this.cajaResultados = "<div class='caja_rdo'><div class='caja_gris padtop10'>\
					<div class='top'><div></div></div>\
					<div class='mid'>\
						<div class='floatl'>Desde <span class='precio3 pad0'><a rel='nofollow' href='${url_viaje}' title='${nombre}'>${precio_atrapalo_formateado}</a>\
							{if parseInt(precio_atrapalo) < parseInt(precio_viaje)}\
							<span class='fonts10'>(${descuento}% Dto)</span>\
							{/if}\
							</span>\
							{if parseInt(precio_atrapalo) < parseInt(precio_viaje)}\
							<s>${precio_viaje_formateado}</s>\
							{/if}\
						</div>\
						<div class='floatr fonts10' align='right'><p><strong>precio más barato encontrado</strong></p><p>tasas incluidas</p></div>\
						<div class='clear'></div>\
						<div class='caja_blanca padtop5'>\
							<div class='top'><div></div></div>\
							<div class='mid'>\
								<div class='divFoto'>\
									<div class='relative foto'>\
										<img {if es_panavision } width='114' {/if} border='0' src='${url_imagen|toImagen}' alt='${nombre}' title='${nombre}' />\
										{if !es_vmh}\
										<div class='fnd_transparente fnd_ver_fotos'><a class='ico_info' href='${url_viaje}#destino' title='Leer sobre el destino: ${destino_txt}'>Info destino</a></div>\
										{/if}\
									</div>\
									<div class='clear'></div>\
									{if top_valorado > 0}\
									<div class='ranking'>\
										<div class='caja_gris_sin padtop10'>\
	                                        <div class='top'><div></div></div>\
	                                        <div class='mid gris9' align='center'>\
												<p><span class='fonts9 padtop5'>Valoraci&oacute;n</span>\
												<span class='padleft5 negrita fonts16'>${top_valorado}</span></p>\
												<div class='barra_valoracion'>\
	                                                <img src='/images_new/common/v2/barra_valoracion.gif' alt='Valoracion'/>\
	                                                <div class='medidor' style='width:${top_valorado|toValoracionPercent}%;'>&nbsp;</div>\
	                                            </div>\
												<span class='fonts10'><a href='${url_viaje}#opiniones' title='Opiniones del viaje ${nombre}'>Ver opiniones</a></span>\
	                                        </div>\
	                                        <div class='bot'><div></div></div>\
	                                    </div>\
									</div>\
									{/if}\
								</div>\
								<div class='divInfo'>\
									${promocionado|toPromocion}\
									<div class=''>\
										<h2 class='destacado'>\
											<a href='${url_viaje}' title='${nombre}'>\
												${nombre}\
											</a>\
										</h2>\
										<p>\
											{if url_destino != ''}<a href='${url_destino}' title='Buscar más viajes a ${destino_txt}'>${destino_txt}</a>{/if} ${duraciones_txt|toDuracion}\
										</p>\
										<p class='padtop10'>${descripcion|toDescripcion}</p>\
									</div>\
									<div class='clear'></div>\
									<p class='padtop10 negrita'><span class='gris6'>Fechas disponibles:</span> ${fechas_salida_txt}</p>\
									{if !es_vmh}\
									{if puntos_salida_viaje != ''}\
									<p class='padtop5 negrita'><span class='gris6'>Salidas desde:</span> ${puntos_salida|toPuntosSalida}</p>\
									{/if}\
									{/if}\
								</div>\
								<div class='clear'></div>\
							</div>\
							<div class='bot'><div></div></div>\
						</div>\
						<div class='padtop10'>\
							<div class='floatr'>\
								<div class='btn btn_rojo_gris2'><button onclick='document.location=\"${url_viaje}\";' value='submit' name='submit' type='submit'>Reservar</button></div>\
							</div>\
							<a href='${url_viaje}#descripcion' class='ico_info' title='Información de ${nombre}'><strong>Información del viaje</strong></a>\
							<div class='clear'></div>\
						</div>\
					</div>\
					<div class='bot'><div></div></div>\
				</div>\
			</div>";
this.cajaPaginacion="<div class=\"floatl width33\">\
						Mostrando del\
						<span class=\"negrita\">${offset+1}</span>\
						al <span class=\"negrita\">{if (offset+20)<= total}${offset+20}{else}${total}{/if}</span>\
						(<strong>${total}</strong> en total)\
					</div>\
					<div class=\"floatl width66\" align=\"right\">\
						{if num_paginas>1}\
							{if offset>0}\
							<a href=\"#\" onclick='paginar_viajes(0);return(false);'><<</a> | <a href=\"#\" onclick='paginar_viajes(${offset-20});'>Anterior</a> &nbsp;\
							{/if}\
							<span>\
								{for pagina in paginas}\
									{if pagina!=(offset/20)+1}<a href='#' onclick='paginar_viajes(${pagina*20-20});return(false);'>{/if}${pagina}{if pagina!=(offset/20)+1}</a>{/if} {if pagina!=paginas.length}| {/if}\
								{/for}\
							</span>\
							{if (offset/20)+1 < num_paginas} &nbsp;<a href='#' onclick='paginar_viajes(${offset+20});return(false);'>Siguiente</a> | <a href='#' onclick='paginar_viajes(${num_paginas*20-20});return(false);'>>></a>{/if}\
						{/if}\
					</div>\
					<div class=\"clear\"></div>";

}

Atrapalo.viajes.filtros.setCaja=function(str)
{
	this.cajaResultados=str;
}



Atrapalo.viajes.filtros.prototype = {

	minPrecio:0,
	maxPrecio:100,
	filtrosPs:'',
	filtroFecha:'',
	filtroFechaAry:[],
	filtros: {
	             d:{valores:[],metodo:'in',exclusivo:true},
	             p:{valores:[],metodo:'in',exclusivo:true},
	             a:{valores:[],metodo:'in',exclusivo:true},
	             c:{valores:[],metodo:'in',exclusivo:true},
	             de:{valores:[],metodo:'in',exclusivo:true},
	             md:{valores:[],metodo:'in',exclusivo:true}
	         },
	init: function () {
		this.maxPrecio=rLimits[1];
		this.prepareFiltroPs();
		this.prepareFiltrosPromos();
		this.prepareFiltrosCategorias();
		this.prepareFiltrosDestinos();
		this.prepareFiltroFechaSalida();
		arrancaSlider();

	},
	cajaError0Res:'<div align="center" class="pad10">No se ha encontrado ningún viaje con los filtros actuales.</div>',
	getSelectedDestinos: function()
	{
		if ($('con_destinos'))
		{
			var _f = $('con_destinos');
			
		}
		
		
	},
	prepareFiltrosDestinos:function()
	{
		
		if (vArbolDestinos!=null)
		{
			var _rendered1=false;
			var _rendered2=false;
			// Destinos
			if (vArbolDestinos[0]!=null)
			{
				tree = new YAHOO.widget.TreeView("con_destinos", vArbolDestinos[0]);
				tree.render();
				tree.expandAll();
				if (tree._nodes.length>5) // Sii items > 5 en destinos 
				{
					_rendered1 = true;
					tree.collapseAll();
				}
			}
			// Metadestinos
			if (vArbolDestinos[1]!=null)
			{
				treemd = new YAHOO.widget.TreeView("con_mddestinos", vArbolDestinos[1]);
				// treemd.subscribe("clickEvent", "addMDstFilter");
				treemd.render();
				treemd.expandAll();
				if (treemd._nodes.length<10) // Sii items > 2 en metadestinos 
				{
					_rendered2=true;
					treemd.collapseAll();
				}
			}
			if (vArbolDestinos[2]<30)  // Si hay pocos valores, expandimos el arbol.
			{
				/*
				try 
				{
					if (!_rendered1 ) tree.collapseAll();
				} catch (e) {alert(e.message);}
				try 
				{
					if (!_rendered2) treemd.collapseAll();
				} catch (e) {alert(e.message);}
				*/
			}
			if (!_rendered1 && !_rendered2) $('t_des').innerHTML=""; 
			
		}
		else $('t_des').innerHTML="";
	},
	prepareFiltroFechaSalida:function() 
	{
		
		if (vFechas[0])
		{
			YAHOO.namespace("calendar");
			c1 = new YAHOO.widget.Calendar("calfilters","con_fecsal");
			c1.cfg.setProperty("start_weekday",1);
			c1.cfg.setProperty("DATE_FIELD_DELIMITER", "-");
			c1.cfg.setProperty("DATE_RANGE_DELIMITER", "_");
			c1.cfg.setProperty("MDY_DAY_POSITION", 3);
			c1.cfg.setProperty("MDY_MONTH_POSITION", 2);
			c1.cfg.setProperty("MDY_YEAR_POSITION", 1);
			c1.cfg.setProperty("navigator", true);
			c1.cfg.setProperty("nav_arrow_left", "/images_new/flecha_iz.gif");
			c1.cfg.setProperty("nav_arrow_right", "/images_new/flecha_de.gif");
			c1.cfg.setProperty("MONTHS_LONG",   ["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"]);
			c1.cfg.setProperty("WEEKDAYS_SHORT", ["Do","Lu","Ma","Mi","Ju","Vi","Sa"]);
			_today = new Date();
			//if (vData[0]!=false) YAHOO.calendar.calfilters.cfg.setProperty("selected", vFechas[0].join(","));
			if (vData[1]!=false) {
				var _lowdate = vFechas[1].split("-");
				var _myDate=new Date();
				// marcamos fecha inicio en el calendario como la primera de las activas.
				_myDate.setFullYear(_lowdate[0],_lowdate[1]-1,1);				
				c1.cfg.setProperty("pagedate", _myDate, true ); //_lowdate[0]+"-"+_lowdate[1]);
				c1.cfg.setProperty("mindate",  vFechas[1]);
			}
			if (vData[2]!=false) c1.cfg.setProperty("maxdate", vFechas[2]);
			c1.addRenderer(vFechas[1]+"_"+vFechas[2],datos.atrapaloDateRender);//c1.renderBodyCellRestricted);
			
			// Ahora propagamos los literales:
			c1.selectEvent.subscribe(datos.filtroFechaHandler); 
			c1.render();
		}
	},
	atrapaloDateRender:function(workingDate, cell)
	{
		// datos.filtros['de'].valores.inArray(_valde[ii]);
        
        var anyo = workingDate.getFullYear();
        var mes = workingDate.getMonth()+1;
        var dia = workingDate.getDate();;
        
        if (mes.toString().length<2) mes = "0"+mes.toString();
        if (dia.toString().length<2) dia = "0"+dia.toString();
        
        var curFecha = anyo+"-"+mes+"-"+dia;		
        
		if (vFechas[0].inArray(curFecha))
		{
			YAHOO.util.Dom.addClass(cell, c1.Style.CSS_CELL_SELECTABLE);
			YAHOO.util.Dom.addClass(cell, c1.Style.CSS_CELL_HIGHLIGHT1);			
		}
		else 
		{
			YAHOO.util.Dom.addClass(cell, c1.Style.CSS_CELL_RESTRICTED);
		}
		cell.innerHTML = '<div>' + c1.buildDayLabel(workingDate) + "</div>";		
		
		return YAHOO.widget.Calendar.STOP_RENDER; 	
	},
	filtroFechaHandler:function(type,args,obj)
	{
             var selected = args[0];
             var anyo = selected[0][0];
             var mes = selected[0][1];
             var dia = selected[0][2];
             
             if (mes.toString().length<2) mes = "0"+mes.toString();
             if (dia.toString().length<2) dia = "0"+dia.toString();
             
             datos.filtroFecha = anyo+"-"+mes+"-"+dia;
             showdiv('con_fecsal_msg');
             $('fecsa_diasalida').innerHTML =datos.filtroFecha;
             try 
             {
            	 datos.aplica();
             }
             catch (e) {}
	},
	moverFecha:function(fecha, numdias, direccion)
	{
		
		 var curdate = fecha;
		 var ad=curdate.split("-");
		 var dy=parseInt(ad[0]);
		 var dm=parseInt(ad[1]);
		 var dd=parseInt(ad[2]);
		 var od=new Date(dy,dm,dd);
		 var tm=od.getTime();  //milliseconds, 0=January 1, 1970
		 var dinc=(3600*24*1000)*numdias;  //1 day in milisec
		 if(direccion=='back') tm=tm-dinc;
		 else tm=tm+dinc;
		 od.setTime(tm);
		 dy=od.getFullYear();
		 dm=od.getMonth();
		 dd=od.getDate();
		 ad[0]=dy;ad[1]=dm;ad[2]=dd;
		 newstr=ad.join("-");
		 return(newstr);		
	
	},
	removeFiltroFecha:function()
	{
		datos.filtroFecha = "";
		datos.filtroFechaAry = [];
	    hidediv('con_fecsal_msg');
	    //YAHOO.calendar.calfilters.deselectAll();
	    c1.deselectAll();
	    c1.render();
	    datos.aplica();
		
	},
	prepareFiltrosCategorias:function() {
		if (!$('t_ca')) return;
		var res="";
		var grupo="";
		if (vCategorias!=null) {
			if (vCategorias.length>0) {
				//l=vCategorias.length>5?5:vCategorias.length;
				l=vCategorias.length;//>5?5:vCategorias.length;

				res+="<li><input type='checkbox' id='cbd0' value='0' checked onclick='if(this.checked){limpiaCategoriasMarcadasCats();datos.acumularFiltro(\"c\",this.value,false);}' class='border0' /> <label for='cbd0' class='inline normal'>Cualquiera</label></li>";
				for (i=0;i<l;i++)
				{
					if (grupo!=vCategorias[i].g)
					{
					 res+="<li><strong>"+vCategorias[i].g+"</strong></li>";
					 grupo=vCategorias[i].g;
					}
					res+="<li><input type='checkbox' id='cbd"+vCategorias[i].i+"' onclick='$(\"cbd0\").checked=false;datos.acumularFiltro(\"c\",this.value,this.checked);' value='"+vCategorias[i].i+"' class='border0' /> <label for='cbd"+vCategorias[i].i+"' class='inline normal'>"+vCategorias[i].n+"</label></li>";
				}
				// agrego ul-li
				res = '<ul class="nobullets">' + res + '</ul>';
				$('con_ca').innerHTML=res;
			}
			else $('t_ca').innerHTML="";
		} else $('t_ca').innerHTML="";

	},
	prepareFiltrosPromos:function() {
		if (!$('t_pr')) return;
		var res="";
		if (vPromociones!=null) {
		if (vPromociones.length>0) {
			l=vPromociones.length>5?5:vPromociones.length;
			res+="<li><input type='checkbox' id='abd0' value='0' checked onclick='if(this.checked){limpiaCategoriasMarcadasPromos();datos.acumularFiltro(\"a\",this.value,false);}' class='border0' /> <label for='abd0' class='inline normal'>Cualquiera</label></li>";
			for (i=0;i<l;i++) {
				res+="<li><input type='checkbox' id='abd"+vPromociones[i].i+"' onclick='$(\"abd0\").checked=false;datos.acumularFiltro(\"a\",this.value,this.checked);' value='"+vPromociones[i].i+"' class='border0' /> <label for='abd"+vPromociones[i].i+"' class='inline normal'>"+vPromociones[i].n+"</label></li>";
			}
			// agrego ul-li
			res = '<ul class="nobullets">' + res + '</ul>';
			$('con_pr').innerHTML=res;
		}  else $('t_pr').innerHTML="";
		} else $('t_pr').innerHTML="";
	},
	prepareFiltroPs:function() {
		if (!$('t_ps')) return;
		var res="";
		if (vVps!=null) {
			if (vVps.length>0) {
				l=vVps.length>5?5:vVps.length;
				res += "<li><input type='checkbox' id='vbd0' name='vbd0' value='0' checked onclick='if(this.checked){limpiaCategoriasMarcadasPs();datos.acumularFiltro(\"p\",this.value,false);}' class='border0' /> <label for='vbd0' class='inline normal'>Cualquiera</label></li>";
				for (i=0;i<l;i++) {
					res += "<li><input type='checkbox' id='vbd"+vVps[i].i+"' name='vbd"+vVps[i].i+"' onclick='$(\"vbd0\").checked=false;datos.acumularFiltro(\"p\",this.value,this.checked);' value='"+vVps[i].i+"' class='border0' /> <label for='vbd"+vVps[i].i+"' class='inline normal'>"+vVps[i].n+"</label></li>";
				}
				// agrego ul-li
				res = '<ul class="nobullets">' + res + '</ul>';
				$('con_ps').innerHTML=res;
			}
			else $('t_ps').innerHTML="";
		} else $('t_ps').innerHTML="";
	},
	filtroPrecio: function(min,max)
	{
		this.minPrecio=min;
		this.maxPrecio=max;
		this.aplica();
	},
	aplica: function()
	{
		obj_maskara_modal.show();
		vDataFiltered=[];
		_offset=0;
		var _deincluye=false;
		for (i=0;i<vData.length;i++)
		{
				incluye=false;
				if (parseInt(vData[i].precio_atrapalo)>=this.minPrecio && parseInt(vData[i].precio_atrapalo)<=this.maxPrecio)
				{
					// Cumple restriccion de precio.
					// Buscamos resto de restricciones:
					incluye=(incluye || this.cumpleFiltro('d',vData[i],'duracion_dias'));
					incluye=(incluye && this.cumpleFiltro('p',vData[i],'puntos_salida'));
					incluye=(incluye && this.cumpleFiltro('a',vData[i],'promocionado'));
					incluye=(incluye && this.cumpleFiltro('c',vData[i],'cats'));
					incluye=(incluye && this.cumpleFiltroDestino(vData[i]));
					incluye=(incluye && this.cumpleFiltroFecha(vData[i]));
				}
				if (incluye) vDataFiltered[vDataFiltered.length]=vData[i];
		}
		this.MostrarDatosFromArray(vDataFiltered);
		obj_maskara_modal.hide();
//		document.location = "#";
	},
	cumpleFiltroFecha:function(obj2Filter)
	{
		var _cf = false;
		try 
		{
			var _valfe = (obj2Filter['fechas']!=null)?obj2Filter['fechas']:[];
			var _f = datos.filtroFecha;
			if (_f=="") return(true);
			/*
			var _fini = datos.filtroFechaAry[0];
			var _ffin = datos.filtroFechaAry[1];		
			*/
			for (var _i=0;_i<_valfe.length && !_cf;_i++) 
			{
				// if (_valfe[_i].fecha_salida >= _fini && _valfe[_i].fecha_salida<=_ffin) _cf=true;
				if (_valfe[_i].fecha_salida == _f)  _cf=true;
			}
		}
		catch (e) {}
		return(_cf);
		
	},
	cumpleFiltroDestino:function(obj2Filter)
	{
		getCheckedItems();
		var _valde = (obj2Filter['destinos_viaje']!=null)?obj2Filter['destinos_viaje']:[];
		var _valmd = (obj2Filter['metadestinos_viaje']!=null)?obj2Filter['metadestinos_viaje']:[];
		var _cf=false;
		if ((datos.filtros['de'].valores.length + datos.filtros['md'].valores.length) ==0) return(false);
		if (is_array(_valde))
		{
			for (ii=0;ii<_valde.length && !_cf;ii++) _cf = _cf || datos.filtros['de'].valores.inArray(_valde[ii]);
		}
		if (is_array(_valmd))
		{
			for (ii=0;ii<_valmd.length && !_cf;ii++) _cf = _cf || datos.filtros['md'].valores.inArray(_valmd[ii]);
		}
		return(_cf);
		
	},
	cumpleFiltro:function(filterId,obj2Filter,objKey)
	{
		if (!datos.filtros[filterId].valores.length) return(true); // No hay filtros
		if (filterId=='p' && obj2Filter[objKey]==null) return(true); // Escapadas ¿?¿?
		if (filterId=='d' && datos.filtros[filterId].valores.inArray(9999) && obj2Filter[objKey]>15) return(true); // Para duraciones 9999 => mayor que 15 dias
		// Resto de casos:
		var _cf=false;
		if (obj2Filter[objKey]) {
			if (is_array(obj2Filter[objKey])) {
				var _oa=obj2Filter[objKey];
				for (ii=0;ii<_oa.length && !_cf;ii++) _cf = _cf || datos.filtros[filterId].valores.inArray(_oa[ii]);
			}
			else _cf= datos.filtros[filterId].valores.inArray(obj2Filter[objKey]);
		}
		return _cf;
	},
	MostrarDatos:function()
	{
		var mytplObj=TrimPath.parseTemplate(Atrapalo.viajes.filtros.cajaResultados);
		var viaModifiers = {
		   toDuracion: function(str) {
		     var ret="";
		     if (str != null) ret = "<strong> - "+str+"</strong>";
		     return ret;
		   },
		   toSalidas: function(str) {
		     var ret="";
		     if (str != null) ret = "<p><strong>Salidas: "+str+"</strong></p>";
		     return ret;
		   }
		};

		var max=vData.length;
		if (max>20) max=20;
		$('res_buscador').innerHTML="";
		for (i=0;i<max;i++)
		{
		  	var d=vData[i];
		  	d._MODIFIERS=viaModifiers;
		  	if (!d.duraciones_txt) d.duraciones_txt='';
		    var result  = mytplObj.process(d);
		    $('res_buscador').innerHTML+=result;
		}
	},
	MostrarDatosFromArray: function(ArDatos)
	{
		obj_maskara_modal.show();
		var mytplObj=TrimPath.parseTemplate(this.cajaResultados);
		var viaModifiers = {
			toDescripcion: function(str) {
				var max = 300;
				var res = "";
				if(str.length > max)
				{
					res = str.substring(0,max) + "...";
				}
				else
				{
					res = str;
				}
				return res;
			},
		   toDuracion: function(str) {
		     var ret="";
		     if (str != "") ret = "<strong> - "+str+"</strong>";
		     return ret;
		   },
		   toImagen: function(str) {
		   	 if(str != "") ret = str;
		   	 else ret = "/images_new/viajes/VIA3/via_notfound.jpg";
		   	 return ret;
		   },
		   toPuntosSalida: function(arDat) {
		   	 var ret="";
		   		if (arDat!="") {
				   	if (arDat.length>0) {
				   		
				   		for (ii=0;ii<arDat.length;ii++) {
				   			//ret += arDat[ii].nombre;
				   			var p = findInArray(vVps,"i",arDat[ii]); 
				   			if (p>=0)
				   			{
				   				ret+= vVps[p]['n'];
				   				if((ii+1) < arDat.length) ret += ", ";
				   			}
				   		}
				   		
				   	}
				}
				return ret;
		   },
		   toSalidas: function(str) {
		     var ret="";
		     if (str != "") ret = '<p class="padtop5 negrita"><span class="gris6">Salidas desde:</span> '+str+'</p>';
		     return ret;
		   },
		   toPromocion:function(arDat) {
			    var dPromo = ['','2x1 GRATIS','Atrapalo YA', 'Último minuto','Reserva Anticipada','Niños Gratis','Promoción especial'];
			                  
			    var ret="";
                if (arDat!="") {

			var hasPromos=false;
                        ret+="<div class='divPromos'><div class='caja_gris2_sin'><div class='mid'>";

                        if (arDat.length>0) {
                                for (ii=0;ii<arDat.length;ii++)
                                {
                                        var p = findInArray(vPromociones,"i",arDat[ii]);
					if (p>=0)
					{
						hasPromos=true;
                                        	ret     +="<div title='"+dPromo[vPromociones[p]['t']]+"' class='promo p_"+vPromociones[p]['t']+"'>"+dPromo[vPromociones[p]['t']]+"</div>" +
                                                  "<div class='fonts11 gris7 negrita padtop5 padbot5 padleft5'><p>"+vPromociones[p]['n']+"</p></div>";
					}

                                }
                        }
                        ret+="</div><div class='bot'><div></div></div></div></div>";
			if (!hasPromos) $ret="";
                }
                return ret;
			                  
		   },
		   toPromocionFondo:function(arDat) {
		   		var ret="";
		   		if (arDat!="") {
				   	if (arDat.length>0) {
				   		for (ii=0;ii<arDat.length;ii++) {
				   			ret+='bk_grisc';
				   		}
				   	}
				}
		   		return ret;
		   },
		   toValoracionPercent:function(valor) {
		   		var ret = (valor * 100) / 5;
		   		return ret;
		   }
		};

		$('res_buscador').innerHTML="";

		var bList=_offset;
		var eList=_offset+20;
		if (eList>ArDatos.length) eList=ArDatos.length;

		if (!ArDatos.length){
			 $('res_buscador').innerHTML=this.cajaError0Res;
			 datos.preparaPaginacion(ArDatos);
		}
		else {
			for (i=bList;i<eList;i++)
			{
			  	var d=ArDatos[i];

			  	d._MODIFIERS=viaModifiers;
			    var result = mytplObj.process(d);
			    $('res_buscador').innerHTML += result;
			}
			datos.preparaPaginacion(ArDatos);
		}
		obj_maskara_modal.hide();
	},
	preparaPaginacion:function(ArDatos)
	{
		var pgs=[];
		for (i=0;i<(ArDatos.length/20);i++)
		{
			pgs[pgs.length]=i+1;
		}

		pgs=finestraPaginacio(pgs);

		var data= {
			num_paginas:parseInt(ArDatos.length/20)+1,
			offset:_offset,
			total:ArDatos.length,
			paginas:pgs
			}
		var mytplObj=TrimPath.parseTemplate(this.cajaPaginacion);
		var result = mytplObj.process(data);
		$('pg_container').innerHTML=result;
		$('pg_container_pie').innerHTML=result;
	},
	acumularFiltro : function (key,val,ins){
	     obj_maskara_modal.show();
	     setTimeout('datos._acumularFiltro("'+key+'","'+val+'",'+ins+')',1);
	     return true;
	},
	_acumularFiltro:function (key,val,ins) {

	     var v,ii,iii;

	     var filtros=this.filtros;
	     var filt=filtros[key];
	     if(ins)
	     {
	         if(val.indexOf('[')===0)
	         {
	             v=eval(val);
	             if(key=="poi" && v[0]=="-1") {filt.valores=[];}
	             else{
	                 if(filt.metodo=="allIn") {filt.valores[filt.valores.length]=v;}
	                 else{for(ii in v) if(ii!='inArray') {filt.valores[filt.valores.length]=v[ii];}}
	             }
	         }else{
	             filt.valores[filt.valores.length]=val;
	         }
	     }else{
	         if(val.indexOf('[')===0) {v=eval(val);}
	         else {v=[val];}
	         var len = filt.valores.length;
	         if(filt.metodo=="allIn")
	         {
	             for(iii=0;iii<len;iii++)
	             {
	                 if(filt.valores[iii].toString()==v.toString()) {filt.valores[iii]='';break;}
	             }
	         }else{
	             for(ii in v) if(ii!='inArray')
	             {
	                 for(iii=0;iii<len;iii++)
	                 {
	                     if(filt.valores[iii]==v[ii]) {filt.valores[iii]='';break;}
	                 }
	             }
	         }
	         var tmp=[];
	         for(iii=0;iii<len;iii++)
	         {
	             if(filt.valores[iii]!=='') {tmp[tmp.length]=filt.valores[iii];}
	         }
	         filt.valores=tmp;
	     }
		this.aplica();
	     obj_maskara_modal.hide();
	 }
};



var obj_maskara_modal = {
     init : function (el)
     {
         if (!this.overlay2)
         {
             this.overlay2=new YAHOO.widget.Panel("overlay2", {zIndex:9999,fixedcenter:true, monitorresize:false, visible: false, constrainToViewport: true, modal:false,modalPartial: false,close:false, draggable:false, width:"200px"});
             this.overlay2.setBody('<img align="middle" alt="Actualizando..." src="/images_new/hoteles/indicator_big.gif" alt="Actualizando" title="Actualizando página" />&nbsp;Actualizando...');
             this.overlay2.render(document.body);
         }
     },
     show : function () { if(!this.overlay2){this.init();} this.overlay2.show(); },
     hide : function () { this.overlay2.hide(); }
 };


 /*
 ----------- Destinos
 */
// Para ventana de Destinos mas frecuentes
ViaDestinos.prototype = {
	activo: 		'',
	categoria: 		0,
	panel_id:		'panel_destinos',
	panel_abierto:	false,
	prefix_titulo: 	't_',
	target: 		'txt_destino',

	fx_duration: 	0.5,
	fx_height:		190,

	asignar: function(tipo, cod, nombre)
	{
		// asignar valor seleccionado
		document.getElementById(this.target).value = nombre;
		document.getElementById('id_destino').value = cod + "-" + tipo;
		// cerrar panel
		oPanel.hide();
	},
	buscarIdTitulo: function(id) {
		var id = id.split("_")[1];
		var h3 = this.prefix_titulo + id;
		return h3;
	},
	mostrar: function(id) {
		if(id != '' && id != this.activo)
		{
			// ocultar antes el que hay activo actualmente
			if(this.activo != '')
			{
				this.toggle(this.activo);
			}
			// mostrar
			this.toggle(id);
			this.activo = id;
		}
	},
	panel: function(categoria) {
		var YUD = 		YAHOO.util.Dom;
		// mostrar icono de carga
		document.getElementById('destino_lista').src = '/images_new/common/iconos/ico-carga-circulo.gif';
		this.posicionar_panel();
		othis = this;
		if(!this.panel_abierto || this.categoria != categoria)
		{
			// mostrar texto cargando
			YUD.removeClass('lbl_txt_destino','oculto');
			// guardamos el buscador abierto actualmente
			this.categoria = categoria;

		    oPanel = new YAHOO.widget.Panel("panel_destinos", {width:"260px", height:"auto", constraintoviewport:true, underlay:"none", close:true, draggable:false, fixedcenter:false, zIndex:1000});
		    //oPanel.setHeader("SELECCIONA TU DESTINO");
		    YAHOO.util.Connect.asyncRequest("GET", "/viajes/index.php?pg=destinos_frecuentes&mode=ajax&scat=" + categoria, {
		    	success:function (response) {
			    	html = response.responseText;
			    	oPanel.setBody(html);
		    		oPanel.render($('container_panel1'));
		    		oPanel.show();
		    		othis.reset();
		    		// Iniciar con destinos + frecuentes abierto
		    		//othis.mostrar('l_Destinos más frecuentes');
		    		othis.mostrar('l_todo');
		    		// ocultar icono de carga
		    		document.getElementById('destino_lista').src = '/images_new/list_pup.gif';
		    		othis.posicionar_panel();
		    		// terminar texto cargando
		    		YUD.addClass('lbl_txt_destino','oculto');
		    	}
		    });
		    this.panel_abierto = true;
		}
		else
		{
			oPanel.show();
			// ocultar icono de carga
			document.getElementById('destino_lista').src = '/images_new/list_pup.gif';
			oPthis.posicionar_panel();
		}
	},
	panel_cerrar: function() {
		var YUD = 		YAHOO.util.Dom;
	    YUD.addClass(this.panel_id,'oculto');
	},
	posicionar_panel: function() {
		var YUD = YAHOO.util.Dom;
		pos = YUD.getXY('destino_lista');
		pos[0] = pos[0] + 17;
		pos[1] = pos[1] - 83; /*95*/
		YUD.setXY('container_panel1',pos);
	},
	reset: function(id) {
		this.activo = '';
	},
	toggle: function(id) {
		var YUD = 		YAHOO.util.Dom;
		var titulo = 	this.buscarIdTitulo(id);
		if(YUD.hasClass(id,'mostrado'))
		{
			YUD.removeClass(titulo,'fontc66');
			YUD.removeClass(id,'mostrado');
			// cerrar
			var fx = {
			   height: { from: this.fx_height, to: 0, unit: 'px' }
			}
		}
		else
		{
			YUD.addClass(titulo,'fontc66');
			YUD.addClass(id,'mostrado');
			// abrir
			var fx = {
			   height: { from: 0, to: this.fx_height, unit: 'px' }
			}
		}
		// animacion acordeon
		var myAnim = new YAHOO.util.Anim(id, fx);
		myAnim.duration = this.fx_duration;
		myAnim.animate();
	}
}
function ViaDestinos() {}

// Para lista de destinos
var Des = new ViaDestinos();


function loadPesBuscador(id)
{
	var pos=findInArray(p_buscador,"i",id);
	if (pos>=0) {
		$('cbuscador_home').innerHTML=p_buscador[pos].v;
	}
	else alert("Pestanya no localizada"+id);
}


function checkRangos_old(n)
{
	var selectedItem = document.getElementById('rango_fechas').selectedIndex;
	var cuando = document.getElementById('rango_fechas').options[selectedItem].value;
	if(cuando == 'rango')
	{
		document.getElementById('busqueda_sim'+n).style.display = 'block';
	}
	else
	{
		document.getElementById('busqueda_sim'+n).style.display = 'none';
	}
}


function checkRangos(cat)
{
	var categoria = new String(cat);

	var selectedItem = document.getElementById('rango_fechas').selectedIndex;
	var cuando = document.getElementById('rango_fechas').options[selectedItem].value;
	if(cuando == 'rango')
	{
		document.getElementById('busqueda_sim'+categoria).style.display = 'block';
	}
	else
	{
		document.getElementById('busqueda_sim'+categoria).style.display = 'none';
	//	hidediv('busqueda_sim');
	}
}

function resetPs(idps)
{
	try{
		var ps = $('ps').options;
		var psid = $('ps');
		for (i=0;i<ps.length;i++)
		{
			if (ps[i].value==idps) psid.selectedIndex = i;
		}
		
	}
	catch(e) {}
}

function resetExtras()
{
	try {
		$('id_extras').value="";
	} catch(e){}
}


// ---------------------------------------
// funciones para el calendario
// ---------------------------------------

// Generar calendario YUI
//Calendarios
function setUpCalendarVIA()
{
    var calOptions ={iframe:true,PAGES:2,close:true,pagedate: (d.getMonth()+1)+"/"+d.getFullYear(),  mindate: (d.getMonth()+1)+"/"+d.getDate()+"/"+d.getFullYear(),  maxdate: (d.getMonth()+1)+"/"+d.getDate()+"/"+(d.getFullYear()+1)};
    var calOptions2={iframe:true,PAGES:2,close:true,pagedate: (d.getMonth()+1)+"/"+d.getFullYear(),  mindate: (d.getMonth()+1)+"/"+(d.getDate()+1)+"/"+d.getFullYear(),  maxdate: (d.getMonth()+1)+"/"+d.getDate()+"/"+(d.getFullYear()+1)};
    if ($('cal1Container1') && $('cal2Container2'))
    {
    cal1 = new YAHOO.widget.CalendarGroup("cal1","cal1Container1",calOptions);
    cal2 = new YAHOO.widget.CalendarGroup("cal2","cal2Container2",calOptions2);
    YAHOO.util.Event.purgeElement("fecha_salida_rango_begin_tmp",false, "click");
    YAHOO.util.Event.addListener("fecha_salida_rango_begin_tmp", "click", showCalVIA, cal1, true);
    YAHOO.util.Event.purgeElement("fecha_salida-trigger1",false, "click");
    YAHOO.util.Event.addListener("fecha_salida-trigger1", "click", showCalVIA, cal1, true);
    YAHOO.util.Event.purgeElement("fecha_salida_rango_end_tmp",false, "click");
    YAHOO.util.Event.addListener("fecha_salida_rango_end_tmp", "click", showCalVIA, cal2, true);
    YAHOO.util.Event.purgeElement("fecha_salida-trigger2",false, "click");
    YAHOO.util.Event.addListener("fecha_salida-trigger2", "click", showCalVIA, cal2, true);
    cal1.selectEvent.subscribe(calSelectDateVIA, cal1, true);
    cal2.selectEvent.subscribe(calSelectDateVIA, cal2, true);
    cal1.cfg.setProperty("MONTHS_LONG",months_long);
    cal1.cfg.setProperty("WEEKDAYS_SHORT",day_short);
    cal1.cfg.setProperty("START_WEEKDAY",1);
    cal1.cfg.setProperty("NAV_ARROW_LEFT","/images_new/flecha_iz.gif");
    cal1.cfg.setProperty("NAV_ARROW_RIGHT","/images_new/flecha_de.gif");
    cal2.cfg.setProperty("MONTHS_LONG",months_long);
    cal2.cfg.setProperty("WEEKDAYS_SHORT",day_short);
    cal2.cfg.setProperty("START_WEEKDAY",1);
    cal2.cfg.setProperty("NAV_ARROW_LEFT","/images_new/flecha_iz.gif");
    cal2.cfg.setProperty("NAV_ARROW_RIGHT","/images_new/flecha_de.gif");
    if($('fecha_salida_rango_begin_tmp').value!='')
    {
        tmp=$('fecha_salida_rango_begin_tmp').value.split("/");
        cal1.cfg.setProperty("selected",tmp[1]+'/'+tmp[0]+'/'+tmp[2],false);
        cal1.cfg.setProperty("pagedate",tmp[1]+'/'+tmp[2],false);
    }
    if($('fecha_salida_rango_end_tmp').value!='')
    {
        tmp=$('fecha_salida_rango_end_tmp').value.split("/");
        cal2.cfg.setProperty("selected",tmp[1]+'/'+tmp[0]+'/'+tmp[2],false);
        cal2.cfg.setProperty("pagedate",tmp[1]+'/'+tmp[2],false);
    }
    cal1.render();
    cal2.render();
    }
}

function calSelectDateVIA(type,args,obj)
{
    var dates = args[0][0];
    var year = dates[0], month = dates[1], day = dates[2];
    if(obj.id=="cal1")
    {
        var fechaSalida = ($('fecha_salida_rango_end_tmp').value)?$('fecha_salida_rango_end_tmp').value.split('/'):null;
        var next_day=new Date();
        next_day.setFullYear(year);
        next_day.setMonth(parseInt(month)-1);
        next_day.setDate(day);
        next_day.setHours(0);
        next_day.setMinutes(0);
        next_day.setSeconds(0);
        if(fechaSalida!=null)
        {
            var fechaEntrada=$('fecha_salida_rango_begin_tmp').value.split('/');
            if(!$('fecha_salida_rango_begin_tmp').value) fechaEntrada=[dates[2],dates[1], dates[0]];
            var fecha_ini=new Date(parseInt(fechaEntrada[2], 10),parseInt(fechaEntrada[1], 10)-1,parseInt(fechaEntrada[0], 10));
            var fecha_fin=new Date(parseInt(fechaSalida[2], 10),parseInt(fechaSalida[1], 10)-1,parseInt(fechaSalida[0], 10));
            $('num_noches').value=Math.round((fecha_fin.getTime()-fecha_ini.getTime())/(1000*3600*24));
        }else{
            $('num_noches').value=1;
        }
        if($('num_noches').value<1) $('num_noches').value=1;
        next_day.setTime(next_day.getTime()+(86400000*$('num_noches').value));
        var nday=next_day.getDate();
        var nmonth=next_day.getMonth()+1;
        var nyear=next_day.getFullYear();
        if(parseInt(nday)<10) nday="0"+nday;
        if(parseInt(nmonth)<10) nmonth="0"+nmonth;
        if(parseInt(day)<10) day="0"+day;
        if(parseInt(month)<10) month="0"+month;
        $('fecha_salida_rango_begin_tmp').value = day + "/" + month + "/" + year;
        $('fecha_salida_rango_end_tmp').value = nday + "/" + nmonth + "/" + nyear;
        cal2.select(nmonth+"/"+nday+"/"+nyear);
        cal2.setMonth(nmonth-1);
        cal2.setYear(nyear);
    }else if(obj.id=="cal2")
    {
        if($('fecha_salida_rango_begin_tmp').value)
        {
            fechaSalida=[dates[2],dates[1], dates[0]];
            var fechaEntrada=$('fecha_salida_rango_begin_tmp').value.split('/');
            var fecha_ini=new Date(parseInt(fechaEntrada[2], 10),parseInt(fechaEntrada[1], 10)-1,parseInt(fechaEntrada[0], 10));
            var fecha_fin=new Date(parseInt(fechaSalida[2], 10),parseInt(fechaSalida[1], 10)-1,parseInt(fechaSalida[0], 10));
            if(fecha_ini.getTime()>=fecha_fin.getTime())
            {
                errores.push(new Error('12','999','002'));
                errores.show();
                return;
            }else{
                if(parseInt(day)<10) day="0"+day;
                if(parseInt(month)<10) month="0"+month;
                $('fecha_salida_rango_end_tmp').value = day + "/" + month + "/" + year;
            }
        }else{
            var pday=d.getDate();
            var pmonth=d.getMonth()+1;
            var pyear=d.getFullYear();
            if(parseInt(pday)<10) pday="0"+pday;
            if(parseInt(pmonth)<10) pmonth="0"+pmonth;
            if(parseInt(day)<10) day="0"+day;
            if(parseInt(month)<10) month="0"+month;
            $('fecha_salida_rango_begin_tmp').value = pday + "/" + pmonth + "/" + pyear;
            $('fecha_salida_rango_end_tmp').value = day + "/" + month + "/" + year;
        }
    }
    eval(obj.id+".hide()");
}


// Mostrar/ocultar el calendario
function showCalVIA(even, obj)
{
    if(obj.oDomContainer.style.display == 'none' || obj.oDomContainer.style.display == '')
    {
        eval(obj.id + ".render()");
        eval(obj.id + ".show()");
    }
}

// Mostrar/ocultar el calendario
function showCalHOT(even, obj)
{
    if(obj.oDomContainer.style.display=='none' || obj.oDomContainer.style.display=='')
    {
        if(obj.id=='hot_cal1'){ hot_cal1.show(); hot_cal2.hide();}
        else { hot_cal1.hide(); hot_cal2.show();}
    }else eval(obj.id+".hide()");
}

YAHOO.util.Event.onAvailable('calendari_trigger', function() {setTimeout("setUpCalendarVIA()", 2000)});
var months_long = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"];
var day_short = ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa"];
var d = new Date();
var hoy = new Date(d.getFullYear(), d.getMonth(), d.getDate());
var tree;
var treemd;
// ---------------------------------------
// end funciones para el calendario
// ---------------------------------------


function hidecajaflot(id) {
	
	YAHOO.util.Dom.addClass('caja_flot', 'oculto');
	YAHOO.util.Dom.removeClass('linea' + id, 'bk_gris9'); 
	YAHOO.util.Dom.removeClass('mas' + id, 'menos');
	YAHOO.util.Dom.addClass('mas' + id, 'mas');
	document.getElementById('link_mas' + id).href = 'javascript:showcajaflot(' + id + ');';
	
	
}

function showcajaflot(id) {
	
	if (document.getElementById('last_open').value>0) {
		hidecajaflot(document.getElementById('last_open').value);
	} 
	document.getElementById('last_open').value = id;
	
	YAHOO.util.Dom.removeClass('mas' + id, 'mas');
	YAHOO.util.Dom.addClass('mas' + id, 'menos');	
	document.getElementById('link_mas' + id).href = 'javascript:hidecajaflot(' + id + ');';
	
	
	var sel 	= YAHOO.util.Dom.get('mas' + id);
	var elm 	= YAHOO.util.Dom.get('caja_flot');
	var size 	= YAHOO.util.Dom.getRegion(sel);
	
	YAHOO.util.Dom.removeClass('caja_flot', 'oculto'); 
	YAHOO.util.Dom.addClass('linea' + id, 'bk_gris9');
	
	document.getElementById('caja_flot').style.position 	= "absolute";							
	YAHOO.util.Dom.setXY(elm,[size.right,size.top-30]);
		
	if (document.getElementById('sub_flot_'+id).innerHTML.length > 3280 ) { YAHOO.util.Dom.addClass('con_caja_flot','listasubelementos'); } else { YAHOO.util.Dom.removeClass('con_caja_flot', 'listasubelementos'); }
	
	document.getElementById('con_caja_flot').innerHTML = '<ul class="nobullets"><span class="block"></span>'+document.getElementById('sub_flot_'+id).innerHTML+'</ul>';
	document.getElementById('con_cerrar_caja_flot').innerHTML = '<a href="javascript:hidecajaflot('+id+')">Cerrar <img class="sprite_general cerrar_peq_blanco" src="http://www.atrapalo.com/images_new/inv.gif"/></a>';
	
}

var str_cualquiera='Cualquiera';
var str_cargando='Cargando...';
var str_selecciona='Selecciona';
//var num_max_hab=parseInt({$num_max_hab});
var pestanaya_activa='';

function viahotreloadsecond(obj) {
	reloadDestinos(obj,'id_costa2');
	$('id_costa').value=obj.value;
}

function viahotreloadthird(obj) {
	$('id_destino').value=obj.value;
	$('nombre_destino').value=obj[obj.selectedIndex].innerHTML;
}

function setUpCalendarHOT()
{

    if(!$('fecha_salida')){ setTimeout('setUpCalendarHOT();',200);return;}
    var calOptions ={iframe:true,PAGES:2,close:true,pagedate: (d.getMonth()+1)+"/"+d.getFullYear(),  mindate: (d.getMonth()+1)+"/"+d.getDate()+"/"+d.getFullYear(),  maxdate: (d.getMonth()+1)+"/"+d.getDate()+"/"+(d.getFullYear()+1)};
    var calOptions2={iframe:true,PAGES:2,close:true,pagedate: (d.getMonth()+1)+"/"+d.getFullYear(),  mindate: (d.getMonth()+1)+"/"+(d.getDate()+1)+"/"+d.getFullYear(),  maxdate: (d.getMonth()+1)+"/"+d.getDate()+"/"+(d.getFullYear()+1)};
    hot_cal1 = new YAHOO.widget.CalendarGroup("hot_cal1","hot_cal1Container",calOptions);
    hot_cal2 = new YAHOO.widget.CalendarGroup("hot_cal2","hot_cal2Container",calOptions2);
    
    
    YAHOO.util.Event.addListener('origenes_trigger', 'click', mostrar_origenes2);
    YAHOO.util.Event.addListener('destinos_trigger', 'click', mostrar_destinos2);    
    
  //  YAHOO.util.Event.removeListener("entrada-trigger");
  //  YAHOO.util.Event.addListener("entrada-trigger", "click", showCalHOT, hot_cal1, true);
    
    YAHOO.util.Event.removeListener("fecha_entrada");
   YAHOO.util.Event.addListener("fecha_entrada", "click", showCalHOT, hot_cal1, true);
    
   // YAHOO.util.Event.removeListener("salida-trigger");
   // YAHOO.util.Event.addListener("salida-trigger", "click", showCalHOT, hot_cal2, true);
    
    YAHOO.util.Event.removeListener("fecha_salida");
    YAHOO.util.Event.addListener("fecha_salida", "click", showCalHOT, hot_cal2, true);
    
    hot_cal1.selectEvent.subscribe(calSelectDateHOT, hot_cal1, true);
    hot_cal2.selectEvent.subscribe(calSelectDateHOT, hot_cal2, true);
    hot_cal1.cfg.setProperty("MONTHS_LONG",months_long);
    hot_cal1.cfg.setProperty("WEEKDAYS_SHORT",day_short);
    hot_cal1.cfg.setProperty("START_WEEKDAY",1);
    hot_cal1.cfg.setProperty("NAV_ARROW_LEFT","/images_new/flecha_iz.gif");
    hot_cal1.cfg.setProperty("NAV_ARROW_RIGHT","/images_new/flecha_de.gif");
    hot_cal2.cfg.setProperty("MONTHS_LONG",months_long);
    hot_cal2.cfg.setProperty("WEEKDAYS_SHORT",day_short);
    hot_cal2.cfg.setProperty("START_WEEKDAY",1);
    hot_cal2.cfg.setProperty("NAV_ARROW_LEFT","/images_new/flecha_iz.gif");
    hot_cal2.cfg.setProperty("NAV_ARROW_RIGHT","/images_new/flecha_de.gif");
    if($('fecha_entrada').value!='')
    {
        tmp=$('fecha_entrada').value.split("/");
        hot_cal1.cfg.setProperty("selected",tmp[1]+'/'+tmp[0]+'/'+tmp[2],false);
        hot_cal1.cfg.setProperty("pagedate",tmp[1]+'/'+tmp[2],false);
    }
    if($('fecha_salida').value!='')
    {
        tmp=$('fecha_salida').value.split("/");
        hot_cal2.cfg.setProperty("selected",tmp[1]+'/'+tmp[0]+'/'+tmp[2],false);
        hot_cal2.cfg.setProperty("pagedate",tmp[1]+'/'+tmp[2],false);
    }

    hot_cal1.render();
    hot_cal2.render();
}

function calSelectDateHOT(type,args,obj)
{
    var dates = args[0][0];
    var year = dates[0], month = dates[1], day = dates[2];
    if( (obj.id=="hot_cal1") )
    {
        var fechaSalida = ($('fecha_salida').value)?$('fecha_salida').value.split('/'):null;

        if(fechaSalida!=null)
        {
            var fechaEntrada=$('fecha_entrada').value.split('/');
            if(!$('fecha_entrada').value) fechaEntrada=[dates[2],dates[1], dates[0]];
            var fecha_ini=new Date(parseInt(fechaEntrada[2], 10),parseInt(fechaEntrada[1], 10)-1,parseInt(fechaEntrada[0], 10));
            var fecha_fin=new Date(parseInt(fechaSalida[2], 10),parseInt(fechaSalida[1], 10)-1,parseInt(fechaSalida[0], 10));
            $('num_noches').value=Math.round((fecha_fin.getTime()-fecha_ini.getTime())/(1000*3600*24));
        }else{
            $('num_noches').value=1;
        }
        var nn = parseInt($('num_noches').value);
        var next_day=new Date(year, month-1, day+nn);//$('num_noches').value);
        var nday=next_day.getDate();
        var nmonth=next_day.getMonth()+1;
        var nyear=next_day.getFullYear();

        if(parseInt(nday)<10) nday="0"+nday;
        if(parseInt(nmonth)<10) nmonth="0"+nmonth;
        if(parseInt(day)<10) day="0"+day;
        if(parseInt(month)<10) month="0"+month;
        $('fecha_entrada').value = day + "/" + month + "/" + year;
        $('fecha_salida').value = nday + "/" + nmonth + "/" + nyear;
        cal2.select(nmonth+"/"+nday+"/"+nyear);
        cal2.setMonth(nmonth-1);
        cal2.setYear(nyear);
        cal2.render();
    }else if( (obj.id=="hot_cal2") )
    {
        if($('fecha_entrada').value)
        {
            fechaSalida=[dates[2],dates[1], dates[0]];
            var fechaEntrada=$('fecha_entrada').value.split('/');
            var fecha_ini=new Date(parseInt(fechaEntrada[2], 10),parseInt(fechaEntrada[1], 10)-1,parseInt(fechaEntrada[0], 10));
            var fecha_fin=new Date(parseInt(fechaSalida[2], 10),parseInt(fechaSalida[1], 10)-1,parseInt(fechaSalida[0], 10));
            if(fecha_ini.getTime()>=fecha_fin.getTime())
            {
                errores.push(new error_o('12','999','002'));
                errores.show();
                return;
            }else{
                if(parseInt(day)<10) day="0"+day;
                if(parseInt(month)<10) month="0"+month;
                $('fecha_salida').value = day + "/" + month + "/" + year;
            }
        }else{
            var pday=d.getDate();
            var pmonth=d.getMonth()+1;
            var pyear=d.getFullYear();
            if(parseInt(pday)<10) pday="0"+pday;
            if(parseInt(pmonth)<10) pmonth="0"+pmonth;
            if(parseInt(day)<10) day="0"+day;
            if(parseInt(month)<10) month="0"+month;
            $('fecha_entrada').value = pday + "/" + pmonth + "/" + pyear;
            $('fecha_salida').value = day + "/" + month + "/" + year;
        }
        cal1.render();
    }
    eval(obj.id+".hide()");
}

function hotcomprobar(no_splash)
{    
	var error='';
	pestanaya_activa=1; 
    if (no_splash != 1) no_splash = 0;
    if (($('id_destino').value == '' && $('nombre_destino').value == ''  && (pestanaya_activa!='1' && pestanaya_activa!='2')) || ($('id_costa').value == '' && (pestanaya_activa=='1' || pestanaya_activa=='2') ) )    
    {        
        errores.push(new error_o('12','999','003','',"setErrorBackColor($('nombre_destino1'))"));
    }else if ($('hot_fecha_entrada').value=='' && $('hot_fecha_salida').value=='')
    {
    	document.busqueda.submit();
    }else if ($('hot_fecha_entrada').value=='' || $('hot_fecha_salida').value=='' || $('hot_fecha_salida').value==$('hot_fecha_entrada').value)
    {
    	errores.push(new error_o('12','999','004',"","setErrorBackColor($('hot_fecha_entrada'));"));
    }else{
        var today = new Date();
        var thisYear = today.getFullYear();
        var thisMonth = today.getMonth();
        var thisDay = today.getDate();
        
        var fechaEntrada = $('hot_fecha_entrada').value.split('/');
        var anoEntrada = fechaEntrada[2];
        var mesEntrada = fechaEntrada[1];
        var diaEntrada = fechaEntrada[0];
        
        var fechaSalida = $('hot_fecha_salida').value.split('/');
        var anoSalida = fechaSalida[2];
        var mesSalida = fechaSalida[1];
        var diaSalida = fechaSalida[0];
        
        fecha_ini=new Date(parseInt(fechaEntrada[2], 10),parseInt(fechaEntrada[1], 10)-1,parseInt(fechaEntrada[0], 10));
        fecha_fin=new Date(parseInt(fechaSalida[2], 10),parseInt(fechaSalida[1], 10)-1,parseInt(fechaSalida[0], 10));
        fecha_control=new Date(thisYear,thisMonth-1,thisDay);
        if (fecha_ini.valueOf()<fecha_control.valueOf()) errores.push(new error_o('12','999','005',"","setErrorBackColor($('hot_fecha_entrada'));"));
        else if (today.getUTCHours()>=20 && fecha_ini.valueOf()==fecha_control.valueOf()) errores.push(new error_o('12','999','006',""));
        if($('id_hotel2')) $('id_hotel').value=$('id_hotel2').value;
        $('num_noches').value=Math.round((fecha_fin.getTime()-fecha_ini.getTime())/(1000*3600*24));
        if($('num_noches').value>30) { errores.push(new error_o('12','999','007',"","setErrorBackColor($('hot_fecha_salida'));")); }
        var i = 1;
        while (error.length==0 && i<=$('num_habitaciones')[$('num_habitaciones').selectedIndex].value)
        {
            var j = 1;
            var f = i;
            var n = $('num_ninos_'+f);
            if(n[n.selectedIndex])
            {
                while (error.length==0 && j<=n[n.selectedIndex].value)
                {
                    if ($('edad_'+f+'_'+j).selectedIndex==0)  errores.push(new error_o('12','999','000',"Debe especificar la edad del niño "+j+" de la habitacion "+f,"setErrorBackColor($('edad_"+f+"_"+j+"'));"));
                    j++;
                }
            }
            i++;
        }
        if (errores.cuantos()>0)
        {
            errores.show();
            return;
        }else{
             
                 setTimeout("document.busqueda.submit()",500);
             
//             return;
        }
    }
    errores.show();
    return false;
}

function montaDivGris() 
{
	document.getElementById('fondo').innerHTML = '<div id="fondo_especial" class="caja_gris_4" ><div class="top"><div></div></div><div class="mid"><div id="cbuscador_home"></div></div>	<div class="bot"><div></div></div></div><div class="clear"></div><span id="calendari_trigger"></span>';
}


function montaDivNormal() 
{
	document.getElementById('fondo').innerHTML = '<div id="cbuscador_home"></div><div class="clear"></div><span id="calendari_trigger"></span>';
}

function filtrarPorViaje() 
{
	var a = document.busca.k.value;
	if ((a.indexOf('viaje')==-1) && (a.indexOf('viajes')==-1) && (a.indexOf('Viaje')==-1) && (a.indexOf('Viajes')==-1) && (a.indexOf('VIAJES')==-1)) {
		document.busca.k.value='viaje '+document.busca.k.value;		
	}
}




/** LANDINGS VMH VIAJES **/

function showSearchDestino(str_destino){
	
	var obj = new YAHOO.util.Element('busquedaVuelosMasHotel');
	if(typeof str_destino!="undefined"){
		document.getElementById('nombre_destino1').value= str_destino;
	}

	showSearch();
	
	return false;
}

function showAdvancedSearch(){

	var obj = new YAHOO.util.Element('busquedaAvanzadaVuelosMasHotel');

	if(obj.getStyle('display') == "none"){
	
		obj.setStyle('display', '');
		YAHOO.util.Dom.replaceClass('TrigerShowAdvancedSearch', 'ico_bulletFlecha', 'ico_bulletFlechaAbajo');
	
	} else {
	
		obj.setStyle('display', 'none');
		YAHOO.util.Dom.replaceClass('TrigerShowAdvancedSearch', 'ico_bulletFlechaAbajo', 'ico_bulletFlecha');
	}
	
	return false;
}


function showSelectChildsAge(value){
	/* eduardo.heredia 6 nov : He cambiado el funcionamiento de esta funcion porque no mostraba la edad porque alternaba estre mostrar y no mostrar. 
	Ahora muestra cuando el numero de menores es superior a 0 */

	/*
	if($('childSelectAges_' + value).style.display == 'block'){
		$('childSelectAges_' + value).style.display = 'none';
	} else {
		
		$('childSelectAges_' + value).style.display = 'block';
	} */

    if( $('num_ninos_' + value).value > 0 )   $('childSelectAges_' + value).style.display = 'block';
    else                                      $('childSelectAges_' + value).style.display = 'none';
    
    
    mostrarInputsEdades($('num_ninos_' + value).value, value);
    
}

function showRoomLines(value){

   	var num_max_hab = 6;

	if(value=='+'){
		document.location.href=dir_hoteles+"?pg=grupos";
		return;
	}
	
	for(i=1;i<num_max_hab+1;i++){
    
		if($('fila_hab_'+i)){
				if (i<=value){
			
				$('fila_hab_'+i).style.display = 'block';
			} else {
			
				$('fila_hab_'+i).style.display = 'none';	
			}
		}
	}
}

function showSearch(){
	
	var obj = new YAHOO.util.Element('busquedaVuelosMasHotel');
	if(obj.getStyle('display') == "none"){
	
		obj.setStyle('display', 'block');
		YAHOO.util.Dom.replaceClass('TrigerShowSearch', 'ico_bulletFlecha', 'ico_bulletFlechaAbajo');

		
	} else {
	
		obj.setStyle('display', 'none');
		YAHOO.util.Dom.replaceClass('TrigerShowSearch', 'ico_bulletFlechaAbajo', 'ico_bulletFlecha');
	}
	
	return false;
}


var myAutoCompOrigen = '';
var myAutoCompDestino = '';

YAHOO.util.Event.onDOMReady(function(){

	try{
	
        YAHOO.util.Event.addListener("TrigerShowSearch", "click", showSearch);		
        YAHOO.util.Event.addListener("TrigerShowAdvancedSearch", "click", showAdvancedSearch);
        YAHOO.util.Event.addListener("ninos", "change", showSelectChildsAge);
	
	} catch(e){
		
		
	}
		
    setUpCalendarHOT();

    $('fecha_entrada').setAttribute("autocomplete","off");
    $('fecha_salida').setAttribute("autocomplete","off");
	
    $('nombre_origen1').setAttribute("autocomplete","off");
    $('nombre_destino1').setAttribute("autocomplete","off");
   
    YAHOO.util.Event.onAvailable('autocom_trigger_origen',origenAutocomplete);
    YAHOO.util.Event.onAvailable('autocom_trigger_destino',destinoAutocomplete);

});


/** autocomplete landings **/

function updateAutocompletIdOrigen(a,b,c)
{
     id     = c[0];
     nombre = c[1];
     pais   = c[2];
     $('origen').value= nombre +', '+pais+', ('+ id +')';
}

function updateAutocompletIdDestino(a,b,c)
{
     id     = c[0];
     nombre = c[1];
     pais   = c[2];
	 $('destino').value= nombre +', '+pais+', ('+ id +')';
}

function origenAutocomplete()
{

	var myXHRDataSourceOrigen = new YAHOO.widget.DS_XHR_AUTO(dir_vuelos+"home_buscador_ajax/mode.null/origen.",["ResultSet.Result","id", "nombre","pais"]);
    YAHOO.widget.DS_XHR.TYPE_JSON;
    myXHRDataSourceOrigen.scriptQueryParam = "";
    myXHRDataSourceOrigen.maxCacheEntries = 10;
    myXHRDataSourceOrigen.queryMatchContains = true;
    if (myAutoCompOrigen != '')
    	myAutoCompOrigen.dataSource = myXHRDataSourceOrigen; // Cambiamos solo el source.
    else
    {
    	// Asignamos el autocomplete
	    myAutoCompOrigen = new YAHOO.widget.AutoComplete("origen","div_auto_complete_origen",myXHRDataSourceOrigen);
	    myAutoCompOrigen.minQueryLength = 1;
	    myAutoCompOrigen.maxResultsDisplayed = 10;
	    myAutoCompOrigen.highlightClassName = "yui-ac-highlight";
	    myAutoCompOrigen.animVert = false;
	    myAutoCompOrigen.animHoriz = false;
	    myAutoCompOrigen.forceSelection = false;
	    myAutoCompOrigen.formatResult = formatDivAutocomplete;
	    myAutoCompOrigen.itemSelectEvent.fire=updateAutocompletIdOrigen;
	    myAutoCompOrigen.dataRequestEvent.fireold=myAutoCompOrigen.dataRequestEvent.fire;

	    myAutoCompOrigen.dataRequestEvent.fire=function ( oSelf , sQuery )
	    {
	        if($('indicator1')) $('indicator1').style.display='inline';
	        myAutoCompOrigen.dataRequestEvent.fireold ( oSelf , sQuery );
	    }
	        myAutoCompOrigen.dataReturnEvent.fireold=myAutoCompOrigen.dataReturnEvent.fire;
	        myAutoCompOrigen.dataReturnEvent.fire=function ( oSelf , sQuery , aResults )
	    {
	        if($('indicator1')) $('indicator1').style.display='none';
	        myAutoCompOrigen.dataReturnEvent.fireold ( oSelf , sQuery, aResults );
	    }
	    myAutoCompOrigen.useIFrame = false;
    }
};

function destinoAutocomplete()
{
    if ($('destino')) {

		var myXHRDataSourceDestino = new YAHOO.widget.DS_XHR_AUTO(dir_hoteles+"do_ajax/destinos_json/",["ResultSet.Result","id", "name","text"]);
		YAHOO.widget.DS_XHR.TYPE_JSON;
		//myXHRDataSourceDestino.scriptQueryParam = "squid=yes&pg=home_buscador_ajax&mode=null&destino";
		myXHRDataSourceDestino.scriptQueryParam = "";
		myXHRDataSourceDestino.maxCacheEntries = 10;
		myXHRDataSourceDestino.queryMatchContains = true;
		if (myAutoCompDestino != '')
    		myAutoCompDestino.dataSource = myXHRDataSourceDestino; // Cambiamos solo el source.
    	else
    	{
	    	// Asignamos el autocomplete
			myAutoCompDestino = new YAHOO.widget.AutoComplete("destino", "div_auto_complete_destino", myXHRDataSourceDestino);
			myAutoCompDestino.minQueryLength = 1;
			myAutoCompDestino.maxResultsDisplayed = 10;
			myAutoCompDestino.highlightClassName = "yui-ac-highlight";
			myAutoCompDestino.animVert = false;
			myAutoCompDestino.animHoriz = false;
			myAutoCompDestino.forceSelection = false;
			myAutoCompDestino.formatResult = formatDivAutocomplete;
			myAutoCompDestino.itemSelectEvent.fire = updateAutocompletIdDestino;
			myAutoCompDestino.useIFrame = false;
			myAutoCompDestino.dataRequestEvent.fireold = myAutoCompDestino.dataRequestEvent.fire;
			myAutoCompDestino.dataRequestEvent.fire = function(oSelf, sQuery){
				if ($('indicator2'))
					$('indicator2').style.display = 'inline';
				myAutoCompDestino.dataRequestEvent.fireold(oSelf, sQuery);
			}

			myAutoCompDestino.dataReturnEvent.fireold = myAutoCompDestino.dataReturnEvent.fire;
			myAutoCompDestino.dataReturnEvent.fire = function(oSelf, sQuery, aResults){
				if ($('indicator2'))
					$('indicator2').style.display = 'none';
				myAutoCompDestino.dataReturnEvent.fireold(oSelf, sQuery, aResults);
			}
		}
	}
};

function updateOrigen(elem)
{
    name=elem.getAttribute('name');
    $('origen').value=name;
}
function updateDestino(elem)
{
    name=elem.getAttribute('name');
    $('destino').value=name;
}
function mostrar_origenes3()
{
	if(oPanel) oPanel.destroy();
    input_m_vmh="origen";
    oPanel = new YAHOO.widget.Panel("panel_origenes",
        { width:'300px', underlay:"none", close:true, draggable:false, fixedcenter:false, zIndex:1000, context:["nombre_origen1","tl","bl"], iframe: true }
    );
    load_url = dir_vuelos+'origenes_frecuentes/mode.null'
    YAHOO.util.Connect.asyncRequest("get",load_url, {
          timeout: 10000,
          success: function(o) {
             oPanel.setHeader(ciudades_mas_frecuentes.toUpperCase());
             oPanel.setBody(o.responseText);
             oPanel.render(document.body);
          },
          failure: function() {
             return false;
          }
        });
    
}
function mostrar_destinos3()
{
	
	 if(oPanel) oPanel.destroy();

	    input_m_vmh="destino";
	    oPanel = new YAHOO.widget.Panel("panel_destinos",
	        { width:'300px', underlay:"none", close:true, draggable:false, fixedcenter:false, zIndex:1000, context:["nombre_destino1","tl","br"], iframe: true }
	    );
	    load_url = dir_vuelos+'destinos_frecuentes/mode.null'
	    YAHOO.util.Connect.asyncRequest("get",load_url, {
	          timeout: 10000,
	          success: function(o) {
	             oPanel.setHeader(ciudades_mas_frecuentes.toUpperCase());
	             oPanel.setBody(o.responseText);
	             oPanel.render(document.body);
	          },
	          failure: function() {
	             return false;
	          }
	        });
	        $('id_destino').value 		= "";
	        $('nombre_destino').value 	= "";
	    
}

function formatDivAutocomplete(aResultItem, sQuery)
{

	var aMarkup = ["<div id='",unescape(aResultItem[0]),"'>",unescape(aResultItem[1]) +', '+unescape(aResultItem[2]) +', ('+unescape(aResultItem[0])+')', "<"+"/"+"div>"];
    return (aMarkup.join(""));
};



function origenAutocompleteBck()
{
	YAHOO.util.Event.addListener('origen', "click", origenAutocomplete);
}

function destinoAutocompleteBck()
{

	YAHOO.util.Event.addListener('destino', "click", destinoAutocomplete);
}
