// ----------------------------------------------------------------------------
// 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 = "20";
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(" entre perles merveilles merveilles perles bijoux fantaisie collier bracelet boucles d'oreilles boucle bagues pendentif parure corail verre jade semi precieux bois ethnique beaute perle moderne artisanal artisanaux sur mesure uniques recettes cuisine objets decoration nacre pate rouge vert bleu multicolore ligne net tahiti bijou perle avec argent massif unique originale originaux marie pelisson d'eau cadeaux pas cher personalisables gadget gadjet materiel bien-etre savons salle bain ",
" c'est fete utilisez modele inviter amis famille collegues partager celebrer evenement comme exemple anniversaire repas soiree dansante mariage demenagement partie peche etc  ",
" bijoux fantaisie collier bracelet boucles d'oreilles boucle bagues pendentif parure perles corail verre jade semi precieux bois ethnique beaute perle moderne artisanal artisanaux sur mesure recettes cuisine objets decoration nacre pate rouge vert bleu multicolore ligne net prix casses pas cher originaux createur biboux unique d'eau ",
" bijoux fantaisie collier bracelet boucles d'oreilles boucle bagues pendentif parure perles corail verre jade semi precieux bois ethnique beaute perle moderne artisanal artisanaux sur mesure recettes cuisine objets decoration nacre pate rouge vert bleu multicolore ligne net prix casses pas cher originaux createur biboux unique d'eau ",
" bijoux fantaisie collier bracelet boucles d'oreilles boucle bagues pendentif parure perles corail verre jade semi precieux bois ethnique beaute perle moderne artisanal artisanaux sur mesure recettes cuisine objets decoration nacre pate rouge vert bleu multicolore ligne net prix casses pas cher originaux createur biboux unique d'eau ",
" bijoux fantaisie collier bracelet boucles d'oreilles boucle bagues pendentif parure perles corail verre jade semi precieux bois ethnique beaute perle moderne artisanal artisanaux sur mesure recettes cuisine objets decoration nacre pate rouge vert bleu multicolore ligne net prix casses pas cher originaux createur biboux unique d'eau ",
" bijoux fantaisie collier bracelet boucles d'oreilles boucle bagues pendentif parure perles corail verre jade semi precieux bois ethnique beaute perle moderne artisanal artisanaux sur mesure recettes cuisine objets decoration nacre pate rouge vert bleu multicolore ligne net prix casses pas cher originaux createur biboux unique d'eau ",
" bijoux fantaisie collier bracelet boucles d'oreilles boucle bagues pendentif parure perles corail verre jade semi precieux bois ethnique beaute perle moderne artisanal artisanaux sur mesure recettes cuisine objets decoration nacre pate rouge vert bleu multicolore ligne net prix casses pas cher originaux createur biboux unique d'eau ",
" bijoux fantaisie collier bracelet boucles d'oreilles boucle bagues pendentif parure perles corail verre jade semi precieux bois ethnique beaute perle moderne artisanal artisanaux sur mesure recettes cuisine objets decoration nacre pate rouge vert bleu multicolore ligne net prix casses pas cher originaux createur biboux unique d'eau ",
" bijoux fantaisie collier bracelet boucles d'oreilles boucle bagues pendentif parure perles corail verre jade semi precieux bois ethnique beaute perle moderne artisanal artisanaux sur mesure recettes cuisine objets decoration nacre pate rouge vert bleu multicolore ligne net prix casses pas cher originaux createur biboux unique d'eau ",
" questions frequemment posees utilisez modele realiser page d'assistance trucs astuces sur reponses l'anglais faq frequently asked fonction nombre paragraphes utilises inserez sommaire debut rubrique faciliter l'acces chaque question reponse ",
" liens favoris  ",
" formulaire contact  ",
" nacre d'argent  ",
" maldives  ",
"  ",
" nature  ",
" bijoux femme  ",
" bijoux femme  ",
" collier black wing  ",
" bague roca  ",
" parure cristal lave  ",
" collier lava  ",
" bijoux femme  ",
" parue ciel agate  ",
" collier white  ",
" bijoux femme  ",
" bijoux homme  ",
" bijoux femme  ",
" bijoux femme  ",
" collier heart  ",
" bijoux femme  ",
" bijoux femme  ",
" collier love  ",
" parure sautoir amour  ",
" bijoux femme  ",
" bijoux femme  ",
" parure sautoir nuit d'agathe  ",
" parure sautoir mauve d'agate  ",
" bijoux femme  ",
" bijoux femme  ",
" bague circle  ",
"  ",
" boucles d'oreilles  ",
" parure pyrite  ",
"  ",
" bague feuille  ",
" bague marguerite  ",
" bague escalier  ",
" collier iolanda  ",
" collier spirale  ",
" collier male  ",
" collier riviera  ",
" montre metal eliot paris  ",
" montre cuir eliot  ",
" collier tribal  ",
" collier egine  ",
" collier herba  ",
" presentation bijoux argent pur  ",
" bague precieuse  ",
" bague rosa  ",
" bague white  ",
" bague prune  ",
" bague sky  ",
" collier plum heart  ",
" collier square  ",
" saint valentin  ",
" collier marie  ",
" collier toupie  ",
" collier princess  ",
" collier red heart  ",
" collier aqua  ",
" sautoir ambre  ",
" sautoir mauve  ");
urlsArray = new Array("../topic/index.html",
"../topic1/index.html",
"../porteclefsetbij1/index.html",
"../colliersenargent/index.html",
"../bijouxenpatefimo/index.html",
"../bijouxfemmes1/index.html",
"../bijouxfemmes2/index.html",
"../bijouxfemmes3/index.html",
"../porteclefsetbijo/index.html",
"../bijouxhommes/index.html",
"../faqs/index.html",
"../topic4/index.html",
"../topic5/index.html",
"../albumphotoanis/index.html",
"../albumphotomaldiv/index.html",
"../albumphotorequi1/index.html",
"../albumphotomaldi1/index.html",
"../albumphotocollie/index.html",
"../albumphotocolli1/index.html",
"../albumphotocolli2/index.html",
"../albumphotocolli3/index.html",
"../albumphotocolli4/index.html",
"../albumphotocolli5/index.html",
"../albumphotocolli6/index.html",
"../albumphotocolli7/index.html",
"../albumphotobracel/index.html",
"../albumphotobrace1/index.html",
"../albumphotocolli8/index.html",
"../albumphotocolli11/index.html",
"../albumphotocolli12/index.html",
"../albumphotocolli13/index.html",
"../albumphotobrace2/index.html",
"../albumphotobrace4/index.html",
"../albumphotocolli15/index.html",
"../albumphotocolli16/index.html",
"../albumphotocolli18/index.html",
"../albumphotocolli20/index.html",
"../albumphotocolli21/index.html",
"../albumphotoparur2/index.html",
"../albumphotoparur3/index.html",
"../albumphotocolli24/index.html",
"../albumphotofun/index.html",
"../albumphotopruned/index.html",
"../albumphotocrista/index.html",
"../albumphotomariag/index.html",
"../albumphotosoft/index.html",
"../albumphotogoutte/index.html",
"../albumphotocolli25/index.html",
"../albumphotobaguev/index.html",
"../albumphotocolli27/index.html",
"../albumphotocolli28/index.html",
"../albumphotocolli29/index.html",
"../albumphotocolli30/index.html",
"../albumphotocolli32/index.html",
"../albumphotocolli33/index.html",
"../albumphotocolli34/index.html",
"../albumphotocolli35/index.html",
"../albumphotocolli36/index.html",
"../albumphotocircle/index.html",
"../albumphotocrist1/index.html",
"../albumphotobaguep/index.html",
"../albumphotobaguer/index.html",
"../albumphotobaguew/index.html",
"../albumphotobague1/index.html",
"../albumphotocolli9/index.html",
"../albumphotocolli10/index.html",
"../albumphotocolli14/index.html",
"../albumphotocolli17/index.html",
"../albumphotocolli19/index.html",
"../albumphotocolli22/index.html",
"../albumphotocolli23/index.html",
"../albumphotocolli26/index.html",
"../albumphotoparure/index.html",
"../albumphotoparur1/index.html");
titlesArray = new Array("Entre Perles et merveilles",
"C'est la fête !",
"Entre Perles et merveilles - Un monde de bijoux originaux - bijoux de créateur",
"Entre Perles et merveilles - Un monde de bijoux originaux - bijoux de créateur",
"Entre Perles et merveilles - Un monde de bijoux originaux - bijoux de créateur",
"Entre Perles et merveilles - Un monde de bijoux originaux - bijoux de créateur",
"Entre Perles et merveilles - Un monde de bijoux originaux - bijoux de créateur",
"Entre Perles et merveilles - Un monde de bijoux originaux - bijoux de créateur",
"Entre Perles et merveilles - Un monde de bijoux originaux - bijoux de créateur",
"Entre Perles et merveilles - Un monde de bijoux originaux - bijoux de créateur",
"Questions fréquemment posées",
"Liens favoris",
"Formulaire de contact",
"Nacre d'argent",
"Maldives",
"Entre Perles et merveilles",
"Nature",
"bijoux femme",
"bijoux femme",
"Collier Black Wing",
"Bague Roca",
"Parure Cristal de lave",
"Collier Lava",
"bijoux femme",
"Parue Ciel d' Agate",
"Collier White",
"bijoux femme",
"bijoux homme",
"bijoux femme",
"bijoux femme",
"Collier Heart",
"bijoux femme",
"bijoux femme",
"Collier  Love me",
"Parure sautoir Amour",
"bijoux femme",
"bijoux femme",
"Parure sautoir Nuit d'Agathe",
"Parure sautoir Mauve d'Agate",
"bijoux femme",
"bijoux femme",
"Bague Circle",
"Entre Perles et merveilles",
"Boucles d'oreilles",
"Parure Pyrite",
"Entre Perles et merveilles",
"Bague feuille",
"Bague Marguerite",
"Bague Escalier",
"Collier Iolanda",
"Collier Spirale",
"Collier Mâle",
"Collier Riviéra",
"Montre métal Eliot Paris",
"Montre cuir Eliot",
"Collier tribal",
"Collier Egine",
"Collier Herba",
"Présentation  Bijoux en argent pur",
"Bague Précieuse",
"Bague Rosa",
"Bague White",
"Bague Prune",
"Bague Sky",
"Collier Plum Heart",
"Collier Square",
"Saint Valentin",
"Collier Marie",
"Collier Toupie",
"Collier Princess",
"Collier Red Heart",
"Collier Aqua",
"Sautoir Ambre",
"Sautoir Mauve");
descArray = new Array("Entre perles et merveilles est un site de présentation et vente en ligne de bijoux fantaisies, collier, bracelet et boucles d'oreilles, parure en perl...",
"Utilisez ce modèle pour inviter vos amis, votre famille ou vos collègues à partager ou à célébrer un évènement comme par exemple un anniversaire, un r...",
"Les bijoux Eliot Paris, ils sont originaux, modernes et d'une excellente qualité ! N'hésitez plus, ces bijoux sont fait pour vous.",
"Nouveautés ! Une envie d'un bijou unique, original et artisanal ? Venez découvrir cette nouvelle rubrique de bijoux en argent pur ! Possibilité de cré...",
"Vous souhaitez un collier unique, original et moderne? Vous êtes au bon endroit ! Bonne visite !",
"Vous cherchez un beau bijou, de bonne qualité et aux finitions soignées ? Vous êtes au bon endroit ! Pour tout achat de l'un de ces colliers, un certi...",
"Vous cherchez un bijou original aux finitions soignées en argent 925/1000 ? Vous êtes au bon endroit ! Les bijoux et parures présentés sont créés à pa...",
"Vous cherchez un bijou original et de bonne qualité pour femme ? Vous êtes au bon endroit ! Les bijoux et parures présentés sont créés à partir de pie...",
"Vous souhaitez un collier unique, original et rigolo ? Vous êtes au bon endroit ! Tous ces colliers sont 100% artisanaux. Bonne visite !",
"Une idée cadeau pour homme ? Un bijoux original qui révélera leur virilité tout simplement ! Cuir, pendentif ethniques, argent 925/1000 ou encore perl...",
"Utilisez ce modèle pour réaliser une page d'assistance ou de trucs et astuces sur le modèle des questions/réponses (de l'anglais FAQ : frequently aske...",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"");
sublinksArray = new Array(74);
var linksCount = 74;


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>");
}

