zeusSlots = Class.create();
zeusSlots.prototype =
{
  initialize: function (Options)
  {

    this.Options = {
      id: 'default',
      object_id: 'default',
      callback: 'module/index'
    
    };
    
    Object.extend(this.Options, Options || {});
   
    this.Init();
   
  },
  
  Init: function()
  {
    
  
  },
  
  addRow: function()
  {
    days = '';
    for(i = 1; i < 8; i++) {
      if ($('dayofweek_' + i)) {
        days += $('dayofweek_' + i).checked ? '1' : '0';
      }
      else {
        days += '1';
      }
    }
    
    date_from = $('day-from').value + '-' + $('month-from').value + '-' + $('year-from').value;
    date_to = $('day-to') ? $('day-to').value + '-' + $('month-to').value + '-' + $('year-to').value : null;
    time_blocks = $('time') ? $('time').value : null;
    a_length = $('appointment-length') ? $('appointment-length').value : null;
    a_start = $('appointment-start') ? $('appointment-start').value : null;
    date_till = $('day-till') ? $('day-till').value + '-' + $('month-till').value + '-' + $('year-till').value : null;
    days_before = $('days-before-reservation') ? $('days-before-reservation').value : null;
    
    new Ajax.Updater('slot-container', env+'/plekjevrijsupplier/addslot' , {
      parameters: {
        date_from: date_from,
        date_to: date_to,
        date_till: date_till,
        days_before: days_before,
        time_blocks: time_blocks,
        a_length: a_length,
        a_start: a_start,
        days: days
      },
      evalScripts: true,
      onComplete: function()
      {
      }
    });
  },
  
  deleteRow: function(date_from, date_to)
  {
    new Ajax.Updater('slot-container', env+'/plekjevrijsupplier/deleteslot' , {
      parameters: {
        date_from: date_from,
        date_to: date_to
      },
      evalScripts: true,
      onComplete: function()
      {
      }
    });
    
  },
  
  switchCustomerAddress: function()
  {
    if (!$('custom-address-check').checked) {
      $('address').disabled = false;
      $('zipcode').disabled = false;
      $('city').disabled = false;
      $('state').disabled = false;
    }
    else {
      $('address').disabled = true;
      $('zipcode').disabled = true;
      $('city').disabled = true;
      $('state').disabled = true;
    }
  },
  
  toggleTellafriend: function()
  {
    if ($('forward-container').style.display == 'block') {
      $('forward-container').style.display = 'none';
      $('result-list').style.display = 'block';
    }
    else {
      $('forward-container').style.display = 'block';
      $('result-list').style.display = 'none';
    }
  },
  
  addFavorite: function(id)
  {
    new Ajax.Request(env+'/plekjevrijvisitor/addfavorite' , {
      parameters: {
        id: id
      },
      evalScripts: true,
      onComplete: function()
      {
        alert('Het plekje is toegevoegd aan uw favorieten');
      }
    });
  },
  
  addBooking: function(elem, date, date_str, id)
  {
    if ($('day-'+$('date').value)) {
      $('day-'+$('date').value).removeClassName('selected');
    }
    
    if($(elem).hasClassName('selected')) {
      $(elem.removeClassName('selected'));
    }
    else {
      $(elem.addClassName('selected'));
    }
    $('date').value = date;
    $('date-string').innerHTML = date_str;
    var i = 0;
    if ($('time')) {
      $('time').options.length = 0;
      var first = true;
      for (i in times[date]) {
        if (typeof(times[date][i]) == 'string') {
          if (first) {
            $('time').value = times[date][i];
            $('time-string').innerHTML = times[date][i];
            first = false;
          }
          $('time').options[$('time').options.length] = new Option(times[date][i], times[date][i]);
        }
      }
    }
    //window.location.href = '/bezoeker/nieuwe-reservering/' + id + '/' + date;
  },
  
  //addOption: function(date, id)
  addOption: function(elem, date, date_str, id)
  {
    if ($('day-'+$('date').value)) {
      $('day-'+$('date').value).removeClassName('selected');
    }
    
    if($(elem).hasClassName('selected')) {
      $(elem.removeClassName('selected'));
    }
    else {
      $(elem.addClassName('selected'));
    }
    $('date').value = date;
    $('date-string').innerHTML = date_str;
    
    if ($('time')) {
    var i = 0;
    $('time').options.length = 0;
      var first = true;
      for (i in times[date]) {
        if (typeof(times[date][i]) == 'string') {
          if (first) {
            $('time').value = times[date][i];
            $('time-string').innerHTML = times[date][i];
            first = false;
          }
          $('time').options[$('time').options.length] = new Option(times[date][i], times[date][i]);
        }
      }
    }
    
    //window.location.href = '/bezoeker/optie-toevoegen/' + id + '/' + date;
  }
}

var slots = new zeusSlots;
