/*

ajaxLink('url','targetId');



ajaxSubmit('url');

   <input type="hidden" name="_results" value="targetId" />

*/







/*Variales de este script*/
var d=document;


/*Submit's con AJAX*/
function ajaxSubmit(formId){
 var form=d.getElementById(formId);
 var params=escape(formValues(formId));  //lee los valores del formulario
 var url=d.getElementById(formId).getAttribute("action"); //obtiene la acción del formulario
 var target; //id de donde se mostrará el resultado
 var msg; //contenido del resultado
 var resultHolder; //es donde se mostrará el resultado
 var validation;
 var next;
 
 
 //revisa por el campo _first, el cual contiene la funcion a realizar antes de ser enviados los datos
 next=true;
 if(form._first){
  validate=form._first.value;
  next=eval(validate);
 }
 
 //revisa por el campo _results, el cual contiene el id del objeto donde se mostrará el resultado
 if (form._results){
  target=form._results.value.toLowerCase();
 }else{
  target="alert";  //en caso de no existir, el resultado se mostrará en un alert de javascript
 }
 
 httpRequest = false;

 if((params!="") && (next==true)){
  action=url+"?"+params;
  //verifica que version del objeto XMLHTTP maneja el navegador
  if (window.XMLHttpRequest) { // Mozilla, Safari, ...
   httpRequest = new XMLHttpRequest();
  //  httpRequest.overrideMimeType('text/xml');
  } else if (window.ActiveXObject) { // IE
   httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
  }

  //se verifica si la instancia del XMLHTTP fue creado correctamente
  if (!httpRequest) {
            alert('No se pudo crear una instancia de XMLHTTP, su navegado no lo soporta');
            return false;
        }
  //Acción con respecto a la respuesta del servidor
  httpRequest.onreadystatechange = function(){
   //revisa el estado en el que está
   if (httpRequest.readyState == 4) {
    if (httpRequest.status == 200) {
     msg=httpRequest.responseText; //devuelve el contenido del resultado
    } else {
     //en caso de que exista un error en el servidor, se mostrará este mensaje
     //Posibles casos: que no encuentré el servidor, desconexión de la red, que no encuentré el archivo o error en el jsp
     msg='Existe un problema en el servidor, porfavor intentelo mas tarde.';
    }
    
    if(target=="alert"){
     alert(msg); //despliega el mensaje en un alert
    }else{
     resultHolder=d.getElementById(target);
     resultHolder.innerHTML=msg; //despliega el mensaje en el target especificado
    }
  
   } //httpRequest readystate
   
  } //httpRequest function
  
  //verifica por que método será enviado
  if(d.getElementById(formId).getAttribute("method")){
   method=d.getElementById(formId).getAttribute("method");
  }else{
   method="get" //si no es especificado será get
  }

  if(method.toLowerCase()=="post"){ 
   //enviar por el método post
   httpRequest.open('POST', url, true);
   httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
   httpRequest.send(params);
  }else{
   //enviar por el método get
   httpRequest.open('GET', action, true);
         httpRequest.send(null);
  }


 }else{
  return false
 }
} //function

var httpRequest = false;

//--Links con AJAX--
//con esta funcion se ejecuta una liga a la dirección asignada (url) y se
//despliega en el objeto HTML deseado (targetObject) que pueda tener contenido html, ej. "<td><span><p>, etc"
function ajaxLink(url,targetObject){
 
 var resultHolder;
 var resultHolder=targetObject;
 httpRequest = false;
 
 //verifica que version del objeto XMLHTTP maneja el navegador
 if (window.XMLHttpRequest) { // Mozilla, Safari, ...
  httpRequest = new XMLHttpRequest();
 // httpRequest.overrideMimeType('text/xml');
 } else if (window.ActiveXObject) { // IE
  httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
 }
 //se verifica si la instancia del XMLHTTP fue creado correctamente
 if (!httpRequest) {
  alert('No se pudo crear una instancia de XMLHTTP, su navegado no lo soporta');
  return false;
 }
 //Acción con respecto a la respuesta del servidor
 httpRequest.onreadystatechange = function(){
  if (httpRequest.readyState == 4) {
   if (httpRequest.status == 200) {
    msg=httpRequest.responseText;
   } else {
    msg='Existe un problema en el servidor, porfavor intentelo mas tarde.';
   }
   resultHolder.innerHTML=msg; //despliega el mensaje en el target especificado
  }
 }
 httpRequest.open('GET', url, true);
 httpRequest.send(null);
 
}


var httpRequest = false;

//--Links con AJAX--
//con esta funcion se ejecuta una liga a la dirección asignada (url) y se
//despliega en el objeto HTML deseado (targetObject) que pueda tener contenido html, ej. "<td><span><p>, etc"
function ajaxLinki(url,targetObject){
 
 var resultHolder;
 var target=targetObject;
 httpRequest = false;
 
 //verifica que version del objeto XMLHTTP maneja el navegador
 if (window.XMLHttpRequest) { // Mozilla, Safari, ...
  httpRequest = new XMLHttpRequest();
 // httpRequest.overrideMimeType('text/xml');
 } else if (window.ActiveXObject) { // IE
  httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
 }
 //se verifica si la instancia del XMLHTTP fue creado correctamente
 if (!httpRequest) {
  alert('No se pudo crear una instancia de XMLHTTP, su navegado no lo soporta');
  return false;
 }
 //Acción con respecto a la respuesta del servidor
 httpRequest.onreadystatechange = function(){
  if (httpRequest.readyState == 4) {
   if (httpRequest.status == 200) {
    msg=httpRequest.responseText;
   } else {
    msg='Existe un problema en el servidor, porfavor intentelo mas tarde.';
   }
   resultHolder =document.getElementById(target);
   resultHolder.innerHTML=msg; //despliega el mensaje en el target especificado
  }
 }
 httpRequest.open('GET', url, true);
 httpRequest.send(null);
 
}


/* --Funciones para este script-- */

//Esta funcion lee todos los campos del formulario y los concatena
function formValues(formId){
 params="";
 var form = d.getElementById(formId);
 for(i=0;i<form.elements.length;i++){
  params+= form.elements[i].getAttribute("name") +"="+ form.elements[i].value;
  if(i<form.elements-1){params+="&";}
 }
 return params;
}


var httpRequest = false;

//--Links con AJAX--
//con esta funcion se ejecuta una liga a la dirección asignada (url) y se
//despliega en el objeto HTML deseado (targetObject) que pueda tener contenido html, ej. "<td><span><p>, etc"
function ajaxL(url,elem){



 httpRequest = false;

 //verifica que version del objeto XMLHTTP maneja el navegador
 if (window.XMLHttpRequest) { // Mozilla, Safari, ...
  httpRequest = new XMLHttpRequest();
 // httpRequest.overrideMimeType('text/xml');
 } else if (window.ActiveXObject) { // IE
  httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
 }
 //se verifica si la instancia del XMLHTTP fue creado correctamente
 if (!httpRequest) {
  alert('No se pudo crear una instancia de XMLHTTP, su navegado no lo soporta');
  return false;
 }
 //Acción con respecto a la respuesta del servidor
 httpRequest.onreadystatechange = function(){
  if (httpRequest.readyState == 4) {
   if (httpRequest.status == 200) {
    msg=httpRequest.responseText;
   } else {
    msg='Existe un problema en el servidor, porfavor intentelo mas tarde.';
   }
   elem.innerHTML=msg; //despliega el mensaje en el target especificado
  }
 }
 httpRequest.open('GET', url, true);
 httpRequest.send(null);
}



