diff -urp /Users/jturton/Desktop/galleryformatter.orig/galleryformatter.module /Users/jturton/Desktop/galleryformatter.dynamic/galleryformatter.module
--- /Users/jturton/Desktop/galleryformatter.orig/galleryformatter.module	2010-10-19 07:40:31.000000000 -0700
+++ /Users/jturton/Desktop/galleryformatter.dynamic/galleryformatter.module	2010-12-03 09:17:02.000000000 -0800
@@ -93,6 +93,17 @@ function galleryformatter_widget_setting
           '#default_value' => $widget['modal'],
           '#description' => t("Select which jQuery modal module you'd like to display the full link image in, if any."),
         );
+        
+        $settings['galleryformatter']['load_mode'] = array(
+          '#type' => 'select',
+          '#title' => t('Static or dynamic loading'),
+          '#options' => array('static'=>'static','dynamic'=>'dynamic'),
+          '#default_value' => $widget['load_mode'],
+          '#description' => t("Determine whether the slides are loaded dynamically by Javascript, or statically into the HTML."),
+        );
+        
+        
+        
         break;
 
       case 'save':
@@ -102,6 +113,7 @@ function galleryformatter_widget_setting
         $settings[] = 'link_to_full';
         $settings[] = 'link_to_full_preset';
         $settings[] = 'modal';
+        $settings[] = 'load_mode';
         break;
     }
   }
diff -urp /Users/jturton/Desktop/galleryformatter.orig/includes/galleryformatter.theme.inc /Users/jturton/Desktop/galleryformatter.dynamic/includes/galleryformatter.theme.inc
--- /Users/jturton/Desktop/galleryformatter.orig/includes/galleryformatter.theme.inc	2010-10-19 07:54:29.000000000 -0700
+++ /Users/jturton/Desktop/galleryformatter.dynamic/includes/galleryformatter.theme.inc	2010-12-03 09:18:41.000000000 -0800
@@ -58,11 +58,13 @@ function template_preprocess_galleryform
         $hash_id = 'slide-'. $id .'-'. $slideset_id;
 
         // prepare slides
-        $slides[$id]['image'] = theme('imagecache', $slide_preset, $filepath, $alt, $title);
-        if(!empty($field['data']['title'])) { $slides[$id]['title'] = check_plain($title); }
-        $slides[$id]['description'] = check_plain($description);
-        $slides[$id]['filepath'] = $filepath;
-        $slides[$id]['hash_id'] = $hash_id;
+        $slides[$hash_id]['image'] = theme('imagecache', $slide_preset, $filepath, $alt, $title, array('id'=>$hash_id));
+        if(!empty($field['data']['title'])) { $slides[$hash_id]['title'] = check_plain($title); }
+        $slides[$hash_id]['description'] = check_plain($description);
+        $slides[$hash_id]['filepath'] = $filepath;
+        $slides[$hash_id]['hash_id'] = $hash_id;
+        $slides[$hash_id]['alt'] = $alt;
+        $slides[$hash_id]['cached_path'] = imagecache_create_url($slide_preset, $filepath);
 
         // link the slides to the original image if so configured
         $vars['link_to_full'] = $widget['link_to_full']; // let the tpl know if we are liking or not
@@ -97,7 +99,8 @@ function template_preprocess_galleryform
 
           $link_url = $widget['link_to_full_preset'] ? imagecache_create_url($widget['link_to_full_preset'], $filepath) : file_create_url($filepath);
           // link the slide image and include the span for the icon
-          $slides[$id]['image'] = l('<span class="galleryformatter-view-full" title="'. t('View the full image') .'">'. t('View the full image') .'</span>'. $slides[$id]['image'], $link_url, array('attributes' => $link_attributes, 'html' => TRUE,));
+          $slides[$hash_id]['image'] = l('<span class="view-full" title="'. t('View the full image') .'">'. t('View the full image') .'</span>'. $slides[$hash_id]['image'], $link_url, array('attributes' => $link_attributes, 'html' => TRUE,));
+          $slides[$hash_id]['full_url'] = $link_url;
         } // END linking to original
 
         // setup thumbnail images
@@ -112,7 +115,8 @@ function template_preprocess_galleryform
       $vars['gallery_slides'] = $slides;
 
       // Get the images width and height for use by the template
-      $image_path = $slides[0]['filepath']; // the first image will be used to get the dimensions of the gallery
+      $current = current($slides);
+      $image_path = $current['filepath']; // the first image will be used to get the dimensions of the gallery
       $slide_dimensions = galleryformatter_getimage_dimensions($slide_preset, $image_path);
       $vars['gallery_slide_height'] = $slide_dimensions['height'];
       $vars['gallery_slide_width'] = $slide_dimensions['width'];
@@ -141,6 +145,16 @@ function template_preprocess_galleryform
       // setup the style class
       $vars['gallery_style'] .= 'galleryformatter-'. drupal_strtolower($style);
       galleryformatter_add_css($style);
