// JavaScript para el Buscador
// ------------------------------------------------------------------------------------------------------

//Variables:
//  win:   Ventana de respuestas
//  txt:   Texto a buscar
//  item:  Array de información con la que se comparará
//  fnd:   Array de coincidencias
//  total: Número total de coincidencias encontradas

	

// INFORMACIÓN QUE BUSCARÁ EL SERVIDOR
// -------------------------------------------------------------------------
// Añadir nuevas páginas o nuevas palabras clave según el formato siguiente:
//  El comentario descriptivo aparecerá debajo del enlace del resultado.
//
// Entrada:  "Nombre Página","Path","Título Página","KeyWords","Comentario Descriptivo"
//
//Nota: En las keywords no tienen por qué ir separadas por comas todas las palabras. El buscador las encontrará igual dentro
//  de un grupo separado por espacios. También es indiferente mayúsculas o minúsculas. También buscará en la descripción, no 
//  es necesario repetir.
//
var item = new Array();
	
//Inicio
c=0; item[c]=new Array("index.html","","Inicio","inicio,principal,comienzo,home,front, 2, Mares, 2Mares","2Mares Software de comunicaciones unificadas.");

//Productos
c++; item[c]=new Array("productos.html","productos/","2Mares Productos","productos, corporativos, contact center","Productos de 2Mares.");
// --- Corporativos
c++; item[c]=new Array("productos_corporativos.html","productos/productos_corporativos/","2Mares Productos Corporativos","productos corporativos, mensajería unificada, mensajeria unificada, servidor de fax, servidor sms, mensajería vocal, mensajeria vocal, autoattendant, attendant, auto","Productos corporativos de 2Mares.");
c++; item[c]=new Array("autoAttendant.html","productos/productos_corporativos/productos_corporativos/","2Mares AutoAttendant","2Mares Productos Corporativos, Autoattendant, Operadora, automática, automatica","Operadora autom&aacute;tica Autoattendant.");
c++; item[c]=new Array("um_mensajeria_unificada.html","productos/productos_corporativos/productos_corporativos/","2Mares Mensajer&iacute;a Unificada UM","2Mares Productos Corporativos, Mensajería unificada, mensajeria, UM, fax, sms, voz, email, e-mail, mail","Producto Software que permite unificar el acceso y gesti&oacute;n de los mensajes de Voz, Fax, SMS y e-mail.");
c++; item[c]=new Array("um_mensajeria_vocal.html","productos/productos_corporativos/productos_corporativos/","2Mares Mensajer&iacute;a Vocal","2Mares Productos Corporativos, Mensajería unificada, mensajeria, UM, voz, buzones de voz, buzon, buzón, extensión, extension, extensiones","Permite que todas las extensiones tengan buzones de voz. En caso de estar ausente el usuario de una extensión , el llamante puede dejar un mensaje, que puede ser escuchado desde cualquier teléfono interno o mediante una llamada externa. ");
c++; item[c]=new Array("um_servidor_fax.html","productos/productos_corporativos/productos_corporativos/","2Mares Servidor Fax","2Mares Productos Corporativos, Mensajería unificada, mensajeria, UM, fax, servidor","El Servidor de Fax permite tanto el envío y recepción de faxes a través de Servidores de fax registrando los niveles de servicio de respuesta y espera, colas asignadas a cada fax,  agente asociado a cada interacción, supervisión, etc. ");
c++; item[c]=new Array("um_servidor_sms.html","productos/productos_corporativos/productos_corporativos/","2Mares Servidor SMS","2Mares Productos Corporativos, Mensajería unificada, mensajeria, UM, sms, servidor, telefono, teléfono, móvil, movil, mobil, móbil","La integración del canal SMS en el Contact Center implica integrar las posibilidades de la mensajería a teléfonos móviles en campañas de telemarketing, avisos, confirmación de operaciones, alarmas, etc. así como el funcionamiento autónomo como canal alternativo para el acceso a información. ");
// --- Contact Center
c++; item[c]=new Array("productos_contact_center.html","productos/productos_contact_center/","2Mares Productos Contact Center","2Mares Productos Contact Center, plataforma atención multicanal, atencion, gestión, multimedia, ACD, Grabador, Campañas, IVR, portales de voz, supervisor, administrador, link","El C_CONTACT CENTER está dotado de los elementos necesarios para realizar gestión multimedia y multicanal con control de las interacciones de los clientes.");
c++; item[c]=new Array("argumentarios.html","productos/productos_contact_center/productos_contact_center","2Mares Argumentarios","2Mares Productos Contact Center, Campañas, Argumentarios","Argumentarios y Campañas 2Mares dentro de los productos Contact Center.");
c++; item[c]=new Array("campañas.html","productos/productos_contact_center/productos_contact_center/","2Mares Campa&ntilde;as","2Mares Productos Contact Center, Campañas, Argumentarios","C_Campañas Salientes es la solución definitiva que integra la gestión de campañas con elementos de mejora en la realización masiva de llamadas salientes: automarcación, supervisión de campañas y agentes, generación de informes, etc.");
c++; item[c]=new Array("cola_universal.html","productos/productos_contact_center/productos_contact_center/","2Mares Cola Universal","2Mares Productos Contact Center, Cola Universal","Cola Universal 2Mares dentro de los productos Contact Center.");
c++; item[c]=new Array("cti.html","productos/productos_contact_center/productos_contact_center/","2Mares CTI","2Mares Productos Contact Center, CTI, Middleware, Integración, integracion, centrales telefónicas, telefonicas","C_Link, es un módulo que permite la integración de aplicaciones externas con las funcionalidades CTI de la central telefónica y también con funcionalidades de BOX y CCC");
c++; item[c]=new Array("grabador.html","productos/productos_contact_center/productos_contact_center/","2Mares Grabador","2Mares Productos Contact Center, Grabador","Grabador de comunicaciones dentro de los productos Contact Center.");
c++; item[c]=new Array("ivr_portales_de_voz.html","productos/productos_contact_center/productos_contact_center/","2Mares IVR - Portales de Voz","2Mares Productos Contact Center, IVR Portales de Voz, Bases de datos hablen","Sistema para conectar con la red LAN de la empresa - cliente, que cumpliendo lo especificado para C_IVR Base incorpora prestaciones tecnológicas superiores. Los menús de guías vocales se diseñan para cada equipo en varios idiomas y permiten su uso por personas que lo utilizan al coste de una simple llamada telefónica.");


