/**
 * Javascript für das KuferTool Portrait für Dozenten (Tool 37)
 */

$(function() {
  
  registerNamespace('KuferTools.Dozentenportrait');
  
  jQuery('.portrait_bearbeiten').on('click', function() {
    var buttons = {};
    
    buttons[KuferTools.Button.Bezeichnung.Ok] = function() {
      var $form = jQuery('form#dozentenPortraitBearbeitenForm');
      if(KuferTools.ValidateFormInput($form)) {
        KuferTools.Utils.AjaxLadebildschirm.Start();
        $form.trigger('submit');
      }
      else {
        if(jQuery('#pfoto_inArbeit').length > 0 && jQuery('#pfoto_inArbeit').hasClass('form_error')) {
          KuferTools.showMessage({meldung: "Bitte wählen Sie für den Upload nur Bilddateien im Format JPEG aus. (z. B. meinBild.jpg)", title: 'Falsches Bildformat'});
        }
      }
    };
    
    buttons[KuferTools.Button.Bezeichnung.Abbrechen] = function () {
      jQuery(this).dialog('close');
    };
    
    KuferTools.Utils.AjaxLadebildschirm.Start();
    jQuery.post('index.php?tool_id=' + KuferTools.ToolId + '&action=portraitBearbeiten&dnr=' + KuferTools.Dnr, function (data) {
      KuferTools.showMessage({meldung: data, title: 'Dozentenportrait bearbeiten', buttons: buttons, width: '800', pressEnterFunc: buttons['Speichern']});
      
      if($('.portrait_foto_loeschen_input').val() == 'ja') {
        $('.portrait_foto_loeschen_button').trigger('click');
      }
      
      KuferTools.Utils.AjaxLadebildschirm.Stop();

    });
  });
  
  $(document).on('change', '.portrait_foto_input', function() {
    setFotoUploadFilenameAndClearButton(this);
    setVorschau(this);
    if($(this).val() !== '') {
      versteckeNichtBestaetigtesFotoLoeschen();
      versteckeBestaetigtesFotoLoeschen();
    }
  });
  
  $(document).on('click', '.portrait_foto_clear', function() {
    clearFotoUpload();
    resetVorschau();
    zeigeNichtBestaetigtesFotoLoeschen();
    zeigeBestaetigtesFotoLoeschen();
  });
  
  $(document).on('click', '.portrait_foto_in_bearbeitung_loeschen_button', function() {
    setVorschauFotoLeeren();
    versteckeFotoUpload();
    setFotoInBearbeitungLoeschen();
  });
  
  $(document).on('click', '.portrait_foto_in_bearbeitung_doch_nicht_loeschen_button', function() {
    resetVorschau();
    zeigeFotoUpload();
    clearFotoInbearbeitungLoeschen();
  });
  
  $(document).on('click', '.portrait_foto_loeschen_button', function() {
    setVorschauFotoLeeren();
    versteckeFotoUpload();
    versteckeNichtBestaetigtesFotoLoeschen();
    setFotoLoeschen();
  });
  
  $(document).on('click', '.portrait_foto_doch_nicht_loeschen_button', function() {
    resetVorschau();
    zeigeFotoUpload();
    zeigeNichtBestaetigtesFotoLoeschen();
    clearFotoLoeschen();
  });
  
  function versteckeFotoUpload()
  {
    clearFotoUpload();
    $('.portrait_foto_upload').hide();
  }
  
  function zeigeFotoUpload()
  {
    $('.portrait_foto_upload').show();
  }
  
  function setFotoInBearbeitungLoeschen()
  {
    $('.portrait_foto_in_bearbeitung_loeschen_button').hide();
    $('.portrait_foto_in_bearbeitung_doch_nicht_loeschen_button').show();
    $('.portrait_foto_in_bearbeitung_loeschen_input').val('ja');
  }
  
  function clearFotoInbearbeitungLoeschen()
  {
    $('.portrait_foto_in_bearbeitung_loeschen_button').show();
    $('.portrait_foto_in_bearbeitung_doch_nicht_loeschen_button').hide();
    $('.portrait_foto_in_bearbeitung_loeschen_input').val('');
  }
 
  function setFotoLoeschen()
  {
    $('.portrait_foto_loeschen_button').hide();
    $('.portrait_foto_doch_nicht_loeschen_button').show();
    $('.portrait_foto_loeschen_input').val('ja');
  }
  
  function clearFotoLoeschen()
  {
    $('.portrait_foto_loeschen_button').show();
    $('.portrait_foto_doch_nicht_loeschen_button').hide();
    $('.portrait_foto_loeschen_input').val('');
  }
 
  function versteckeNichtBestaetigtesFotoLoeschen()
  {
    clearFotoInbearbeitungLoeschen();
    $('.portrait_foto_in_bearbeitung_loeschen').hide();
  }
  
  function zeigeNichtBestaetigtesFotoLoeschen()
  {
    $('.portrait_foto_in_bearbeitung_loeschen').show();
  }
  
  function versteckeBestaetigtesFotoLoeschen()
  {
    clearFotoLoeschen();
    $('.portrait_foto_loeschen').hide();
  }
  
  function zeigeBestaetigtesFotoLoeschen()
  {
    $('.portrait_foto_loeschen').show();
  }
 
  function setVorschau(input)
  {
    if (input.files && input.files[0]) {
      var $vorschau = $('.portrait_vorschau_neu');
      var reader = new FileReader();
      // Auch hier die Klassen besser setzen
      //var $img = $(input).parents('div').find('img');
      reader.onload = function(e) {
        
        if($vorschau.find('img').length == 0) {
          $vorschau.html('<img>');
        }
        $vorschau.find('img').attr('src', e.target.result);
        //$img.attr('src', e.target.result);
      }
      
      reader.readAsDataURL(input.files[0]); // convert to base64 string
    }
    
    $('.portrait_vorschau_bisher').hide();
    $('.portrait_vorschau_neu').show();
  }
  
  function setVorschauFotoLeeren()
  {
    $('.portrait_vorschau_neu').html('Kein Bild vorhanden!');
    
    $('.portrait_vorschau_bisher').hide();
    $('.portrait_vorschau_neu').show();
  }
  
  function resetVorschau()
  {
    $('.portrait_vorschau_bisher').show();
    $('.portrait_vorschau_neu').hide();
  }
  
  function setFotoUploadFilenameAndClearButton(input)
  {
    var fotoName = ($(input).parents('.portrait_foto_upload').find('.portrait_foto_filename'));
    var fileName = $(input).val();
    //ggf. unerwuenschten Pfad abschneiden z.B. C:\fakepath\xyz.txt  =>  xyz.txt
    // zuerst trennen anhand von Backslash
    var filenameAry = fileName.split('\\');
    fileName = filenameAry[filenameAry.length - 1];
    //danach Splitten anhand von Slash, da nicht sicher ist, was der Browser verwendet
    var filenameAry = fileName.split('/');
    fileName = filenameAry[filenameAry.length - 1];
    
    fotoName.text(fileName);
    
    var $clearButton = $(input).parents('.portrait_foto_upload').find('.portrait_foto_clear');
    if(fileName != '') {
      $clearButton.css('display', 'inline-block');
    } else {
      $clearButton.css('display', 'none');
    }
  }
  
  function clearFotoUpload()
  {
    var $fileInput = $('.portrait_foto_input');
    
    $fileInput.val('');
    $fileInput.trigger('change');

    setFotoUploadFilenameAndClearButton($fileInput);
  }
});
