(function($){
  $.fn.gallery = function(options) {
     var defaults = {
          folderImg : 'fileadmin/template/gallerie/images/',
          countImg : 5,
      pfeilLinks: 'url("layout/arrow_left.png")',
      pfeilRechts : 'url("layout/arrow_right.png")',
      arrowTagID : 'body',
      wrapID : 'body'
     };
     
    //Erweitern und zusammenführen der übergebenen Werten mit den standard Werten
    return this.each(function(){
      if (options) {
        $.extend(defaults,options);
      }    
      
      $(this).css({
        'width' : '100%',
        'height' : '100%',
        'overflow' : 'hidden', 
        'z-index' : '0'
      });
      
      //Bilder Container
      var imgContainer = new Array();  
      //Befindliche Seite 
      var currentSide = 0;
      //Letzte Seite von der Random Seite
      var randomLastSide = false;
      
      //var hImg = '1440';
      //var wImg = '2560';
      
      //Aufruf der Funktion um die Größe des Fensters zu ermitteln
      //resizeImg();
      //Bei ändern des Fensters neue Größe des Fensters ermitteln
      //$(window).resize(function() {
        //  resizeImg();
      //});
      
      //Array mit Tag von den Bildern erstellen
      for(var i = 0; i < defaults.countImg; i++) {
        //img Benennung muss img_0.jpg bis img_n lauten 
        //imgContainer[i] = '<img alt="img_'+i+'.jpg" title="img_'+i+'.jpg" src="'+defaults.folderImg+'img_'+i+'.jpg" />';
        imgContainer[i] = i;
      }  
      
      //Array Reihenfolge zufällig sortieren
      imgContainer = imgContainer.sort(function() {return 0.5 - Math.random();});
      
      //Einfachansicht Pfeile hinzufügen und ausblenden
      var arrowLeft = "<div id='arrowLeft'></div>";
      var arrowRight = "<div id='arrowRight'></div>";
      $(defaults.arrowTagID).append(arrowLeft);
      $(defaults.arrowTagID).append(arrowRight);
      $('#arrowLeft').css({
          'background-image' : 'url("'+defaults.pfeilLinks+'")',
          'background-position' : 'left center',
          'background-repeat' : 'no-repeat',
          'cursor' : 'pointer',
          'display' : 'none',
          'height' : '40px',
          'left' : '0',
          'position' : 'absolute',
          'top' : '38%',
          'width' : '40px'
      });
       
      $('#arrowRight').css({
        'background-image' : 'url("'+defaults.pfeilRechts+'")',
          'background-position' : 'left center',
          'background-repeat' : 'no-repeat',
          'cursor' : 'pointer',
          'display' : 'none',
          'height' : '40px',
          'right' : '0',
          'position' : 'absolute',
          'top' : '38%',
          'width' : '40px'
      });
      
      //Wenn es mehr wie eine Seite gibt wird Pfeilrechts angezeigt
      if(defaults.countImg>1) {
        $('#arrowRight').css({'display' : 'inline'});
      }
      
      //Erstes Bild wir sofort angezeigt da sonst verzögert im Intervall
      $('.bgimg').attr('src', defaults.folderImg+'img_'+imgContainer[currentSide]+'.jpg');
      
      //Random durchlauf der Bilder
      var play = window.setInterval(function() {
        currentSide++;  
        $('.bgimg').attr('src', defaults.folderImg+'img_'+imgContainer[currentSide]+'.jpg');
        
        //Wenn letzte Seite Pfeilrechts ausblenden ansonsten immer einblenden 
        if(currentSide == (imgContainer.length-1)) {
          $('#arrowRight').css({'display' : 'none'});
        }else {
          $('#arrowRight').css({'display' : 'inline'});
        }
        
        //Wenn erste Seite Pfeillinks ausblenden ansonsten immer einblenden
        if(currentSide == 0) {
          $('#arrowLeft').css({'display' : 'none'});
        }else {
          $('#arrowLeft').css({'display' : 'inline'});
        }
        
        // Endlos Schleife wenn letzte Seite wird currentSide wieder auf die Anfangseite gesetzt
        if(currentSide == imgContainer.length-1) {
          currentSide = -1;
          randomLastSide = true;
        }
      },6000);
      
      //Pfeilrechts Einzelansicht Event beim Klicken
      $('#arrowRight').click(function(){
        clearInterval(play);
        if(randomLastSide == true) {
          randomLastSide == false;
        }
        
        currentSide++;
        $('.bgimg').attr('src', defaults.folderImg+'img_'+imgContainer[currentSide]+'.jpg');
        
        //Wenn erste Seite Pfeillinks ausblenden ansonsten immer einblenden
        if(currentSide == 0) {
          $('#arrowLeft').css({'display' : 'none'});
        }else {
          $('#arrowLeft').css({'display' : 'inline'});
        }
        
        //Wenn letzte Seite Pfeilrechts ausblenden ansonsten immer einblenden
        if(currentSide == (imgContainer.length-1)) {
          $('#arrowRight').css({'display' : 'none'});
        }else {
          $('#arrowRight').css({'display' : 'inline'});
        }
      });
      
      $('#arrowLeft').click(function(){
        //Intervall stoppen
        clearInterval(play);
        
        //Wenn letzte Seite von Intervall wird die endlos Schleife mit cuurentSide = 0 mit der tatsächlichen Seite ersetzt 
        if((randomLastSide == true) && (currentSide == -1)) {
          currentSide = defaults.countImg-1;
          randomLastSide = false;
        }
        
        currentSide--;
        $('.bgimg').attr('src', defaults.folderImg+'img_'+imgContainer[currentSide]+'.jpg');
        
        //Wenn erste Seite Pfeillinks ausblenden ansonsten immer einblenden
        if(currentSide == 0) {
          $('#arrowLeft').css({'display' : 'none'});
        }else {
          $('#arrowLeft').css({'display' : 'inline'});
        }
        
        //Wenn letzte Seite Pfeilrechts ausblenden ansonsten immer einblenden
        if(currentSide == (imgContainer.length)) {
          $('#arrowRight').css({'display' : 'none'});
        }else {
          $('#arrowRight').css({'display' : 'inline'});
        }
      });
      
      //Klasse Scale für die Skalierung des Bildes hinzufügen
      $('.bgimg').css({
        'border' : '0 none',
          'display' : 'block',
          'height' : 'auto',
          'left' : '0',
          'position' : 'absolute',
          'top' : '0'
      });
      
      /*function resizeImg() {
        hScreen = $(window).height();
        wScreen = $(window).width();
        //$('.scale').css({'width' : wScreen,'height' : hScreen});
        
          var ratio = hImg / wImg;
    
        if ( (hScreen / wScreen) > ratio) {
          $(".scale").height(hScreen);
          $(".scale").width(hScreen / ratio);
        } else {
          $(".scale").width(wScreen);
          $(".scale").height(wScreen * ratio);
        }
      }*/
    });
  };
})(jQuery);
