bIE = window.document.all && !window.navigator.userAgent.match(/opera/i);
function elprop(P, V, E){
    var I = null;

    if(typeof(E) == "object"){
      I = E;
    } else {
      I = document.getElementById(E);
    }
    if((I != null) && (I.style != null)){
      I = I.style;
      I[P] = V;
    }
}
function trim(_s) {
	var	_s = _s.replace(/^\s\s*/, ''),
		ws = /\s/,
		i = _s.length;
	while (ws.test(_s.charAt(--i)));
	return _s.slice(0, i + 1);
}
function rmlat(T){
	T=T.toLowerCase();
	S=' áéíóúàèìòùâêîôûäëïöüãõñç';
	N='+aeiouaeiouaeiouaeiouaonc';
	for(var c = 0; c<T.length; c++) {
	    if (S.indexOf(T.charAt(c))!=-1)
			T = T.substring(0, c) + N.charAt(S.indexOf(T.charAt(c))) + T.substring(c+1);
	}
	return T;
}
function ajax_url(url, I){
	var xmlHttp = false;
	if (window.XMLHttpRequest) {// Si es Mozilla, Safari etc
		xmlHttp = new XMLHttpRequest();
		if (xmlHttp.overrideMimeType) {
            xmlHttp.overrideMimeType('text/xml');
        }
	}
	else if (window.ActiveXObject){ // pero si es IE
	
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e){ // en caso que sea una versión antigua
			try{
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){}
		}
	}
	else{
		return false;
	}
	
	xmlHttp.onreadystatechange=function(){
		if(xmlHttp.readyState==4){
			ldpg_url(xmlHttp, I);
		}
	}
	try{
		xmlHttp.open('GET', url, true);
		xmlHttp.send(null);
	}
	catch (e){
//      alert("Can't connect to server:\n" + e.toString());
	}
}

// carga pag
function ldpg_url(X, I){
	if (X.readyState == 4 && (X.status==200 || window.location.href.indexOf("http")==-1)){
		D = false;
		if (bIE && X.responseXML && !X.responseXML.documentElement) {
			D = new ActiveXObject("Microsoft.XMLDOM");
			D.loadXML(X.responseText);
		}
		else{
			D = X.responseXML;
		}
		
		if(D){
	        ldaer(I,D);
		}
	}
}

function gData(D){return (bIE)? D.text: D.textContent;}
function gHid(I){return document.getElementById("hi" + I);}
function gTxt(I){return document.getElementById("tx" + I);}
function gDivId(I){return "dv" + I;}
function gDiv(I){return document.getElementById(gDivId(I));}
function gAncId(P,I){return "_xi" + P + I;}
function gAnc(P,I){return document.getElementById(gAncId(P,I));}

_items = null;
_item = -1;
_selI = -1;

function _ajx(S, I, E){
	C = E.keyCode;
	
	if((C!=13) && ((C < 37) || (C > 40))){
		T = gTxt(I).value;
		if(trim(T).length >= 3){
			gHid(I).value='';
			ajax_url(S + '?as=ae' + '&i=' + rmlat(T), I);
		}
	}
}
function _sbm(I,E){
	C = E.keyCode;
	if ((C == 13)&&(_item >= 0)){
    	_ret(I,_items[_item][0],_items[_item][1]);
    	_usel(_item);
    	return false;
    }
    return true;
}
function _key(I,E){
	C = E.keyCode;
	if (C == 9){//tab
		return false;
	}
	else if (C == 37){//left
		return false;
	}
	else if (C == 38){//up
		_selk(I,-1);
		return false;
	}
	else if ((C == 39)&&(_item >= 0)){//right
		return false;
	}
	else if (C == 40){//down
		_selk(I,1);
		return false;
	}
    return true;
}
function _ret(I,H,T){
	gTxt(I).value=T;
	gHid(I).value=H;
	_item = -1;
	elprop('display', 'none', gDivId(I));
}
function _selk(I,J){
	NJ = _item + J;
	_o1 = gAnc(I,_item);
	_o2 = gAnc(I,NJ);
	if(_o2){
		if(_o1){
			_o1.className = "aei";
		}
		_item =NJ;
		_sel(I,NJ);
		gAnc(I,NJ).className = "aes";
	}
}
function _sel(I,J){
	O = gAnc(I,_item);
	if(O){
		O.className = "aei";
	}
	_item = J;
}
function _usel(J){
	_item = -1;
}
function _haj(I){
	if((_item>=0)&&(_items[_item])){
		_ret(I,_items[_item][0],_items[_item][1]);
	}
	elprop('display', 'none', gDivId(I));
	_selI = -1;
}
function _foc(I){
	_selI = I;
}
function ldaer(I,D){
	if(_selI!=I){
		return;
	}

	A = D.getElementsByTagName('a');
	
	_item = -1;
	_items = new Array();

	T="";
	for(i=0;i<A.length;i++){
		C =A[i].childNodes;
		id = gData(C[0]);
		nombre = gData(C[1]);
		nombre = nombre.replace("\'", "");
		_items.push(new Array(id,nombre));
		T += "<a id=\"" + gAncId(I,i) +"\" tabindex=\"-1\" class=\"aei\" href=\"#\" onmousedown=\"_ret('" + I + "','" + id + "','" + nombre + "');return false;\" onmouseover=\"_sel('" + I + "'," + i + ")\" onmouseout=\"_usel(" + i +")\">" + nombre + "</a>";
	}
	
	elprop('display', 'block', gDivId(I));
	if(_items.length>0){
		gDiv(I).innerHTML = T;
		_selk(I,1);
	}
	else{
		R = D.getElementsByTagName('r');
		T = gData(R[0]);
		gDiv(I).innerHTML="<i style=\"color:#666;padding:4px;\">" + T + "</i>";
	}
}
