
    //
    //
    // jquery Slideshow plugin .
    // Wisselt dias automatisch met de opgegeven tijdsinterval.
    // Blijkt het laden van de afbeelding langer te duren dan de tijdsinterval,
    // dan worden de dia's pas gewisseld als de afbeelding geladen is.
    //
    // Author:  J. Boersma
    //
    // Date:  29-10-2008
    //
    // Options (default):
    //   - pad            : pad naar de afbeeldingsbestanden        (default 'img/')
    //   - interval       : tijd tussen dia's in miliseconden       (default 4000)
    //   - fadeSpeed      : fadeOut tijd in miliseconden of string  (default 'slow')
    //   - afbeeldingen   : afbeeldingen, commagescheiden vb: 'img1.jpg, img2.jpg, img3.bmp'  verplicht !
    //
    //
    // Noodzakelijke plugins:
    //
    //   - jquery.timer.js
    //   - jquery.center.js
    //
    //
    
    
    // De plugin met al zijn functies insluiten
    (function($) {

      $.fn.loadingSlides = function(options) {
        
        // Extend our default options with those provided.
        var opts = $.extend({}, $.fn.loadingSlides.defaults, options);
        
        var afbLoad  = false;
        var timerKlaar = false;
        var imgStyle = '" style="display: block; margin-left: auto; margin-right: auto; vertical-align: middle"';
        
        //naam voor childDivs maken 
        var idP = $(this).attr('id') + 'afb';
        var h = $(this).height();
        var b = $(this).width();
        //ChildDivs toevoegen, waarin de afbeeldingen straks worden geladen
        //2 ChildDivs om straks tussen te kunnen faden.
        $(this).append('<div id="' + idP + '1"</div><div id="' + idP + '2"</div>');
        idP = '#' + idP;
        $(idP + '1').height(h).width(b).css("position", "absolute");
        $(idP + '2').height(h).width(b).css("position", "absolute");
        $(idP + '2').hide();

        //imgs array maken en vullen:
        var afbn = opts.afbeeldingen.split(',');
        var imgs = new Array;
        for (i=0; i<afbn.length; i++) {
          imgs[i] = new Array;
          imgs[i]['naam'] = opts.pad + afbn[i];
          imgs[i]['afb']  = null;
        }
        //eerste afbeelding laden
        $(idP + '1')
          .html('<img src="' + imgs[0]['naam'] + imgStyle + ' />');
          
        //slideshow starten
        newSlide(1);
        
        function timerReady() {
          timerKlaar = true;
          //afbeelding wisselen
          clearTimeout(TimerID);
          wisselSlide(TimerIndx);
        }

        var TimerIndx;
        var TimerId;
        
        function newSlide(indx) {
          //interval starten
          //$.timer(opts.interval, function(timer) {
          TimerIndx = indx
          TimerID = setTimeout( timerReady , opts.interval);
          //controleren of afbeelding reeds geladen is
          if (!imgs[indx]['afb']) {
            //afbeelding laden
            imgs[indx]['afb'] = new Image();
            $(imgs[indx]['afb'])
              .load(function(){
                $(this)
                  .css("margin-left", "auto")
                  .css("margin-right", "auto")
                  .css("vertical-align", "middle")
                  .css("display", "block");
                afbLoad = true;                
                //afbeelding wisselen
                wisselSlide(indx);
              })
              .attr('src', imgs[indx]['naam']);
          }
          else {
            afbLoad = true;
            //afbeelding wisselen
            wisselSlide(indx);
          }
        }
      
      
        function wisselSlide(indx) {
          if (timerKlaar && afbLoad) {
            //dia wisselen                  
            if ($(idP + '2').css('display') == 'none') {
              //idp2 wordt nieuwe dia
              idPin = idP + '2';
              idPout = idP + '1';
            }
            else {
              //idp1 wordt nieuwe dia
              idPin = idP + '1';
              idPout = idP + '2';
            }
            $(idPin).empty().append(imgs[indx]['afb']);
            //$(idPin, 'img').center();
            $(idPout).fadeOut('slow', function(){$(this).hide()});
            $(idPin).fadeIn('slow');
            indx++;
            if (indx >= imgs.length) {indx= 0}
            timerKlaar = false;
            afbLoad = false;
            newSlide(indx);
          }          
        }
        
      };
      
      
      $.fn.loadingSlides.defaults = {
          pad       : 'img/',
          interval  : 4000,
          fadeSpeed : 'slow'
      };

      
        

      
    // Einde insluiten Plugin  
    })(jQuery);   


