<?php

if (strstr($REQUEST_URI, "/espanol/")) {
	$lang = "es";
	$dir = "espanol";
	$lenguaid = "1";
} 
if (strstr($REQUEST_URI, "/francais/")) {
	$lang = "fr";
	$dir = "francais";
	$lenguaid = "2";
} 
if (strstr($REQUEST_URI, "/english/")) {
	$lang = "en";
	$dir = "english";
	$lenguaid = "3";
} 
if (strstr($REQUEST_URI, "/texto/")) {
	$dir = "texto/".$dir;
	$texto = "si";
}

if ($lang == "es") {
	$label_header = "Buscar en el sitio de Funredes";
	$label_header_descripcion = "Este motor de b&uacute;squeda se basa en las funciones de SQL*.  Busca las palabras claves que el usuario digite en el t&iacute;tulo, la descripci&oacute;n, el contenido, o todos estos tres criterios de cada documento.";
	$label_reglas_titulo = "Reglas del motor";
	$label_regla1 = "Se puede usar comas o espacios entre palabras claves";
	$label_regla2 = "Esta b&uacute;squeda NO es sensible a las may&uacute;sculas/min&uacute;sculas.";
	$label_regla3 = "Eviten el uso de art&iacute;culos tal como 'el' o 'un'";
	$label_regla4 = "Por defecto, el motor busca sus palabras claves por \"todos\" los tres criterios";
	$label_regla5 = "El resultado se presenta en orden alfab&eacute;tico por t&iacute;tulo";
	$label_regla6 = "Se puede usar diacr&iacute;ticos en este motor (accentos, tildes, etc...)";
	$label_ejemplo1 = "<i>ejemplo 1:</i>  \"TIC servidor gesti&oacute;n\"";
	$label_ejemplo2 = "<i>ejemplo 2:</i>  \"impacto, social, informaci&oacute;n\"";
	$label_favorentrar = "Favor entrar las palabras claves aqu&iacute;";
	$label_sqlfootnote = "<b>*SQL</b>:  <i>\"Structured Query Language\"</i>, un lenguaje est&aacute;ndar para programar un base de datos.  Este motor de b&uacute;squeda usa una pedida de SQL para llevarse al cabo.";
	
	$label_a = " a ";
	$label_de = " de ";
	$label_resultados = "Resultados ";
	$label_page = "P&aacute;gina";
	$label_buscar = "¡BUSCAR!";
	$label_todoslosdocumentos = "Todos los documentos";
	$label_titulo = "T&iacute;tulo";
	$label_desc = "Descripci&oacute;n";
	$label_cont = "Contenido";
	$label_todo = "Todo";
	$label_resultsof = "Resultados de la b&uacute;squeda de";
	$label_por = "por";
	$label_nohay = "No hay documentos que tienen esa informaci&oacute;n.<br>Favor cambiar su b&uacute;squeda un poco.";
	$label_lenguaoriginal = "Lengua original";
} else if ($lang == "fr") {
	$label_header = "Chercher sur le site de Funredes";
	$label_header_descripcion = "Ce moteur de recherche utilise des requ&ecirc;tes SQL*.  Il recherche les mots-cl&eacute;s de l'utilisateur dans le titre du document, dans sa description, dans son contenu, ou dans chacun de ses champs.";
	$label_reglas_titulo = "Utilisation du moteur de recherche";
	$label_regla1 = "Vous pouvez utiliser des espaces ou des virgules entre chaque mot-cl&eacute;";
	$label_regla2 = "Vous pouvez utiliser indiff&eacute;remment des majuscules ou des minuscules";
	$label_regla3 = "Evitez d'utiliser des articles communs comme 'un' ou 'le'";
	$label_regla4 = "Par d&eacute;faut, la recherche se fera sur les trois champs.";
	$label_regla5 = "Les r&eacute;sultats sont affich&eacute;s par ordre alphab&eacute;tique de titre.";
	$label_regla6 = "Vous pouvez utiliser les signes diacritiques (accents, deux points, etc...)";
	$label_ejemplo1 = "<i>exemple 1:</i>  \"TIC serveur gestion\"";
	$label_ejemplo2 = "<i>exemple 2:</i>  \"impact, social, information\"";
	$label_favorentrar = "Entrez vos mots-cl&eacute;s ici";
	$label_sqlfootnote = "<b>*SQL</b>:  <i>\"Structured Query Language\"</i>, un langage standard d'interrogation de bases de donn&eacute;es.  Ce moteur de recherche est bas&eacute; sur l'interrogation 'SELECT' SQL.";
	
	$label_a = " &agrave; ";
	$label_de = " sur ";
	$label_resultados = "R&eacute;sultats ";
	$label_page = "Page";
	$label_buscar = "Chercher!";
	$label_todoslosdocumentos = "Tous les documents";
	$label_titulo = "Titre";
	$label_desc = "Description";
	$label_cont = "Contenu";
	$label_todo = "Tous";
	$label_resultsof = "R&eacute;sultats de la recherche pour";
	$label_por = "dans";
	$label_nohay = "Pas de documents correspondent &agrave; votre requ&ecirc;te.<br>Merci de reformuler votre requ&ecirc;te.";
	$label_lenguaoriginal = "Langue originale";

} else if ($lang == "en") {
	$label_header = "Search the Funredes Site";
	$label_header_descripcion = "This search engine uses SQL queries*.  It searches the user's keywords in the title of a document, the description, the content, or all three of these fields.";
	$label_reglas_titulo = "Rules of the search";
	$label_regla1 = "You may use spaces or commas between keywords";
	$label_regla2 = "This is NOT a case-sensitive search";
	$label_regla3 = "Avoid using common articles like 'a' or 'the'";
	$label_regla4 = "By default, the search will be carried out on 'all' three fields";
	$label_regla5 = "The results are displayed in alphabetical order by title";
	$label_regla6 = "The use of diacritics (accents, tilde, etc...) is accepted";
	$label_ejemplo1 = "<i>example 1:</i>  \"ICT server management\"";
	$label_ejemplo2 = "<i>example 2:</i>  \"impact, social, information\"";
	$label_favorentrar = "Please enter your keywords here;";
	$label_sqlfootnote = "<b>*SQL</b>:  <i>\"Structured Query Language\"</i>, a standard database query language.  This search engine is based on SQL 'SELECT' queries.";
	
	$label_a = " to ";
	$label_de = " of ";
	$label_resultados = "Results ";
	$label_page = "Page";
	$label_buscar = "GO!";
	$label_todoslosdocumentos = "All documents";
	$label_titulo = "Title";
	$label_desc = "Description";
	$label_cont = "Content";
	$label_todo = "All";
	$label_resultsof = "Results of your search for";
	$label_por = "by";
	$label_nohay = "No documents match your criteria.<br>Please redefine your search slightly.";
	$label_lenguaoriginal = "Original Language";
}


