// ----------------------------------------------------------------------------
// Lauyan Software Javascript Search Engine 1.1
//
// This file is the JavaScript search engine for a website created by TOWeb
//
// Copyright (C) LAUYAN SOFTWARE
// web: http://www.lauyan.com
// ----------------------------------------------------------------------------

STR_SEARCH_QUERY_MSG = "Résultats de la recherche pour";
STR_NO_RESULT = "Aucun résultat trouvé";
STR_SCORE = "Score";
STR_TERMS = "Termes";
STR_SEARCH_SIZE = "15";
MIN_WORD_LEN = 2;
DISPLAY_SRCH_INFO = 1;
USE_UTF8 = 0;
REMOVE_ACCENTS = 1;
BOLD_LINKS = 0;
ONLINE_WEBSITE = 1;
ALLWORDSONLY = 0;
namesArray = new Array(" musica'loue 2009-2010 amies amis musique arts bonjour rentree est tout redemarre programme projets d'emilie piot melangeront chant d'autres decouvrirez soirees theme deux journees musicales dans doubs jura apres avoir vole ses propres ailes pendant ans retour chez damien currin professeur trompette chef d'orchestre transmettra passion son instrument travers cours mise place d'un orchestre junior gratuit eleves l'association profitez bien cette nouvelle annee musicale debute ",
" tarif ecole musique formulaire d'inscription  ",
" Éveil musical musica'loue  ",
" chorales musica'loue  ",
" instruments musica'loue  ",
" formation musical musica'loue musicale elle permet d'aborder bases musique travers l'ecoute chant lecture rythme n'est pas obligatoire parait essentielle progresser plus vite dans pratique instrumentale contact direction@emival com quingey propose benedicte antoinet apprentissages notes rythmes sur partitions maniere ludique reconnaissance visuelle auditive instruments l'orchestre supports livres jeux apprentissage theories base tout bien bonne humeur aura lieu mercredi matin salle shubert deuxieme etage 1er cycle 1c1 1ere annee 1c2 2ieme 1c3 3ieme autres niveaux cours debuteront semaine septembre 2009 jura uniquement car aucun eleve second cette annee mont sous vaudrey mediatheque debut 2eme 3eme 4ieme mouchard droite gymnase jeudi attention eleves residant secteur villers farlay salins chay pouvez contacter inscrire egalement profiter junior gratuit avec damien currin derriere mairie porte bas l'escalier blanc ",
" orchestre junior musica'loue beaucoup d'eleves pratiquent instrument seul musique doit etre aussi moment partage cette passion quoi mieux qu'un pouvoir pratiquer son montrer ses talents modestes soient ils d'autant cet atelier est gratuit encadre musicien chef d'orchestre damien currin l'habitude travailler avec public tout age tous niveaux n'hesitez pas contactez inscrire l'orchestre pratiquera sous baguette ouvert mercredi adherents inscription email direction@emival com telephone 66 ",
" atelier d'improvisation musica'loue jerome lefebvre homme aux multiples talents l'eveil musical l'enseignement guitare l'encadrement musiciens confirmes debutants travers cet tous instruments sont bienvenus pourra faire decouvrir autre approche musicale transmettre passion musique adolescents adultes pourront s'epanouir dans cours collectif tarif est modeste inscrivez vous etes lieu deuxieme etage mairie quingey inscription email direction@emival com telephone 66 ",
" danse musica'loue cours avec estelle n'gouah eveil corporel ans enfants ados adultes horaire modulable inscription email direction@emival com telephone 66 ",
" ateliers musica'loue l'atelier d'improvisation avec jerome lefebvre deroulera mercredi soir tarif euros adherents 165 non inscription email direction@emival com telephone  ",
" decouvertes cultures musiques d'afrique  ",
" cabaret celtique  ",
" journee fete musica'loue musical 2008-2009 aura lieu quingey juin  ",
" expositions secteur  ",
" administration administration@emival com secretariat comptabilite patricia marguet direction gabriel joliot direction@emival tel membres bureau 2009-2010 presidence collegiale l'absence president tresorier herve montabrun adjoint jean pierre prillard secretaire anke blaison solange mayo info@emival adresse courrier musicaloue mairie 25440 quingey ",
" emival devient musica'loue École musique intercommunale associative val loue l'ecole est association loi 1901 propose d'apporter service qualite autour danse zone rural couverture s'etend montrond-le-chateau jusqu'a mouchard elle couvre secteur cccq communaute commune canton quingey partie ccva d'amour donne choix plus instruments chorales interventions dans ecoles ateliers annuels stages ouverts tous comme toute benevoles sont bienvenus pas besoin d'etre musicien s'impliquer rythme cette aventure musicale avons toujours personnes manifestations collage d'affiche buvette cuisine transport bureau merci nos financeurs partenaires sans quoi l'enseignement cantons serait pratiquement inexistant lieux cours liste non exhaustive chouzelot arc senans liesle champagne lombard cramans mont sous vaudrey site lien entre eleves professeurs l'association tout autre personne desirant etre informee activites ",
" conseil d'administrations pouvez present telecharger format pdf tous rendez-vous importants l'association  ",
" assembles generales l'association septembre 2009 assemblee generale musica'loue vendredi salle mairie quingey 20h elle sera suivi inscriptions prise contact avec professeurs fixer horaires venez nombreux ",
" concerts musique dans secteur  ",
" soiree chorale photo chorales d'arc senans janvier 2010 ",
" amateurs scene l'occasion journee d'amateurs organisee conseil general doubs certains eleves l'association guitaristes d'eric helfer batteurs gaby joliot ont presente petit concert sympathique dans l'enceinte saline d'arc senans charlotte ophelie victor maelis mathias alexis lucas sylvain guillaume ensemble morceaux allant standards rock passant bossa nova rythme chaloupe merci moment musique public apprecier juste valeur rendez juin 2009 notre edition musicale annuelle musica'loue ",
" journee musicaloue  ",
" liens favoris trouvez ci-dessous adresses internet partenaires activites musicales notre secteur ainsi lieux groupes musicaux desirez faire partie cette rubrique laissez adresse mail nom site lewebmaster@emival com ",
" titre page 2eme possibilite formation propose jerome lefebvre atelier pratique instrumentale aura lieu debut ateliers mercredi septembre 2008 durant cet hebdomadaire ouvert tous instrumentistes eleves decouvriront jeu collectif s'appuyant sur leur instrument ils exploreront styles musicaux varies situations diverses composition l'improvisation cette permettra d'experimenter developper connaissances acquises cours elle sera egalement l'expression creativite auront toute place alors instruments ",
" vendez achetez instruments page d'annonces permettant simplifier vie musiciens canton quingey val loue environs recherchez instrument musique partition baguettes cordes micro bref tout rapporte pratique n'hesitez pas envoyer annonce avec formulaire type annonces gratuites ",
" passer annonce sur site merci remplir formulaire voulez mettre photo l'envoyer piece jointe mail webmaster@emival com avec nom  ",
" saisissez contenu panneau ici ",
" vends paire baguettes batterie contact mail elie skater@hotmail tel 0381638781 ",
" saisissez contenu panneau ici ",
" vendre xylophone d'etude avec clavier composite octaves peut mettre position vibra achete janvier 2006 chez resta percussions champlitte ville vends paires baguettes xylo vibra-marimba pupitre porte-baguettes kit pedale 800 euros pouvez voir photos allant sur google percussion colonne gauche dans boutique clique puis xyva contact mail roseline amiet@gmail com 0041 325 05 ",
" saisissez contenu panneau ici ",
" trajets partages recherchez co-voiturage proposez place dans voiture cette page est envoyez offre demande lewebmaster@emival com ",
" jouez plus seul recherchez musicien groupe inversement cherchez jouer dans alors cette page est envoyez offre annonce lewebmaster@emival com ");
urlsArray = new Array("../topic/index.html",
"../lassociation/index.html",
"../eveilmusical/index.html",
"../chorales/index.html",
"../mapage4/index.html",
"../formationmusical/index.html",
"../mapage6/index.html",
"../orchestre/index.html",
"../mapage5/index.html",
"../mapage/index.html",
"../decouverte/index.html",
"../soireecabaret/index.html",
"../journeemusicalou/index.html",
"../information/index.html",
"../mapage2/index.html",
"../mapage3/index.html",
"../bilansreunions/index.html",
"../ag/index.html",
"../mapage1/index.html",
"../soireechorale220/index.html",
"../albumphoto/index.html",
"../journeemusicalo1/index.html",
"../liens/index.html",
"../mapage7/index.html",
"../annonces/index.html",
"../annonces/page1.html",
"../annonces/page1.html",
"../annonces/page2.html",
"../annonces/page2.html",
"../annonces/page3.html",
"../annonces/page3.html",
"../co-voiturage/index.html",
"../rencontredemusic/index.html");
titlesArray = new Array("EMIval - Ecole de Musique",
"EMIval - Ecole de Musique",
"Éveil Musical à Musica'Loue",
"Les chorales de Musica'loue",
"Les instruments de Musica'Loue",
"La formation Musical à Musica'Loue",
"Orchestre junior de Musica'loue",
"Atelier d'improvisation de Musica'loue",
"La danse à Musica'Loue",
"Les ateliers de Musica'Loue",
"Découvertes de cultures et musiques d'Afrique",
"Cabaret Celtique",
"La journée de fête de Musica'Loue",
"EMIval - Ecole de Musique",
"Administration",
"Emival devient Musica'loue",
"Les conseil d'administrations",
"Les assemblés générales de l'association",
"Les concerts de musique dans votre secteur",
"Soirée Chorale",
"Amateurs en Scène",
"Journée Musicaloue",
"Liens favoris",
"Titre de votre page",
"Vendez et achetez vos instruments",
"Formulaire d'annonces",
"Titre du panneau",
"baguettes",
"Titre du panneau",
"Xylophone",
"Titre du panneau",
"Trajets partagés...",
"Ne jouez plus seul!");
descArray = new Array("Ecole de musique intercommunale associative du val de Loue,dont le siège social est situé à Quingey. De nombreux stages, concerts, animation font part...",
"",
"",
"",
"",
"La formation musicale :  Elle permet d'aborder les bases de la musique à travers de l'écoute, du chant, de la lecture de rythme.. Elle n'est pas oblig...",
"Beaucoup d'élèves pratiquent un instrument seul... La musique doit être aussi un moment de partage de cette passion et quoi de mieux qu'un orchestre j...",
"Jérome Lefebvre, homme aux multiples talents : l'éveil musical, l'enseignement de la guitare et l'encadrement de musiciens confirmés ou débutants. A t...",
"DANSE  Cours de danse avec Estelle N'GOUAH                   - éveil corporel (3/5 ans ) de 10 h 45 à 11 h 30                   - enfants 6/9 ans de 1...",
"L'atelier d'improvisation avec Jérome Lefebvre se déroulera le mercredi soir de 18 hà 19 h  Tarif: 50 euros pour les adhérents et 165 euros pour les n...",
"",
"",
"La journée musical 2008-2009 aura lieu à Quingey le 13 juin.",
"",
"Administration: administration@emival.com  Secrétariat/Comptabilité: Patricia Marguet   Direction: Gabriel Joliot: direction@emival.com Tel: 03.81.57....",
"(École de musique intercommunale associative du val de Loue).  L'école de musique Musica'loue est une association de loi 1901, qui propose d'apporter ...",
"Vous pouvez à présent télécharger au format PDF tous les rendez-vous importants de l'association.",
"Septembre 2009 Assemblée générale de l'association Musica'loue le vendredi 4 septembre 2009 à la salle  de la mairie de Quingey à 20h. Elle sera suivi...",
"",
"Photo de la soirée Chorales d'Arc et Senans du 22 janvier 2010",
"A l'occasion de la journée d'Amateurs en Scène, organisée par le Conseil Général du Doubs, certains élèves de l'association ( des guitaristes d'Eric H...",
"",
"Vous trouvez ci-dessous les adresses Internet de  partenaires et des activités musicales de notre secteur ainsi que des lieux ou des groupes musicaux....",
"2ème possibilité  Formation Proposé par Jérome Lefebvre  Atelier de pratique instrumentale:  il aura lieu à ?????  à ?? h. début des ateliers le mercr...",
"Page d'annonces permettant de simplifier la vie des musiciens du Canton de Quingey, du Val de Loue et des environs! Vous recherchez un instrument de m...",
"&",
"&",
"&",
"&",
"&",
"&",
"Vous recherchez un co-voiturage, ou vous proposez une place dans votre voiture? Cette page est pour vous! Envoyez votre offre/demande à: lewebmaster@e...",
"Si vous recherchez un musicien pour votre groupe et inversement si vous cherchez à jouer dans un groupe, alors cette page est pour vous! Envoyez votre...");
sublinksArray = new Array(33);
var linksCount = 33;


