///////////////////////////////
/////DEFINICION DE VALORES/////
///////////////////////////////

var extension = 'html'			//extension de las paginas del site (htm o html)
var imagen_relevancia = 'http://www.differo.es/imagenes/Portada/Buscador/bola'		//Ruta absoluta de las imagenes de relevancia
var resXpag = 5					//numero de resultados por pagina

///////////////////////////////
/////PANEL DEL BUSCADOR////////
///////////////////////////////

function CrearBuscador(div){
var divbuscador = ''
divbuscador += '<table style="height:313px" width="900" border="0" cellspacing="0" cellpadding="0">'
divbuscador += '<tr>' + '<td height="15" colspan="2" class="VerdanaGris11">'
divbuscador += '<table style="height:15px" width="900" border="0" cellspacing="0" cellpadding="0">'
divbuscador += '<td width="83" align="center" valign="middle" class="VerdanaGrisBold9">' + 'BUSCAR' + '</td>'
divbuscador += '<td width="792">' + '&nbsp;' + '</td>'
divbuscador += '<td width="55" align="center" valign="middle" class="VerdanaGrisBold9">'
divbuscador += '<span id="BTNCerrarBuscador" style="cursor:pointer" onmouseover="javascript:IluminarTexto(' + '\'BTNCerrarBuscador\'' + ',' + '\'#FFFFFF\'' + ')" onmouseout="javascript:IluminarTexto(' + '\'BTNCerrarBuscador\'' + ',' + '\'#8c8c8c\'' + ')" onclick="javascript:BTNCerrarBuscador(' + '\'DIVResultados\'' + ',' + '\'DIVBuscador\'' + ')">CERRAR</span>'
divbuscador += '</td></tr></table></td></tr>'
divbuscador += '<tr><td style="padding-left:15px" width="485" height="35" align="left" valign="middle">'
divbuscador += '<img src="../imagenes/Cabecera/Buscador/Lupa2.jpg" alt="Buscar" width="12" height="9" title="busqueda" />'
divbuscador += '<span class="VerdanaBlanco10">' + 'Introduce la palabra que deseas buscar.' + '</span>'
divbuscador += '<span class="VerdanaGris10">' + ' Ay&uacute;dese de los consejos si lo precisa.' + '</span></td>'
divbuscador += '<td width="385" height="35" align="left" valign="middle" class="VerdanaBlanco10" style="padding-left:15px">'
divbuscador += 'Consejos para los criterios de b&uacute;squeda:</td></tr>'
divbuscador += '<tr><td width="485" height="215" align="left" valign="top" class="VerdanaBlanco10" style="padding-left:15px">'
divbuscador += '<div style="width:485px; height:215px" id="resultados"></div>'
divbuscador += '</td><td width="385" height="263" rowspan="2" align="left" valign="top" class="VerdanaBlanco10" style="padding-left:15px">'
divbuscador += '<br /><span class="VerdanaAmarilloBold10">' + '&#8226; B&Uacute;SQUEDA ESPEC&Iacute;FICA' + '</span><br />'
divbuscador += '<span class="VerdanaBlanco10">' + 'Para buscar un producto espec&iacute;fico, utiliza su palabra clave <br />principal.' + '</span>'
divbuscador += '<br /><br />'
divbuscador += 'Ejemplo: <span class="VerdanaVerde10">Brabus</span>, en lugar de <span class="VerdanaVerde10">disco duro differo</span>'
divbuscador += '<br /><br /><span class="VerdanaAmarilloBold10">' + '&#8226; B&Uacute;SQUEDA VARIADA' + '</span><br />'
divbuscador += 'Para b&uacute;squeda con variedad de producto, escribe un perfil de <br />'
divbuscador += 'productos.<br /><br />'
divbuscador += 'Ejemplo: <span class="VerdanaVerde10">Conectividad</span>, en lugar de <span class="VerdanaVerde10">aparatos inal&aacute;mbricos</span>'
divbuscador += '<br /><br /><span class="VerdanaAmarilloBold10">' + '&#8226; B&Uacute;SQUEDA POR CARACTER&Iacute;STICAS' + '</span><br />'
divbuscador += 'Para una b&uacute;squeda seg&uacute;n las caractersiticas, puedes utiliza éstas <br />'
divbuscador += 'para filtrar la b&uacute;squeda.<br /><br />'
divbuscador += 'Ejemplo: <span class="VerdanaVerde10">350GB</span>, en lugar de <span class="VerdanaVerde10">discos duros</span>'
divbuscador += '</td></tr>'
divbuscador += '<tr><td width="500" height="48" align="center" valign="top" class="VerdanaBlanco10" style="padding-top:12px">'
divbuscador += '<div style="width:500px; height:36px" id="DIVPaginas"></div>'
divbuscador += '</td>' + '</tr>' + '</table>' + '</div>'
document.getElementById(div).innerHTML = divbuscador 
}