if ($que == "titulo") {
	$label_what = $label_titulo;
} else if ($que == "descripcion") {
	$label_what = $label_desc;
} else if ($que == "contenido") {
	$label_what = $label_cont;
} else if ($que == "todo") {
	$label_what = $label_todo;
}

include("header.php3");
echo "<blockquote><br></br>";

$conn = pg_pconnect("dbname=sif user=mike");

function displayform($keywords) {
	GLOBAL $PHP_SELF, $conn, $lang, $tipoid, $label_buscar, $label_todoslosdocumentos, $label_titulo, $label_desc, $label_cont, $label_todo;
	$querytipo = pg_exec($conn, "SELECT tipoid, tipo_$lang FROM tipos WHERE tipoid>0 AND tipoid != 7 AND tipoid != 8 ORDER BY tipoid");
	echo "<font size=-1><form name=\"buscar\" method=post action=\"".$PHP_SELF."\">\n";
	echo "<input type=text name=\"keywords\" size=35 value=\"$keywords\">  \n";
	echo "<input type=submit name=\"busqueda\" value=\"$label_buscar\">  \n\n";
	echo "<select name=tipoid>\n";
	echo "<option value=\"0\">$label_todoslosdocumentos</option>\n";
	$i = 0;
		while($i < pg_numrows($querytipo)) {
			$gettipo = pg_fetch_row($querytipo, $i);
			echo "<option value=\"$gettipo[0]\"";
			if ($tipoid == $gettipo[0]) {
				echo " selected";
			}
			echo ">$gettipo[1]</option>\n";
			$i++;
		}
	echo "</select><br>\n\n";
	echo "<input type=radio name=\"que\" value=\"titulo\"> $label_titulo  \n";
	echo "<input type=radio name=\"que\" value=\"descripcion\"> $label_desc  \n";
	echo "<input type=radio name=\"que\" value=\"contenido\"> $label_cont  \n";
	echo "<input type=radio name=\"que\" checked value=\"todo\"> $label_todo  \n";
	echo "</form>\n";
}

