registerNamespace("KuferTools.Punkte");

$(function () {
  
  jQuery('.punkte_bestaetigen').on('click', function (event) {
    
    var belid = jQuery(this).prop('value');
    if (!belid && KuferTools.KursDetails && KuferTools.KursDetails.BelegungsId) {
      belid = KuferTools.KursDetails.BelegungsId;
    }
    
    var buttons = {};
    
    buttons['Einlösen'] = function () {
      KuferTools.Punkte.checkCode(jQuery('.bestaetigePunkteDiv #punkte_code').val(), '', belid);
      jQuery(this).dialog('close');
    };
    
    buttons[KuferTools.Button.Bezeichnung.Abbrechen] = function () {
      jQuery(this).dialog('close');
    };
    
    KuferTools.Utils.AjaxLadebildschirm.Start();
    
    jQuery.post('index.php?tool_id=30&action=bestaetigePunkteDialog', function (data) {
      KuferTools.showMessage({meldung: data, title: 'Punkte bestätigen', buttons: buttons, width: 'auto', pressEnterFunc: buttons['Einlösen']});
      KuferTools.Utils.AjaxLadebildschirm.Stop();
    });
    
    return false;
  });
  
  jQuery('.zertifikat_beantragen').on('click', function (event) {
    KuferTools.Punkte.ShowBeantrageZertifikatDialog();
  });
  
});

KuferTools.Punkte.checkCode = function (pCode, pKnr, pBelegId) {
  if (!pBelegId || typeof pBelegId === 'undefined' || pBelegId === 'undefined') {
    pBelegId = '';
  }
  if (!pKnr) {
    pKnr = '';
  }
  
  KuferTools.Utils.AjaxLadebildschirm.Start();
  
  jQuery.ajax({
    type: 'POST',
    url: 'index.php?tool_id=30&action=checkCode&belegid=' + encodeURI(pBelegId) + '&knr=' + encodeURI(pKnr) + '&code=' + encodeURI(pCode),
    success: function (response) {
      var responseObject = KuferTools.Utils.getObjectFromJson(response);
      var meldung = '';
      var title = 'Bestätigung';
      var buttons = {};
      buttons[KuferTools.Button.Bezeichnung.Abbrechen] = function () {
        jQuery(this).dialog('close');
      };
      
      if (responseObject.status === 'nok') {//da passt was nicht
        title = 'Fehler';
        if (responseObject.technischerFehler) {
          meldung = 'Bei der Verarbeitung Ihrer Anfrage ist ein Fehler aufgetreten - bitte versuchen Sie es später erneut.';
        } else {
          meldung = 'Bitte überprüfen Sie Ihren Code ("' + responseObject.code + '") auf Tippfehler. So kann er nicht eingelöst werden. Eventuell wurde er das bereits.';
        }
      } else {
        //Prinzipiell ist der Code noch frei, aber passt auch die Kursnummer?
        if (responseObject.angefragteKursnummer && responseObject.angefragteKursnummer !== '' && responseObject.knr !== responseObject.angefragteKursnummer) {
          meldung = 'Der von Ihnen eingegebene Code passt nicht zu dem Kurs, für den Sie ihn einlösen wollen!';
        } else {
          meldung = 'Hiermit bestätigen Sie, dass Sie den Code "' + responseObject.code + '" für "' + responseObject.ktitel +
                  '" (' + responseObject.knr + ') einlösen wollen.';
          buttons[KuferTools.Button.Bezeichnung.Ok] = function () {
            window.location.href = 'index.php?tool_id=30&action=bestaetigePunkte&code=' + responseObject.code + '&belegId=' + responseObject.belegId + KuferTools.Punkte.BestaetigePunkte.Xsrf;
          };
        }
      }
      
      KuferTools.Utils.AjaxLadebildschirm.Stop();
      
      var $meldung = jQuery('<div class="container" id="ajaxResponse"></div>').append(meldung);
      
      KuferTools.showMessage({meldung: $meldung, title: title, buttons: buttons, width: 'auto'});
    },
    error: function (a, b, c) {
      var meldung = 'Bei der Verarbeitung Ihrer Anfrage ist ein Fehler aufgetreten - bitte versuchen Sie es später erneut.';
      var $meldung = jQuery('<div class="container" id="ajaxResponse"></div>').append(meldung);
      var title = 'Fehler';
      KuferTools.showMessage({meldung: $meldung, title: title, width: 'auto'});
    }
  });
};

KuferTools.Punkte.ShowBeantrageZertifikatDialog = function () {
  
  var buttons = {};
  buttons[KuferTools.Button.Bezeichnung.Abbrechen] = function () {
    jQuery(this).dialog('close');
  };
  buttons['Zertifikat beantragen'] = function () {
    KuferTools.Utils.AjaxLadebildschirm.Start();
    var $form = jQuery('#zertBeantrForm');
    $form.trigger('submit');
    jQuery(this).dialog('close');
  };
  
  KuferTools.Utils.AjaxLadebildschirm.Start();
  
  jQuery.post('index.php?tool_id=30&action=beantrageZertifikatDialog', function (data) {
    var meldung = KuferTools.Utils.getObjectFromJson(data);
    KuferTools.showMessage({meldung: meldung, title: 'Zertifikat beantragen', buttons: buttons, width: 'auto', pressEnterFunc: buttons['Zertifikat beantragen']});
    KuferTools.Utils.AjaxLadebildschirm.Stop();
  });
};

KuferTools.Punkte.ShowGruppenInfo = function () {
  var title = 'Nähere Informationen zu den Gruppen';
  var meldung = '<ul id="blak_gruppeninfo">' +
          '<li>Gruppe 1: Seminare, Workshops, Praktika, anerkannte Qualitätszirkel, Arzt-Apotheker-Gesprächskreise, wissenschaftliche Exkursionen </li>' +
          '<li>Gruppe 2: Kongresse </li>' +
          '<li>Gruppe 3: Vorträge</li>' +
          '<li>Gruppe 4: eigene Vorträge/Moderation</li>' +
          '<li>Gruppe 5: eigene Autorenschaft</li>' +
          '<li>Gruppe 6: Hospitationen</li>' +
          '<li>Gruppe 7: Strukturierte interaktive Fortbildung via Internet, CD-ROM, Fachzeitschriften mit nachgewiesener Qualifizierung und Auswertung des Lernerfolgs in Schriftform</li>' +
          '<li>Gruppe 8: Innerbetriebliche Fortbildung</li>' +
          '<li>Gruppe 9: Selbststudium</li>' +
          '</ul>';

  KuferTools.showMessage({ meldung: meldung, title: title, width: 'auto' });
};