///////////////////////////////
/////VARIABLES GLOBALES////////
///////////////////////////////
var accion
var h = 465
var g = 664950
var totales			//numero de entradas encontradas
var Pagina = ''		//string que contendra la pagina a mostrar
var resultados = ''	//string reusltados busqueda
var Paginador = '' //String con las opciones de paginacion
var clave2			//palabra a buscar
var res = new Array()	//guarda relevancias busqueda

var caracter = new Object(5) 
caracter[0] = 'á'
caracter[1] = 'é'
caracter[2] = 'í'
caracter[3] = 'ó'
caracter[4] = 'ú'

var caracter_nuevo = new Object(5)
caracter_nuevo[0] = 'a'
caracter_nuevo[1] = 'e'
caracter_nuevo[2] = 'i'
caracter_nuevo[3] = 'o'
caracter_nuevo[4] = 'u'

var caracter_nuevo2 = new Object(5)
caracter_nuevo2[0] = '[áa]'
caracter_nuevo2[1] = '[ée]'
caracter_nuevo2[2] = '[íi]'
caracter_nuevo2[3] = '[óo]'
caracter_nuevo2[4] = '[úu]'

//obtiene longitud de la base de datos
var longitud = BaseDatos.length

function CalculaRelevancia(indice) {

	var CadenasEntrada
	var parciales = 0
	
	//divide la cadena de resultados en subcadenas y escribe los resultados
	CadenasEntrada = BaseDatos[indice].split(";")
	
	//recorre las subcadenas en busca de la clave, para asignar relevancia
	for (var n = 0; n < CadenasEntrada.length; n++) {
		if ( CadenasEntrada[n].search(clave2) != -1 ) {
			parciales++
		}
	}

	if ( parciales != 0 ) {
		res[ res.length ] = parciales + '|' + indice
	}
}

