

  /*
    AJAX
    //http://www.javarss.com/ajax/j2ee-ajax.html
  */

 
  // Inicializace AJAXu
  function ajax_init(){  

    if (window.XMLHttpRequest) 
    {
      AJAXForms = new XMLHttpRequest();
      // branch for IE/Windows ActiveX version
    } // end if 
    else if (window.ActiveXObject) 
    {
      AJAXForms = new ActiveXObject("Microsoft.XMLHTTP");
    } // end else 

  } // end function 
  // ---
  

  
  //  volani js funkce 'function_name' pres ajax
  function processRequest(function_name) {
    if ( typeof( window["AJAXForms"]) != "undefined" )                     
    {
      if (AJAXForms.readyState == 4) 
      {
        if (AJAXForms.status == 200) 
        {
          if (function_name == "")
          {
            function_name = "processChange";
          } // end if 
          eval(function_name + "();");   
        } // end if 
        else 
        {
          /* alert ( "Not able to retrieve description" ); */
        } // end else 
      } // end if 
    } // end if 
  } // end function   
  // ---  


  //  volani js funkce 'function_name' pres ajax
  function processRequest_params(function_name, id) {
    if ( typeof( window["AJAXForms"]) != "undefined" )                     
    {
      if (AJAXForms.readyState == 4) 
      {
        if (AJAXForms.status == 200) 
        {
          if (function_name == "")
          {
            function_name = "processChange";
          } // end if 
          eval(function_name + "(" + id + ");");   
        } // end if 
        else 
        {
          /* alert ( "Not able to retrieve description" ); */
        } // end else 
      } // end if 
    } // end if 
  } // end function   
  // ---    
  
  // ajaxovy submit - ilustracni priklad - aplikacni funkce se z teto funkce rozpiruje a prejmenuje 
  function ajax_submit() 
  {                            
    // inicilizace
    ajax_init(); 

    // sestaveni parametru pro volani - pozor v php skriptu (definovanem v promenne "url"), ktery tyto parametry nacita z POST je nutne pouzit "nasi" php funkci "unescape_js()"
    parameters = "";

      // automaticke nacteni dat z vybraneho formulare ve formatu pro URL vcetne prevedeni na escape sekvence pokud je to vyzadovano
      queryString = get_fullformquery("ass_form");     
      
      // doplneni dalsich parametru - pokud by se posilal text (mezery, spec. znaky a atd..), musel by osetrit js funkci "escape()" => ("napis=" + escape("český nadpis") )
      parameters = parameters + "group=ass";    
      parameters = parameters + queryString; // doplneni parametru z fomulare
    // ---
    
    // sestaveni url pro php skript, ktery bude vracet (tisknout! => echo) data
    // pozor v php skriptu (definovanem v promenne "url"), ktery tyto parametry nacita z POST je nutne pouzit "nasi" php funkci "unescape_js()"
    // bylo by dobre, aby se vsechny ajaxove vystupy osetrovali na jednom miste (ajax_action.php) - rozliseni podle parametru "group".
    url = get_wwwroot() + "/ecp_core/modules/ajax/ajax_action.php"; 
    // ---
    
    // 1. moznost odesilat data postem
    /*
    AJAXForms.onreadystatechange = function () { processRequest("processChange"); }; // parametr "processChange" se nahradi nazvem vlastni funkce ktera osetri vystup
    AJAXForms.open('POST', url, true);
    AJAXForms.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    AJAXForms.setRequestHeader("Content-length", parameters.length);
    AJAXForms.setRequestHeader("Connection", "close");
    AJAXForms.send(parameters);
    */
    
    // 2. moznost
    /*
    AJAXForms.onreadystatechange = function () { processRequest("processChange"); } ; // parametr "processChange" se nahradi nazvem vlastni funkce ktera osetri vystup
    AJAXForms.open("POST", get_wwwroot() + "/ecp_core/modules/ajax/ajax_action.php?" + parameters);
    AJAXForms.send(null);
    */
    
    // POZOR AJAX vraci vzdy jediny vystup "AJAXForms.responseText".
    
  } // end function 
  // ---

  
  // implicitni osetreni aktualizace html kodu daty z ajaxe (AJAXForms.responseText) - ilustracni
  function processChange() {
      
   alert(AJAXForms.responseText); 
   
   // ilustracni priklad pouziti s naplnenim divu "asistent" vygenerovanymi daty a naslednym, podminenym, refocusem na input
   /*
   var res = ge("asistent");
   
   res.innerHTML = AJAXForms.responseText;     

   if (ass_last_control_id != 0)
   {
     refocus("ass_form", ge_n(ass_last_control_id));
   } // end if 
   */
  
  } // end function
  // --- 
                  

  /*
    // ---
  */
  
  

