// ----------------------------------------------------------------------------
// 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 = "Resultados de la investigación para";
STR_NO_RESULT = "Ningún resultado encontrado";
STR_SCORE = "Cuenta";
STR_TERMS = "Términos";
STR_SEARCH_SIZE = "40";
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(" diseno web publicidad imprenta rotulacion internet hospedaje tarjetas impresion hosting posicionamiento ",
"  ",
" pagina web con dominio propio com net info org cuentas correo hojas profundidad donde puede colocar exposicion productos plano localizacion etc registro diseno hospedaje incluido para ano completo alta gratuita buscadores nacionales cambios propia cada mes entre dia integracion hasta fotos programa cliente gestion lectura sus correos desde cualquier conexion internet- precio 198 euros iva paginas disenadas xhtml css correcta indexacion extranjeros carga rapida perfecta visualizacion servicio domicilio recogida originales composicion tecnico incuido alicante capital torrevieja ",
" registro dominios publicidad imprenta rotulacion internet hospedaje diseno web tarjetas impresion hosting posicionamiento ",
" publicidad buscadores aprovecha los servicios enlaces patrocinados medio mas rentable del momento mÁximo alcance oferta llegara millones usuarios internet preciso instante que buscan producto servicio todo mundo bajo coste solo pagas por visita pago-por-clic impresion pantalla gratis implica retorno inversion roi alto comparado con medios tradicionales resultados inmediatos anuncios muestran oportuno ofrecen acceso pagina web clic facilita respuesta directa como una compra solicitud informacion etc probabilidad conversion muy alta cada compras online van precedidas busqueda total flexibilidad puedes reaccionar situaciones cambiantes mercado adaptar campana marketing demanda actual adwords tambien idoneo para promocionar eventos ofertas especiales absoluto control determinar presupuesto diario mensual nunca superara ademas dispones estadisticas actualizadas parte nosotros webmaster incluye nuestro •revision cliente identificacion las oportunidades negocio incluso clientes potenciales ventajas competitivas analisis competencia •diseno creacion campanas publicitarias castellano ingles aleman palabras clave relevantes sin limitaciones cantidad redaccion segun normas editoriales fin generar maximo numero clics eleccion paginas destino maximizar conversiones deseadas •analisis optimizacion ajustes periodicos costes empleo numerosas herramientas google rendimiento •informacion permanente informes mensuales soporte telefonico email cargo tecnicos certificados precios •version lignt hasta 200 euros media 201 999 plus 000 ",
" posicionamiento natural •seleccion los criterios busqueda mas efectivos acordes con dicho contenido •informe previo gratuito sobre las posiciones que ocupa sitio web principales buscadores respecto palabras propuestas •evaluacion contenidos para buen •creacion codigo html especial etiquetas meta paginas pensando optimizacion estara visible instante •panel control clientes aplicaciones avanzadas utilidades relacionadas •optimizacion internas importantes mejor •revision estructura estado enlaces vinculos internos errores encontradas etc •consultoria tecnica personalizada via telefonica email •mantenimiento revision continua todas acciones realizadas por nuestros tecnicos densidad distribucion relevancia repeticiones textos una mejora del •alta forma manual automatica 200 •acciones consejos aumento “link popularity” promocion semanal acceso online cliente desde nuestra del ",
" alta posicionamiento buscadores posicione web con nosotros hagala destacar entre todos los competidores son nuestros aliados siempre que estemos bien posicionados deje por debajo sus  ",
"  ",
" google analisis kmpublicidad sabemos que los datos sin analizar tienen valor hemos incorporado nuevo servico para dato por cada visita web conociendo podra realizar cambios necesarios poder optimizarla pidanos informacion como conseguir exito descubrir compartir actuar nueva version permite mejorar facilmente resultados online redacte mejores anuncios consolide sus iniciativas marketing cree sitios generen mas conversiones este servicio ofrece todos propietarios pruebe sitio aumente las visitas ahora puede utilizar acceso acceder optimizador conozca disenos pagina titulos graficos generan visitantes  ",
"  ",
"  ",
" diseno web tienda alicante publicidad hosting posicionamiento san juan campello torrevieja guardamar imprenta rotulacion internet hospedaje tarjetas impresion ",
" servicios publicitarios  ",
" vetorizacion logotipos  ",
"  ",
" camiseta blanca  ",
" carteleria impresion digital ",
" tamaÑo papel fotografico ",
" identidad corporativa kaeme publicidad somos conscientes que imagen ser distinguira empresa frente competencia por este motivo nuestro departamento diseno pone maximo todas sus cualidades creativas para plasmar las caracteristicas tiene mostrar estudiamos cuales seran los signos identificativos mas adecuados negocio aplicaciones idoneas colores acertados etc trabajando siempre bajo estrecha colaboracion cliente como valor anadido uneo comunicacion acompana cada proyecto corporativo realizacion manual desde cual facilitan normas seguir correcta aplicacion dicha ",
" promociÓn sms mas directo efectivo siempre bienvisto con calidad servicio idoneo para campanas dirigidas los jovenes participacion inmediata obtenga beneficios derivados del trafico generados realice sus via obtendra mayor ratio respuesta ",
" contrato mantenimiento sus ordenadores perifericos software ",
" imprenta  ",
" tarjetas visita tarjeta sera primer documento que usted tenga persona visitada por eso necesita mejor disponible con impacto diseno elegante recuerde tarjetero todas las parecen iguales sobrasale elegancia acabado habra conseguido algo fundamental recuerden paso para recibir pedido nunca tendra una segunda oportunidad causar primera impresion ",
" tarjetas comerciales standar diseno incluido  ",
"  ",
"  ",
" googlee3234f2b9cac8dfb html ",
" formulario contacto  ",
" contacto realizado gracias por contactar con nosotros breve nos pondremos usted ");
urlsArray = new Array("../topic/index.html",
"../groupederubrique/index.html",
"../disenoweb/index.html",
"../registro_de_dominios/index.html",
"../publicidadenbusc/index.html",
"../posicionamienton/index.html",
"../posicionamientow/index.html",
"../alojamientoweb/index.html",
"../googleanalytics/index.html",
"../comercioelectrni/index.html",
"../promocinweb/index.html",
"../disenowebtienda/index.html",
"../groupederubriqu2/index.html",
"../vectorizacindelo/index.html",
"../topic8/index.html",
"../topic8/index.html",
"../carteleriaimpres/index.html",
"../carteleriaimpres/index.html",
"../identidadcorpora/index.html",
"../publicidadviasms/index.html",
"../serviciotecnicoi/index.html",
"../groupederubriqu1/index.html",
"../tarjetasdevisit1/index.html",
"../tarjetasdevisit1/index.html",
"../carpetas/index.html",
"../cartas/index.html",
"../google/index.html",
"../contacto/index.html",
"../contactorealizad/index.html");
titlesArray = new Array("diseño web Kmpublicidad Alicante",
"Kmpublicidad Alicante",
"Kmpublicidad Alicante",
"Alicante Kmpublicidad registro dominios",
"Publicidad en buscadores",
"Posicionamiento natural",
"Kmpublicidad Alicante",
"Kmpublicidad Alicante",
"Google Analisis",
"Kmpublicidad Alicante",
"Kmpublicidad Alicante",
"Kmpublicidad Alicante web tienda",
"Servicios publicitarios",
"Vetorización de logotipos",
"Kmpublicidad Alicante",
"Camiseta",
"Carteleria / impresión digital",
"CARTELERIA TAMAÑO 42 X 60 CM papel fotográfico",
"Kmpublicidad Alicante",
"Kmpublicidad Alicante",
"Kmpublicidad Alicante",
"IMPRENTA",
"Tarjetas de visita",
"TARJETA COMERCIAL STANDAR",
"Kmpublicidad Alicante",
"Kmpublicidad Alicante",
"googlee3234f2b9cac8dfb.html",
"Formulario de contacto",
"contacto realizado");
descArray = new Array("diseño web internet hospedaje mantenimiento kmpublicidad alicante san juan muchamiel campello torrevieja guardamar",
"",
"Página Web con su dominio própio  .com .net .info .org    5 cuentas de correo, con su dominio propio.  6 hojas de profundidad, donde puede colocar su ...",
"registro dominios diseño web y hospedaje servicios publicitarios alicante imprenta rotulacion hosting web posicionamiento",
"Publicidad en buscadores  Aprovecha los servicios de enlaces patrocinados, el medio de publicidad más rentable del momento.  MÁXIMO ALCANCE: Tu oferta...",
"Posicionamiento Natural  •Selección de los criterios de búsqueda más efectivos y acordes con dicho contenido. •Informe previo gratuito sobre las posic...",
"ALTA Y POSICIONAMIENTO EN BUSCADORES  Posicione su web con nosotros y hágala destacar entre todos.   Los competidores y los buscadores son nuestros al...",
"",
"En Kmpublicidad sabemos que los datos sin analizar, no tienen valor. Hemos incorporado un nuevo servico de Google para analizar dato por dato cada vis...",
"",
"",
"web tienda alicante Diseño grafico y web Alicante provincia hospedaje servicios publicitarios imprenta rotulacion hosting web posicionamiento san juan...",
"",
"",
"",
"&",
"",
"&",
"Identidad Corporativa  En KAEME PUBLICIDAD, somos conscientes de que su Imagen Corporativa va ha ser la identidad que distinguirá a su empresa frente ...",
"PROMOCIÓN SMS  Lo más directo, lo más efectivo, siempre bienvisto y con calidad de servicio.   Idóneo para campañas dirigidas a los jóvenes, participa...",
"Contrato de mantenimiento de sus ordenadores, periféricos y software.",
"",
"La tarjeta de visita sera el primer documento que de usted tenga la persona visitada. Por eso necesita la mejor tarjeta de visita disponible. Con impa...",
"&",
"",
"",
"googlee3234f2b9cac8dfb.html",
"",
"Gracias por contactar con nosotros, en breve nos pondremos en contacto con usted");
sublinksArray = new Array(29);
var linksCount = 29;


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>");
}
