//idée :
// o  donner les résultats dans un tableau (permet les mosaiques d'images). ouvrir chaque image 
//    dans une fenêtre séparée
// o  aide (à ouvrir ds une fenêtre séparée): donner les tips de recherche et la liste des mots clés existants


// base de l'URL pour XOOM
//base_URL = "http://members.xoom.com/_XOOM/uhclv/";

//base de l'URL pour le site local Le Vaud
base_URL = "file://c:/Mes Documents/Unihockey Club/WEB_SITE/";


////////////////////////////////////////////////////
// recherche dans une database avec javascript
// Auteur : Julien Kronegg (jkronegg@xoommail.com)
// Date   : 23 juin 1999
nbrKeywordsMax=25;
nbrTopicsMax=39;

nbrsearch=0;
keywordsBase=new Array(nbrTopicsMax);  // les mots clés
resumesBase =new Array(nbrTopicsMax);  // les résumés
liensBase   =new Array(nbrTopicsMax);  // les liens sur les ressources html ou autres

keywordsBase[0]="photos, discos, buvettes, avril 1999, Méliné, Meline, Marcel, portraits, cuisines, staff";
resumesBase [0]='apercu :<img src="'+base_URL+'uhclv/tournoi1999/photos/buvette1_small.jpg" alt="la buvette" width=59 height=40><br>La buvette durant la disco du club en 1999';
liensBase   [0]=base_URL+'uhclv/tournoi1999/photos/buvette1.jpg';

keywordsBase[1]="photos, discos, piste de danse, avril 1999";
resumesBase [1]='apercu :<img src="'+base_URL+'uhclv/tournoi1999/photos/disco_piste1_small.jpg" alt="la piste de danse" width=59 height=40><br>Le coté scène de la disco du club en 1999, avec beaucoup de fumée';
liensBase   [1]=base_URL+'uhclv/tournoi1999/photos/disco_piste1.jpg';

keywordsBase[2]="photos, discos, bar à cocktails, avril 1999, Pierre, Valentin, portraits, staff";
resumesBase [2]='apercu :<img src="'+base_URL+'uhclv/tournoi1999/photos/bar2_small.jpg" alt="le bar à cocktails coté service" width=59 height=40><br>Le bar à cocktails coté service durant la disco du club en 1999';
liensBase   [2]=base_URL+'uhclv/tournoi1999/photos/bar2.jpg';

keywordsBase[3]="photos, discos, avril 1999, bar à cocktails, public";
resumesBase [3]='apercu :<img src="'+base_URL+'uhclv/tournoi1999/photos/bar1b_small.jpg" alt="le bar à cocktails" width=40 height=40><br>Le bar à cocktails durant la disco du club en 1999';
liensBase   [3]=base_URL+'uhclv/tournoi1999/photos/bar1b.jpg'

keywordsBase[4]="photos, discos, avril 1999, bar à cocktails, avec alcool";
resumesBase [4]='apercu :<img src="'+base_URL+'uhclv/tournoi1999/photos/bar_alcool_b_small.jpg" alt="bar à alcool" width=96 height=40><br>Les boissons alcoolisées lors de la disco du club en 1999';
liensBase   [4]=base_URL+'uhclv/tournoi1999/photos/bar_alcool_b.jpg'

keywordsBase[5]="photos, discos, avril 1999, afficheur de scores";
resumesBase [5]='apercu : <img src="'+base_URL+'uhclv/tournoi1999/photos/afficheur_b_small.jpg" alt="afficheur de scores" width=22 height=40><br>Afficheur de score créé pour le tournoi de unihockey de le Vaud en 1999.';
liensBase   [5]=base_URL+'uhclv/tournoi1999/photos/afficheur_b.jpg'

keywordsBase[6]="photos, discos, avril 1999, bar à cocktails, sans alcool";
resumesBase [6]='apercu : <img src="'+base_URL+'uhclv/tournoi1999/photos/bar_reserve_b_small.jpg" alt="réserve sans alcool" width=32 height=40><br>Le stock de boissons pour le bar à cocktails de la disco 1999 du club.';
liensBase   [6]=base_URL+'uhclv/tournoi1999/photos/bar_reserve_b.jpg'