//Servicios
c++; item[c]=new Array("servicios.html","servicios/","2Mares Servicios","Servicios, Mercado corporativo, pymes, gran empresa, banca, administracion, administración, industria, mercado, call center, utilities, atención al cliente, atencion","Las tecnologías de comunicaciones están a veces un paso por delante de las necesidades reales de los clientes y usuarios. Desde 2Mares creemos que el principal reto al que nos enfrentamos al diseñar nuestros productos es aplicar de forma innovadora las tecnologías actuales resolviendo de forma flexible las necesidades específicas y únicas de cada cliente. ");
c++; item[c]=new Array("consultoria.html","servicios/","2Mares Consultor&iacute;a","Consultoria, consultoría, cualificación, cualificacion tecnológica, ingeniero, ingenieros, telecomunicación, telecomunicaciones, especificación de requisitos, programación, pruebas unitarias, conformidad","2MARES dispone de un equipo humano de alta cualificación tecnológica, formado por ingenieros de telecomunicación e informática, habituados y dispuestos a resolver consultas o proyectos relacionados con las Comunicaciones Unificadas.");
c++; item[c]=new Array("factoria_software_especializada.html","servicios/","2Mares Factor&iacute;a de Software Especializado","Factoria, factoría de software especializado, servicio, desarrollo", "2Mares posee una innovadora factoría de software especializada.");
c++; item[c]=new Array("formacion.html","servicios/","2Mares Formaci&oacute;n","curso, cursos de formación, formacion para productos centratel, comercial, gestión, gestion, código, corporativo, contact center", "2MARES tiene diseñados cursos de formación para que los Administradores, Supervisores, Técnicos del Cliente – Usuario, puedan, a partir del momento de la entrega del proyecto, ser independientes en alto grado en la gestión del día a día. ");
c++; item[c]=new Array("implantacion_y_postventa.html","servicios/","2Mares Implantaci&oacute;n y postventa","Implantación implantacion y postventa, centratel care, garantia, garantía, tutorización, actualización, actualizaciones", "LOS PRODUCTOS CENTRATEL SE FABRICAN BAJO EL MÁXIMO STANDARD DE CALIDAD CMMI3 Y SE SUMINISTRAN DURANTE EL PRIMER AÑO CON LA GARANTÍA CENTRATELCARE. Esta Garantía se puede renovar anualmente. ");
c++; item[c]=new Array("cmmi3.html","servicios/factoria_software_especializada/","2Mares CMMi3","Factoria, factoría de software especializado, servicio, desarrollo cmmi nivel 3", "Capability Maturity Model Integration (CMMI) es un modelo de validez internacional para la mejora de procesos de fabricación de Software, que acredita a 2MARES como fabricante software de total garantía.");


