var totales		//numero de entradas encontradas
var Pagina		//string que contendra la pagina a mostrar
var Entradas		//string que va guardando las entrdas encontradas
var clave1, clave2	//palabra a buscar

//obtiene longitud de la base de datos
var longitud = BaseDatos.length

function Buscaclave(FormBusqueda, desde) {
	//busca la palabra clave en el array de palabras clave
	//devuelve -1 si no hay coincidencias
	var index = -1

	//recorre el array en busca de la palabra clave (en cualquier parte)
	for (x = desde; x < longitud; x++) {
		if ( (BaseDatos[x].search(clave1) != -1) || (BaseDatos[x].search(clave2) != -1) ) {
			index = x
			break
		}
	}

	return index
}

function IniciaPagina(FormBusqueda) {
	//crea la pagina a visualizar y la muestra

	//cabecera y apertura cuerpo
	Pagina = '<html><head><meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">\n' +
			'<meta NAME="" CONTENT=""><title>Resultados de la busqueda</title>\n' +
			'<link rel="stylesheet" type="text/css" href="tes.css"></head>\n' +
			'<table border="0" width="100%" cellspacing="0" cellpadding="2"\n>' +
			//'<tr><td width="11%" bgcolor="#CCE1F2" valign="top">' +
			'<td width="69%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="20">\n' +
			'<tr><td width="100%"><h3 align="left">Resultados de la búsqueda</h3>\n'

	if (totales != 0)
		Pagina += '<p> ' + totales + ' Resultados con la palabra <strong class="rojo">' + FormBusqueda.palabra.value + '</strong>:</p>\n'
	else
		Pagina += '<p>No se han encontrado resultados para la palabra <strong class="rojo">' + FormBusqueda.palabra.value + '</strong>.</p>\n'
}

function TerminaPagina() {

	//final cuerpo
	Pagina +=	'<hr  color="#0000FF">\n' +
			'<div ><center><table border="0" width="397" cellspacing="8"\n>' +
			
			'<td width="232" ><form><p><input type="button" value=" << " name="anterior" onClick="history.go(-1);"> \n' +
			'<input type="button" value="Inicio" name="inicio" onClick="window.open(\'naveg.htm\', \'_top\');"></p>\n' +
			'</tr></table></center></div></td></tr></table></td>\n' +
			'<td width="20%" valign="top" align="center">\n' +
			//'<strong class="llaves">{ Buscador }</strong><p> </p>\n' +
			'<p>  </p><p> </td></tr></table></body></html>\n'
}

function CreaEntradas(indice) {

	var CadenasEntrada

	//divide la cadena de resultados en subcadenas y escribe los resultados
	CadenasEntrada = BaseDatos[indice].split(";")
	Entradas += '<p><a href="' + CadenasEntrada[0] + '.htm" TARGET=\"basefrm\">' + CadenasEntrada[1] + ' </a><br>\n'
	Entradas += CadenasEntrada[2] + '</p>\n'
}

function MuestraPagina(Pagina) {
	//muestra el contenido del display
	window.document.open('menubar=no,location=no,width=300,height=130')
	window.document.write(Pagina)
	window.document.close()
}
	
function IniciaBuscador(FormBusqueda) {
	
	//inicia variables globales
	var desde = 0
	totales = 0
	Pagina = ""
	Entradas = ""
	
	//clave busqueda
	var palabraClave = document.forms["FormularioBusqueda"].palabra.value
	
	//detiene busqueda si palabra clave vacia
	if ( palabraClave == "" ) {
		alert("¡Introduzca el termino de búsqueda!")
		return
	}
	
	//elimina acentos
	var palabra_sin = elimina_especiales(palabraClave)
	
	//obtiene la expresion regular para la busqueda (global e ignorando case)
	clave1 = new RegExp(palabraClave, "gi")
	clave2 = new RegExp(palabra_sin, "gi")

	//inicia variables locales
	var indice = -1
	
	//busca entrada de pagina que contenga la clave
	do {
		indice = Buscaclave(FormBusqueda, indice + 1)
		if (indice != -1) {
			CreaEntradas(indice)
			totales++
		} 
	} while (indice != -1)
	
	//escribe pagina de resultados
	IniciaPagina(FormBusqueda)
	Pagina += Entradas
	TerminaPagina()

	//abre una ventana y escribe los resultados
	MuestraPagina(Pagina)
}

//SUSTITUYE TODAS LAS OCURRENCIAS DE UN CARACTER UNA CADENA POR OTRO CARACTER
function sustituye_caracter(cadena, caracter, nuevo_caracter) {
	var longitud, indice 
 	
  	longitud = cadena.length
  	indice = cadena.indexOf(caracter)
  	while (indice != -1) {
     		cadena = cadena.substring(0, indice) + nuevo_caracter + cadena.substring(indice + 1, longitud + 1)
      		indice = cadena.indexOf(caracter, indice)
      	}

	return cadena
}

//ELIMINA CARACTERES ESPECIALES
function elimina_especiales(cadena) {

	//llamar a sustituye caracter con cada campo y cada caracter
	for (x = 0; x < 5; x++) {
		cadena = sustituye_caracter(cadena, caracter[x], caracter_nuevo[x])
   	}
	
	return cadena
}