function SubmitSearch(n)
{
	var p = document.getElementsByName("jse_query");
	var idx = n;  if( p < 0) return false;
	if( p && p[idx] && p[idx].value != "" ) {
	if( (p[idx].value).replace(/^\s+|\s+$/g, '') != "" ) {
		p = document.getElementsByName("jse_form");
		if( p && p[idx] )
			p[idx].submit();
		return true;
	  }
	}
	return false;
}
function switchSearchLang(lang,emptycart)
{
	var params = "";
	var currURL = document.location.href;
	var newURL = (currURL.lastIndexOf('_frame/search2') >= 0) ? "search2":"search";
	if( lang != "" )
		newURL += "-"+lang;
	newURL += ".html";
	var paramIndex = currURL.lastIndexOf('?');
	if( paramIndex > -1 )
		newURL += "?" + currURL.substr( paramIndex + 1 );
	if( emptycart && typeof(CleanShopcart) != "undefined" )
		CleanShopcart();
	document.location.href = newURL;
	return false;
}

// getParam returns the value of the specified GET parameter
function getParam(paramName)
{
    paramStr = document.location.search;
    if( paramStr == "" )
        return "";
    if( paramStr.charAt(0) == "?" )
        paramStr = paramStr.substr(1);
    arg = (paramStr.split("&"));
    for( i=0; i<arg.length; i++ ) 
    {
      arg_values = arg[i].split("=")
      if( unescape(arg_values[0]) == paramName ) 
      {
         if( USE_UTF8 == 1 && self.decodeURIComponent ) // check if decodeURIComponent() is defined
            ret = decodeURIComponent(arg_values[1]);
         else
            ret = unescape(arg_values[1]);  // IE 5.0 and older does not have decodeURI
         return ret;
      }
    }
    return "";
}

