function clsAjax(Lugar,Leyenda){
//---------------------------------------------------------------------------------------
	var xmlHttp;
	var url;	
	var LugValor;
	var lsRetornarVarlor;	
	var lbLeyendaCargando;
	var lbSincronizar = false;
	var lsNombreFuncion = "Sincronizar()";
	
	this.url=url;
	this.Ajax=Ajax;
	this.Sincronizar=Sincronizar;
	this.Inicializar=Inicializar;
	this.ValorChanged=ValorChanged;	
	this.RetornarDato=RetornarDato;
	this.NombreFuncion=NombreFuncion;	
	this.GetXmlHttpObject=GetXmlHttpObject;	
	this.lbLeyendaCargando=lbLeyendaCargando;
	this.Inicializar(Lugar,Leyenda);
//----------------------------------------------------------------------------------------------------------------------
	function Inicializar(Lugar,Leyenda){
		this.url = "template/obtenerDatos.php";	
		LugValor = Lugar;
		this.lbLeyendaCargando = Leyenda;
	}
//----------------------------------------------------------------------------------------------------------------------
	// Si se va a ejecutar una sincronizacion o no
	function Sincronizar(Opcion){
		lbSincronizar = Opcion;
	}
//----------------------------------------------------------------------------------------------------------------------
	// Establecer el nombre de la funcion que se invocaria al momento de terminar el AJAX
	function NombreFuncion(Funcion){
		lsNombreFuncion=Funcion;
	}
//----------------------------------------------------------------------------------------------------------------------	
	function RetornarDato(Funcion){
		lsRetornarVarlor = Funcion;	
	}	
//----------------------------------------------------------------------------------------------------------------------
	// Invocar el metodo del ajax
	function Ajax(opc,filtro){
		var parametros = "psOpcion=" + opc + "&psFiltro=" + filtro;						
		if(document.getElementById(LugValor) != null){
			try{
				PaginaCargando();
			}catch(err){}		
			document.getElementById(LugValor).innerHTML = '<img src="archivos/combox.gif" border="0" >'+(this.lbLeyendaCargando==true?'<label style="font-family:Tahoma;font-size: 8pt;"> cargando.....</label>':'');
		}
		xmlHttp = this.GetXmlHttpObject(this.ValorChanged);
		xmlHttp.open("POST", this.url , true);		
		xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		xmlHttp.send(parametros);			
	}
//---------------------------------------------------------------------------------------
	function ValorChanged() {
  		if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
    		if(this.LugValor!=''){
				try{
					PaginaCargada();
				}catch(err){}		
				if(document.getElementById(LugValor) != null){
					document.getElementById(LugValor).innerHTML = unescape(xmlHttp.responseText);
				}
				if(lsRetornarVarlor != ""){						
					try{ eval(lsRetornarVarlor+"('"+unescape(xmlHttp.responseText)+"')"); }catch(e){}
				}
				if(lbSincronizar == true){
					lbSincronizar=false;
					if(lsNombreFuncion!=''){
						eval(lsNombreFuncion);
					}
				}
			}
  		}		
	}
//---------------------------------------------------------------------------------------
	function GetXmlHttpObject(handler) { 
  		var objXmlHttp = null;
  		if (navigator.userAgent.indexOf("Opera") >= 0) {
			if(navigator.appVersion.indexOf("9.")<0){
				alert("El sistema no puede trabajar en esta version de opera");
				return
			}
			try { 
				objXmlHttp = new XMLHttpRequest();
				objXmlHttp.onload = handler;
				objXmlHttp.onerror = handler; 
				return objXmlHttp;
			} catch(e) { 
				alert("El sistema no puede trabajar en Opera");
      			return;
    		}    
    		return;
  		}  
  		if (navigator.userAgent.indexOf("MSIE") >= 0) { 
    		var strName="Msxml2.XMLHTTP";
    		if (navigator.appVersion.indexOf("MSIE 5.5") >= 0) {
      			strName = "Microsoft.XMLHTTP";
    		} 
    		try { 
      			objXmlHttp=new ActiveXObject(strName);
      			objXmlHttp.onreadystatechange = handler;
      			return objXmlHttp;
    		} catch(e) { 
      			alert("Error. Scripting para ActiveX puede estar desactivado");
      			return;
    		} 
  		} 
  		if (navigator.userAgent.indexOf("Mozilla") >= 0) {
    		objXmlHttp = new XMLHttpRequest();
    		objXmlHttp.onload = handler;
    		objXmlHttp.onerror = handler; 
    		return objXmlHttp;
  		}
	}	
//----------------------------------------------------------------------------------------------------------------------
}