jQuery.fn.galerie = function(options) {
  settings = jQuery.extend({
     img: [],
     speed: 700
  }, options);
  
  var aktive = 0;
  
  $('#prev_img').click(function() {
  	  showImg(-1);
	  return false;
  });
  $('#next_img').click(function() {
  	  showImg(1);
	  return false;
  });
  
  function showImg(dir)
  {
  	aktive = aktive + dir;
  	if(aktive < 0) aktive = settings.img.length-1;
  	if(aktive >= settings.img.length) aktive = 0;
  	var old_img = $('#bgimg img');
  	dir *= -1;
  	var new_img = $('<img src="' + settings.img[aktive] + '" style="left:' + (dir*((old_img.width())+old_img.offset().left)) + 'px" />');
  	new_img.onImagesLoaded(function(_this){
  		_gaq.push(['_trackEvent', 'Galerie', 'Ansicht']);
		$(_this).prependTo('#bgimg').css('display', 'block');
		var new_end_left = Math.floor( ($(window).width()/2) - ($(_this).width()/2) );
		if(-1*dir > 0)
		{
			var new_left = '+=' + (Math.abs($(_this).offset().left)+new_end_left) +'px'
		}
		else if(-1*dir < 0)
		{
			var new_left = '-=' + (Math.abs($(_this).offset().left)-new_end_left) +'px'
		}
		$('#bgimg img').animate({left:  new_left}, settings.speed,
			function(){old_img.remove();});
		});
  }

  $('#bgimg img').css('display', 'none');
  $('#bgimg img').onImagesLoaded(function(_this){
    $(_this).css('left', Math.floor(($(window).width()/2)-($(_this).width()/2))).fadeIn(500);
  });

  return this;
}

jQuery.fn.onImagesLoaded = function(_cb) { 
  return this.each(function() {
 
    var $imgs = (this.tagName && this.tagName.toLowerCase()==='img')?$(this):$('img',this),
        _cont = this,
            i = 0,
    _done=function() {
      if( typeof _cb === 'function' ) _cb(_cont);
    };
 
    if( $imgs.length ) {
      $imgs.each(function() {
        var _img = this,
        _checki=function(e) {
          if((_img.complete) || (_img.readyState=='complete'&&e.type=='readystatechange') )
          {
            if( ++i===$imgs.length ) _done();
          }
          else if( _img.readyState === undefined ) // dont for IE
          {
            $(_img).attr('src',$(_img).attr('src')); // re-fire load event
          }
        }; // _checki \\
 
        $(_img).bind('load readystatechange', function(e){_checki(e);});
        _checki({type:'readystatechange'}); // bind to 'load' event...
      });
    } else _done();
  });
};