function showpages() {
	GLOBAL $total, $numresults, $offset, $que, $oldtipoid, $string, $limit, $label_a, $label_de, $label_resultados, $label_page, $PHP_SELF;
	if (!$limit) {
		$limit = 10;
	}
	if (!$offset) {
		$offset = 0;
	}
	if (($offset + 1 + $limit) > $total) {
		$endpage = $total;
	} else {
		$endpage = $offset + $limit;
	}
	$offsetplusone = $offset + 1;
	$k = 0;
	$j = 0;
	echo "".$label_resultados.$offsetplusone.$label_a.$endpage.$label_de.$total."<br>";
	if ($total > $numresults) {
		$oldoffset = $offset;
		echo "<b>$label_page:  </b>";
		while ($j < ($total / $limit)) {
			$k = $j+1;
			$offset = $limit*$j;
			if ($oldoffset == $offset) {
				$urls = "$k ";
			} else {
				$urls = "<a href=\"$PHP_SELF?offset=$offset&que=$que&tipoid=$oldtipoid&limit=$limit&string=$string\">".$k."</a> ";
			}
			if ($k < ($total / $limit)) {
				echo $urls."- ";
			} else {
				echo $urls;
			}
			$j++;
		}
		$offset = $oldoffset;
		echo "<br>\n";
	}
}

function parsedata($keywords) {
	//$keywords = strip_tags($keywords);
	$keywords = trim($keywords);
	$keywords = htmlentities($keywords);
	$keywords = str_replace(", ", " ", $keywords);
	$keywords = str_replace(",", " ", $keywords);
	$keywords = str_replace(" ", "&&&&", $keywords);
	$word = explode("&&&&", $keywords);
	return $word;
	return $keywords;
}

function vartoarray($keywords) {
	//$keywords = strip_tags($keywords);
	$keywords = trim($keywords);
	$keywords = htmlentities($keywords);
	$keywords = str_replace(", ", " ", $keywords);
	$keywords = str_replace(",", " ", $keywords);
	$word = array($keywords);
	return $word;
	return $keywords;
}

if ($string) {
	$keywords = str_replace("+", " ", $string);
}

if (!$keywords) {

	//display search form

	echo "<font face=\"verdana, arial, helvetica\" size=+2><b><center>$label_header</center></b><p>";
	echo "<font size=-1>$label_header_descripcion";
	echo "<p><b>$label_reglas_titulo:</b><p>";
	echo "<ul><li>$label_regla1";
	echo "<li>$label_regla2";
	echo "<li>$label_regla6";
	echo "<li>$label_regla3";
	echo "<li>$label_regla4";
	echo "<li>$label_regla5";
	echo "</ul>$label_ejemplo1<br>";
	echo "$label_ejemplo2";
	echo "<p><b>$label_favorentrar:</b><br>";
	displayform($keywords);
?>
<div align="center"><center>
<br><br>
<table border="0" cellspacing="0" width="502" bgcolor="#0000FF">
  <tr>
    <td width="100%"><table border="0" cellspacing="0" width="500" cellpadding="
0"
    bgcolor="#FFFFFF">
      <tr>
        <td width="100%"><p align="center"><!-- Search Google --> </p>
        <p align="center"><strong><font face="Arial">B&uacute;squeda en el sitio Funredes usando GOOGLE
</font></strong>
        </p>
        <form method="GET" action="http://www.google.com/u/funredes">
          <table bgcolor="#FFFFFF" cellspacing="0" border="0">
            <tr valign="middle">
              <td><a HREF="http://www.google.com/"><img SRC="http://www.google.c
om/logos/Logo_40wht.gif"
              border="0" ALT="Google"></a> </td>
              <td><input TYPE="text" name="q" size="31" maxlength="255" value> 
<br><input type="submit"
              name="sa" VALUE="Buscar"> <!-- Search Google --></td>
</tr>
          </table>
        </form>
        </td>
      </tr>
    </table>
    </td>
  </tr>
</table>
</center></div>

<?php
	echo "<p><br></br>$label_sqlfootnote<p>";
	
}
	
