var ak = (typeof ak == 'undefined') ? {} : ak;
ak.mt2002 = ak.mt2002 || {};

/**
 *
 */
ak.mt2002.TicketSlider = Class.create({
  /**
   * initializes the Ticket slider
   * @param {Object} options Supported properties:
   *        <ul>
   *        <li>updateUrl {String} (mandatory)</li>
   *        <li>ivwCode   {String} (optional)</li>
   *        <li>pageName  {String} (optional)</li>
   *        </ul>
   */
  initialize: function(options) {
    options = options || {};
    this.ivwCode   = options.ivwCode;
    this.pageName  = options.pageName;
    this.updateUrl = options.updateUrl;
  },
  
  /**
   * toggles the content of the given container
   * @param {Element} container
   * @param {eventId} eventId
   */
  toggle: function(containerIndex, eventId) {
    container = $('tickets-box-'+containerIndex);
    MTC.reloadTracking(this.ivwCode, this.pageName);
    if (container.mtToggle) return container.mtToggle();
    var textNode = $('tickets-text-' + containerIndex);
    var hide;
    var show = function() {
      new Effect.BlindDown(container, {});
      textNode.innerHTML = "schlie&szlig;en";
      container.mtToggle = hide;
    };
    hide = function() {
      new Effect.BlindUp(container, {});
      textNode.innerHTML = "Tickets";
      container.mtToggle = show;
    };
    new Ajax.Updater(container, this.updateUrl, {
        method     : 'get',
        parameters : {
          single_event_id : eventId
        },
        onComplete : function() {
          container.mtToggle = show;
          container.mtToggle();
        }
    });
  }
});