

/**
 * Ajax Events Klasse
 */
function date_planing() {

   var user_id=0;                      // Angezeigter User
   var selected_users = new Array();   // User mit gleichem Termin

   /**
    * User umschalten
    * @param int user   User ID
    */
   this.switch_user = function(user) {
      
      user_id = user;
      var this_object = this;

      var result = document.getElementById('result').style;
      var result_loading = document.getElementById('result_loading').style;

      var url = get_userurl();
      if(url.length>0) url="&"+url;

      result.display="none";
      result_loading.display="";
      new Ajax.Updater('result', "index.php?action=ajax_request&do=switchuser&user="+user, {
            method: 'post',
            parameters: url,
            asynchronous: true,
            onComplete: function(r) {
               result.display="";
               result_loading.display="none";
            }
         }
      );

   }

   /**
    * Termin setzen/entfernen
    * @param int day   Tag
    * @param int hour  Stunde
    * @param String checkbox_id  ID der Angeklickte Checkbox
    * @param String loading_id   ID des Laden-Bildes der Checkbox
    * @param String cell_id      ID der Tabellen Zelle
    */
   this.switch_date = function(day, hour, checkbox_id, loading_id, cell_id) {

      document.getElementById(checkbox_id).style.display="none";
      document.getElementById(loading_id).style.display="";
      var this_object = this;

      var myAjax = new Ajax.Request(
         "index.php?action=ajax_request&do=switchdate&user="+user_id+"&day="+day+"&hour="+hour, {
            method: 'get',
            asynchronous: true,
            onComplete:function(r) {
               document.getElementById(checkbox_id).style.display="";
               document.getElementById(loading_id).style.display="none";
               this_object.switch_user(user_id);
            }
         }
      );

   }

   /**
    * User zum gemeinsamen Termin auswaehlen
    * @param Object object    Object der Checkbox
    */
   this.set_user = function(object) {

      var id = object.value;
      var select_object = document.getElementById('user');

      if(!selected_users[id] || selected_users[id]==false) {
         selected_users[id]=true;
      } else {
         selected_users[id]=false;
      }

      if(object.checked==false) {
         var i=0;
         while(document.getElementById('date_user_'+i)) {

            if(document.getElementById('date_user_'+i).checked==true) {
               select_object.options[i].selected=true;
               this.switch_user(document.getElementById('date_user_'+i).value);
               break;
            }
            i++;
            
         }
      } else {
         select_object.options[id].selected=true;
         this.switch_user(id);
      }

   }

   /**
    * Ausgewaehlte User in eine Url umsetzten zur Ajax uebertragung
    */
   function get_userurl() {
      var url="";
      var i=0;
      for(var field in selected_users) {
         if(selected_users[field]==true) {
            if(i>0) url+="&";
            url+="user[]="+field;
         }
         i++;
         if(i>=selected_users.length) break;
      }

      return url;

   }

}