//Tecnologia
c++; item[c]=new Array("tecnologia.html","tecnologia/","2Mares Tecnolog&iacute;a","Tecnología, tecnologia, productos tecnológicos, tecnologías del habla, ingeniería de protocolos de telefonía, tecnologias, ingenieria, telefonia, servidores vocales, software, ivr, mensajería vocal, unficada", "Desde su fundación, la misión de 2Mares ha sido única y exclusivamente el desarrollo y la comercialización de productos software propios en el campo Computer Telephony focalizando todos sus esfuerzos hacia la generación de tecnología propia en este campo y la creación de productos tecnológicos con alto contenido innovador con los que competir en este mercado.");
c++; item[c]=new Array("ingenieria_de_protocolos.html","tecnologia/","2Mares Ingenier&iacute;a de Protocolos","Tecnología, tecnologia, productos tecnológicos, ingeniería de protocolos de telefonía, tecnologias, ingenieria, GSM, ip, sip, h323, isdn, ss7, integración, integracion", "El software de 2Mares tradicionalmente ha estado relacionado fundamentalmente con aplicaciones telefónicas.");
c++; item[c]=new Array("ingenieria_del_software.html","tecnologia/","2Mares Ingenier&iacute;a de Software","Tecnología, tecnologia, productos tecnológicos, ingeniería de software de telefonía, tecnologias, ingenieria", "Otro de los pilares en los que 2Mares basa su ventaja competitiva en su experiencia y base de conocimiento en el desarrollo de sistemas distribuidos de tiempo real con altas exigencias de performance (tolerancia a fallos, escalabilidad, alta concurrencia, programación asíncrona, etc.).");
c++; item[c]=new Array("tencnologias_del_habla.html","tecnologia/","2Mares Tecnolog&iacute;as del Habla","Tecnología, tecnologia, productos tecnológicos, habla, aprendizaje, auto, auto-aprendizaje, gestión de diálogos, diálogo, dialogo, dialogos, reconocimiento de voz", "2Mares lleva más de 15 años innovando y desarrollando su propia tecnología en el campo de las Tecnologías del Habla. Las tecnologías y plataformas desarrolladas por 2Mares en estos años resuelven eficazmente particularidades específicas de nuestra realidad, caracterizada por los entornos bilingües, en muchos casos falta de cultura tecnológica y fundamentalmente  factores humanos asociados a la naturaleza del interfaz hombre-máquina.");

//Noticias => Actualizar con cada nueva entrada de noticias individuales !??
c++; item[c]=new Array("noticias.html","noticias/","2Mares Noticias","Galicia Tic, Santander Central Hispano, BSCH, Ayuntamiento Vigo, Servicio de atención ciudadana, el país, fundación cotec, simo madrid, cti, ct-expo, expo", "Últimas noticias relacionadas con 2Mares.");
c++; item[c]=new Array("GaliciaTic.html","noticias/noticias/","2Mares Noticias Galicia TIC","Galicia Tic, Santander Central Hispano, BSCH", "La división de Factoring y Confirming del Banco Santander Central Hispano desde Junio del 2001 ha implantado CENTRATEL_ IVR, conectado a su base de datos Informix en tiempo real, para el tratamiento automático de las llamadas telefónicas recibidas a nivel nacional en su Call Center.");
c++; item[c]=new Array("cotec.html","noticias/noticias/","2Mares Noticias COTEC","el pais país, fundación cotec, guía de empresas con iniciativa.", "2MARES es elegida por la Fundación Cotec y el periódico EL PAIS entre las 30 empresas españolas seleccionadas para su Guía de Empresas con Iniciativa.");


//Contactar
c++; item[c]=new Array("contactar.html","contactar/","2Mares Contactar","contacto, Contactar, general", "Contactar con 2Mares");
c++; item[c]=new Array("comercial.html","contactar/","2Mares Comercial","contacto, Información comerical, informacion", "Consultas en Comunicaciones Convergentes. Estudios económicos.");
c++; item[c]=new Array("empleo.html","contactar/","2Mares Empleo","contacto, Futuro, profesional, email, curriculum, currículum, vitae, cv, incorporación, incorporacion", "Si consideras que tu futuro profesional pasa por la innovación tecnológica en Telecomunicaciones, puedes formar parte del equipo humano de 2Mares.");
c++; item[c]=new Array("soporte.html","contactar/","2Mares Soporte","contacto, Centratel care, suministro, suministros, softwarem, garantia, garantía, tutorización, tutorizacion, actualización, actualizacion, actualizaciones, hardware, reparacion, reparación, sustitución, sustitucion, averías, averias, avería, averia, disponibilidad, tiempo de respuesta", "Los suministros se realizan amparados por el programa CENTRATELCARE, que permite mantener actualizado el software durante la vida útil de los sistemas.");


//Acerca de 2Mares
c++; item[c]=new Array("acerca_de_2Mares.html","acercade2mares/","Acerca De 2Mares","2Mares, acerca de", "2MARES es Fabricante de Software especializado en productos y proyectos en el entorno de las Comunicaciones Unificadas. Dispone de tecnología y producto propio en el ámbito de tecnologías del habla, interfaces multimodales, Ingeniería de Software con requisitos carrier-grade y arquitecturas software basadas en servicios.");

