// ----------------------------------------------------------------------------
// Lauyan Software Javascript Search Engine 1.0
//
// 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_SEARCH_BUTTON = "Rechercher";
STR_SCORE = "Score";
STR_TERMS = "Termes";
STR_SEARCH_SIZE = "40";
MIN_WORD_LEN = 2;
DISPLAY_SRCH_INFO = 1;
USE_UTF8 = 0;
REMOVE_ACCENTS = 1;
BOLD_LINKS = 1;
ONLINE_WEBSITE = 1;

namesArray = new Array(" creations bois personnalisees enfants attache tetine sucette personnalisee perle prenom cadeau naissance anniversaire bapteme noel ",
"  ",
"  ",
"  ",
"  ",
"  ",
"  ",
"  ",
"  ",
"  ",
"  ",
"  ",
"  ",
"  ",
"  ",
"  ",
" evenement important feter envie particuliere ensemble trouverons toujours creation specialement contactez moi creer modele conviendra ",
"  ",
"  ",
"  ",
" peut certains motifs couleurs perles soient plus stock photos suivantes pouvant dater plusieurs mois annees merci verifier souhaitez est bien disponible rubrique faites choix ",
"  ",
"  ",
"  ",
" nouveau set fan foot sets packs voir ici ",
"  ",
"  ",
" afin enfants aient toujours sur eux numero lors sorties ",
"  ",
"  ",
"  ",
"  ",
"  ",
"  ",
" packs prestige sont maintenant disponibles plus d'infos ici plaisir d'offrir rubrique  ",
" mariage bapteme invitations heureuse nouvelle annoncer chacun evenements importants creations contactez moi toutes demandes speciales ",
" rubrique nos p'tits bouts envoyez moi photo enfant creation ",
" voir egalement rubrique tresors maelyne trouverez motifs uniques creations cliquez ici ",
"  ",
" tresors maelyne trouverez ici motifs uniques serie tres limitee creations egalement d'autres articles comme perles clips etc choisir motif limite suffit noter dans formulaire commande sous commentaire n'est malheureusement plus disponible serez informe vite tous cette rubrique sont seul exemplaire alors n'attendez pas soit pris souhaitez supplementaire sur creation cela est tout fait possible notez 2eme choix lorsque envoyez n'oubliez rajouter panier chf piece ",
" plaisir d'offrir souhaitez faire surprise proche paquet lui sera directement envoye chez emballe dans joli coffret cadeau attache-tetine collier seul porte-cle sachet ideal jouet poussette attaches doudou ensemble bracelet accompagner cadeaux propose egalement carte son enveloppe couleur ivoire afin d'y glisser petit mot personnalise destinataire texte choix couleurs d'impression pouvez meme occasion parvenir plusieurs tetines love mama papa the best tailles animaux j'aime maman original unique toutes occasions nouveau packs prestige sont maintenant disponibles photos ",
" commande comment passer merci lire attentivement suit faites choix cliquant ici remplir envoyer formulaires contiendra details couleurs texte cartes etc sur images ci-dessous correspondant aux articles desires s'envoient separement n'arrivez pas formulaire email faite copier d'ecran fichier joint recopier manuellement envoyez commande@lesmerveillesdalycia com achetez plusieurs creations bouton puis renouvelez l'operation autant necessaire ajoutez ensuite dans panier finaliser suivant instructions aurez acces mode paiement devrez l'adresse livraison pensez recommande plus securite ajouter l'option toutes commandes groupees contactez moi avant e-mail obtenir reduction -10 non valable deja soldes nouveau rubrique promo prix reduit n'oubliez d'ajouter options clip special motif supplement noeuds entres perles grelot ",
"  ",
"  ",
"  ",
"  ",
"  ",
"  ",
" nouvelle rubrique promos creations personnalisees accessoires petit prix offre cumulabe contacter email obtenir reductions site calculs pas automatiquement merci ");
urlsArray = new Array("../accueil/index.html",
"../groupederubriqu1/index.html",
"../topic/index.html",
"../mapage3/index.html",
"../mapage8/index.html",
"../mapage9/index.html",
"../mapage/index.html",
"../bracelettelephon/index.html",
"../mapage1/index.html",
"../mapage4/index.html",
"../mapage2/index.html",
"../attachetelephone/index.html",
"../bijouxdesac/index.html",
"../attache-cle/index.html",
"../livreentissu/index.html",
"../lotenvente/index.html",
"../mapage6/index.html",
"../autocollantvoitu/index.html",
"../faitesvotrechoix/index.html",
"../groupederubrique/index.html",
"../galeriephoto/index.html",
"../lesspeciales/index.html",
"../albumphoto3/index.html",
"../albumphoto11/index.html",
"../albumphoto6/index.html",
"../albumphoto/index.html",
"../attache-telephon/index.html",
"../lesbraceletstele/index.html",
"../albumphoto10/index.html",
"../albumphoto2/index.html",
"../bijouxpoursac/index.html",
"../attachepourcle/index.html",
"../albumphoto7/index.html",
"../leslivresentissu/index.html",
"../albumphoto8/index.html",
"../albumphoto4/index.html",
"../albumphoto1/index.html",
"../motif/index.html",
"../albumphoto9/index.html",
"../lesserieslimitee/index.html",
"../topic2/index.html",
"../magasin/index.html",
"../albumphoto5/index.html",
"../tarifs/index.html",
"../mapage7/index.html",
"../mapage5/index.html",
"../liens/index.html",
"../contact/index.html",
"../lespromos/index.html");
titlesArray = new Array("* Créations artisanales personnalisées en bois : des idées originales et pratique pour VOUS *",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"La plaisir d'offrir...",
"Commande",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia",
"Les Merveilles d'Alycia");
descArray = new Array("Attache  accroche tétine  sucette en bois personnalisée pour vos cadeaux de naissance, anniversaire noël ou baptême !",
"",
"Attache sucette / tétine en bois personnalisée pour vos cadeaux de naissance, anniversaire ou baptême ! Et pleins d'autres créations en bois 100% arti...",
"Attache doudou en bois personnalisé pour vos cadeaux de naissance, anniversaire ou baptême ! Et pleins d'autres créations en bois 100% artisanales.",
"",
"",
"Collier bracelet en bois personnalisés pour vos cadeaux de naissance, anniversaire ou baptême ! Et pleins d'autres créations en bois 100% artisanales.",
" ",
"",
"",
"Porte-clé en bois personnalisé pour vos cadeaux de naissance, anniversaire ou baptême ! Et pleins d'autres créations en bois 100% artisanales.",
"",
"",
"",
"",
"",
" Un événement important à fêter ? Une envie particulière ?  Ensemble, nous trouverons toujours une création spécialement pour vous !   Contactez moi p...",
"",
"",
"",
" Il se peut que certains motifs ou couleurs de perles ne soient plus en stock, les photos suivantes pouvant dater de plusieurs mois ou années.  MERCI ...",
"",
"",
"",
"+NOUVEAU !  Le set Fan de Foot  : Sets & Packs|A voir ici ",
"",
"",
"Afin que vos enfants aient toujours sur eux votre numéro lors des sorties !",
"",
"",
"",
"",
"",
"",
" +Les Packs Prestige sont maintenant disponibles !  Plus d'infos ici  : le plaisir d'offrir...|Rubrique plaisir d'offrir  ",
"+Un mariage ? un baptême ? des invitations ? une heureuse nouvelle à annoncer ?  Pour chacun de vos événements importants, il y a des créations !   Co...",
"Une rubrique que pour nos p'tits bouts !   Envoyez moi une photo de votre enfant et sa création ! ",
"A voir également : la rubrique  *Les Trésors de Maélyne*  vous y trouverez des motifs uniques pour vos créations !   *Les Trésors de Maélyne*|Cliquez ...",
"",
"  *Les Trésors de Maélyne*   Vous trouverez ici des motifs uniques ou en série très limitée pour vos créations mais également d'autres articles comme ...",
"Attache sucette / tétine en bois personnalisée pour vos cadeaux de naissance, anniversaire ou baptême ! Coffret cadeau, carte personnalisée et tétine ...",
"Attache sucette / tétine en bois personnalisée pour vos cadeaux de naissance, anniversaire ou baptême ! Et pleins d'autres créations en bois 100% arti...",
"",
"Attache sucette / tétine en bois personnalisée pour vos cadeaux de naissance, anniversaire ou baptême ! Et pleins d'autres créations en bois 100% arti...",
"",
"Attache sucette / tétine en bois personnalisée pour vos cadeaux de naissance, anniversaire ou baptême ! Comment mettre l'attache tétine ? vidéo ! Et p...",
"Attache sucette / tétine en bois personnalisée pour vos cadeaux de naissance, anniversaire ou baptême ! Et pleins d'autres créations en bois 100% arti...",
"",
" La nouvelle rubrique PROMOS !  vos créations personnalisées & accessoires a petit prix !  OFFRE CUMULABE  Me contacter par email pour obtenir vos réd...");
sublinksArray = new Array(49);
var linksCount = 49;


ALLWORDSONLY = 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 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 = getParam("jse_query");
  query = query.replace(/[\++]/g, " ");  // replace any '+' with spaces
  query = query.replace(/\</g, "&lt;");
  query = query.replace(/[\"+]/g, " ");

  // 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>");
  }	
	else
	{
	 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( "" + STR_SEARCH_QUERY_MSG + " : <strong>" +query+"</strong><br>");
  }
  // init result table information
  res_table = new Array(linksCount);
  for( t=0; t<linksCount; t++ )
  {
    res_table[t] = new Array(3);
    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 )
			{
				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><b>" + STR_NO_RESULT + "</b></p>");
  } 
  else 
  {
	 // sort by words found and scores
    res_table.sort(SortCompare);	
	
    // display the results
    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
        if( BOLD_LINKS ) {
          document.writeln("<br><b>" + (q+1) + ". <a href=\"" + urlsArray[t] + lnktarget + "\">" + titlesArray[t] + "</a></b>" );
        } else
          document.writeln("<br><b>" + (q+1) + ".</b> <a href=\"" + urlsArray[t] + lnktarget + "\">" + 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 (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>' + res_table[q][3] + '</table>' );
      	} else document.writeln("<br>");
      }
  }
  document.writeln("<br>");
}

