Edit in JSFiddle

$(function(){

  var $container = $('#container'),
      $photos = $container.find('.photo'),
      $loadingIndicator = $('<div class="loading"><span><img src="http://i.imgur.com/IE7iw.gif" /></span></div>');

  // trigger Isotope after images have loaded
  $container.imagesLoaded( function(){
    $container.isotope({
      itemSelector : '.photo',
      masonry: {
        columnWidth: 200
      }
    });
  });
  
  // shows the large version of the image
  // shows small version of previously large image
  function enlargeImage( $photo ) {
    $photos.filter('.large').removeClass('large');
    $photo.addClass('large');
    $container.isotope('reLayout');
  }
  
  $photos.find('a').click( function() {
    var $this = $(this),
        $photo = $this.parents('.photo');

    if ( $photo.hasClass('large') ) {
      // already large, just remove
      $photo.removeClass('large');
      $container.isotope('reLayout');
    } else {
      if ( $photo.hasClass('has-big-image') ) {
        enlargeImage( $photo );
      } else {
        // add a loading indicator
        $this.append( $loadingIndicator );
        
        // create big image
        var $bigImage = $('<img>', { src: this.href });

        // give it a wrapper and appended it to element
        $('<div>', { 'class': 'big-image' })
          .append( $bigImage )
          .appendTo( $this )
          .imagesLoaded( function() {
            $loadingIndicator.remove()
            enlargeImage( $photo );
          });
        
        // add a class, so we'll know not to do this next time
        $photo.addClass('has-big-image');
        
      }
    }

    return false;
  });

});
body { font-family: sans-serif; }

#container {
  border: 2px solid;
  width: 800px;
}

.photo {
  width: 200px;
  float: left;
}

.photo.double {
  width: 480px;
}

.photo.large {
  width: 600px;
  z-index: 3;
}

.photo.large .small-image,
.photo .big-image { display: none; }

.photo .small-image,
.photo.large .big-image { display: block; }

.photo img {
  display: block;
  width: 100%;
}

.photo .loading {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 10;
  background: hsla( 0, 0%, 100%, 0.7 );
}

.photo .loading span {
  position: absolute;
  left: 50%;
  top: 50%;
}

.photo .loading img {
  width: auto;
  position: absolute;
  left: -16px;
  top: -16px;
}

/* Start: Recommended Isotope styles */

/**** Isotope Filtering ****/

.isotope-item {
  z-index: 2;
}

.isotope-hidden.isotope-item {
  pointer-events: none;
  z-index: 1;
}

/**** Isotope CSS3 transitions ****/

.isotope,
.isotope .isotope-item {
  -webkit-transition-duration: 0.8s;
     -moz-transition-duration: 0.8s;
          transition-duration: 0.8s;
}

.isotope {
  -webkit-transition-property: height, width;
     -moz-transition-property: height, width;
          transition-property: height, width;
}

.isotope .isotope-item {
  -webkit-transition-property: -webkit-transform, opacity;
     -moz-transition-property:    -moz-transform, opacity;
          transition-property:         transform, opacity;
}

/**** disabling Isotope CSS3 transitions ****/

.isotope.no-transition,
.isotope.no-transition .isotope-item,
.isotope .isotope-item.no-transition {
  -webkit-transition-duration: 0s;
     -moz-transition-duration: 0s;
          transition-duration: 0s;
}

/* End: Recommended Isotope styles */
<p>Click for hi-res</p>

<div id="container" class="photos clearfix">
  
  <div class="photo">
    <a href="http://farm5.static.flickr.com/4113/5013039951_3a47ccd509_b.jpg"><img class="small-image" src="http://farm5.static.flickr.com/4113/5013039951_3a47ccd509.jpg" /></a>
  </div>

  <div class="photo">
    <a href="http://farm5.static.flickr.com/4131/5013039885_0d16ac87bc_b.jpg"><img class="small-image" src="http://farm5.static.flickr.com/4131/5013039885_0d16ac87bc.jpg" /></a>
  </div>

  <div class="photo">
    <a href="http://farm5.static.flickr.com/4086/5013039583_26717f6e89_b.jpg"><img class="small-image" src="http://farm5.static.flickr.com/4086/5013039583_26717f6e89.jpg" /></a>
  </div>

  <div class="photo">
    <a href="http://farm5.static.flickr.com/4144/5013039541_17f2579e33_b.jpg"><img class="small-image" src="http://farm5.static.flickr.com/4144/5013039541_17f2579e33.jpg" /></a>
  </div>

  <div class="photo">
    <a href="http://farm5.static.flickr.com/4146/5013646070_f1f44b1939_b.jpg"><img class="small-image" src="http://farm5.static.flickr.com/4146/5013646070_f1f44b1939.jpg" /></a>
  </div>

  <div class="photo">
    <a href="http://farm5.static.flickr.com/4153/5013039741_d860fb640b_b.jpg"><img class="small-image" src="http://farm5.static.flickr.com/4153/5013039741_d860fb640b.jpg" /></a>
  </div>

  <div class="photo">
    <a href="http://farm5.static.flickr.com/4113/5013039697_a15e41fcd8.jpg"><img class="small-image" src="http://farm5.static.flickr.com/4113/5013039697_a15e41fcd8_b.jpg" /></a>
  </div>

  <div class="photo">
    <a href="http://farm5.static.flickr.com/4124/5013646314_c7eaf84918.jpg"><img class="small-image" src="http://farm5.static.flickr.com/4124/5013646314_c7eaf84918.jpg" /></a>
  </div>

  <div class="photo">
    <a href="http://farm5.static.flickr.com/4089/5013040075_bac12ff74e.jpg"><img class="small-image" src="http://farm5.static.flickr.com/4089/5013040075_bac12ff74e_b.jpg" /></a>
  </div>
  
</div> <!-- #container -->

External resources loaded into this fiddle: