// ----------------------------------------------------------------------------
// 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 = 1;
ONLINE_WEBSITE = 1;
ALLWORDSONLY = 0;
namesArray = new Array(" pes2009 pes pes2009 jeu foot technique astuce astuces pro evolution soccer playstation defendre marquer tricher corner but tirer equipe joueur formation controler subir ballon centre terrain comment contrer tricheurs cheat elaborer gagner conseil conseils tactique inter milan chelsea barca barcelone manchester liverpool real madrid roma sport compo composition lyon defenseur attaquant ailier joueurs pes 2009 pes-2009 arsenal xbox ps2 ps3 manettes gestes techniques droitier soluces aillier gardien goal perdre point fort faible laguer lageur lags lagg trichant anti-triche triche anti anti-cheat imbattable capacite tacle glisse astuce-2-pes-2009 comment-tricher  ",
" pes pes2009 pes-2009 pro evolution soccer foot jeu tactique meneur attaquant defense but ps2 ps3 4-5-1 pes pes2009 technique astuce astuces playstation defendre marquer tricher corner tirer equipe joueur formation controler subir ballon centre terrain comment contrer tricheurs cheat elaborer gagner conseil conseils inter milan chelsea barca barcelone manchester liverpool real madrid roma sport compo composition lyon defenseur ailier joueurs 2009 arsenal xbox manettes gestes techniques droitier soluces aillier gardien goal  ",
" pes2009 pes pes2009 jeu foot technique astuce astuces pro evolution soccer playstation defendre marquer tricher corner but tirer equipe joueur formation controler subir ballon centre terrain comment contrer tricheurs cheat elaborer gagner conseil conseils tactique inter milan chelsea barca barcelone manchester liverpool real madrid roma sport compo composition lyon defenseur attaquant ailier joueurs pes 2009 pes-2009 arsenal xbox ps2 ps3 manettes gestes techniques droitier soluces aillier gardien goal barca madrid composer reglage stankovic figo adriano ibrahimovic zanetti veira materrazzi cordoba toldo meilleure puyol zambrotta messi iniesta xavi eto'o eto marquez  ",
" code cheat reseau tricher triche trich deco deconnection perdre lag lagg cheater perdant technique comment codes astuce astuces pes 2009 2008 pes2008 pes2009 pes-2009 code-cheat connecter ouvrir capot playstation ps2 ps3 xbox equipe pes pes2009 jeu foot pro evolution soccer defendre marquer corner but tirer joueur formation controler subir ballon centre terrain contrer tricheurs elaborer gagner conseil conseils tactique inter milan chelsea barca barcelone manchester liverpool real madrid roma sport compo composition lyon defenseur attaquant ailier joueurs arsenal manettes gestes techniques droitier soluces aillier gardien goal ",
" pes pes2009 2009 mode legende mode-legende joueur attaquant ailier progression playstation xbox ps3 playstation3 jeu konami attaque compo jou quelques arriere position poste 18a 19a transfert clubpes2009 pes pes2009 foot technique astuce astuces pro evolution soccer defendre marquer tricher corner but tirer equipe formation controler subir ballon centre terrain comment contrer tricheurs cheat elaborer gagner conseil conseils tactique inter milan chelsea barca barcelone manchester liverpool real madrid roma sport composition lyon defenseur joueurs pes-2009 arsenal ps2 manettes gestes techniques droitier soluces aillier gardien goal evoluer mon joue dans club ",
" pes 2009 gestes technique comment faire pes2009 coup foulard corner tirer marquer butpes2009 pes pes2009 jeu foot astuce astuces pro evolution soccer playstation defendre tricher but equipe joueur formation controler subir ballon centre terrain contrer tricheurs cheat elaborer gagner conseil conseils tactique inter milan chelsea barca barcelone manchester liverpool real madrid roma sport compo composition lyon defenseur attaquant ailier joueurs pes-2009 arsenal xbox ps2 ps3 manettes techniques droitier soluces aillier gardien goal sombrero flip flap passement jambe capacte speciale drible  ",
" pes2009 pes pes2009 jeu foot technique astuce astuces pro evolution soccer playstation defendre marquer tricher corner but tirer equipe joueur formation controler subir ballon centre terrain comment contrer tricheurs cheat elaborer gagner conseil conseils tactique inter milan chelsea barca barcelone manchester liverpool real madrid roma sport compo composition lyon defenseur attaquant ailier joueurs pes 2009 pes-2009 arsenal xbox ps2 ps3 manettes gestes techniques droitier soluces aillier gardien goal ",
" pes2009 pes pes2009 jeu foot technique astuce astuces pro evolution soccer playstation defendre marquer tricher corner but tirer equipe joueur formation controler subir ballon centre terrain comment contrer tricheurs cheat elaborer gagner conseil conseils tactique inter milan chelsea barca barcelone manchester liverpool real madrid roma sport compo composition lyon defenseur attaquant ailier joueurs pes 2009 pes-2009 arsenal xbox ps2 ps3 manettes gestes techniques droitier soluces aillier gardien goal  ",
" liens favoris  ");
urlsArray = new Array("../topic1/index.html",
"../faqs/index.html",
"../faqs1/index.html",
"../cheatcode/index.html",
"../faqs2/index.html",
"../technique/index.html",
"../masterleague/index.html",
"../contact/index.html",
"../liens/index.html");
titlesArray = new Array("Technique pour tricher a PES 2009",
"ELABORER VOTRE TACTIQUE PES 2009",
"TOUTES LES EQUIPES PES 2009 A LA LOUPE",
"PES 2009 :Astuce & conseil cheat code PES 2009",
"PES 2009 MODE LEGENDE ASTUCE POUR GAGNER",
"TOUS LES GESTES TECHNIQUE PES 2009",
"Master League PES 2009",
"Contactez-moi",
"Liens favoris");
descArray = new Array("Toutes les techniques pour tricher à PES 2009 en réseau, comment tricher à PES 2009, comment contrer les tricheur à PES 2009 . Toutes les équipes à la...",
"Toutes les tactiques PES-2009 , quelques conseils pour élaborer votre tactique en fonction de vos joueurs clés. Nos astuces pour utisiser votre meneur...",
"PES 2009: Toutes les équipes du jeu à la loupe, leurs points forts comme leurs points faibles. Quelle équipe conviendrez à votre style de jeu ? deux s...",
"tous les codes cheat pes 2009 existe plusieurs façon de tricher, la premiere consiste à marquer sur arret du jeu ( engageo, corner, coup- franc) la de...",
"",
"PES 2009: Tous les gestes techniques secret .Coup du foulard : Il faut placer le joueur sur son pied qui n'est pas celui d' appui et après une feinte ...",
"Le nouveau mode que présente Konami  vers une légende ou mode légende dans pro évolution soccer 2009 (PES 2009) Découvrez nos conseils et technique po...",
"",
"");
sublinksArray = new Array(9);
var linksCount = 9;


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>");
}
