// Variables e Inicializacion
var sg_divname;
var sg_name;
var sg_mouseOver;
var sg_Index=0;
var sg_XmlRequest;
var sg_fncName='suggestDef';
sg_RequestInit()

function sg_setVarName(name) {
	sg_divname='div'+name;
	sg_name=name;
	sg_Hdnname='hdn'+name;
}

function sg_onKeyPress(e,name,value) {
	sg_setVarName(name);
	key=sg_getKeyPress(e)

	  if(key==40) {
		sg_onKeyUp();
	  	return;
	  } else if (key==38) {
	  	sg_onKeyDown();
	   	return;
	  } else if (key==9 || key==13) {
	  	sg_setValue(document.getElementById(sg_divname+'Val'+sg_Index),name)
	  	if (document.getElementById(sg_divname+'Hdn'+sg_Index)!=null)
	  		sg_setValue(document.getElementById(sg_divname+'Hdn'+sg_Index),sg_Hdnname)
        key='';
	  	return
	  } else  if (!(key < 32 || (key >= 33 && key <= 46) || (key >= 112 && key <= 123)) || key==8) {
	  	sg_RequestSuggest(name,value)
	  }
}

function sg_RequestInit() {
	// non-IE: create this object once.
	if (window.XMLHttpRequest) {
		  sg_XmlRequest = new XMLHttpRequest();
	}

  	// IE still needs a request object
 	if (!window.XMLHttpRequest) {
    	sg_XmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
  	}

	// When the HTTP transfer is over,
	// the internal state of the object will change
	// When that happens, it will run the function
	// assigned here
  	sg_XmlRequest.onreadystatechange = sg_procReqChange;
}

function sg_RequestSuggest(name,value) {
	// Iniciamos el XmlHttpRequest
	sg_RequestInit()
	// Reiniciamos indice por cambio en la lista de sugerencias
	sg_Index=0;
	// Armamos el Query y Cerramos la conexion
	sg_XmlRequest.open("GET", sg_url_base+"?function="+sg_fncName+"&name="+name+"&search="+value);
    switchClassID2('sg'+name,'iptsuggestLoad','iptsuggest');
	sg_XmlRequest.send(null);
}

function sg_SuggestNow(obj) {
	sg_setVarName(obj.name);
	if (obj.value!='') {
		sg_RequestSuggest(obj.name,obj.value);
	} else {
		sg_RequestSuggest(obj.name,'%');
	}
}

function sg_procReqChange() {
	// If the HTTP code changes at all, this function sg_is called
	// If it's a success, then populate the element with the
	// HTML we've received
	if (sg_XmlRequest.readyState == 4) {
	    // Get the element with ID 'syndicElem'
	    elem = document.getElementById(sg_divname);
	    elem.innerHTML = sg_XmlRequest.responseText;
	    if (elem.innerHTML.length!=0) {
	    	input=document.getElementById('sg'+sg_name);
	 	 	document.getElementById(sg_divname).style.display='inline';
            var nav4 = window.Event ? true : false;
            if(nav4){
              ancho=window.innerWidth;
              if(ancho<715){
                an=0;
                al=170;
              }else{
                an=(ancho-715)/2;
                al=175;
              }
              document.getElementById(sg_divname).style.top = (sg_getOffsetTop(input)- al)+'px'
              document.getElementById(sg_divname).style.left= (sg_getOffsetLeft(input)-an)+'px'
            }else{
              ancho=document.body.clientWidth;
              if(ancho<700){
                an=0;
              }else{
                an=(ancho-700)/2;
              }
              document.getElementById(sg_divname).style.top = (sg_getOffsetTop(input)- 170)+'px'
              document.getElementById(sg_divname).style.left= (sg_getOffsetLeft(input)-an)+'px'
            }
	    } else {
			document.getElementById(sg_divname).style.display='none';
	    }
        switchClassID2('sg'+sg_name,'iptsuggest','iptsuggestLoad');
  	}
}

function sg_setValue(from,to){
	elem = document.getElementById('sg'+to);
	elem.value=from.innerHTML;		
	elem = document.getElementById('div'+to);
	if (elem!=null) elem.style.display='none';
}

function sg_setValueText(text,to){
	elem = document.getElementById('sg'+to);
	elem.value=text;		
	elem = document.getElementById('div'+to);
	if (elem!=null) elem.style.display='none';
}

function sg_SetFnc(name) {
	sg_fncName=name;
}

function sg_setSuggestBgColor(indice){
	if (sg_Index >0) document.getElementById(sg_divname+sg_Index).style.backgroundColor='#eee';
	sg_Index=indice
	if (document.getElementById(sg_divname+sg_Index)!=null) document.getElementById(sg_divname+sg_Index).style.backgroundColor='#bdf';
}

function sg_HideOnKey(e,to,value){
	key=sg_getKeyPress(e)
	if (key==9) { 
        if (document.getElementById(sg_divname+'Hdn'+sg_Index)!=null)
              sg_setValue(document.getElementById(sg_divname+'Hdn'+sg_Index),sg_Hdnname)
        if (sg_Index >0 )
            sg_setValue(document.getElementById(sg_divname+'Val'+sg_Index),to)
        sg_hideSuggest('div'+to);
	}
}
function sg_getKeyPress(e) {
	var nav4 = window.Event ? true : false;
	if (nav4) // Navigator 4.0x
	    var whichCode = e.which
	  else // Internet Explorer 4.0x
	      var whichCode = e.keyCode
	return whichCode;
}

function sg_HideOnBlur(to){
	if (!sg_mouseOver) {
		elem = document.getElementById('div'+to);
		elem.style.display='none'
	}
}

function sg_onKeyDown() {
	sg_Index--;
	if (sg_Index<0) {
		sg_Index=0;
	}
	sg_Select(false);	
}

function sg_onKeyUp() {
	sg_Index++;
	if (document.getElementById(sg_divname+sg_Index)==null) {
		 sg_Index--;
	} 
	sg_Select(true);
}

function sg_Select(up){
	if (sg_Index >0) document.getElementById(sg_divname+sg_Index).style.backgroundColor='#bdf';
	if (up) {
		if (sg_Index>1) document.getElementById(sg_divname+(sg_Index-1)).style.backgroundColor='#eee';
	} else {
		document.getElementById(sg_divname+(sg_Index+1)).style.backgroundColor='#eee';
	}
}

function sg_getOffsetLeft(obj){
  var left=0;
  while(obj){
    left+=obj["offsetLeft"]; 
    obj=obj.offsetParent
  }
  return left
}

function sg_getOffsetTop(obj){
  var top=0;
  while(obj){
    top+=obj["offsetTop"]; 
    obj=obj.offsetParent
  }
  return top
}
function enviarform(nombre){
    if (document.getElementById) {
    document.getElementById(nombre).submit();
  } else if (document.layers) {
    document.layers[nombre].submit();
  } else if (document.all) {
    document.all(nombre).submit();
  }
}

function setKeyPressed(e){
   keyPressed=sg_getKeyPress(e)
}

function checkPressed(){

  //alert(keyPressed);
  if(key==13){
    return false;
  } else{
    return true;
  }
}