if ($keywords) {

	if (!$limit) {
		$limit = 10;
	}		
	$oldtipoid = $tipoid;

	if (strstr($keywords, "docid")) {
		$string = str_replace("=", "&&&&", $keywords);
		$word = explode("&&&&", $string);
		$docid = $word[1];
		//$docid = substr($keywords, 6);
		$docid = trim($docid);
		$querystring = "SELECT DISTINCT p.docid, p.titulo_$lang, l.lengua, p.descripcion_$lang, tipo FROM lenguas l, principal p, contenido c WHERE l.lenguaid=p.lengua AND p.docid=c.docid AND p.docid=$docid";
		$totalstring = $querystring;
	} else if ($keywords == "todos") {
		$word = array($keywords);
		$string = $keywords;
		$querystring = "SELECT DISTINCT p.docid, p.titulo_$lang, l.lengua, p.descripcion_$lang, tipo FROM lenguas l, principal p, contenido c WHERE l.lenguaid=p.lengua AND p.docid=c.docid";
		if ($tipoid != 0) {
			$querystring = $querystring." AND p.tipo=$tipoid";
		}
		$totalstring = $querystring;
		$querystring = $querystring." LIMIT $limit";
		if ($offset) {
			$querystring = $querystring." OFFSET $offset";
		}

	} else {

		//parse data
		
		//$word = vartoarray($keywords);
		$string = trim($keywords);
		$string = str_replace(" ", "+", $string);
		$word = parsedata($keywords);
		$n = 0;
		$andor = "OR";

	
		//get search criteria from form
		if ($que == "todo") {
			$camposabuscar = "(lower(p.titulo_es) LIKE lower('%$word[$n]%') OR lower(p.titulo_fr) LIKE lower('%$word[$n]%') OR lower(p.titulo_en) LIKE lower('%$word[$n]%')) $andor (lower(p.descripcion_es) LIKE lower('%$word[$n]%') OR lower(p.descripcion_fr) LIKE lower('%$word[$n]%') OR lower(p.descripcion_en) LIKE lower('%$word[$n]%')) $andor (lower(c.contenido) LIKE lower('%$word[$n]%'))";
			if (count($word) > 1) {
				do {
				$n++;
				$camposabuscar = $camposabuscar." $andor (lower(p.titulo_es) LIKE lower('%$word[$n]%') OR lower(p.titulo_fr) LIKE lower('%$word[$n]%') OR lower(p.titulo_en) LIKE lower('%$word[$n]%') OR lower(p.descripcion_es) LIKE lower('%$word[$n]%') OR lower(p.descripcion_fr) LIKE lower('%$word[$n]%') OR lower(p.descripcion_en) LIKE lower('%$word[$n]%') OR lower(c.contenido) LIKE lower('%$word[$n]%'))";
				} while ($n < count($word) - 1);
			}
			$camposabuscar = "(".$camposabuscar.")";
		}
		if ($que == "titulo") {
			$camposabuscar = "lower(p.titulo_es) LIKE lower('%$word[$n]%') OR lower(p.titulo_fr) LIKE lower('%$word[$n]%') OR lower(p.titulo_en) LIKE lower('%$word[$n]%')";
			if (count($word) > 1) {
				do {
				$n++;
				$camposabuscar = $camposabuscar." OR lower(p.titulo_es) LIKE lower('%$word[$n]%') OR lower(p.titulo_fr) LIKE lower('%$word[$n]%') OR lower(p.titulo_en) LIKE lower('%$word[$n]%')";
				} while ($n < count($word) - 1);
			}
			$camposabuscar = "(".$camposabuscar.")";
		}
		if ($que == "descripcion") {
			$camposabuscar = "lower(p.descripcion_es) LIKE lower('%$word[$n]%') OR lower(p.descripcion_fr) LIKE lower('%$word[$n]%') OR lower(p.descripcion_en) LIKE lower('%$word[$n]%')";
			if (count($word) > 1) {
				do {
				$n++;
				$camposabuscar = $camposabuscar." OR lower(p.descripcion_es) LIKE lower('%$word[$n]%') OR lower(p.descripcion_fr) LIKE lower('%$word[$n]%') OR lower(p.descripcion_en) LIKE lower('%$word[$n]%')";
				} while ($n < count($word) - 1);
			}
			$camposabuscar = "(".$camposabuscar.")";
		}
		if ($que == "contenido") {
			$camposabuscar = "lower(c.contenido) LIKE lower('%$word[$n]%')";
			if (count($word) > 1) {
				do {
				$n++;
				$camposabuscar = $camposabuscar." OR lower(c.contenido) LIKE lower('%$word[$n]%')";
				} while ($n < count($word) - 1);
			}
			$camposabuscar = "(".$camposabuscar.")";
		}
		if ($tipoid != "0") {
			$camposabuscar = $camposabuscar." AND tipo=$tipoid";
		}		

		
		//perform search
			
		$querystring = "SELECT DISTINCT p.docid, p.titulo_$lang, l.lengua, p.descripcion_$lang, tipo FROM lenguas l, principal p, contenido c WHERE l.lenguaid=p.lengua AND p.docid=c.docid AND $camposabuscar";
		if ($notdocid) {
			$querystring = $querystring." $notdocid";
		}
		$querystring = $querystring." ORDER BY p.titulo_$lang";
		$totalstring = $querystring;
		$querystring = $querystring." LIMIT $limit";
		if ($offset) {
			$querystring = $querystring." OFFSET $offset";
		}
	}

	$searchquery = pg_exec($conn, $querystring);
	$numresults = pg_numrows($searchquery);
	$gettotal = pg_exec($conn, $totalstring);
	$total = pg_numrows($gettotal);
	$row = 0;
		
	//diplay search results
	
	echo "</blockquote>";
	echo "<table cellpadding=5 cellspacing=0 width=95% align=center>";
	echo "<tr height=40><th align=left bgcolor=#cc9900><font size=+1 face=\"verdana, arial, helvetica\">$label_resultsof \"$keywords\" $label_por \"$label_what\":</th></tr>";
	
	if ($numresults > 0) {
		
		include("../incluir/filepathandname.inc");
	
		echo "<tr height=40><td align=left bgcolor=#FFCC00>";
		echo "<font size=-1 face=\"verdana, arial, helvetica\">";
		showpages();
		echo "</td></tr><tr><td align=left><font size=-1 face=\"verdana, arial, helvetica\">";
		do {
			$getresults = pg_fetch_row($searchquery, $row);
			$tipoid = $getresults[4];
			
			//make bold text
			
			$n = 0;
			do {
			$getresults[1] = str_replace("$word[$n]", "<b>$word[$n]</b>", $getresults[1]);
			$getresults[3] = str_replace("$word[$n]", "<b>$word[$n]</b>", $getresults[3]);
			$ucword[$n] = ucfirst($word[$n]);
			$getresults[1] = str_replace("$ucword[$n]", "<b>$ucword[$n]</b>", $getresults[1]);
			$getresults[3] = str_replace("$ucword[$n]", "<b>$ucword[$n]</b>", $getresults[3]);
			$lcword[$n] = strtolower($word[$n]);
			$getresults[1] = str_replace("$lcword[$n]", "<b>$lcword[$n]</b>", $getresults[1]);
			$getresults[3] = str_replace("$lcword[$n]", "<b>$lcword[$n]</b>", $getresults[3]);
			$n++;
			} while ($n < count($word));
			echo "<p><a href=\"/$dir/$filepathandname[$tipoid]/docid/$getresults[0]\">$getresults[1]</a><br>";
			if (strlen($getresults[3]) > 0) {
				echo "$getresults[3]<br>";
			} 
			echo "<font size=-2>$label_lenguaoriginal:  $getresults[2]<br>";
			echo "http://".getenv("HTTP_HOST")."/$dir/$filepathandname[$tipoid]/docid/$getresults[0]</font><br>";

			//$notdocid = $notdocid."AND p.docid != $getresults[0] ";

			$row++;
		} while ($row < $numresults);
		
		echo "<p>\n";
		$tipoid = $oldtipoid;
		showpages();
		displayform($keywords);
		
	
	}
	
	if ($numresults == 0) {
		echo "<tr><td><font size=-1 face=\"verdana, arial, helvetica\">$label_nohay<p>";
		// repost form
		displayform($keywords);
		
	}
	echo "</td></tr></table>";
	echo "<blockquote>";	
}

echo "</blockquote>";

include("footer.php3");

?>

