/**
 * Standard JavaScript AJAX Library Plugin user_fjx050 (fj FE Library)
 * Funktionen:
 *  - Handling AJAX Calls
 *  - Plausis
 *  - benötigt prototype und scriptaculous (letzteres nur ev)
 * 
 *  
 */
 
/**
 * Changes
 * 10.09.08/fr erstellt
 * 26.05.09/fr Umgestellt auf einen Updater und die periodicalUpdater eingefuegt. Die 
 *             orginalversionen sind auskommentiert  
 * 
 *
 */
  
/**
 * Function user_fjx050_doSimpleAjax(ext,mode,output)
 * 
 * Ruft einen ajaxMode auf und stellt das Ergebnis in einen definierten Bereich.
 * Simple meint hier, dass der Aufruf einfach und schnell ist. Werden alle TYPO3 FE Features gebraucht, 
 * muss user_fjx050_doT3FEajax() genutzt werden  
 * 
 * Parms:
 * ext      string   Extension Key, welche den ajaxmode enthaelt
 * mode     string   Name des modes
 * confis   string   Uid des AJAX Conf Records 
 * output   string   Name/Id des HTML Elements, welches die Ausgabe aufnehmen soll
 * params   string   Weitere URL Parameter (inkl. &) 
 * 
 * Return   bool     true = alles ok / false = nicht ok  
 */
 
function user_fjx050_doSimpleAjax(ext,mode,confid,output,params) {
   var url = "index.php?eID=user_fjx050_ajaxdispatcher&user_fjx050_ajax_ext="+ext+"&user_fjx050_ajax_mode=" + mode + "&user_fjx050_ajax_confid=" + confid + params;
   //alert("url:" + url);
   var success = false;
   new Ajax.Updater(output, url, 
     {
        method: 'post'
     });     
} 

/*
function user_fjx050_doSimpleAjax(ext,mode,confid,output,params) {
   var url = "index.php?eID=user_fjx050_ajaxdispatcher&user_fjx050_ajax_ext="+ext+"&user_fjx050_ajax_mode=" + mode + "&user_fjx050_ajax_confid=" + confid + params;
   //alert("url:" + url);
   var success = false;
   new Ajax.Request(url, {
      method: 'get',
      onSuccess: function(transport){
         $(output).update(transport.responseText);
         success = true;
      },
      onFailure: function(transport){
         $(output).update("Error: " + transport.responseText);
         success = false;
      }
   });
   return success;    
} 

*/

/**
 * Function user_fjx050_doSimpleAjax_periodical(ext,mode,output,params,frequency,decay)
 * 
 * Ruft einen ajaxMode periodisch auf und stellt das Ergebnis in einen definierten Bereich.
 * Simple meint hier, dass der Aufruf einfach und schnell ist. Werden alle TYPO3 FE Features gebraucht, 
 * muss user_fjx050_doT3FEajax() genutzt werden  
 * 
 * Parms:
 * ext        string   Extension Key, welche den ajaxmode enthaelt
 * mode       string   Name des modes
 * confis     string   Uid des AJAX Conf Records 
 * output     string   Name/Id des HTML Elements, welches die Ausgabe aufnehmen soll
 * params     string   Weitere URL Parameter (inkl. &) 
 * frequency  num      Wiederholfrequenz in sec
 * decay      num      verzoegerung wiederholfrequenz, wenn immer der gleiche Inhalt kommt
 * 
 * Return    void
 */


function user_fjx050_doSimpleAjax_periodical(ext,mode,confid,output,params,frequency,decay) {
   var url = "index.php?eID=user_fjx050_ajaxdispatcher&user_fjx050_ajax_ext="+ext+"&user_fjx050_ajax_mode=" + mode + "&user_fjx050_ajax_confid=" + confid + params;
   //alert("url:" + url);
   var success = false;

   new Ajax.PeriodicalUpdater(output, url,
    {
      method: 'post',
      frequency: frequency,
      decay: decay
    }); 

}



/**
 * Function user_fjx050_doT3FEajax(pid,mode,output)
 * 
 * Ruft einen Ajax-Mode auf, welcher als normaler fjx050 Mode aufgebaut ist. Der Rückgabewert muss mit Echo ausgegeben werden
 * und das Script anschliessend mit Exit verlassen werden!
 * Vorteil: Alle TYPO3 FE Features stehen zur Verfügung
 * Nachteil: langsame Verarbeitung. 
 * Damit so wenig wie möglich gerendert werden muss, sollte das page Objekt im TS gelöscht und minimal neu angelegt werden
 * Bsp.:
 * page >
 * page = PAGE
 * page.10 < styles.content.get (oder noch einfacher....)        
 * 
 * Parms:
 * pid      string   Paqe-Id to call
 * output   string   Name/Id des HTML Elements, welches die Ausgabe aufnehmen soll
 * params   string   Weitere URL Parameter (inkl. &) 
 * 
 * Return   bool     true = alles ok / false = nicht ok  
 */

function user_fjx050_doT3FEajax(pid,output,params) {
   var url = "index.php?id=" + pid + params;
   //alert("url:" + url);
   var success = false;
   new Ajax.Updater(output, url, 
     {
        method: 'post'
     });   
} 

/*
function user_fjx050_doT3FEajax(pid,output,params) {
   var url = "index.php?id=" + pid + params;
   //alert("url:" + url);
   var success = false;
   new Ajax.Request(url, {
      method: 'get',
      onSuccess: function(transport){
         $(output).update(transport.responseText);
         success = true;
      },
      onFailure: function(transport){
         $(output).update("Error: " + transport.responseText);
         success = false;
      }
   });
   return success;    
} 

*/

/**
 * Function user_fjx050_doT3FEajax_periodical(pid,mode,output,frequency,decay)
 * 
 * Ruft einen Ajax-Mode periodisch auf, welcher als normaler fjx050 Mode aufgebaut ist. Der Rückgabewert muss mit Echo ausgegeben werden
 * und das Script anschliessend mit Exit verlassen werden!
 * Vorteil: Alle TYPO3 FE Features stehen zur Verfügung
 * Nachteil: langsame Verarbeitung. 
 * Damit so wenig wie möglich gerendert werden muss, sollte das page Objekt im TS gelöscht und minimal neu angelegt werden
 * Bsp.:
 * page >
 * page = PAGE
 * page.10 < styles.content.get (oder noch einfacher....)        
 * 
 * Parms:
 * pid      string   Paqe-Id to call
 * output   string   Name/Id des HTML Elements, welches die Ausgabe aufnehmen soll
 * params   string   Weitere URL Parameter (inkl. &) 
 * frequency  num    Wiederholfrequenz in sec
 * decay      num    Verzoegerung wiederholfrequenz, wenn immer der gleiche Inhalt kommt
 *  
 * Return   void     true = alles ok / false = nicht ok  
 */
 
function user_fjx050_doT3FEajax_periodical(pid,output,params,frequency,decay) {
   var url = "index.php?id=" + pid + params;
   //alert("url:" + url);
   var success = false;
   
   new Ajax.PeriodicalUpdater(output, url,
    {
      method: 'post',
      frequency: frequency,
      decay: decay
    });    
} 

                 