/*
*Esta libreria es una libreria AJAX creada por Javier Mellado
*y descargada del portal AJAX Hispano http://www.ajaxhispano.com
*contacto javiermellado@gmail.com
*
*Puede ser utilizada, pasada, modificada pero no olvides mantener
*el espiritu del software libre y respeta GNU-GPL
*/

//método estático para crear elementos ajax
function runProcAjx(pag, capa, params, metod,onEnd,onError,noHist)
{
		FAjax(pag, capa, params, metod,onEnd,onError,noHist);
		return false;
}	

function runproceso(pag, capa, params, metod,onEnd,onError)
{
	FAjax(pag, capa, params, metod,onEnd,onError);
	return false;
}



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 FAjax (url,capa,valores,metodo,onEnd,onError)
{
  var ajax=creaAjax();
  var capaContenedora = document.getElementById(capa);
	/*Creamos y ejecutamos la instancia si el metodo elegido es POST*/
	if(metodo.toUpperCase()=='POST'){
	         ajax.open ('POST', url, true);
	         ajax.onreadystatechange = function() {
	         if (ajax.readyState==1) {
                if (capaContenedora!=null)
									 capaContenedora.innerHTML="<font id='espera'>... cargando ...</font>";
	         }
	         else if (ajax.readyState==4){
	           if(ajax.status==200)
	           {
                  var txt = ajax.responseText;
                  var result = true;
                  if (txt.indexOf("#ERROR#")>=0)
                  {
                      var txtArr = txt.split("#ERROR#");
                      txt = txtArr[0]+txtArr[1];
                      result = false;
                  }
									if (capa!="")
									    document.getElementById(capa).innerHTML=txt;
                  if (result)
                  {
                    if (onEnd!="" && onEnd!=null)
                        eval(onEnd);
                  }
                  else
                  {
                    //alert ("onError:"+onError+"("+onEnd+")");
                    if (onError!="" && onError!=null)
                        eval(onError+"('"+txt+"')");
                  }
                  
	           }
	           else if(ajax.status==404){
	              if (capaContenedora!=null)
									 capaContenedora.innerHTML = "La direccion "+url+" no existe";
	           } else {
                if (capaContenedora!=null)
								 	 capaContenedora.innerHTML = "Error2: "+ajax.status+"<br>"+ajax.responseText;
	           }
          }
	}
	 				 //ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
					 ajax.setRequestHeader('Content-Type','text/plain; charset=UTF-8');
					 ajax.setRequestHeader('User-Agent','jajajuas');
	         //ajax.setRequestHeader('User-Agent', 'AJAX');
					 ajax.send(valores);
	         return false;
	}
	/*Creamos y ejecutamos la instancia si el metodo elegido es GET*/
	if (metodo.toUpperCase()=='GET'){
		 			 document.write(url+"?"+valores);
	         ajax.open ('GET', url+"?"+valores, true);
	         ajax.onreadystatechange = function() {
	         if (ajax.readyState==1) {
                if (capaContenedora!=null)
	                                      capaContenedora.innerHTML="<font id='espera'>... cargando ...</font>";
	         }
	         else if (ajax.readyState==4){
	                   if(ajax.status==200){
	                        if (capa!="")
														 document.getElementById(capa).innerHTML=ajax.responseText;
                          if (onEnd!="" && onEnd!=null)
													      eval(onEnd);
	                   }
	                   else if(ajax.status==404)
	                                             {
	
	                                            if (capaContenedora!=null)
																								 capaContenedora.innerHTML = "La direccion "+url+" no existe";
	                                             }
	                                             else
	                                             {
																							 	if (capaContenedora!=null)
	                            										 capaContenedora.innerHTML = "Error: "+ajax.status+"("+ajax.status+")";
	                                             }
	                                    }
	                  }
	         ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
					 ajax.send(null);
	         return false;
	}
} 