keywordsBase[7]="photos, discos, platines, DJ, avril 1999, scène";
resumesBase [7]='apercu :<img src="'+base_URL+'uhclv/tournoi1999/photos/disco_platines_small.jpg" alt="la scène coté platines" width=59 height=40><br>La scène coté vue du coté platines durant la disco du club en 1999';
liensBase   [7]=base_URL+'uhclv/tournoi1999/photos/disco_platines.jpg'

keywordsBase[8]="photos, tournois, distribution des prix, avril 1999, Nicolas, Katia, Marcel, portraits, staff";
resumesBase [8]='apercu :<img src="'+base_URL+'uhclv/tournoi1999/photos/distribution_prix_coupes_small.jpg" alt="distribution des prix" width=59 height=40><br>La scène durant la distribution des prix du tournoi de unihockey en 1999';
liensBase   [8]=base_URL+'uhclv/tournoi1999/photos/distribution_prix_coupes.jpg'

keywordsBase[9]="photos, tournois, distribution des prix, podium, avril 1999, Aurélien, portraits";
resumesBase [9]='apercu :<img src="'+base_URL+'uhclv/tournoi1999/photos/distribution_prix_podium_small.jpg" alt="distribution des prix (podium)" width=59 height=40><br>Le podium durant la distribution des prix du tournoi de unihockey en 1999';
liensBase   [9]=base_URL+'uhclv/tournoi1999/photos/distribution_prix_podium.jpg'

keywordsBase[10]="photos, discos, avril 1999, Heatcliff, portraits, buvette, staff";
resumesBase [10]='apercu :<img src="'+base_URL+'uhclv/tournoi1999/photos/heatcliff_small.jpg" alt="cliff" width=27 height=40><br>Heatcliff durant la disco du club en 1999';
liensBase   [10]=base_URL+'uhclv/tournoi1999/photos/heatcliff.jpg'

keywordsBase[11]="photos, avril 1999, Julien, portraits, staff";
resumesBase [11]='apercu :<img src="'+base_URL+'uhclv/tournoi1999/photos/julien2_small.jpg" alt="julien" width=27 height=40><br>Julien (photo test) pour le tournoi du club en 1999';
liensBase   [11]=base_URL+'uhclv/tournoi1999/photos/julien2.jpg'

keywordsBase[12]="photos, discos, avril 1999, Laurent, platines, portraits, staff";
resumesBase [12]='apercu :<img src="'+base_URL+'uhclv/tournoi1999/photos/laurent_small.jpg" alt="laurent" width=27 height=40><br>Laurent en pleine action pour le light de la disco du club en 1999';
liensBase   [12]=base_URL+'uhclv/tournoi1999/photos/laurent.jpg'

keywordsBase[13]="photos, tournois, distribution des prix, public, avril 1999";
resumesBase [13]='apercu :<img src="'+base_URL+'uhclv/tournoi1999/photos/public_distribution_prix_small.jpg" alt="distribution des prix (public)" width=59 height=40><br>Le public durant la distribution des prix du tournoi de unihockey en 1999';
liensBase   [13]=base_URL+'uhclv/tournoi1999/photos/public_distribution_prix.jpg'

keywordsBase[14]="photos, discos, avril 1999, Valentin, portraits, buvette, staff";
resumesBase [14]='apercu :<img src="'+base_URL+'uhclv/tournoi1999/photos/valentin_small.jpg" alt="valentin" width=59 height=40><br>Valentin pendant la disco du club en 1999';
liensBase   [14]=base_URL+'uhclv/tournoi1999/photos/valentin.jpg'

keywordsBase[15]="photos, tournois, public, avril 1999";
resumesBase [15]='apercu :<img src="'+base_URL+'uhclv/tournoi1999/photos/tournoi1999_public1_small.jpg" alt="public" width=59 height=40><br>Le public durant le tournoi de unihockey en 1999';
liensBase   [15]=base_URL+'uhclv/tournoi1999/photos/tournoi1999_public1.jpg'

