var closetext = 'Schließen';
var continuetext = 'Weiter';
var abofailtitle = 'Bestellung fehlgeschlagen';
var abofailtext = 'Die Bestellung konnte nicht vorgenommen werden. <br /><br />';
var abotext = 'Bestellung';
var aboregtext = 'Bestellen';

if(SystemLang == 'en') {
  closetext = 'Close';
  continuetext = 'Continue';
  abofailtitle = 'Order failed';
  abofailtext = 'The Order could not be completed. <br /><br />';
  abotext = 'Order for Single Issue';
  aboregtext = 'Order';
}

var OrderClass = Class.create();
OrderClass.prototype = {
  oModal: null,
  oModal2: null,
  Mag: null,
  FilterAssociations: null,

  initialize: function() {
    this.FilterAssociations = new Array();
    return this;
  },

  Open: function(mag) {
    var _this = this;
    var sParam = "mag="+mag+"&";
    StdAjax(
      '/'+SystemLang+'/order.html',
      {
        parameters: sParam,
        onSuccess: function(result) {
          //_this.oModal = new Modal(1,750,300);
          _this.oModal = new Modal(1,675);

          if (result.status == false) {
            _this.oModal.AddButton(
              closetext,
              function() { _this.oModal.Close(); }
            );
            _this.oModal.ShowError(abofailtitle, abofailtext, function () {location.reload(true) } );

          }
          else {
            _this.oModal.AddButton(
              continuetext,
              function() { Order.Send(mag); }
            );

            _this.oModal.DefineCloseFunction
            (
              function(oModal)
              {
                 oModal.Destroy();
              }
            );
            _this.oModal.Show(abotext,result.contents);
          }

        },
        onError: function(result, errors) {
          alert('error');
        }
      }
    );
  },
  Close: function() {
    this.oModal.Close();
    location.reload();
  },

  CloseBeforeOpen: function() {
    this.oModal._vBlurPage();
    this.oModal.Close();
  },

  Send: function(mag) {
    var _this = this;
    var sParam = "iStep=2&mag="+mag+"&";

    StdAjax(
      '/'+SystemLang+'/order.html',
      {
        parameters: sParam,
        onSuccess: function(result) {
          if (result.status == false) {
            _this.oModal.ShowError(abofailtitle, abofailtext, function () {location.reload(true) } );
          }
          else {
            if(result.step==4) {
              _this.oModal.Show(abotext,result.contents);
              _this.oModal.AddButton(
                closetext,
                function() { Order.Close(); }
              );
              _this.oModal.RemoveCancelButton();
            }
            else {
              _this.oModal.Show(abotext,result.contents);
              $A(document.getElementsByClassName('error', $('form_register'))).invoke('removeClassName', 'error');
              _this.oModal.AddButton(
                aboregtext,
                function() { Order.Send2(mag); }
              );

              _this.oModal.DefineCloseFunction
              (
                function(oModal)
                {
                   oModal.Destroy();
                }
              );
            }
          }
        },
        onError: function(result, errors) {
          alert('error');
        }
      }
    );
  },

  OpenSend: function(mag) {
    var _this = this;
    var sParam = "iStep=2&login=1&mag="+mag+"&";

    StdAjax(
      '/'+SystemLang+'/order.html',
      {
        parameters: sParam,
        onSuccess: function(result) {
          _this.oModal = new Modal(1,675);
          if (result.status == false) {
            _this.oModal.ShowError(abofailtitle, abofailtext, function () {location.reload(true) } );
          }
          else {
            _this.oModal.Show(abotext,result.contents);
            $A(document.getElementsByClassName('error', $('form_register'))).invoke('removeClassName', 'error');
            _this.oModal.AddButton(
              aboregtext,
              function() { Order.Send2(mag); }
            );
            _this.oModal.DefineCloseFunction
            (
              function(oModal)
              {
                 oModal.Destroy();
              }
            );
          }
        },
        onError: function(result, errors) {
          alert('error');
        }
      }
    );
  },

  Send2: function(mag) {
    var sParam = AjaxFormCollect( 'form_register' );
    var _this = this;

    sParam += "iStep=3&mag="+mag+"&";
    StdAjax(
      '/'+SystemLang+'/order.html',
      {
        parameters: sParam,
        onSuccess: function(result) {
          if (result.status == false) {
            if(result.step==2) {
              if(result.errtext.length>0) {
                _this.oModal.HideErrorHint();
                $A(document.getElementsByClassName('error', $('form_register'))).invoke('removeClassName', 'error');
                var errors = result.error.split(",");
                for(i=0;i<errors.length;i++) {
                  $('label_'+errors[i]).addClassName('error');
                }
                _this.oModal.ShowErrorHint(result.errtext);
              }
            }
            else {
              _this.oModal.ShowError(abofailtitle, abofailtext, function () {location.reload(true) } );
            }
          }
          else {
            _this.oModal.Show(abotext,result.contents);
            _this.oModal.AddButton(
              closetext,
              function() { Order.Close(); }
            );
            _this.oModal.RemoveCancelButton();
          }
        },
        onError: function(result, errors) {
          alert('error');
        }
      }
    );
  }

}


Order = new OrderClass();
