// JavaScript Document
// fonctions globales
var ajaxGui = {
 id : 0,
 vars : new Array(),
 currentClass : 'none',
 doNothingOnSave: false,
 Reset: function() { this.id = 0; this.vars = new Array(); this.currentClass = 'none' ; },
 HighLightLine: function(id) { _Elem('ajaxGuiLigne'+id).style.backgroundColor = '#99ccff'; },
 ResetLines: function () {
       ids = getElementsByClass('ajaxGuiLigne');
       for (i=0; i<ids.length; i++) {
           _Elem(ids[i].id).style.backgroundColor = '';
       }
       this.id = 0;
 },
 View: function (className, id) {
       this.ResetLines();
       this.currentClass = className;
       _Elem('panneauDetail').innerHTML = '<div align="center"><img src="'+imagesPath+'loader.gif" alt="Chargement en cours" /></div>';
        
       remoteObj = new ajax_gui(ajaxCallBack);
       remoteObj.ajaxView(className, id);
 },
 Edit: function (className, id) {
       if (!className) className = this.currentClass; else this.currentClass = className ; 
       if (!id && id != 0) id = this.id; else this.id = id ;
       if (id >= 0) {
        _Elem('panneauDetail').innerHTML = '<div align="center"><img src="'+imagesPath+'loader.gif" alt="Chargement en cours" /></div>';
        remoteObj = new ajax_gui(ajaxCallBack);
        remoteObj.ajaxEdit(className, id);
       }
 },
 Delete: function () {
         remoteObj = new ajax_gui(ajaxCallBack);
         remoteObj.ajaxDelete(this.currentClass, this.id);
 },
 Save: function (obj) {
       if (obj) {
         remoteObj = new ajax_gui(ajaxCallBack);
         remoteObj.ajaxSave(this.currentClass, this.id, obj);
       }
 },
 Close: function (id) {
       if (id > 0) {
        this.View(this.currentClass, id);
       } else {
       this.ResetLines();
       this.Reset();
       _Elem('panneauDetail').innerHTML = '';
       }
 },
 Error: function (aryRet) {
       if (_Elem('panneauDetail'))
        _Elem('panneauDetail').innerHTML = aryRet;
        else alert(aryRet);
 },
 CallUserFunction: function (fctName, args) {
                   remoteObj = new ajax_gui(ajaxCallBack);
                   remoteObj.ajaxCallUserFunction(this.currentClass, fctName, args);
 },
 CallUserFunctionObj: function (fctName, args) {
                   remoteObj = new ajax_gui(ajaxCallBack);
                   remoteObj.ajaxCallUserFunctionObj(this.currentClass, fctName, args);
 },
 CallGlobalFunction: function (fctName, args) {
                   remoteObj = new ajax_gui(ajaxCallBack);
                   remoteObj.ajaxCallGlobalFunction(fctName, args);
 },
 CallGlobalFunctionObj: function (fctName, args) {
                   remoteObj = new ajax_gui(ajaxCallBack);
                   remoteObj.ajaxCallGlobalFunctionObj(fctName, args);
 }
}

var ajaxCallBack = {
   	ajaxView: function (aryRet) {
      if ( aryRet['sec'] == true ) {
           _Elem('panneauDetail').innerHTML = aryRet['html'];
           ajaxGui.HighLightLine(aryRet['vars']['id']);
           ajaxGui.id = aryRet['vars']['id'];
           ajaxGui.vars = aryRet['vars'];           
           if (hasViewCallBack) eval('ajaxViewCallBack_'+ajaxGui.currentClass+'();');
      } else {
        ajaxGui.Error(aryRet);
      }
   	},
   	ajaxSave: function (aryRet){
   	    if ( aryRet['sec'] == true ) {
              if (ajaxGui.doNothingOnSave == false)
              _Elem('panneauDetail').innerHTML = aryRet['html'];
              ajaxGui.id = aryRet['vars']['id'];
              ajaxGui.vars = aryRet['vars'];
              if (hasSaveCallBack) eval('ajaxSaveCallBack_'+ajaxGui.currentClass+'();');
   	    } else {
   	    ajaxGui.Error(aryRet);
        }
    },
    ajaxDelete: function (aryRet) {
        if ( aryRet['sec'] == true ) {
           if (hasDeleteCallBack) eval('ajaxDeleteCallBack_'+ajaxGui.currentClass+'();');           
        } else {
   	    ajaxGui.Error(aryRet);
        }
    },
   	ajaxEdit: function (aryRet) {
   	    if ( aryRet['sec'] == true ) {
              if (ajaxGui.doNothingOnSave == false)
              _Elem('panneauDetail').innerHTML = aryRet['html'];
              ajaxGui.id = aryRet['vars']['id'];
              ajaxGui.vars = aryRet['vars'];
              if (hasEditCallBack) eval('ajaxEditCallBack_'+ajaxGui.currentClass+'();');
   	    } else {
   	    ajaxGui.Error(aryRet);
        }
   	
    },
    ajaxCallUserFunction: function (aryRet) {
        if ( aryRet['sec'] == true ) {
             eval (aryRet['fctName']+'CallBack(aryRet[\'vars\']);');
        } else {
   	    ajaxGui.Error(aryRet);
        }
    },
    ajaxCallUserFunctionObj: function (aryRet) {
        if ( aryRet['sec'] == true ) {
             eval (aryRet['fctName']+'CallBack(aryRet[\'vars\']);');
        } else {
   	    ajaxGui.Error(aryRet);
        }
    },
    ajaxCallGlobalFunction: function (aryRet) {
        if ( aryRet['sec'] == true ) {
             eval (aryRet['fctName']+'CallBack(aryRet[\'vars\']);');
        } else {
   	    ajaxGui.Error(aryRet);
        }
    },
    ajaxCallGlobalFunctionObj: function (aryRet) {
        if ( aryRet['sec'] == true ) {
             eval (aryRet['fctName']+'CallBack(aryRet[\'vars\']);');
        } else {
   	    ajaxGui.Error(aryRet);
        }
    }
  }
var ongletCourant = 't1';
function chTab(id) {
    _Elem(ongletCourant).className = 'ongletInactif';
    _Elem(id).className = 'ongletActif';
    Hide(ongletCourant+'Content');
    Show(id+'Content');
    ongletCourant = id;
	eval(ajaxGui.currentClass+"ChTab('"+id+"')");
}