
/**********************************************************************
 * DYNAJAX Project [v1.06] - code by Benoit BEGUIN
 * first release: october 2007
 * last update: october 2008
 * Paris, France
 * 
 * DynAjax web site: http://www.dynajax.org/
 * DynAjax samples web site: http://samples.dynajax.org/
 * DynAjax download: http://download.dynajax.org/
 * Any question: mailto:admin@dynajax.org
 * Company support: http://www.odesys.fr
 **********************************************************************/

/* ------- GENERIC CONTENT ------- */
var DynAjaxManager = Class.create();

DynAjaxManager.prototype = {
    initialize: function() {},
    getDynaData: function(classId, methodName, args, callBackMethod) {
        var dynaResult = null;
        var asyncCall = false;
        if (callBackMethod && typeof callBackMethod == "function") {
            asyncCall = true;
        }
        
        new Ajax.Request('AjaxDataHandlers/DynAjaxHandler.aspx',
            {   method: "post",
                asynchronous: asyncCall,
                parameters: "classId=" + encodeURIComponent(classId) + "&methodName=" + encodeURIComponent(methodName) + "&methodArgs=" + encodeURIComponent(Object.toJSON(args)),
                onSuccess: function(request){
                    dynaResult = request.responseText.evalJSON();
                    if (dynaResult.__DynAjaxException__19770110314159265__) {
                        throw dynaResult;
                    }
                    if (callBackMethod) {
                        callBackMethod(dynaResult);
                    }
                },
                onException: function(e) {
                    if (dynaResult && dynaResult.__DynAjaxException__19770110314159265__) {
                        var dynaExc = dynaResult.__DynAjaxException__19770110314159265__;
                        if (dynaExc.action == "JSMethod") {
                            dynaResult = null;
                            eval(dynaExc.parameter + "()");
                        }
                        else if (dynaExc.action == "JSEval") {
                            dynaResult = null;
                            eval(dynaExc.parameter);
                        }
                        else if (dynaExc.action == "returnValue") {
                            dynaResult = dynaExc.parameter;
                        }
                    }
                    else {
                        dynaResult = null;
                    }
                    if (callBackMethod) {
                        callBackMethod(dynaResult);
                    }
                }
            });
        return dynaResult;
    }
};
var dynAjaxManager = new DynAjaxManager();
/* ------- END OF GENERIC CONTENT ------- */

/* ------- DYNAMIC CONTENT ------- */
var GestionMessagesClass = Class.create();
GestionMessagesClass.prototype = {
  initialize: function() {},

  nouveauMessage: function(corps, numMbre, convId, callBackMethod) {
    var args = [corps, numMbre, convId];
    return dynAjaxManager.getDynaData('GestionMessages', 'nouveauMessage', args, callBackMethod);
  }, 
  majMessage: function(msgId, corps, dateExp, callBackMethod) {
    var args = [msgId, corps, dateExp];
    return dynAjaxManager.getDynaData('GestionMessages', 'majMessage', args, callBackMethod);
  }, 
  archiverMessage: function(login, callBackMethod) {
    var args = [login];
    return dynAjaxManager.getDynaData('GestionMessages', 'archiverMessage', args, callBackMethod);
  }, 
  supprimerMessage: function(msgId, callBackMethod) {
    var args = [msgId];
    return dynAjaxManager.getDynaData('GestionMessages', 'supprimerMessage', args, callBackMethod);
  }
};
var GestionMessages = new GestionMessagesClass();

var MembresClass = Class.create();
MembresClass.prototype = {
  initialize: function() {},

  membreParNumero: function(numMbre, callBackMethod) {
    var args = [numMbre];
    return dynAjaxManager.getDynaData('Membres', 'membreParNumero', args, callBackMethod);
  }
};
var Membres = new MembresClass();

var SessionManagerClass = Class.create();
SessionManagerClass.prototype = {
  initialize: function() {},

  membreConnecte: function(callBackMethod) {
    var args = [];
    return dynAjaxManager.getDynaData('SessionManager', 'membreConnecte', args, callBackMethod);
  }, 
  conversationParId: function(convId, callBackMethod) {
    var args = [convId];
    return dynAjaxManager.getDynaData('SessionManager', 'conversationParId', args, callBackMethod);
  }, 
  conversationsParCriteres: function(id, sujet, prive, langue, mbre, dateCreation, archive, dateMaj, msgText, page, nbLignes, callBackMethod) {
    var args = [id, sujet, prive, langue, mbre, dateCreation, archive, dateMaj, msgText, page, nbLignes];
    return dynAjaxManager.getDynaData('SessionManager', 'conversationsParCriteres', args, callBackMethod);
  }, 
  envoiPagesSuivantes: function(page, nbLignes, callBackMethod) {
    var args = [page, nbLignes];
    return dynAjaxManager.getDynaData('SessionManager', 'envoiPagesSuivantes', args, callBackMethod);
  }, 
  MessageParId: function(msgId, callBackMethod) {
    var args = [msgId];
    return dynAjaxManager.getDynaData('SessionManager', 'MessageParId', args, callBackMethod);
  }, 
  enregistrerConversation: function(sujet, prive, langue, dateExpir, callBackMethod) {
    var args = [sujet, prive, langue, dateExpir];
    return dynAjaxManager.getDynaData('SessionManager', 'enregistrerConversation', args, callBackMethod);
  }, 
  majConversation: function(id, sujet, prive, langue, dateExpir, callBackMethod) {
    var args = [id, sujet, prive, langue, dateExpir];
    return dynAjaxManager.getDynaData('SessionManager', 'majConversation', args, callBackMethod);
  }, 
  archiverConversation: function(convId, callBackMethod) {
    var args = [convId];
    return dynAjaxManager.getDynaData('SessionManager', 'archiverConversation', args, callBackMethod);
  }, 
  supprimerConversation: function(convId, callBackMethod) {
    var args = [convId];
    return dynAjaxManager.getDynaData('SessionManager', 'supprimerConversation', args, callBackMethod);
  }
};
var SessionManager = new SessionManagerClass();


/* ------- END OF DYNAMIC CONTENT ------- */