diff --git a/colorbox-display.js b/colorbox-display.js
index 2341ab2..bdc6453 100644
--- a/colorbox-display.js
+++ b/colorbox-display.js
@@ -20,19 +20,27 @@ Drupal.behaviors.mediaGalleryColorbox.attach = function (context, settings) {
         $link.attr('href', href.replace(/\/detail\/([0-9]+)\/([0-9]+)/, '/lightbox/$1/$2'));
       }
       $links.not('.meta-wrapper').colorbox({
-        slideshow: true,
-        slideshowAuto: false,
-        slideshowStart: Drupal.t('Slideshow'),
-        slideshowStop: '[' + Drupal.t('stop slideshow') + ']',
-        slideshowSpeed: 4000,
-        current: Drupal.t('Item !current of !total', {'!current':'{current}', '!total':'{total}'}),
+        slideshow: Drupal.settings.colorbox.slideshow,
+        slideshowAuto: Drupal.settings.colorbox.slideshowAuto,
+        slideshowStart: Drupal.settings.colorbox.slideshowStart,
+        slideshowStop: Drupal.settings.colorbox.slideshowStop,
+        slideshowSpeed: Drupal.settings.colorbox.slideshowSpeed,
+        current: Drupal.settings.colorbox.current,
+        next: Drupal.settings.colorbox.next,
+        previous: Drupal.settings.colorbox.previous,
         innerWidth: 'auto',
+        maxWidth: Drupal.settings.colorbox.maxWidth,
+        maxHeight: Drupal.settings.colorbox.maxHeight,
+        speed: Drupal.settings.colorbox.speed,
+        close:settings.colorbox.close,
+        overlayClose:settings.colorbox.overlayClose,
         // If 'title' evaluates to false, Colorbox will use the title from the
         // underlying <a> element, which we don't want. Using a space is the
         // officially approved workaround. See
         // http://groups.google.com/group/colorbox/msg/7671ae69708950bf
-        title: ' ',
-        transition: 'fade',
+        title: false,
+        transition: Drupal.settings.colorbox.transition,
+        opacity: Drupal.settings.colorbox.opacity,
         preloading: true,
         fastIframe: false,
         onComplete: function () {
@@ -47,6 +55,16 @@ Drupal.behaviors.mediaGalleryColorbox.attach = function (context, settings) {
   }
 };
 
+
+jQuery(document).ready(function() {
+
+    // Put the title in the correct div container
+    jQuery(document).bind('cbox_complete', function() {
+                var cboxTitle = jQuery(".lightbox-title").html();
+                jQuery("#cboxTitle").html(cboxTitle);
+    });
+});
+
 Drupal.mediaGalleryColorbox = {};
 
 /**
diff --git a/media_gallery.admin.inc b/media_gallery.admin.inc
index 3974059..a21fb91 100644
--- a/media_gallery.admin.inc
+++ b/media_gallery.admin.inc
@@ -6,12 +6,26 @@
  */
 
 /**
- * The Galleries settings page will just return the term edit form for the "all galleries" tid.
- *
+ * Configure page for the media gallery settings.
  */
 function media_gallery_admin_settings() {
-  $edit = media_gallery_get_default_gallery_collection();
-  $form_state['build_info']['args'] = array($edit);
-  form_load_include($form_state, 'inc', 'taxonomy', 'taxonomy.admin');
-  return drupal_build_form('taxonomy_form_term', $form_state);
+  $form['media_gallery_use_multiple_collections'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Use multiple gallery collections.'),
+    '#default_value' => variable_get('media_gallery_use_multiple_collections', FALSE),
+    '#description' => t('Enables the creation of multiple <em>gallery collections</em> and <em>hierarchical galleries</em>.'),
+  );
+  // Show a link to the media gallery taxonomy terms.
+  if (variable_get('media_gallery_use_multiple_collections', FALSE)) {
+    $vocabulary = taxonomy_vocabulary_load(variable_get('media_gallery_collection_vid'));
+    if ($vocabulary) {
+      $form['media_gallery_gallery_collection_taxonomy'] = array(
+        '#type' => 'link',
+        '#title' => t('Configure gallery collections'),
+        '#href' => "admin/structure/taxonomy/$vocabulary->machine_name",
+        '#access' => user_access('administer taxonomy'),
+      );
+    }
+  }
+  return system_settings_form($form);
 }
diff --git a/media_gallery.css b/media_gallery.css
index c318950..54bf7c8 100644
--- a/media_gallery.css
+++ b/media_gallery.css
@@ -514,57 +514,197 @@ a.media-gallery-thumb img,
 
 /* @group Lightbox styles */
 
-#cboxSlideshow {
-  right: 40px;
+.cbox-example1 .lightbox-title,
+.cbox-example2 .lightbox-title,
+.cbox-example3 .lightbox-title,
+.cbox-example4 .lightbox-title,
+.cbox-example5 .lightbox-title,
+.cbox-default .lightbox-title,
+.cbox-stockholmsyndrome .lightbox-title {
+  display: none;
 }
 
-.mg-lightbox-wrapper {
-  color: #666666;
+.cbox-example1 #cboxContent, .cbox-example1 #cboxLoadedContent, .cbox-example1 #colorbox,
+.cbox-example4 #cboxContent, .cbox-example4 #cboxLoadedContent, .cbox-example4 #colorbox,
+.cbox-default #cboxContent, .cbox-default #cboxLoadedContent, .cbox-default #colorbox {
+    overflow: hidden !important;
 }
 
-.mg-lightbox-wrapper a,
-.lightbox-stack a {
+/* .cbox-example1*/
+.cbox-example1 #cboxSlideshow {
+  right: 40px;
+}
+.cbox-example1 .mg-lightbox-wrapper {
+  color: #666666;
+}
+.cbox-example1 .mg-lightbox-wrapper a,
+.cbox-example1 .lightbox-stack a {
   color: #0074BD;
 }
 
-.mg-lightbox-wrapper a:link,
-.mg-lightbox-wrapper a:visited,
-.mg-lightbox-wrapper a:active,
-.mg-lightbox-wrapper a:hover,
-.lightbox-stack a:link,
-.lightbox-stack a:visited,
-.lightbox-stack a:active,
-.lightbox-stack a:hover{
+.cbox-example1 .mg-lightbox-wrapper a:link,
+.cbox-example1 .mg-lightbox-wrapper a:visited,
+.cbox-example1 .mg-lightbox-wrapper a:active,
+.cbox-example1 .mg-lightbox-wrapper a:hover,
+.cbox-example1 .lightbox-stack a:link,
+.cbox-example1 .lightbox-stack a:visited,
+.cbox-example1 .lightbox-stack a:active,
+.cbox-example1 .lightbox-stack a:hover{
   color: #0074BD;
 }
 
-.mg-lightbox-wrapper a:hover,
-.lightbox-stack a:hover {
+.cbox-example1 .mg-lightbox-wrapper a:hover,
+.cbox-example1 .lightbox-stack a:hover {
   text-decoration: underline;
 }
 
-.mg-lightbox-wrapper .lightbox-title {
+.cbox-example1 .mg-lightbox-wrapper .lightbox-title {
   font-size: 1.8em;
   font-weight: bold;
   padding-bottom: 0.2em;
   padding-top: 0.2em;
 }
 
-.mg-lightbox-detail {
+.cbox-example1 .mg-lightbox-detail {
   float: left;
   padding-right: 320px;
 }
 
-.mg-lightbox-description {
+.cbox-example1 .mg-lightbox-description {
   width: 300px;
   margin-left: -300px;
   float: left;
 }
 
-.lightbox-stack {
+.cbox-example1 .lightbox-stack {
   min-width: 250px;
 }
 
+.cbox-example1 #cboxContent,
+.cbox-example1 #cboxLoadedContent,
+.cbox-example1 #colorbox {
+    overflow: hidden !important;
+}
+.cbox-example1 .mg-lightbox-description .field-item {
+  overflow: auto !important;
+}
+
+/* .cbox-example2 & .cbox-example3 */
+.cbox-example2 #colorbox .lightbox-wdesc .mg-lightbox-description,
+.cbox-example3 #colorbox .lightbox-wdesc .mg-lightbox-description {
+    bottom: 0;
+    color: #888;
+    height: 100px;
+    margin: 8px;
+    overflow: auto;
+    position: absolute;
+}
+.cbox-example2 #colorbox .mg-lightbox-wrapper,
+.cbox-example3 #colorbox .mg-lightbox-wrapper {
+    overflow: hidden;
+}
+.cbox-example2 #colorbox .mg-lightbox-wrapper.lightbox-wdesc,
+.cbox-example3 #colorbox .mg-lightbox-wrapper.lightbox-wdesc {
+    padding-bottom: 108px;
+}
+.cbox-example2 #colorbox .media-gallery-detail-info,
+.cbox-example3 #colorbox .media-gallery-detail-info {
+    margin: 0;
+    padding: 0;
+}
+.cbox-example2 #colorbox .media-gallery-detail-info a,
+.cbox-example3 #colorbox .media-gallery-detail-info a {
+    margin-left: 8px;
+}
+.cbox-example2 #colorbox .media-gallery-detail-info .media-license,
+.cbox-example3 #colorbox .media-gallery-detail-info .media-license {
+    margin-right: 8px;
+}
+.cbox-example2 #colorbox a, .cbox-example2 #colorbox a:link, .cbox-example2 #colorbox a:visited,
+.cbox-example3 #colorbox a, .cbox-example3 #colorbox a:link, .cbox-example3 #colorbox a:visited {
+    color: #fff;
+    text-decoration: none;
+}
+.cbox-example2 #colorbox a:hover,
+.cbox-example3 #colorbox a:hover {
+    color: #fff;
+    text-decoration: underline;
+}
+
+.cbox-example3 #cboxLoadedContent {
+    background: #000 !important;
+}
+
+/* .cbox-example4 & .cbox-example5 & .cbox-default & .cbox-stockholmsyndrome */
+.cbox-example4 #colorbox .lightbox-wdesc .mg-lightbox-description,
+.cbox-example5 #colorbox .lightbox-wdesc .mg-lightbox-description,
+.cbox-default #colorbox .lightbox-wdesc .mg-lightbox-description,
+.cbox-stockholmsyndrome #colorbox .lightbox-wdesc .mg-lightbox-description {
+    bottom: 30px;
+    color: #444;
+    height: 100px;
+    overflow: auto;
+    position: absolute;
+}
+.cbox-example5 #colorbox .lightbox-wdesc .mg-lightbox-description {
+    bottom: 16px;
+}
+.cbox-default #colorbox .lightbox-wdesc .mg-lightbox-description {
+    bottom: 52px;
+    height: 92px;
+}
+.cbox-stockholmsyndrome #colorbox .lightbox-wdesc .mg-lightbox-description {
+    bottom: 0;
+    margin: 8px;
+}
+.cbox-example4 #colorbox .mg-lightbox-wrapper,
+.cbox-example5 #colorbox .mg-lightbox-wrapper,
+.cbox-default #colorbox .mg-lightbox-wrapper,
+.cbox-stockholmsyndrome #colorbox .mg-lightbox-wrapper {
+    overflow: hidden;
+}
+.cbox-example4 #colorbox .mg-lightbox-wrapper.lightbox-wdesc,
+.cbox-example5 #colorbox .mg-lightbox-wrapper.lightbox-wdesc,
+.cbox-default #colorbox .mg-lightbox-wrapper.lightbox-wdesc {
+    padding-bottom: 108px;
+}
+.cbox-stockholmsyndrome #colorbox .mg-lightbox-wrapper.lightbox-wdesc {
+    padding-bottom: 100px;
+}
+.cbox-example4 #colorbox .media-gallery-detail-info,
+.cbox-example5 #colorbox .media-gallery-detail-info,
+.cbox-default #colorbox .media-gallery-detail-info,
+.cbox-stockholmsyndrome #colorbox .media-gallery-detail-info {
+    margin: 0;
+    padding: 0;
+}
+.cbox-example4 #colorbox a, .cbox-example4 #colorbox a:link, .cbox-example4 #colorbox a:visited,
+.cbox-example5 #colorbox a, .cbox-example5 #colorbox a:link, .cbox-example5 #colorbox a:visited,
+.cbox-default #colorbox a, .cbox-default #colorbox a:link, .cbox-default #colorbox a:visited,
+.cbox-stockholmsyndrome #colorbox a, .cbox-stockholmsyndrome #colorbox a:link, .cbox-stockholmsyndrome #colorbox a:visited {
+    color: #36f;
+    text-decoration: none;
+}
+.cbox-example4 #colorbox a:hover,
+.cbox-example5 #colorbox a:hover,
+.cbox-default #colorbox a:hover,
+.cbox-stockholmsyndrome #colorbox a:hover {
+    color: #36f;
+    text-decoration: underline;
+}
+.cbox-stockholmsyndrome #colorbox .media-gallery-detail-info a {
+    margin-left: 8px;
+}
+.cbox-stockholmsyndrome #colorbox .media-gallery-detail-info .media-license {
+    margin-right: 8px;
+}
+.cbox-stockholmsyndrome #cboxSlideshow {
+    bottom: -26px;
+    position: absolute;
+    text-align: center;
+    width: 100%;
+}
+
 /* @end */
 
 /* @group Gallery of Galleries styles */