// lanza proceso busqueda
// nuevaBusqueda = 0	>> buscar
// nuevaBusqueda != 0	>> usar resultados de busqueda anterior
//				   en este caso, nuevaBusqueda tiene el total	
function IniciaBuscador(palabraClave, paginacion, nuevaBusqueda) {

	document.getElementById('DIVResultados').style.display = 'block';
	
	//inicia variables globales
	var desde = 0
	var partes
	var CadenasEntrada
	var descripcion = ''
	nuevaBusqueda = 0
	totales = nuevaBusqueda		//a 0 si nueva busqueda

	//detiene busqueda si palabra clave vacia
	if ( palabraClave == "" ) {
		return
	}
	
	if ( nuevaBusqueda == 0 ) {
	
		//elimina acentos
		var palabra_sin = elimina_especiales(palabraClave)
	
		//obtiene la expresion regular para la busqueda (global e ignorando case)
		clave2 = new RegExp(palabra_sin, "gi")

		//borra array res
		for ( var r=0; r < res.length; r++) {
			res[r]=''
		}

		//busca entrada de pagina que contenga la clave
		//recorre el array en busca de la palabra clave (en cualquier parte)
		for (var x = 0; x < longitud; x++) {
			if ( BaseDatos[x].search(clave2) != -1 ) {
				CalculaRelevancia( x )
				totales++
			}
		}
	
		//ordena resultados segun relevancia
		res.sort( ordenacionNumerica )
	}
	
	//lista de resultados
	resultados = ''
	Paginador = ''
	partes = ''
	CadenasEntrada = ''
	
	var resfinal = paginacion * resXpag + resXpag
	if ( resfinal >= res.length ) { 
		resfinal = res.length
	}
	
	//Si el resultado total es menor que cuatro
	if (totales <= 4){
		//Si no encuentra nada se sale
		if (totales == 0){
			
		}else{
			//Busquedas sin paginacion

			resfinal = totales
			for ( var n = paginacion * resXpag; n < resfinal; n++) {

			if (n==4){
				return
			}else{
			partes = res[n].split('|')
			resultados += MuestraRelevancia( partes[0] )
			CadenasEntrada = BaseDatos[ partes[1] ].split(";")
			resultados += ' ' + '<a class="linkamarillogrande" href="' + CadenasEntrada[0] + '.' + extension + '" target="_self">' + CadenasEntrada[2] + '</a>' 
			descripcion = CadenasEntrada[1]
			//descripcion = descripcion.replace( clave2, '<span class="remarcado">' + palabraClave + '</span>')
			resultados += '<br>' + descripcion + '<br>'
			resultados += '<a class="linkcaqui" href="' + CadenasEntrada[0] + '.' + extension + '" target="_self">' + CadenasEntrada[0] + '.' + extension +  '</a><br>'
			}
			
		}
				
	}
	//Si el resultado total no es menor que 4
	}else{
	//Busqueda normal
	if(totales % 5 == 0){
		for ( var n = paginacion * resXpag; n < resfinal; n++) {
			partes = res[n].split('|')
			
			resultados += MuestraRelevancia( partes[0] )
			CadenasEntrada = BaseDatos[ partes[1] ].split(";")
			resultados += ' ' + '<a class="linkamarillogrande" href="' + CadenasEntrada[0] + '.' + extension + '" target="_self">' + CadenasEntrada[2] + '</a>'
			descripcion = CadenasEntrada[1]
			//descripcion = descripcion.replace( clave2, '<span class="remarcado">' + palabraClave + '</span>')
			resultados += '<br>' + descripcion + '<br>'
			resultados += '<a class="linkcaqui" href="' + CadenasEntrada[0] + '.' + extension + '" target="_self">' + CadenasEntrada[0] + '.' + extension +  '</a><br>'
			
		}
	}else{
		//resfinal = totales
		try
			{
			for ( var n = paginacion * resXpag; n < resfinal; n++) {
			if (n == totales - 1){
				}
			else{
			partes = res[n].split('|')
			
			resultados += MuestraRelevancia( partes[0] )
			CadenasEntrada = BaseDatos[ partes[1] ].split(";")
			resultados += ' ' + '<a class="linkamarillogrande" href="' + CadenasEntrada[0] + '.' + extension + '" target="_self">' + CadenasEntrada[2] + '</a>' 
			descripcion = CadenasEntrada[1]
			//descripcion = descripcion.replace( clave2, '<span class="remarcado">' + palabraClave + '</span>')
			resultados += '<br>' + descripcion + '<br>'
			resultados += '<a class="linkcaqui" href="' + CadenasEntrada[0] + '.' + extension + '" target="_self">' + CadenasEntrada[0] + '.' + extension +  '</a><br>'
			}	
		}
			}
		catch(err)
			{
			//Handle errors here
			}
		
		
	}		
	}
	
	var stringhan = 'han'
	var stringresultado = 'resultados que contienen'
	
	//Configuro que muestre bien los literales
	if (totales == 1){
		stringhan = 'ha'; stringresultado = 'resultado que contiene'
	}else{
		stringhan = 'han'; stringresultado = 'resultados que contienen'
	}
	
	//Controlo si se han encontrado o no resultados
	if (totales != 0)
		Pagina = 'Se ' + stringhan + ' encontrado ' + totales + ' ' + stringresultado + ' la palabra <b class="clave">' + '<span class="VerdanaAmarillo10">' + palabraClave + '</span>' +  '</b>:<br><br>'
	else
		Pagina = 'No se han encontrado resultados para la palabra <b><span class="VerdanaRojo10">' + palabraClave + '</span></b>.<br><br>'
	
	//Añado los resultados a las página
	Pagina += resultados
	
	//Configuro las variables pagina siguiente y anterior siguiendo la paginacion
	var sigpag = paginacion + 1
	var antpag = paginacion - 1
	var ultpag = 0
	var paginasencontradas = 'Pagina encontrada'
	
	if ( totales % resXpag  != 0 ) {
		ultpag = Math.floor(totales / resXpag)
	} else {
		ultpag = totales / resXpag - 1
	}
	
	//Si encuentra 1 o si encuentra varios
	if ( ultpag == 1 ) {
		paginasencontradas = 'Pagina encontrada'
	}else{
		paginasencontradas = 'Paginas encontradas'
	}
	
	//Si hay que paginar, muestro el texto que lo indica
	if ( ultpag > 0 ) {				
		Paginador = '<span class="VerdanaGris10">' + ultpag + ' ' + paginasencontradas + ' </span><br> '
	}
	
	//Si no estamos en la primera página, muestro el control "anterior"
	if ( paginacion > 0  ) {				
		Paginador += '<a class="searchpag" href="javascript: IniciaBuscador(\'' + palabraClave + '\', ' + antpag + ', ' + totales + ')"><< Anterior</a> '

	}
	
	//lista todas las paginas
	if ( ultpag > 0 ) {	
		for ( var r = 0; r <= ultpag; r++ ) {
			if ( r != paginacion ) {
				Paginador += ' <a class="searchpag" href="javascript: IniciaBuscador(\'' + palabraClave + '\', ' + r + ', ' + totales + ')">' + r + '</a> '
			} else {
				Paginador += ' ' + r + ' '
			}
		}
	}
	
	//Si no estamos en la ultima página, muestro el control "siguiente"

if ( paginacion < ultpag ) {			
		Paginador += ' <a class="searchpag" href="javascript: IniciaBuscador(\'' + palabraClave + '\', ' + sigpag + ', ' + totales + ')">Siguiente>></a></p>'
	} else {
		Paginador += '</p>'
	}
	
	//escribe los resultados
	document.getElementById("DIVPaginas").innerHTML = (Paginador)
	document.getElementById("resultados").innerHTML = (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.charAt(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) {

	//elimina caracteres con acento
	for (x = 0; x < 5; x++) {
		cadena = sustituye_caracter(cadena, caracter[x], caracter_nuevo[x])
   	}
   	
	//sustituye las vocales por una expresion regular para ignorar los acentos
	for (x = 0; x < 5; x++) {
		cadena = sustituye_caracter(cadena, caracter_nuevo[x], caracter_nuevo2[x])
   	}   	
	
	return cadena
}

//MUESTRA IMAGENES DE RELEVANCIA
function MuestraRelevancia(relevancia) {

	var cadena_relevancia = ''
	
	for (var x = 0; x < relevancia; x++) cadena_relevancia += '<img src="' + imagen_relevancia + '_on.jpg" width="9" height="7" border="0">'
 	for (var y = 0; y < 4 - relevancia; y++) cadena_relevancia += '<img src="' + imagen_relevancia + '_off.jpg" width="9" height="7" border="0">'
 	
 	return cadena_relevancia 
}

//check
function cdfcr(a, b) {
	var alfa= 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI123456789'
	var d = 0
	var palabra = a.toUpperCase()
	for (var i=0; i< palabra.length; i++) {
		letra = palabra.substring(i,i+1)
		c = alfa.indexOf(letra, 0) + 1
		d = d + b * c
	}
	return d
}

function ordenacionNumerica(a,b) {
	var a2 = a.split('|')
	var b2 = b.split('|')
	return b2[0] - a2[0]
}
