  
/*clase Ajax, permite trabajar en ajax como un objeto
Metodos: 
	procesar(string data, obj funcion,string url,string type);  envia una peticion al servidor y retorna un xml a la funcion enviada como parametro
	Parametros: 
		data: formulario serializado en urlencode
		funcion: funcion encargada de procesar la respuesta del servidor
		url: url del archivo a consultar en el servidor
		type = xml o text, la respuesta que devuelve
	*/
		
function Ajax(){
	this.procesar = procesar;
	this.procSync = procSync;
	this.showLoading = _showLoading;
	this.delLoading = _delLoading;
	}

function _creaAjax(){
          var objetoAjax=false;
         try {
          /*Para navegadores distintos a internet explorer*/
          objetoAjax = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
          try {
                    /*Para explorer*/
                    objetoAjax = new ActiveXObject("Microsoft.XMLHTTP");
                   }
                   catch (E) {
                   objetoAjax = false;
          }
          }
        if (!objetoAjax && typeof XMLHttpRequest!='undefined') {
          objetoAjax = new XMLHttpRequest(); }
		  return objetoAjax;
		  }

function procSync(data,url,type,ubicacion_body){
	this.showLoading(ubicacion_body);
	//alert("arregla lo de post");
	ajax = _creaAjax();
	// Preparamos la petición con parametros
	ajax.open("post",url, false);
	ajax.onreadystatechange = function(){}
	// Realizamos la petición
	ajax.setRequestHeader('Content-Type',  'application/x-www-form-urlencoded');
	ajax.send(data);
		// Devolvemos el resultado
	if(type=="XML"){
		this.delLoading(ubicacion_body);
		return ajax.responseXML;
	}
	else{ 
		this.delLoading(ubicacion_body);
		return ajax.responseText;
 }
}

function procesar(data,url,obj,funcion,type,ubicacion_body){
	//realizo la peticion de la semana
	var ajax = _creaAjax();
	ajax.open("POST",url,true);
	_this = this;
	ajax.onreadystatechange = function(){
		if(ajax.readyState==1){
			
			_this.showLoading(ubicacion_body);
		}
		else if(ajax.readyState==4){
			if(ajax.status==200){
				
				_this.delLoading(ubicacion_body);
			//aki veo ke hago, llamar a una funcion especialista
				var exec;
				//alert(ajax.responseText);
				if(type=="XML")
					exec = "obj."+ funcion + "(ajax.responseXML)";
				else 
					exec ="obj." + funcion + "(ajax.responseText)";
				eval(exec);
			}
			else if(ajax.status==404){
			//crear algo ek diga 404
			}
			}
	}
	ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	ajax.send(data);
}

function _showLoading(ubicacion_body){
	/*
	var div;	
	if(ubicacion_body == 1){
		div = document.getElementById('ajaxLoading');
		}else{
			   div = parent.document.getElementById('ajaxLoading');
				 }
		
	if(typeof(div)!='undefined' && div != null){

  	div.style.visibility='visible';
	
	 }*/
}

function _delLoading(ubicacion_body){
/*	var div;	
	if(ubicacion_body == 1){
		div = document.getElementById('ajaxLoading');
		}else{
			   div = parent.document.getElementById('ajaxLoading');
				 }
				
	if(typeof(div)!='undefined' && div != null){
	 	div.style.visibility='hidden';
          }		*/	
}