  var generic = new Array();
  var generim = new Array();
  var annic = new Array();
  var annim = new Array();
  var maga = true;
  var tipo = 't';


// Creazione istanze classe genere
  function genere(g1, g2, d1, d2) {
    this.gen = g1;
    this.subgen = g2;
    this.dsgen = d1;
    this.dssubgen = d2;
  }


// Riempie le tendine dei generi e dei sottogeneri e imposta le voci selezionate
  function popolaconsel(cdg1, cdg2) {
    popolageneri();
    // Cerco l'indice del genere indicato e lo imposto come selezionato
    for (i=0; i<document.fcerca.gen1.length; i++) {
      if (document.fcerca.gen1.options[i].value == cdg1) {
        document.fcerca.gen1.selectedIndex = i;
      }
    }
    popolasubgen();
    // Cerco l'indice del sottogenere indicato e lo imposto come selezionato
    for (i=0; i<document.fcerca.gen2.length; i++) {
      if (document.fcerca.gen2.options[i].value == cdg2) {
        document.fcerca.gen2.selectedIndex = i;
      }
    }
  }


// Riempie la tendina dei generi
  function popolageneri() {
    // Seleziona il tipo di generi da usare
    if (maga == true) {
      generi = generim;
    }
    else {
      generi = generic;
    }
    le = generi.length;
//    alert(le);
    // Vuota la lista dei generi e imposta il generico TUTTI
    genop = document.fcerca.gen1.options;
    if (tipo == "t" || tipo == "l") {
      genop.length = 1;
      genop[0].text = "TUTTI";
      genop[0].value = "|||";
    }
    else {
      genop.length = 0;
    }
    // Scorre i generi e li inserisce nella lista
    geni = "|||";
    for (i=0; i<le; i++) {
//      alert(i);
      gc = generi[i];
      if (gc.gen != geni) {
        add = false;
        switch (tipo) {
          case "t": // Tutti i prodotti, prendo tutti i generi
            add = true;
            break;
          case "f": // Film: solo genere 050
            if (gc.gen == "050") {
              add = true;
            }
            break;
          case "m": // Musica: solo genere 010
            if (gc.gen == "010") {
              add = true;
            }
            break;
          case "l": // Libri: tutti i generi tranne 010 e 050
            if (gc.gen != "010" && gc.gen != "050") {
              add = true;
            }
            break;
        }
        if (add == true) {
          genop.length = genop.length + 1;
          genop[genop.length - 1].text = gc.dsgen;
          genop[genop.length - 1].value = gc.gen;
        }
        geni = gc.gen;
      }
    }
    if (genop.length == 0) {
      genop.length = 1;
      genop[0].text = "TUTTI";
      genop[0].value = "|||";
    }
    // Vuota la tendina dei sottogeneri e imposta il generico TUTTI
    subop = document.fcerca.gen2.options
    subop.length = 1;
    subop[0].text = "TUTTI";
    subop[0].value = "|||";
    if (tipo == "m" || tipo == "f") {
      popolasubgen();
    }
  }


// Riempie la tendina dei sottogeneri
  function popolasubgen() {
    // Seleziona il tipo di generi da usare
    if (maga == true) {
      generi = generim;
    }
    else {
      generi = generic;
    }
    // Vuota la tendina dei sottogeneri e imposta il generico TUTTI
    subop = document.fcerca.gen2.options
    ind = document.fcerca.gen1.selectedIndex;
    sgen = document.fcerca.gen1.options[ind].value;
    subop.length = 1;
    subop[0].text = "TUTTI";
    subop[0].value = "|||";
    // Scorre i sottogeneri e li aggiunge alla tendina
    le = generi.length;
    for (i=0; i<le; i++) {
      gc = generi[i];
      if (gc.gen == sgen) {
        subop.length = subop.length + 1;
        subop[subop.length - 1].text = gc.dssubgen;
        subop[subop.length - 1].value = gc.subgen;
      }
    }
  }


// Popola tendina anni
  function popolaanni(flm, anno) {
    // Seleziona la collezione di anni da usare
    if (flm == 'on') {
      anni = annim;
    }
    else {
      anni = annic;
    }
    // Vuota la tendina dei sottogeneri e imposta il generico TUTTI
    annop = document.fcerca.annopub.options
    annop.length = 1;
    annop[0].text = "TUTTI";
    annop[0].value = "0";
    le = anni.length;
    for (i=0; i<le; i++) {
      an = anni[i];
      annop.length = annop.length + 1;
      annop[annop.length - 1].text = an;
      annop[annop.length - 1].value = an;
      if (an == anno) {
        document.fcerca.annopub.selectedIndex = i + 1;
      }
    }
  }


// Seleziona il tipo di generi e anni
  function selmaga(flm) {
    if (flm == 'off') {
      maga = false;
    }
    else {
      maga = true;
    }
    // Reimposta la tendina dei generi
    popolageneri();
    popolaanni(flm, '0')
    enablepag(flm);
  }


// Reimposta la selezione dei generi in base al tipo
  function cambiaTipo() {
    tip = document.fcerca.tipo.selectedIndex;
    tipo = document.fcerca.tipo.options[tip].value;
    popolageneri();
  }


// Abilita o disabilita il controllo per il numero di pagina
  function enablepag(val) {
    document.fcerca.pagcata.value = '';
    document.fcerca.pagcata.disabled = (val == 'on');
    document.getElementById('lpcata').disabled = (val == 'on');
//    selmaga(val);
  }


// Sort risultati ricerca
  function sort(frm, srt, rev) {
    frmsub = document.getElementById(frm);
    frmsub.ordi.value = srt;
    frmsub.ordinv.value = rev;
    frmsub.submit();
  }

