function createReq() {
	 var req;
	 if(window.XMLHttpRequest) {
		 try {
			  req = new XMLHttpRequest();
		 } catch(e) {
			  req = false;
		 }
	 } else if(window.ActiveXObject) {
		 try {
		      req = new ActiveXObject('Microsoft.XMLHTTP');
		 } catch(e) {
			  try {
			      req = new ActiveXObject('Msxml2.XMLHTTP');
			  } catch(e) {
			 	  req = false;
			  }
		 }
	 }
     return req;
}

function requestGET(url,query,req) {
	var aleatorio=(Math.random()*99999999);				   
	req.open('GET', url+'?'+query+'&rand='+aleatorio,true);
	req.send(null);
}

function requestPOST(url,query,req) {
	req.open('POST', url,true);
	req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');						
	req.send(query);																 
}

function doCallback(callback,item){
	eval(callback + '(item)');
}

/**
*doAjax - Funcion para Utilizar la tecnologia Ajax.
*url - Pagina a la que se le envia el pedido dinamico.
*query - Argumentos correspondientes al pedido ya sea get o post.
*callback - Funcion a la que le vamos a mandar la respuesta obtenida.
*reqtype - Tipo de envio puede ser POST o GET.					
*getxml - Formato de la respuesta obtenida, devuelve XML o TEXTO, los posibles valores son 1 o 0.
*feedback - Lugar donde podemos dar feedback mientras el usuario espera a la recarga de la pagina.
**/
function doAjax(url,query,callback,reqtype,getxml,feedback){
	var myreq = createReq();
	var contenedor = buscarObjeto(feedback);
	myreq.onreadystatechange = function(){
		if(myreq.readyState == 4){
			if (myreq.status == 200){
				var item = myreq.responseText;
				if (getxml == 1){
					item = myreq.responseXML;
				}
				contenedor.innerHTML ="";	
				doCallback(callback,item);
			}			
		}else if(myreq.readyState != 4){
			var ic=myreq.readyState*25;
			var cargando='<span class=sub style="padding: 3px 3px 3px 3px;background:#0A3C7B;color:#FFFFFF;font-family:verdana,Arial,Helvetica,sans-serif;font-size:13px;font-style:normal;font-weight: bold;">Cargando el contenido aguarde...%'+ic+'</span>';
			contenedor.innerHTML = cargando;
		}
	}	 
	if (reqtype=='POST'){
		requestPOST(url,query,myreq);
	}else{	
		requestGET(url,query,myreq);
	}
	scrollTo(0,0);
}

