var ListaCombos=new Array();
//Función para cambiar el padre de un div variando el que tiene por defecto en su creación
function setParent(el, newParent) {
  newParent.appendChild(el);
}

//Funcion para desplegar el menú
function Despliega()
{
  var p = document.getElementById(this['Tabla']);
  var c = document.getElementById(this['ITEMS']);
  setParent(c,document.body);
  var top  = p.offsetHeight-1;
  var left = 0;
  
  for (; p; p = p.offsetParent)
  {
    top  += p.offsetTop;
    left += p.offsetLeft;
  }

//---------------------------------------------------------------------------------------------------------
//ÑAPA, quitar cuando lo pase todo a javascript (SOLO DESPLEGABLE nº resultados en ResultadosBusquedaVuelos
if(ListaCombos[this['IdCombo']].Tipo==-2)
  {
  c.style.width='48px';
  left++;
  top++;
  }
//ÑAPA, quitar cuando lo pase todo a javascript (SOLO DESPLEGABLE nº resultados en ResultadosBusquedaVuelos
//---------------------------------------------------------------------------------------------------------

  //c.style.position   = "absolute";
  c.style.top        = top +'px';
  c.style.left       = left+'px';
  c.style.visibility = "visible";

  //Añado un evento por si pincha en cualquier otro sitio
  AttachEvent(document,'mousedown',OcultaTodos);
}

function OcultaTodos()//Si necesitara el even o window.even solo es añadirle (e) como parametro, sino no va en firefox
{
for(i=0;i<ListaCombos.length;i++)
  {
  if(ListaCombos[i])
    {
    c = document.getElementById(ListaCombos[i].ITEMS);
    if (c.style.visibility == "visible")//si alguno está visible lo oculto
      c.style.visibility = "hidden";
    }
  } 
RemoveEvent(document,'mousedown',OcultaTodos);   
}

function DameValor(Id)
{
return document.getElementById(ListaCombos[Id].Texto).innerHTML;
}

function AsignaValorCombo(Id,Valor)
{
document.getElementById(ListaCombos[Id].Texto).innerHTML=Valor;
}

function ClickOpcion(Id,NuevoTexto)
{
ListaCombos[Id].Valor=NuevoTexto;
c = document.getElementById(ListaCombos[Id].Texto);
c.innerHTML=NuevoTexto;
if (ListaCombos[Id].onchange)
  ListaCombos[Id].onchange();
}
//----------------------
function ComboBox(Id,Tipo,Tabla,Texto,BotonDesplegable,ITEMS)
{
ListaCombos[Id]=this;
this.Id=Id;
this.Tipo=Tipo;
this.onchange=null;
this.Valor=document.getElementById(Texto).innerHTML;
this.Tabla=Tabla;
this.Texto=Texto;
this.BotonDesplegable=BotonDesplegable;
this.ITEMS=ITEMS;
b=document.getElementById(BotonDesplegable);
b['IdCombo']=Id;
b['Tabla']=Tabla;
b['ITEMS']=ITEMS;
b.onclick=Despliega;
}

function AttachOnChangeEvent(Id,Funcion)
{
ListaCombos[Id].onchange=Funcion;
}

function AttachComboBox(Id,Tipo,Tabla,Texto,BotonDesplegable,ITEMS)
{
var Objeto=new ComboBox(Id,Tipo,Tabla,Texto,BotonDesplegable,ITEMS);
ListaCombos[Id]=Objeto;
}

function AttachEvent(elemento, eventname, funcion) {
	if (elemento.attachEvent) { // IE
		elemento.attachEvent("on" +eventname, funcion);
	} else if (elemento.addEventListener) { // Gecko / W3C
		elemento.addEventListener(eventname, funcion, true);
	} else {
		elemento["on" +eventname] = funcion;
	}
}

function RemoveEvent(elemento, eventname, funcion) {
	if (elemento.detachEvent) { // IE
		elemento.detachEvent("on" + eventname, funcion);
	} else if (elemento.removeEventListener) { // Gecko / W3C
		elemento.removeEventListener(eventname, funcion, true);
	} else {
		elemento["on" + eventname] = null;
	}
}

function ComboBoxHoras_SetClassName(Id,ClassNameStr)
{
document.getElementById(ListaCombos[Id].Tabla).className=ClassNameStr;
}

function ComboBoxHoras_DameOrdinal(Id)
{
var Valor=DameValor(Id);
if (Valor.length>=2)
  Valor=Valor.substring(0,2);
else Valor='';
Valor=parseInt(Valor,10);
if (isNaN(Valor))
  {//Es el "Me da igual"
  //Por si acaso ha entrado "basura" lo recargo 
  AsignaValorCombo(Id,"Me da igual");
  if (ListaCombos[Id].Tipo==0) return -1
  else return 24; 
  }
else return Valor;
}

function ComboBoxOrdenacion_DameOrdinal(Id)
{
var Resultado=5;//Precio por defecto
var Valor=DameValor(Id);
if (Valor=='Proveedor') Resultado=0
else if (Valor=='Compañía ida') Resultado=1
     else if (Valor=='Compañía vuelta') Resultado=6
          else if (Valor=='Escalas ida') Resultado=2
               else if (Valor=='Escalas vuelta') Resultado=7
                    else if (Valor=='Hora salida ida') Resultado=3
                         else if (Valor=='Hora salida vuelta') Resultado=8
                              else if (Valor=='Hora llegada ida') Resultado=4
                                   else if (Valor=='Hora llegada vuelta') Resultado=9
                                        else if (Valor=='Precio') Resultado=5
return Resultado;
}