keywordsBase[16]="photos, tournois, public, avril 1999, scène";
resumesBase [16]='apercu :<img src="'+base_URL+'uhclv/tournoi1999/photos/tournoi1999_public2_small.jpg" alt="public" width=59 height=40><br>Le public sur la scène durant le tournoi de unihockey en 1999';
liensBase   [16]=base_URL+'uhclv/tournoi1999/photos/tournoi1999_public2.jpg'

keywordsBase[17]="photos, avril 1999, discos, Vanessa, Julien, portraits, staff";
resumesBase [17]='apercu :<img src="'+base_URL+'uhclv/tournoi1999/photos/vanessa_julien_small.jpg" alt="Vanessa & julien" width=27 height=40><br>Vanessa et Julien pendant la disco du club en 1999';
liensBase   [17]=base_URL+'uhclv/tournoi1999/photos/vanessa_julien.jpg'

keywordsBase[18]="photos, avril 1999, tournois, Les Bourators, équipes, portraits";
resumesBase [18]='apercu :<img src="'+base_URL+'uhclv/tournoi1999/bourators_small.jpg" alt="bourators" width=39 height=40><br>Tournoi de unihockey 1999, Les Bourators';
liensBase   [18]=base_URL+'uhclv/tournoi1999/bourators.jpg'

keywordsBase[19]="photos, avril 1999, tournois, équipe cuisine, portraits, Ariane, Perrine, Valentin, Vanessa, staff";
resumesBase [19]='apercu :<img src="'+base_URL+'uhclv/tournoi1999/cuisine_small.jpg" alt="cuisine" width=41 height=40><br>Tournoi de unihockey 1999, la mise en place de la cuisine';
liensBase   [19]=base_URL+'uhclv/tournoi1999/cuisine.jpg'

keywordsBase[20]="photos, avril 1999, discos, Katia, portraits, rangements, staff";
resumesBase [20]='apercu :<img src="'+base_URL+'uhclv/tournoi1999/katia2_small.jpg" alt="katia" width=39 height=40><br>Disco 1999, Katia en pleine action';
liensBase   [20]=base_URL+'uhclv/tournoi1999/katia2.jpg'

keywordsBase[21]="photos, avril 1999, discos, portrait, rangements, Méliné, Meline, Valentin, François-Lionel, nettoyage des tapis de sol, staff";
resumesBase [21]='apercu :<img src="'+base_URL+'uhclv/tournoi1999/nettoyage_tapis_sol_small.jpg" alt="nettoyage des tapis de sol" width=39 height=40><br>Disco 1999, Le nettoyage des tapis de sol à 8h00 du matin';
liensBase   [21]=base_URL+'uhclv/tournoi1999/nettoyage_tapis_sol.jpg'

keywordsBase[22]="photos, mai 1999, tournois, volleyball, coupes";
resumesBase [22]='apercu :<img src="'+base_URL+'uhclv/tournoi1999volley/photos/volley1999_coupes_small.jpg" alt="Coupes de volley" width=59 height=40><br>Tournoi de volleyball 1999, les coupes';
liensBase   [22]=base_URL+'uhclv/tournoi1999volley/photos/volley1999_coupes.jpg'

keywordsBase[23]="photos, mai 1999, tournois, volleyball, coupes, greysisters, portrait, Perrine, Johanna, équipes";
resumesBase [23]='apercu :<img src="'+base_URL+'uhclv/tournoi1999volley/photos/volley1999_greysisters1_small.jpg" alt="greysisters" width=59 height=40><br>Tournoi de volleyball 1999, L\'équipe des greysisters';
liensBase   [23]=base_URL+'uhclv/tournoi1999volley/photos/volley1999_greysisters1.jpg'

keywordsBase[24]="photos, mai 1999, tournois, volleyball, coupes, greysisters, portrait, Perrine, équipes";
resumesBase [24]='apercu :<img src="'+base_URL+'uhclv/tournoi1999volley/photos/volley1999_greysisters2_small.jpg" alt="greysisters perrrine" width=27 height=40><br>Tournoi de volleyball 1999, L\'équipe des greysisters';
liensBase   [24]=base_URL+'uhclv/tournoi1999volley/photos/volley1999_greysisters2.jpg'

