//funcion que introduce una caracteristica o categoria en un campo oculto 'tipo'
function ponFiltro(check,tipo,opcion)
{
	//formato cadena de características "'cod1','cod2',...,'codN'"
	var codCaract = check.value;
	var hiddenCarac = document.getElementById(tipo);
	var valorCarac = hiddenCarac.value;
	
	//si no está checked
	if(check.checked!=true)
	{
		//categoría	
		if(opcion!=2)
		{
			var estrellasHoteles;
			//si opcion==1 estamos en el filtro de categorias
			if (opcion==1)
			{
				estrellasHoteles= document.getElementById("estrellasHoteles").value;
			}
			else
			{				
				//si opcion==3 estamos en el filtro de tipos de alojamiento
				estrellasHoteles= document.getElementById("tiposalojamientosHoteles").value;
			}
			var arrayEstrellas = estrellasHoteles.split(",");
			var arrayActualEstrellas = valorCarac.split(",");
			var longitudFiltros;
			//corregimos el numero de filtros si el array de filtros actuales de categoría está vacío
			if (arrayActualEstrellas=="")
			{
				longitudFiltros = 0;
			}else
			{
				longitudFiltros = arrayActualEstrellas.length;	
			}
			//evitamos que se desmarquen todas las categorías
			if ( longitudFiltros < arrayEstrellas.length - 1)
			{
				if ( existe(hiddenCarac.value,codCaract) < 0 )
				{
					if(valorCarac=="")
					{
						valorCarac += "'" + codCaract + "'";	
					}else
					{
						valorCarac += ",'" + codCaract + "'";
					}
				}	
			}else
			{
				check.checked = true;	
			}						
		//caracteristicas
		}else
		{
			var pos = existe(hiddenCarac.value,codCaract);
			if( pos >= 0 )
			{
				//borrado	
				valorCarac = borraPos(valorCarac,pos);
			}
		}
	}
	else
	{
		//categoría
		if(opcion!=2)
		{
			//si está la borramos		
			var pos = existe(hiddenCarac.value,codCaract);
			if( pos >= 0 )
			{
				//borrado	
				valorCarac = borraPos(valorCarac,pos);
			}			
		}
		//caracteristicas
		else
		{
			if ( existe(hiddenCarac.value,codCaract) < 0 )
			{
				if(valorCarac=="")
				{
					valorCarac += "'" + codCaract + "'";	
				}else
				{
					valorCarac += ",'" + codCaract + "'";
				}
			}
		}
	}
	//asignamos de nuevo el valor al campo oculto
	hiddenCarac.value = valorCarac;
	//alert("document.getElementById(" + tipo +").value=" + document.getElementById(tipo).value); 
}

//función que devuelve la posición de un codigo dentro de la cadena de características o categoría
function existe(cadena,codigo)
{
	var posicion = -1;
	var array = cadena.split(",");
	//valores de opcion "buscar" "borrar"		
	for(i=0;i<array.length;i++)
	{			
		//si existe devolvemos la posición
		if(array[i].indexOf(codigo, 0) > -1)
		{							
			return i;
		}
	}
	return posicion;
}

//función que borra una característica o categoria
function borraPos(cadena,pos)
{
	var array = cadena.split(",");
	var cadResultado="";
	for(i=0;i<array.length;i++)
	{
		if(i!=pos)
		{
			if(i==0 || (i==array.length-1 && array.length==2))			
			{
				cadResultado += array[i];
			}else
			{
				cadResultado += "," + array[i];
			}
		}	
	}
	return cadResultado;
}

//funcion que actualiza el filtro de tipos de alojamientos a todos los tipos posibles
function todosTipos(check,tiposalojamientos,tiposalojamientosHoteles)
{
		if(check.checked == true)
		{
			var aux = document.getElementById(tiposalojamientosHoteles).value;			
			aux = "";
			/*
			var array = aux.split(",");
			aux = "";
			for(i=0;i<array.length;i++)
			{			
				if(i==0)
				{
					aux += "'" + array[i] + "'";
				}else
				{
					aux += ",'" + array[i] + "'";
				}
			}			
			*/
			document.getElementById(tiposalojamientos).value = 	aux;
			document.pagOrden.submit();			
		}else
		{
			check.checked = true;	
		}
}

//filtro pago directo
function ponFiltroPago(check,idhiden,valor)
{
	var objHiden = document.getElementById(idhiden);	
	var valorHiden = objHiden.value;
	var chkprepago = document.getElementById("prepago");	
	var chkpagoHotel = document.getElementById("pagohotel");
	if(check.checked == false)
	{
		//añadir filtro pago si el otro check está activo (sino está activo objHiden.value <> "")	
		if(chkprepago!=null && chkpagoHotel!=null)
		{			
			if(objHiden.value.length == 0)
				objHiden.value = valor;
			else
				objHiden.value = "";
			document.pagOrden.submit();
		}else
		{
			//restablecemos el check y no hacemos nada porque solo hay un tipo de pago
			check.checked = true;
		}		
	}
	else
	{
		//borrar filtro pago
		objHiden.value = "";
		document.pagOrden.submit();
	}
	//alert(objHiden.value);		
}
