function objetoAjax2()
{
        /* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
        lo que se puede copiar tal como esta aqui */
        var xmlhttp=false;
        try
        {
                // Creacion del objeto AJAX para navegadores no IE
                xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
                try
                {
                        // Creacion del objeto AJAX para IE
                        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch(E) { xmlhttp=false; }
        }
        if (!xmlhttp && typeof XMLHttpRequest!="undefined") { xmlhttp=new XMLHttpRequest(); }

        return xmlhttp;
}
//template_begin = '<table border=0 celpadding=0 cellspacing=0 bgcolor=white style="border:1px solid #00BFFF" width="100%">'
//template_td = '<tr><td class=grismedio12n style="padding-top:3px">ELEM</td></tr><tr><td class=marino12n style="padding-bottom:3px">SEM</td></tr>'
//template_td = '<tr><td class="busqueda" onmouseover="this.className=\'busquedaon\'" onmouseout="this.className=\'busqueda\'" style="padding-top:3px">ELEM</td></tr>'
//template_link = '<a href="javascript:;" onclick="URL" class="busqueda">NAME</a>'
//template_end = '</table>'
template_begin = "<table border=0 celpadding=0 cellspacing=0 width='100%'>";
template_end = "</table>";
cached = new Array();
var colecciones = new Array();

var pagdim = 10;
var bloquedim = 5;
var lang = "es";

var search_field;

var innercached = "";

var innersugerencias = "";
ajax2=objetoAjax2();
ajax2.open("GET", "/sugerencias.php");
ajax2.onreadystatechange=function() {
	if (ajax2.readyState==4) {
		innersugerencias = template_begin+ajax2.responseText+template_end;
		innercached = innersugerencias;
	}
}
ajax2.send(null)

var name_search = '';
var waitroller;
var res;
function responderAjax(url) {
	waitroller.style.visibility = 'visible'
	var ajaxObject = document.createElement('script');
	ajaxObject.src = url;
	ajaxObject.type = "text/javascript";
	ajaxObject.charset = "utf-8";
	document.getElementsByTagName('head').item(0).appendChild(ajaxObject);
}

function urlencode(str) { return escape(str).replace('+','%2B').replace('%20','+').replace('*','%2A').replace('/','%2F').replace('@','%40'); }
function doQuery(e) {
	e = e || window.event;
	var k = (e.which) ? e.which : e.keyCode;
	var q = search_field.value.toLowerCase().replace(/^\s+/g, '').replace(/\s+$/g, '')
	//res.style.visibility = 'hidden'
	res.innerHTML = ''
	if (q.length > 3) {
		if (cached[q] != undefined) {
			innercached = cached[q];
			muestra_sugerencias();
			//res.style.visibility = 'visible'
		} else {
			waitroller.style.visibility = 'visible'
			responderAjax("/predictivo-responder.php?query="+urlencode(q)+"&lang="+lang)
		}
	}
	else {
		res.innerHTML = innersugerencias;
		oculta_sugerencias();
	}
	return true;
}

function doQueryPag(desde) {
	var q = search_field.value.toLowerCase().replace(/^\s+/g, '').replace(/\s+$/g, '')
	responderAjax("/predictivo-responder.php?query="+urlencode(q)+"&desde="+desde+"&lang="+lang)
	return true;
}

function changeResult (str,num,pag) {
	var q = search_field.value.toLowerCase().replace(/^\s+/g, '').replace(/\s+$/g, '');
	var content = '';
	// format: "id;nombre;id_col;lat;lng;provincia"
	
	// ex. '2000;la alhambra;2;36.349876;-1.8346;granada;la-alhambra;1(wiki)'
	
	var data = str.split("##");
	
	if (num == 0) {
		document.getElementById('numrows').innerHTML = "";
		content = "<tr><td align=center><IFRAME src='/clientbo.php?nuevo="+str+"&lang="+lang+"' width='650' frameborder=no scrolling=no></IFRAME></td></tr>";
	}
	else {
	
		if (num < 6) {
			if (num == 1) {
				document.getElementById('numrows').innerHTML = "";
				
				content += "<tr><td align=center><table cellpadding=0 cellspacing=3 border=0>";
				var campos = data[0].split(";");
				if (campos[7]=='1') wikistr = "&nbsp;<img src='/images/logo_wikipedia.png' alt='wikipedia'>";
				else wikistr = "";
				content += "<tr><td><table cellpadding=0 cellspacing=0 border=0><tr><td style='border:2px solid green'><img style='border:1px solid white' src='/cache/"+campos[2]+".data/"+campos[0]+"/"+campos[8]+"' height='100' alt='"+campos[6]+"'></td></tr><tr><td class=gr></td></tr></table></td><td class=ne><a href='"+campos[9]+"' class=ne17>"+campos[1]+"</a><br><i>"+campos[5]+"</i><br>"+campos[10]+" rese&ntilde;as<br><img src='/images/tourspain_logo_p.gif' alt='tourspain'>"+wikistr+"</td>";
				content += "</table></td></tr>";
			}
			else {
				document.getElementById('numrows').innerHTML = "<i>Encontrados <b>"+num+"</b> elementos</i>";
				
				content += "<tr><td align=center valign=top><table cellpadding=0 cellspacing=0 border=0>";
				for (i=0;i<data.length;i++) {
					if (i%3==0 && i!=0) content += "</table></td><td align=center valign=top><table cellpadding=0 cellspacing=0 border=0>";
					var campos = data[i].split(";");
					content += "<tr><td align=left><table cellpadding=0 cellspacing=3 border=0><tr><td style='border:1px solid green'><img style='border:1px solid white' src='/cache/"+campos[2]+".data/"+campos[0]+"/foto_principal_50.jpg' alt='"+campos[6]+"'></td><td class=ne><a href='"+campos[9]+"' class=ne13>"+campos[1]+"</a><br><i>"+campos[5]+"</i></td></tr></table></td></tr>";
				}
				content += "</table></td></tr>";
			}
		}
		else {	
			document.getElementById('numrows').innerHTML = "<i>Encontrados <b>"+num+"</b> elementos</i>";
			
			content += "<tr><td><table cellpadding=0 cellspacing=0 border=0 width='100%'><tr><td align=center valign=top><table cellpadding=0 cellspacing=0 border=0>";
			for (i=0;i<data.length;i++) {
				var campos = data[i].split(";");
				if (i == 5) content += "</table></td><td align=center valign=top><table cellpadding=0 cellspacing=0 border=0>";
				content += "<tr><td align=left class=ne style='padding-left:4px;padding-right:4px'><a href='"+campos[9]+"' class=ne><b>"+campos[1]+"</b></a><br><i>"+campos[5]+"</i></td></tr>";
			}
			content += "</table></td></tr></table></td></tr>";
			
			// Paginas
			if (num > 10) {
				content += "<tr><td align=center><table cellpadding=0 cellspacing=0 border=0><tr>";
				
				bloque = Math.floor((pag-1)/bloquedim)+1;
				
				if (bloque > 1) ini = ((bloque-1)*pagdim*bloquedim)+1;
				else ini = 1;
				
				if (bloque > 1) content += "<td align=center><a href='"+(ini-(pagdim)-1)+"' onclick='doQueryPag("+(ini-(pagdim)-1)+");return false;' class=azcabb> << </a></td>";
				
				if (num > bloquedim*pagdim*bloque) hasta = ini+bloquedim*pagdim-1;
				else hasta = num;
				//content += "<td>numrows:"+num+",pag:"+pag+",ini:"+ini+",bloque:"+bloque+"</td>";
				for (p=ini;p<=hasta;p=p+pagdim) {
					if ((p-1+pagdim) < hasta) h = (p-1+pagdim);
					else h = hasta;
					if (pag==(Math.floor(p/pagdim)+1)) cl = "azcabb";
					else cl = "azcab";
					content += "<td style='padding-left:3px;padding-right:3px'><a href='"+(p-1)+"' onclick='doQueryPag("+(p-1)+");return false;' class="+cl+">["+p+"-"+h+"]</a></td>";
				}
				
				if ((num-ini) > bloquedim*pagdim) content += "<td><a href='"+((bloquedim*pagdim)+ini-1)+"' onclick='doQueryPag("+((bloquedim*pagdim)+ini-1)+");return false;' class=azcabb>>></a></td>";
				
				content += "</tr></table></td></tr>";
			}
		}
	}
	var html = template_begin + content + template_end;
	if (num > 0) cached[q] = html;
	innercached = html;
	//res.innerHTML = html;
	waitroller.style.visibility = 'hidden';
	muestra_sugerencias ();
}

function initpredictivo (search,langstr) {
	if (name_search != search) {
		search_field = document.getElementById(search);
		lang = langstr;
		waitroller = document.getElementById('waitroller');
		res = document.getElementById('busqueda');
		
		if (lang == "es") {
			colecciones['1'] = "destinos";
			colecciones['2'] = "monumentos";
			colecciones['3'] = "museos";
			colecciones['4'] = "espacios naturales";
			colecciones['5'] = "playas";
		}
		else {
			colecciones['1'] = "destinations";
			colecciones['2'] = "monuments";
			colecciones['3'] = "museums";
			colecciones['4'] = "nature areas";
			colecciones['5'] = "coasts";
		}
		var x = 0;
		var y = 0;
		var obj = search_field;
		do {
			x += obj.offsetLeft;
			y += obj.offsetTop;
			obj = obj.offsetParent;
		} while (obj);
		//
		waitroller.style.left = (x + search_field.offsetWidth - 19) + 'px';
		waitroller.style.top = (y + 7) + 'px';
		//
		y += search_field.offsetHeight - 1;
	    var w = search_field.offsetWidth - 1;
	    //res.style.left = (x + 1) + "px";
	    //res.style.top = y + "px";
	    //res.style.width = (w - 1) + "px";
		//res.style.height = "auto";
		search_field.setAttribute('autocomplete', 'off')
		search_field.value = ''
		name_search = search
	}	
}

function fillform (id,nombre,realname) {
	id_field.value = id
	name_field.value = nombre
	search_field.value = unescape(realname)
	//res.style.visibility = 'hidden'
	//oculta_sugerencias ();
}

function muestra_sugerencias () {
	document.getElementById('busqueda').style.height = "190px";
	if (innercached != "") {
		document.getElementById('busqueda').innerHTML = innercached;
	}
	document.getElementById('busqueda').style.visibility = "visible";
	if (lang == "en") var ocultartxt = "hide";
	else  var ocultartxt = "ocultar";
	document.getElementById('despliega').innerHTML = ocultartxt;
	document.getElementById('despliega').onclick = function(){
		oculta_sugerencias();
		return false;
	};
	document.getElementById('flechita').src = '/images/flecha_arriba.gif';
}
function oculta_sugerencias () {
	document.getElementById('busqueda').style.height = "0px";
	//document.getElementById('busqueda').style.visibility = "hidden";
	innercached = document.getElementById('busqueda').innerHTML;
	document.getElementById('numrows').innerHTML = "";
	document.getElementById('busqueda').innerHTML = "";
	if (lang == "en") var mostrartxt = "show search tips";
	else  var mostrartxt = "sugerencias de b&uacute;squeda";
	document.getElementById('despliega').innerHTML = mostrartxt;
	document.getElementById('despliega').onclick = function(){
		muestra_sugerencias();
		return false;
	};
	document.getElementById('flechita').src = '/images/flecha_abajo.gif';
	
}