keywordsBase[25]="photos, mai 1999, tournois, volleyball, coupes, greysisters, portrait, Perrine, Johanna, Méliné, Meline, équipes";
resumesBase [25]='apercu :<img src="'+base_URL+'uhclv/tournoi1999volley/photos/volley1999_greysisters3_small.jpg" alt="greysisters" width=59 height=40><br>Tournoi de volleyball 1999, L\'équipe des greysisters';
liensBase   [25]=base_URL+'uhclv/tournoi1999volley/photos/volley1999_greysisters3.jpg'

keywordsBase[26]="photos, mai 1999, tournois, volleyball, matchs, portrait, Pierre, Laurent, Alexandre, équipes, UHCLV";
resumesBase [26]='apercu :<img src="'+base_URL+'uhclv/tournoi1999volley/photos/volley1999_match1_small.jpg" alt="volley match" width=59 height=40><br>Tournoi de volleyball 1999, L\'équipe du UHC Le Vaud en plein match';
liensBase   [26]=base_URL+'uhclv/tournoi1999volley/photos/volley1999_match1.jpg'

keywordsBase[27]="photos, mai 1999, tournois, volleyball, matchs, portrait, Marcel, Nicolas, Julien, équipes, UHCLV";
resumesBase [27]='apercu :<img src="'+base_URL+'uhclv/tournoi1999volley/photos/volley1999_match2_small.jpg" alt="volley match" width=27 height=40><br>Tournoi de volleyball 1999, L\'équipe du UHC Le Vaud en plein match';
liensBase   [27]=base_URL+'uhclv/tournoi1999volley/photos/volley1999_match2.jpg'

keywordsBase[28]="photos, mai 1999, tournois, volleyball, matchs, portrait, Pierre, Nicolas, Alexandre, équipes, UHCLV";
resumesBase [28]='apercu :<img src="'+base_URL+'uhclv/tournoi1999volley/photos/volley1999_match3_small.jpg" alt="volley match" width=59 height=40><br>Tournoi de volleyball 1999, L\'équipe du UHC Le Vaud en plein match';
liensBase   [28]=base_URL+'uhclv/tournoi1999volley/photos/volley1999_match3.jpg'

keywordsBase[29]="photos, mai 1999, tournois, volleyball, portraits, Pierre, Laurent, Alexandre, Nicolas, Perrine, équipes, UHCLV";
resumesBase [29]='apercu :<img src="'+base_URL+'uhclv/tournoi1999volley/photos/volley1999_uhclv2_small.jpg" alt="volley match" width=59 height=40><br>Tournoi de volleyball 1999, L\'équipe du UHC Le Vaud en pleine dégustation';
liensBase   [29]=base_URL+'uhclv/tournoi1999volley/photos/volley1999_uhclv2.jpg'

keywordsBase[30]="photos, mai 1999, tournois, volleyball, portraits, Pierre, Laurent, Nicolas, équipes, UHCLV";
resumesBase [30]='apercu :<img src="'+base_URL+'uhclv/tournoi1999volley/photos/volley1999_uhclv3_small.jpg" alt="volley match" width=59 height=40><br>Tournoi de volleyball 1999, L\'équipe du UHC Le Vaud en pleine dégustation';
liensBase   [30]=base_URL+'uhclv/tournoi1999volley/photos/volley1999_uhclv3.jpg'

keywordsBase[31]="Le Vaud, village, centre communal, 1999";
resumesBase [31]='Description du village de Le Vaud, localisation géographique, ...';
liensBase   [31]=base_URL+'LeVaud/LeVaud.html'

keywordsBase[32]="Unihockey Club Le Vaud, but, description, histoire, UHCLV, 1994, UHC Le Vaud";
resumesBase [32]='Description, buts et histoire du UHC Le Vaud';
liensBase   [32]=base_URL+'uhclv/uhclv.html'

keywordsBase[33]="Unihockey, tournois, discos, 2000";
resumesBase [33]='Edition 2000 du tournoi de unihockey et de la disco.';
liensBase   [33]=base_URL+'uhclv/tournoi2000/tournoi2000.html'

keywordsBase[34]="Unihockey, UHC Le Vaud, championnats, 2000, 1999, horaires, matchs, résultats";
resumesBase [34]='Horaires et résultats du championnat 4ème ligue pour Le Vaud en 1999-2000';
liensBase   [34]=base_URL+'championnat/championnat.html'