diff --git a/media_gallery.info b/media_gallery.info
index a26840a..5ef5c40 100644
--- a/media_gallery.info
+++ b/media_gallery.info
@@ -3,6 +3,7 @@ description = A flexible gallery of media.
 core = 7.x
 package = Media
 
+dependencies[] = colorbox
 dependencies[] = list
 dependencies[] = number
 dependencies[] = media (>=2.x)
diff --git a/media_gallery.install b/media_gallery.install
index a9972cc..b5d35fe 100644
--- a/media_gallery.install
+++ b/media_gallery.install
@@ -964,6 +964,7 @@ function media_gallery_uninstall() {
   variable_del('comment_media_gallery');
   variable_del('media_gallery_collection_vid');
   variable_del('media_gallery_default_collection_tid');
+  variable_del('media_gallery_use_multiple_collections');
 }
 
 /**
diff --git a/media_gallery.module b/media_gallery.module
index 2abb499..35ab514 100644
--- a/media_gallery.module
+++ b/media_gallery.module
@@ -37,9 +37,11 @@ function media_gallery_file_view_modes() {
 function media_gallery_menu() {
   $items['admin/config/media/galleries'] = array(
     'title' => 'Gallery settings',
-    'description' => 'Configure settings for the "All galleries" page.',
+    'description' => 'Configure settings for the Media Gallery module.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('media_gallery_admin_settings'),
     'access arguments' => array('administer media galleries'),
-    'page callback' => 'media_gallery_admin_settings',
+    'type' => MENU_NORMAL_ITEM,
     'file' => 'media_gallery.admin.inc',
   );
   $items['media-gallery/sort/collection/%taxonomy_term/%'] = array(
@@ -234,8 +236,7 @@ function media_gallery_menu_local_tasks_alter(&$data, $router_item, $root_path)
     $tabs = &$data['tabs'][0]['output'];
     foreach ($tabs as &$tab) {
       if (isset($tab['#link']['path']) && $tab['#link']['path'] == 'taxonomy/term/%/edit') {
-        $tab['#link']['href'] = 'admin/config/media/galleries';
-        $tab['#link']['title'] = t('Edit all galleries');
+        $tab['#link']['title'] = t('Edit gallery collection');
       }
     }
   }
@@ -316,7 +317,7 @@ function media_gallery_view($node, $view_mode) {
     $gallery_js_settings = array(
       'mediaGalleryAddImagesUrl' => url('media-gallery/add-images/' . $node->nid . '/' . $token),
       'mediaGallerySortGalleryUrl' => url('media-gallery/sort/gallery/' . $node->nid . '/' . $token),
-      'mediaGalleryAllowedMediaTypes' => array_filter($instance['widget']['settings']['allowed_types']),
+      'mediaGalleryAllowedMediaTypes' => isset($instance['widget']['settings']['allowed_types']) ? array_filter($instance['widget']['settings']['allowed_types']) : null,
     );
 
     // When viewing the full node, add front-end resources for drag-and-drop
@@ -749,35 +750,6 @@ function media_gallery_block_save($delta = '', $edit = array()) {
 }
 
 /**
- * Implements hook_library().
- */
-function media_gallery_library() {
-  $colorbox_path = variable_get('media_gallery_library_path', FALSE);
-  if ($colorbox_path === FALSE ) {
-    $colorbox_path = module_exists('libraries') ? libraries_get_path('colorbox') : 'sites/all/libraries/colorbox';
-  }
-  else {
-    $colorbox_path .= '/colorbox';
-  }
-  $stylesheet = variable_get('media_gallery_colorbox_stylesheet', 'example1');
-  $libraries['colorbox'] = array(
-    'title' => 'Colorbox',
-    'website' => 'http://colorpowered.com/colorbox/',
-    'version' => '1.3.9',
-    'js' => array(
-      $colorbox_path . '/colorbox/jquery.colorbox-min.js' => array(),
-    ),
-    'css' => array(
-      $colorbox_path . '/' . $stylesheet . '/colorbox.css' => array(
-        'type' => 'file',
-        'media' => 'screen',
-      ),
-    ),
-  );
-  return $libraries;
-}
-
-/**
  * Helper function to sort media gallery items by an ordered list of file IDs.
  *
  * Call once with $set_fid_order set to an array of file orders, keyed by the
@@ -952,8 +924,12 @@ function media_gallery_form_media_gallery_node_form_alter(&$form, &$form_state)
   $form['media_gallery_file']['#access'] = FALSE;
   $form['media_gallery_weight']['#access'] = FALSE;
 
-  // Hiding this field because we only support a single collection at the moment.
-  $form['media_gallery_collection']['#access'] = FALSE;
+  if (variable_get('media_gallery_use_multiple_collections', FALSE)) {
+    $form['media_gallery_collection']['#access'] = TRUE;
+  } else {
+    // Hiding this field because we only support a single collection.
+    $form['media_gallery_collection']['#access'] = FALSE;
+  }
 
   // Wrap a fieldset around the gallery settings.
   $form['settings_wrapper'] = array(
@@ -1393,8 +1369,16 @@ function media_gallery_form_taxonomy_form_term_alter(&$form, &$form_state) {
   $form['settings_wrapper']['gallery']['media_gallery_rows']['#process'][] = 'media_gallery_process_dropdown';
   $form['settings_wrapper']['gallery']['media_gallery_rows']['#media_gallery_dropdown_options'] = array('1', '3', '5', '10', 'other');
 
-  $form['relations']['#access'] = FALSE;
-  $form['actions']['delete']['#access'] = FALSE;
+  $multiple_collections = variable_get('media_gallery_use_multiple_collections', FALSE);
+  $form['relations']['#access'] = $multiple_collections;
+  if (isset($form['actions']['delete']['#access'])) {
+    // Use the default permission combined with the settings configuration,
+    // to not bypass access.
+    $form['actions']['delete']['#access'] = $form['actions']['delete']['#access'] && $multiple_collections;
+  }
+  else {
+    $form['actions']['delete']['#access'] = $multiple_collections;
+  }
   $form['field_license']['#access'] = FALSE;
 
   // Add a submit handler to change the "Updated term" message on submit.
@@ -1405,6 +1389,9 @@ function media_gallery_form_taxonomy_form_term_alter(&$form, &$form_state) {
  * Submit handler for the taxonomy_form_term form.
  */
 function media_gallery_taxonomy_form_term_submit($form, &$form_state) {
+  if (isset($form_state['confirm_delete'])) {
+    return;
+  }
   // Change the "Updated term Galleries" message into something that makes
   // sense in this context.
   $term_name = $form_state['values']['name'];
@@ -1423,8 +1410,10 @@ function media_gallery_taxonomy_form_term_submit($form, &$form_state) {
  * Used to hide the gallery_collections taxonomy admin screens.
  */
 function media_gallery_form_taxonomy_overview_vocabularies_alter(&$form, &$form_state) {
-  $gallery_collection_vid = variable_get('media_gallery_collection_vid');
-  unset($form[$gallery_collection_vid]);
+  if (!variable_get('media_gallery_use_multiple_collections', FALSE)) {
+    $gallery_collection_vid = variable_get('media_gallery_collection_vid');
+    unset($form[$gallery_collection_vid]);
+  }
 }
 
 /**
@@ -1457,21 +1446,6 @@ function media_gallery_module_implements_alter(&$implementations, $hook) {
 }
 
 /**
- * Gets the first term in the media_gallery_collection vocabulary
- */
-function media_gallery_get_default_gallery_collection() {
-  $gallery_collection_vid = variable_get('media_gallery_collection_vid');
-  $tid = db_select('taxonomy_term_data', 'ttd')
-    ->fields('ttd', array('tid'))
-    ->condition('vid', $gallery_collection_vid)
-    ->range(0, 1)
-    ->execute()
-    ->fetchField();
-
-  return taxonomy_term_load($tid);
-}
-
-/**
  * Access callback for viewing parts of a node that are only relevant for media
  * galleries.
  */
diff --git a/media_gallery.theme.inc b/media_gallery.theme.inc
index e70e3c3..dc50f4e 100644
--- a/media_gallery.theme.inc
+++ b/media_gallery.theme.inc
@@ -218,7 +218,7 @@ function theme_media_gallery_media_item_lightbox($variables) {
     // but we haven't found one yet.
     $download_link = '&nbsp;';
   }
-
+  $media_desc_class = !empty($gallery_node->media_gallery_lightbox_extras[LANGUAGE_NONE][0]['value']) ? 'lightbox-wdesc' : '';
   $media_gallery_detail =
       '<div class="lightbox-stack">' .
       theme('media_gallery_item', $link_vars) .
@@ -233,7 +233,7 @@ function theme_media_gallery_media_item_lightbox($variables) {
   // If the format is to have the description as well, we add it here
   if (!empty($gallery_node->media_gallery_lightbox_extras[LANGUAGE_NONE][0]['value'])) {
     $output =
-    '<div class="mg-lightbox-wrapper clearfix">' .
+    '<div class="mg-lightbox-wrapper clearfix ' . $media_desc_class . '">' .
       '<div class="lightbox-title">' . drupal_render($element['media_title']) . '</div>' .
       '<div class="mg-lightbox-detail">' .
       $media_gallery_detail .