+
+      //	Send TPL information re: load mode, other information
+      if ($widget['load_mode'] == "dynamic") {
+        drupal_add_js(array('galleryformatter-' . $slideset_id=>array('slides'=>$slides, 'load_mode'=>$widget['load_mode'])), 'setting', 'header');
+      } else {
+        drupal_add_js(array('galleryformatter-' . $slideset_id=>array('load_mode'=>$widget['load_mode'])), 'setting', 'header');
+      }
+
+      $vars['load_mode'] = $widget['load_mode'];
+      $vars['slideset_id'] =  $slideset_id;
     }
 
     // account for any preset not selected and provide a link to configure them
diff -urp /Users/jturton/Desktop/galleryformatter.orig/theme/galleryformatter.js /Users/jturton/Desktop/galleryformatter.dynamic/theme/galleryformatter.js
--- /Users/jturton/Desktop/galleryformatter.orig/theme/galleryformatter.js	2010-10-19 07:54:29.000000000 -0700
+++ /Users/jturton/Desktop/galleryformatter.dynamic/theme/galleryformatter.js	2010-12-03 11:35:06.000000000 -0800
@@ -11,15 +11,17 @@ Drupal.galleryformatter = Drupal.gallery
 
 // setting up the main behaviour
 Drupal.galleryformatter.prepare = function(el) {
-  // var $settings = Drupal.settings.galleryformatter;
   var $el = $(el);
-  var $slides = $('li.gallery-slide', $el);
+  var $id = $el.attr('id');
+  var $config = Drupal.settings["galleryformatter-" + $id];
 
+  var $slides = $('li.gallery-slide', $el);
   var $thumbs = $('.gallery-thumbs', $el);
   var $thumbsLi = $('li', $thumbs);
   var thumbWidth = $thumbsLi.filter(':first').width() + 'px';
   var liWidth = $thumbsLi.outerWidth(); // includes padding
 
+  var $placeholder = 0;
   /*
    * Only start the thumbs carrousel if needed
    */
@@ -41,48 +43,103 @@ Drupal.galleryformatter.prepare = functi
    * figure out how to get this into proper functions reusing selections
    */
   $thumbslinks.click(function(e){
-    var $hash = $(this.hash);
-    if(!$hash.is(':visible')){
+	if ($config.load_mode == "static") {
+      
+      var $hash = $(this.hash);
+      if(!$hash.is(':visible')){
+        $thumbsLi.removeClass('active');
+        $(this).parent().addClass('active');
+        $slides.filter(':visible').fadeOut('slow');
+        $hash.fadeIn('slow');
+        /*
+         * @FIXME
+         * Need to figure out a way to update the location bar of the browser, for bookmarking etc, without making the scroll jump
+         * window.location.hash = this.hash; solution below does update the location, but makes the scroll jump.
+         */
+        // window.location.hash = this.hash;  // not sure if this is the best way to do it.
+      } 
+      e.preventDefault();	//	Prevents window jump.
+    } else {
+      var $slidehash = this.hash.replace("#","");
+      dynamicLoadSlide($slidehash);
       $thumbsLi.removeClass('active');
       $(this).parent().addClass('active');
-      $slides.filter(':visible').fadeOut('slow');
-      $hash.fadeIn('slow');
-      /*
-       * @FIXME
-       * Need to figure out a way to update the location bar of the browser, for bookmarking etc, without making the scroll jump
-       * window.location.hash = this.hash; solution below does update the location, but makes the scroll jump.
-       */
-      // window.location.hash = this.hash;  // not sure if this is the best way to do it.
     }
-    e.preventDefault();
   });
 
   /*
-   *  Startup behaviour (when the page first loads)
+   *  Dynamic slide loading
    */
-  $slides.hide(); // hide all slides
-  var $locationHash = window.location.hash; // if we are being deeplinked to a specific slide, capture that
+  function dynamicLoadSlide($slidehash){
+	$(".slideshow_placeholder").removeClass('active');	//	clear active tag off both placeholders
+	$("#" + $id + "_placeholder_" + $placeholder + " img")	//	load image into placeholder
+	  .attr('src',$config['slides'][$slidehash].cached_path)
+	  .attr('alt',$config['slides'][$slidehash].alt)
+	  .attr('title',$config['slides'][$slidehash].title);
+
+	if($config['slides'][$slidehash].title != "") {
+	  $("#" + $id + "_placeholder_" + $placeholder + " h3")	//	load text into overlay
+		.html($config['slides'][$slidehash].title)
+	}
+	
+	if($config['slides'][$slidehash].description != "") {
+	  $("#" + $id + "_placeholder_" + $placeholder + " p")	//	load text into overlay
+		.html($config['slides'][$slidehash].description)
+	}
+	
+	$("#" + $id + "_placeholder_" + $placeholder)	//	activate slide
+	  .addClass('active')
+	  .fadeIn('slow');
+	
+	$(".slideshow_placeholder:not(.active)").fadeOut('slow');	//	deactivate other placeholder
+	$placeholder = $placeholder ? 0 : 1;	//	switch active placeholder for next round
 
+	$thumbsLi.removeClass('active');
+	$(this).parent().addClass('active');  
+  }
+
+  /*
+   *  Static function to load first slide
+   */
   function showFirstSlide(){
-    $slides.filter(':first').show(); // show the first one
-    $thumbsLi.filter('.slide-0:not("cloned")').addClass('active'); // activate the first thumbnail
+    if ($config.load_mode == "static") {
+      $slides.filter(':first').show(); // show the first one
+      $thumbsLi.filter('.slide-0:not("cloned")').addClass('active'); // activate the first thumbnail
+    }   
   }
 
-  // if we have a hash in the url
-  if ($locationHash) {
-    var $slideToShow = $slides.filter($locationHash);
-    // if the hash corresponds to one of our slides
-    if ($slideToShow.length > 0) {
-      $slideToShow.show(); //  show that slide
-      $thumbsLi.not($(".cloned")).find("a[href="+$locationHash+"]").parent().addClass('active'); // activate that thumbnail
+
+  /*
+   *  Startup behaviour (when the page first loads)
+   */
+  $slides.hide(); // hide all slides
+  var $locationHash = window.location.hash; // if we are being deeplinked to a specific slide, capture that
+
+  if ($config.load_mode == "static") {
+    // if we have a hash in the url
+    if ($locationHash) {
+      var $slideToShow = $slides.filter($locationHash);
+      // if the hash corresponds to one of our slides
+      if ($slideToShow.length > 0) {
+        $slideToShow.show(); //  show that slide 
+        $thumbsLi.not($(".cloned")).find("a[href="+$locationHash+"]").parent().addClass('active'); // activate that thumbnail  TODO: use prev/nextIsVisible to move slider
+      }
+      // otherwise the default
+      else {
+        showFirstSlide();
+      }
     }
     // otherwise the default
     else {
       showFirstSlide();
     }
-  }
-  // otherwise the default
-  else {
-    showFirstSlide();
+  } else {	//	for dynamically loaded slides
+    if ($locationHash) {
+      var $slidehash = $locationHash.replace("#","");	
+      dynamicLoadSlide($slidehash);
+      $thumbsLi.not($(".cloned")).find("a[href="+$locationHash+"]").parent().addClass('active'); // activate that thumbnail  TODO: use prev/nextIsVisible to move slider
+    } else {
+      $thumbsLi.filter('.slide-0:not("cloned")').addClass('active'); // activate the first thumbnail
+    }
   }
 };
diff -urp /Users/jturton/Desktop/galleryformatter.orig/theme/galleryformatter.tpl.php /Users/jturton/Desktop/galleryformatter.dynamic/theme/galleryformatter.tpl.php
--- /Users/jturton/Desktop/galleryformatter.orig/theme/galleryformatter.tpl.php	2010-09-28 03:19:52.000000000 -0700
+++ /Users/jturton/Desktop/galleryformatter.dynamic/theme/galleryformatter.tpl.php	2010-12-03 11:03:13.000000000 -0800
@@ -23,9 +23,14 @@
  */
 ?>
 <?php if (count($gallery_slides) > 0): ?>
-<div class="galleryformatter galleryview <?php print $gallery_style ?>">
+<div class="galleryformatter galleryview <?php print $gallery_style ?>" id="<?php echo $slideset_id ?>">
   <div class="gallery-slides" style="width: <?php print $gallery_slide_width; ?>px; height: <?php print $gallery_slide_height; ?>px;">
     <div class="gallery-frame">
+
+<?php
+    if ($load_mode == "static"):
+?>
+
       <ul>
       <?php foreach ($gallery_slides as $id => $data): ?>
         <li class="gallery-slide" id="<?php print $data['hash_id']; ?>">
@@ -41,6 +46,33 @@
         </li>
       <?php endforeach; ?>
       </ul>
+
+<?php
+    elseif($load_mode == "dynamic"):
+		$data = $gallery_slides["slide-0-" . $slideset_id];
+?>
+          <div id="<?php echo $slideset_id ?>_placeholder_0" class="slideshow_placeholder">
+		    <img src="<?php echo $data['cached_path'] ?>" alt="<?php echo $data['alt'] ?>" title="<?php echo $data['title'] ?>" />
+			<div class="panel-overlay">
+			  <div class="overlay-inner">
+			    <h3><?php echo $data['title'] ?></h3>
+			    <p><?php echo $data['description'] ?></p>
+              </div>
+            </div>
+          </div>
+          <div id="<?php echo $slideset_id ?>_placeholder_1" class="slideshow_placeholder" style="display:none">
+		    <img src="" alt="" title="" />
+			<div class="panel-overlay">
+			  <div class="overlay-inner">
+			    <h3></h3>
+			    <p></p>
+              </div>
+            </div>
+          </div>
+
+<?php
+    endif;
+?>
     </div>
   </div>
   <?php if($gallery_thumbs): ?>