keywordsBase[35]="Unihockey, UHC Le Vaud, championnats, 2000, 1999, joueurs, équipes, equipe";
resumesBase [35]='Equipe participant au championnat 4ème ligue pour Le Vaud en 1999-2000';
liensBase   [35]=base_URL+'championnat/players/players.html'

keywordsBase[36]="Unihockey, UHC Le Vaud, discos, avril 1999, discos, résultats, compte-rendu, compte rendu";
resumesBase [36]='Compte rendu de la disco 1999.';
liensBase   [36]=base_URL+'uhclv/tournoi1999/resultats_disco1999.html'

keywordsBase[37]="Unihockey, UHC Le Vaud, discos, avril 1999, tournois, résultats, compte-rendu, compte rendu";
resumesBase [37]='Compte rendu du tournoi de unihockey 1999.';
liensBase   [37]=base_URL+'uhclv/tournoi1999/resultats_tournoi1999.html'

keywordsBase[38]="Unihockey, UHC Le Vaud, entraînements, entrainements, 1999, horaires";
resumesBase [38]='Horaires des entraînements';
liensBase   [38]=base_URL+'uhclv/entrainements.html'


function keyword_list() {
  //-------------------------------------------------------------
  // extraction des mots clés de la châine donnée par l'utilisateur
  parent.resultats.document.write("<HEAD><TITLE>Message window</TITLE></HEAD>")
  parent.resultats.document.write('<body bgcolor=FFFFFF>');
  parent.resultats.document.write("<BIG><B>Liste des mots clés :</B></BIG><br>");

  var liste = new Array(1000);
  var nbr_keywords_liste;
  nbr_keywords_liste = 0;

  //pour toutes les entrées de la base de donnée
  for (num_entree=0; num_entree<nbrTopicsMax; num_entree++) {

    //extraire tous les mots-clés de l'entrée courante
    keywords = keywordsBase[num_entree].split(",", nbrKeywordsMax);

    //pour tous les mots-clés de l'entrée courante
    for (numKW=0; numKW<keywords.length; numKW++) {

      // détermine si le mot-clé courant fait partie de la liste des mots-clés (keyword_absent=true)
      keyword_absent = true;
      for (num_entree_liste=0; (num_entree_liste<nbr_keywords_liste) && keyword_absent; num_entree_liste++) {
        re = new RegExp(keywords[numKW],"gi"); // expression à chercher
        if (liste[num_entree_liste].search(re)!=-1) {
          //l'entrée est déjà dans la liste, il ne faut pas la rajouter
          keyword_absent=false;
        }//end if
      }//end for (num_entree_liste)

      if (keyword_absent) {
        // mot clé absent de la liste => on l'ajoute
        liste[nbr_keywords_liste] = keywords[numKW];
        parent.resultats.document.write(liste[nbr_keywords_liste]+'<br>');      
        nbr_keywords_liste++;
      }//end if

    }//end for (numKW)
  }//end for (num_entree)

  parent.resultats.document.write('<br>'+nbr_keywords_liste+' mots-clés trouvés.<br>');
  parent.resultats.document.write('</body></html>');
  parent.resultats.document.close();
}