function getQueryParam()
{
  var query = getParam("jse_query");
  query = query.replace(/[\++]/g, " ");  // replace any '+' with spaces
  query = query.replace(/\</g, "&lt;");
  query = query.replace(/[\"+]/g, " ");
	return query;
}

function replaceAll(str,from,to) 
{
    var idx = str.indexOf(from);
    while( idx > -1 ) {
        str = str.replace(from, to); 
        idx = str.indexOf(from);
    }
    return str;
}

// lowercase, remove quotes and accents
function formatChars(str) 
{
    str = str.toLowerCase();
    if( REMOVE_ACCENTS ) 
    {
      var a = "àáâãäåòóôõöèéêëçìíîïùúûüÿñ";
      var b = "aaaaaaoooooeeeeciiiiuuuuyn";
      for( i=0; i<a.length; i++ )
        str = replaceAll( str, a.charAt(i), b.charAt(i) );
    }
    str = replaceAll( str, "'", " " );
    return str;
}

function SortCompare(a, b)
{
  if( a[2] == b[2] )
  {  
    if (a[1] < b[1]) return 1;
    else if (a[1] > b[1]) return -1;
    else return 0;
  }
  else if (a[2] < b[2]) return 1;
    else return -1;
}

function jseSearch( internal )
{
  // get params
  var rootURL = '';
	var SelfURL = document.location.href;
  var paramIndex = SelfURL.indexOf("?");    
  if (paramIndex > -1)
     SelfURL = SelfURL.substr(0, paramIndex);
  paramIndex = SelfURL.indexOf("#");
  if (paramIndex > -1)
    SelfURL = SelfURL.substr(0, paramIndex);        
	if (ONLINE_WEBSITE) 
	{
		paramIndex = SelfURL.lastIndexOf('/');
		if (paramIndex > -1) 
		{
			rootURL = SelfURL.substr(0, paramIndex);
			paramIndex = rootURL.lastIndexOf('/');
			if (paramIndex > -1) {
				rootURL = SelfURL.substr(0, paramIndex+1);
			} else
			  rootURL = '';
		}
	}	
  SelfURL = SelfURL.replace(/\</g, "&lt;");
  SelfURL = SelfURL.replace(/\"/g, "&quot;");

  var query = getQueryParam();

  // display the search form
  var lnktarget = "";
/*	if( internal == null || internal != 1 )
	{
    document.writeln("<form method=\"get\" action=\"" + SelfURL + "\">");
    document.writeln("<input type=\"text\" name=\"jse_query\" size=\"" + STR_SEARCH_SIZE + "\" value=\"" + query + "\" />");
    document.writeln("<input type=\"submit\" value=\"" + STR_SEARCH_BUTTON + "\" />");
    document.writeln("</form>");
  }
  */
  if( internal == 1 ) {
	 lnktarget = "\" target=\"_blank";
  }
	
  query = formatChars(query);
  if( query.length == 0 ) return;
  
  var found=0, t=0, k=0, score=0, subscore=0, i=0;
  var keyword = "", tmp = "";
  var searchWords = new Array();

  // split search query by spaces
  searchWords = query.split(" ");
	if( internal == null || internal != 1 ) {
		document.writeln( "<span class='wg-paragraph'>" + STR_SEARCH_QUERY_MSG + " : <strong>" +query+"</span></strong><br>");
  }
  // init result table information
  res_table = new Array(linksCount);
  for( t=0; t<linksCount; t++ )
  {
    res_table[t] = new Array(4);
    res_table[t][0] = 0;  // index
    res_table[t][1] = 0;  // score
    res_table[t][2] = 0;  // words found
    res_table[t][3] = ""; // sublinks (output string)
  }
  var significantwords = 0;

  // begin search ...
  for( i=0; i<searchWords.length; i++ )
  {
    keyword = searchWords[i];
    if( keyword.length > MIN_WORD_LEN ) // skip "small" words
	{
	  significantwords++;
	  for(var q=0; q<linksCount; q++ )
	  {
	    t = q;
	    score = 0;
	
	    // search for keywords (an exact word doubles the score)
		  tmp = formatChars(descArray[t]);
	    if( tmp.indexOf(keyword) != -1 ) score++;
	    if( tmp.indexOf(' '+keyword+' ') != -1 ) score+=2;
		  tmp = formatChars(titlesArray[t]);
	  	if( tmp.indexOf(keyword) != -1 ) score++;
		  if( tmp.indexOf(' '+keyword+' ') != -1 ) score+=2;
	    if( namesArray[t].indexOf(keyword) != -1 ) score++;
	    if( namesArray[t].indexOf(' '+keyword+' ') != -1 ) score+=2;
	
		// search for keywords in sublinks (i.e. bookmarks)
	    k = q+1;
		while( k <= linksCount )
		{
			tmp = descArray[k];
			if( tmp == null || tmp.charAt(0) != '&' ) break;
			subscore = 0;
			tmp = formatChars(descArray[k]);
			if( tmp.indexOf(keyword) != -1 ) subscore++;
			if( tmp.indexOf(' '+keyword+' ') != -1 ) subscore+=2;
			tmp = formatChars(titlesArray[k]);
			if( tmp.indexOf(keyword) != -1 ) subscore++;
			if( tmp.indexOf(' '+keyword+' ') != -1 ) subscore+=2;
			if( namesArray[k].indexOf(keyword) != -1 ) subscore++;
			if( namesArray[k].indexOf(' '+keyword+' ') != -1 ) subscore+=2;
			
			if( subscore > 0 )
			{
				var idx = urlsArray[t].indexOf('@');
				if( idx > 0 ) 
				{
					var lnk = urlsArray[k].substr(0, idx)
					if( res_table[t][3].indexOf( lnk ) == -1 )
						res_table[t][3] += "<tr><td width='35'>&nbsp;</td><td><a href=\"" + urlsArray[k].substr(idx+1) + "\" name=\"" + lnk + "\">" + titlesArray[k] + "</a></td></tr>";
				} else if( res_table[t][3].indexOf( "\"" + urlsArray[k] + "\"" ) == -1 )
					res_table[t][3] += "<tr><td width='35'>&nbsp;</td><td><a href=\"" + urlsArray[k] + lnktarget + "\">" + titlesArray[k] + "</a></td></tr>";
//	           		if( B OLD_LINKS )  res_table[t][3] += "<tr><td width='50'>&nbsp</td><td><b><a href='" + urlsArray[k] +"'>" + titlesArray[k] + "</a></b></td></tr>";
				score += subscore;
			}	
			k++;
		}
		q = k-1;
				
	    if( score > 0 )
	    {
	      res_table[t][0] = t;
	      res_table[t][1] += score;
	      res_table[t][2]++;
	      found++;
	    }
	  }
	}
  }
  if( found == 0 ) {
    document.write("<p class='wg-paragraph'><b>" + STR_NO_RESULT + "</b></p>");
  } 
  else 
  {
/*	if( ALLWORDSONLY )
	{
		//  if all words only then we recount and filter amoung the results to get the total of found items
		found = 0;
		for( var z=0; z<itemsCount; z++ )
			if( res_table[z][1] > 0 ) // display only results with a positive score
			if( !ALLWORDSONLY || (ALLWORDSONLY && res_table[z][2] == significantwords) )
				found++;
	}
  */
	// sort by words found and scores
    res_table.sort(SortCompare);	
    // display the results
	document.writeln( '<div class="wg-paragraph">' );
    for( q=0; q<found; q++ )
      if( res_table[q][1] > 0 ) // display only results with a positive score
	  if( !ALLWORDSONLY || (ALLWORDSONLY && res_table[q][2] == significantwords) )
	  {
		t = res_table[q][0];    // get page index

		var lnk = urlsArray[t] + lnktarget;
		var idx = urlsArray[t].indexOf('@');
		if( idx > 0 ) 
			lnk = urlsArray[t].substr(idx+1);
			
		if( BOLD_LINKS ) {
		  document.writeln("<br><b>" + (q+1) + ". <a href=\"" + lnk + "\">" + titlesArray[t] + "</a></b>" );
		} else
		  document.writeln("<br><b>" + (q+1) + ".</b> <a href=\"" + lnk + "\">" + titlesArray[t] + "</a>" );
        if( descArray[t].length > 2 )
          document.writeln("<br>" + descArray[t] );
        if( DISPLAY_SRCH_INFO ) 
		{
			document.write("<br><span style='font-size: 80%; font-style: italic;'>");
			if( !ALLWORDSONLY )
			  document.write("" + STR_TERMS + ": " + res_table[q][2] + " - " );
			document.write("" + STR_SCORE + ": " + res_table[q][1] );
			if( urlsArray[t].indexOf('@') > 0 ) {
			  document.writeln(" - URL: 'TOWeb demonstration'</span>");
			} else if(ONLINE_WEBSITE) {
			  document.writeln(" - URL: " + rootURL + urlsArray[t].substr(3) + "</span>");
			} else
			  document.writeln(" - URL: " + urlsArray[t] + "</span>");
      	}
		if( res_table[q][3].length > 0 ) { 
      	  document.writeln( '<table class="wg-paragraph">' + res_table[q][3] + '</table>' );
      	} else document.writeln("<br>");
      }
 	document.writeln( '</div>' );
  }
  document.writeln("<br>");
}