// -------------------------------------------------------------------------



// Comienzo del código de la página de respuesta (que luego se iremos completando)
// -------------------------------------------------------------------------
page2="<html><head><title>:: 2Mares :: Resultados B&uacute;squeda</title></head><body bgcolor='white'><center><table border=0 cellspacing=10 width=80%>";

page="";


// -------------------------------------------------------------------------





// -----------------------------------------------
// FUNCIÓN DE BÚSQUEDA DE COINCIDENCIAS
// -----------------------------------------------
//Recibe:
//  * El formulario desde el que se invoca para capturar la cadena de búsqueda.
//  * El path hasta el raíz para que todos los enlaces funcionen se llame desde dónde se llama
//
// NOTA: La búsqueda ser realiza palabra a palabra de la cadena a buscar => Así podremos tener coincidencias parciales
//
function search(frm, pathHastaRoot) {
	page="<html><head><title>:: 2Mares :: Resultados B&uacute;squeda</title></head><body><div id='contenedor' style='width:530px;'><div id='baner'><p><img src='" + pathHastaRoot + "Recursos/Imagenes_Paginas/Pies_Y_Cabecera/banner_inicial.jpg' width='757' height='87' /></p></div><div id='Texto' style='width:680px; height:415px;'><center><table border=0 cellspacing=10 width=80%>";

	
	
	//Abrimos y creamos la página de resultados	
	win = 0;
	//win = window.open("","winParent","height=600, width=795,scrollbars");
	//win.document.write(page);
	
	//Capturamos la palabra(s) a buscar
	txt = frm.valorBuscar.value.split(" ");
	fnd = new Array(); 
	total=0;
	
	//Buscamos en la lista de datos que tenemos
	for (i = 0; i < item.length; i++) {
		fnd[i] = 0; 
		order = new Array(0, 4, 2, 3);
		
		//Buscamos en todas las posiciones de información importantes (Todas menos el path)
		// todas las palabras de búsqueda que se nos manden => Acumula las ocurrencias para el Score
		for (j = 0; j < order.length; j++){
			for (k = 0; k < txt.length; k++){
				if (item[i][order[j]].toLowerCase().indexOf(txt[k]) > -1 && txt[k] != ""){
					fnd[i] += (j+1);
				}				
			}
		}
	}
	
	
	//Tomamos las ocurrencias y las mostramos en el documento de resultados
	hay_entradas = 0;
	for (i = 0; i < fnd.length; i++) {
		n = 0; 
		w = -1;
		
		if (fnd[i] > 0) {
				total += show(pathHastaRoot, i, win, n);
				hay_entradas = 1;
		}
		
		/*
		for (j = 0;j < fnd.length; j++){
			if (fnd[j] > n) { 
				n = fnd[j]; 
				w = j; 
			}
			
			//Escribimos la entrada
			if (w > -1) {
				total += show(pathHastaRoot, w, win, n);
				hay_entradas = 1;
			}			
				
			fnd[w] = 0;
		}*/
	}
	
	
	//No se han encontrado entradas coincidentes
	if(hay_entradas == 0) {
		//Preparamos la línea
		line = "<tr><td>No se han econtrado resultados coincidentes</td></tr>";
	
		//Y escribimos la entrada en el documento
		//win.document.write(line);
		page += line;
	}
	
	
	//Indicamos el número total de coincidencias y 
	// cerramos el documento de respuestas
	//win.document.write("</table><br>Coincidencias encontradas: "+total+"<br></body></html>");
	win = window.open("","_self","scrollbars");
	win.document.write(page + "</table><br>Coincidencias encontradas: "+total+"<br></div><div><p><img src='"+pathHastaRoot+"Recursos/Imagenes_Paginas/Pies_Y_Cabecera/abajo.gif' width='757' /></p></div></div></body></html>");
	win.document.close();
}





// -----------------------------------------------
// FUNCIÓN DE ESCRITURA DE RESULTADOS
// -----------------------------------------------
//Recibe:
//  * El path hasta el raíz
//  * El índice de la entrada que se ha encontrado
//  * La página en la que escribiremos
//  * El Score obtenido (si se ha encontrado en una entrada en más de un sitio: 
//      suma los valores de cada sitio 0,2,3,4) => De momento no lo visualizo
//
function show(path,which,wind,num) {
	//Construimos el link
	link = path + item[which][1] + item[which][0]; 
	
	//Preparamos la entrada enlazada al link anterior
	//line = "<tr><td><a href='"+link+"'>"+item[which][2]+"</a> Score: "+num+"<br>";
	line = "<tr><td><a href='"+link+"'>"+item[which][2]+"</a><br>";
	line += item[which][4] + "<br></td></tr>";
	
	//Y escribimos la entrada en el documento
	//wind.document.write(line);
	page += line;
	
	return 1;
}