function recherche(keyword) {
  //----------------------------------------------------------
  // affiche un dialog box avec la string contenant le keyword
  var i;
  var score=new Array(nbrTopicsMax);
  var topicsRelevant=new Array(nbrTopicsMax);

  kw = keyword; //backup des keywords
  nbrsearch++;

  // extraction des mots clés de la châine donnée par l'utilisateur
  keywords = keyword.split(" ", nbrKeywordsMax);
  var nbrKeywordsFound = new Array(keywords.length); // compte de tous les keywords trouvés
  for (var numKeyword=0; numKeyword<keywords.length; numKeyword++) {
    nbrKeywordsFound[numKeyword]=0;
  }

   
  // calcul des scores
  //   si le mot clés n'est pas précédé d'un '+', c'est très simple, il suffit de 
  //      d'ajouter les topics relevants à la liste. 
  //   Si le mot clé est précédé d'un '+', il faut ce mot clé plus les autres pour que 
  //      le topic soit relevant => on met un flag de relevance sur le topic et dès que ce flag 
  //      est faux, on passe au topic suivant sans ajouter le topic à la liste des relevants.
  //   Si il n'y a plus de mots clés à examiner et que le topic est relevant, on ajoute ce topic
  //      à la liste de relevance
  for (numKB=0; numKB<nbrTopicsMax; numKB++) { // calcul du score de chaque entrée de la base de donnée pour tous les mots-clés données par l'utilisateur
    score[numKB]=0;  // init du score
    topicsRelevant[numKB]=numKB; // indexage pour le tri
    topicRelevant=true; // le score est valide
    if (keywordsBase[numKB].length>0){
      for (numKeyword=0; (numKeyword<keywords.length) && topicRelevant; numKeyword++) {
        firstChar = keywords[numKeyword].slice(0,1); //prendre le premier car.
        //création de l'expression régulière à chercher parmis les mots-clés des entrées de la base
        if (firstChar=="+") {
          // mot clé avec AND 
          //    => retirer le + du keyword pour la recherche
          re = new RegExp(keywords[numKeyword].slice(1,keywords[numKeyword].length),"gi");
        } else {
          // mot clé avec OR
          re = new RegExp(keywords[numKeyword],"gi");
        }
        if (keywordsBase[numKB].search(re) != -1) {
          //document.searchForm.resultats.value+= 'potentiel : ['+numKB+'] = '+keywordsBase[numKB]+'\n';
          score[numKB]++; // topic relevant => augmenter son score
          nbrKeywordsFound[numKeyword]++;
        }else{
          if (firstChar=="+") {
            topicRelevant=false;//passer au topic suivant si c'est un keyword avec AND
            score[numKB]=0;
          }//end if
        }//end if
      }//end for (numKeywords)
      //if (topicRelevant) {
      //  document.searchForm.resultats.value+= keywordsBase.length+'relevant  : ['+numKB+'] = '+keywordsBase[numKB]+' (Score='+score[numKB]+')\n';      
      //}
    }//end if (keywordsBase[numKB].length)
  }//end for (numKB)


  // tri des réponses selon leur score
  for (i=0; i<(nbrTopicsMax-1); i++) {
    for (var j=i+1; j<nbrTopicsMax; j++) {
      if (score[topicsRelevant[i]]<score[topicsRelevant[j]]) {
        var topicsRelevantTmp = topicsRelevant[j];
        topicsRelevant[j] = topicsRelevant[i];
        topicsRelevant[i] = topicsRelevantTmp;
      }//end if
    }//end for j
  }//end for i


  parent.resultats.document.write("<HEAD><TITLE>Message window</TITLE></HEAD>")
  parent.resultats.document.write('<body bgcolor=FFFFFF>');
  parent.resultats.document.write("<BIG><B>Résultats</B></BIG><br><small>Trouvés :&nbsp;&nbsp;&nbsp;");
  for (var numKeyword=0; numKeyword<keywords.length; numKeyword++) {
    parent.resultats.document.write(keywords[numKeyword]+":"+nbrKeywordsFound[numKeyword]+";&nbsp;&nbsp;&nbsp;");
  }
  parent.resultats.document.write('</small><br><br>');

  //affichage des résultats triés pour toute entrée de la base dont le score est positif
  for (numKB=0; (numKB<nbrTopicsMax)&& (score[topicsRelevant[numKB]]>0); numKB++) { // recherche sur tous les mots clés de la base de donnée
    parent.resultats.document.write('<b>'+(numKB+1)+'.</b> '+liensBase[topicsRelevant[numKB]].link(liensBase[topicsRelevant[numKB]])+'<ul>');
    parent.resultats.document.write(resumesBase[topicsRelevant[numKB]]+'<br>');
    parent.resultats.document.write('<b>Keywords (Score='+score[topicsRelevant[numKB]]+') :</b> '+keywordsBase[topicsRelevant[numKB]]+'<br><br></ul>');      
  }//end for (numKB)
  parent.resultats.document.write('</body></html>');      
  parent.resultats.document.close();
  parent.sidebar.document.location.href="search.html";
}//end function recherche 
