/**
 * Die Datei enthaellt alle Funktionen fuer die Mobile Version.
 * Diese Funktionen werden auch von der normalen Version benutzt.
 *
 */
$(document).ready(function() {
   initSize();
   $(window).resize(function() {
      initSize();
   });
   
   // Testimonial laden
   loadTestimonial();
   $('#testimonial-more').click(function() {
      loadTestimonial();
      return false;
   });
   
   // Vorbelegung des Kontaktformulars
   $('#kontaktformular #name, #kontaktformular #email, #kontaktformular #nachricht').each(function() {
      // Vorbelegten text speichern
      $(this).data('vorbelegung', $(this).val());
      // Vorbelegung loeschen
      $(this).focusin(function() {
         if($(this).val() == $(this).data('vorbelegung')) {
            $(this).val('');
         }
      });
      $(this).focusout(function() {
         if($(this).val().length == 0) {
            $(this).val($(this).data('vorbelegung'));
         }
      });
   });
   
   // Kontaktformular abschicken
   $('#kontaktformular').submit(function() {
      if(checkKontaktformular() == true) {
         $('#kontaktformular .error_hint').hide();
         // Daten abschicken
         $.post('scripts/nachricht.php?abschicken',
               {
                  name: $('#kontaktformular #name').val(),
                  email: $('#kontaktformular #email').val(),
                  nachricht: $('#kontaktformular #nachricht').val()
               },
               function(data, textStatus, XMLHttpRequest) {
                  var dataObject = eval('(' + data + ')');
                  if(dataObject.erfolg) {
                     // Nachricht wurde abgeschickt
                     $('#kontaktformular').css('height', $('#kontaktformular').height() + 'px');
                     $('#kontaktformular-wrapper').slideUp(700, function() {
                        $('#kontaktformular').append('<p class="success">Vielen Dank!<br/>Ihre Nachricht wurde erfolgreich verschickt.</p>');
                        $('#kontaktformular .success').slideDown(500);
                     });
                  }
                  else {
                     $('#kontaktformular .error_hint').html('Ein interner Fehler ist aufgetreten').show();
                  }
               }
         );
      }
      else {
         $('#kontaktformular .error_hint').show();
      }
      
      return false;
   });
});

/**
 * Passt die Ausgabe an die maximal verfuegbare Bildschirmbreite an.
 *
 */ 
function initSize() {
   // Versuchen die Bildschirmbreite auszulesen
   if(getWidth() > 0) {
      $('body').css({width: getWidth() + 'px', 'max-width': '100%'});
   }
}

function getWidth() {
    xWidth = null;
    if(window.screen != null)
      xWidth = window.screen.availWidth;
 
    if(window.innerWidth != null)
      xWidth = window.innerWidth;
 
    if(document.body != null)
      xWidth = document.body.clientWidth;
 
    return xWidth;
}


/**
 * Funktion zum Laden des naechsten Testimonials.
 *
 */ 
function loadTestimonial() {
   $.getJSON('scripts/testimonials.php', {gettestimonial: 1}, function(data, textStatus) {
      if(data) {
         $('#testimonial').fadeOut(500, function() {
            $('#testimonial p').eq(0).html(data.text);
            $('#testimonial p.signature').html(data.autor);
            $('#testimonial').fadeIn(500);
         });
      }
   });
}

/**
 * Ueberpreuft die Eingaben des Nutzers im Kontaktformular
 *
 * @return bool true, wenn Das formular valide ist, sonst false
 */ 
function checkKontaktformular() {
   var valide = true;
   // Name angegeben?
   if($('#kontaktformular #name').val().length == 0 ||
      $('#kontaktformular #name').val() == $('#kontaktformular #name').data('vorbelegung')) {
      valide = false;
      $('#kontaktformular #name').addClass('error');
   }
   else {
      $('#kontaktformular #name').removeClass('error');
   }
   
   // Email angegeben?
   var emailfilter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
   if($('#kontaktformular #email').val().length == 0 ||
      $('#kontaktformular #email').val() == $('#kontaktformular #email').data('vorbelegung') ||
      emailfilter.test($('#kontaktformular #email').val()) == false) {
      valide = false;
      $('#kontaktformular #email').addClass('error');
   }
   else {
      $('#kontaktformular #email').removeClass('error');
   }
   
   // Nachricht angegeben?
   if($('#kontaktformular #nachricht').val().length == 0 ||
      $('#kontaktformular #nachricht').val() == $('#kontaktformular #nachricht').data('vorbelegung')) {
      valide = false;
      $('#kontaktformular #nachricht').addClass('error');
   }
   else {
      $('#kontaktformular #nachricht').removeClass('error');
   }
   
   return valide;
}
