Index: features/sooper-background-imagekit/background-imagekit-theme-settings-css.inc
===================================================================
--- features/sooper-background-imagekit/background-imagekit-theme-settings-css.inc	(revision 6)
+++ features/sooper-background-imagekit/background-imagekit-theme-settings-css.inc	(working copy)
@@ -3,6 +3,6 @@
   if (theme_get_setting('background_image') == 'none') {
   $CSS .= "html body {background-image: none;}";
   } else {
-  $CSS .= "html body {background-image: url('../../../". $theme_path ."images/backgrounds/". theme_get_setting('background_image') ."');}";
+  $CSS .= "html body {background-image: url('".$base_url. $abs_theme_path ."images/backgrounds/". theme_get_setting('background_image') ."');}";
   }
 }
\ No newline at end of file
Index: features/sooper-background-imagekit/background-imagekit-theme-settings.inc
===================================================================
--- features/sooper-background-imagekit/background-imagekit-theme-settings.inc	(revision 8)
+++ features/sooper-background-imagekit/background-imagekit-theme-settings.inc	(working copy)
@@ -1,24 +1,25 @@
-<?php
-// SOOPER Background-ImageKit
-$form['background_options'] = array(
-  '#title' => t('SOOPER Background-Image Kit'),
-  '#type' => 'fieldset',
-  '#collapsible' => TRUE,
-  '#collapsed' => TRUE,
-'#weight' => 5,
-);
-
-$bg_images['none'] = 'none';
-$bg_image_suffix = '<p><strong>'. t('Available background images:') .'</strong></p>';
-foreach (file_scan_directory($theme_path .'images/backgrounds', '/\.(jpg|gif|png?)$/') as $file) {
-  $bg_images[$file->filename] = $file->filename;
-  $bg_image_suffix .= '<p>'. $file->filename .'</p> <div class="demo-background" style="background:url(/'. $file->uri .');"></div>';
-}
-$form['background_options']['background_image'] = array(
-  '#type'          => 'select',
-  '#title'         => t('Background Image'),
-  '#default_value' => theme_get_setting('background_image'),
-  '#options'       => $bg_images,
-  '#suffix'        => $bg_image_suffix,
-  '#prefix'        => '<p>Selecting a new background image makes it visible immediately. If you want to add your own images, add them to the images/backgrounds folder in the theme directory and it will show up here automatically.</p>'
+<?php
+// SOOPER Background-ImageKit
+$form['background_options'] = array(
+  '#title' => t('SOOPER Background-Image Kit'),
+  '#type' => 'fieldset',
+  '#collapsible' => TRUE,
+  '#collapsed' => TRUE,
+'#weight' => 5,
+);
+
+$bg_images['none'] = 'none';
+$bg_image_suffix = '<p><strong>'. t('Available background images:') .'</strong></p>';
+foreach (file_scan_directory($theme_path .'images/backgrounds', "(.*?)\.(jpg|png|gif)") as $file) {
+  $bg_images[$file->basename] = $file->name;
+  $bg_image_suffix .= '<p>'. $file->name .'</p> <div class="demo-background" style="background:url('.$base_url.base_path().'/'. $file->filename .');"></div>';
+}
+
+$form['background_options']['background_image'] = array(
+  '#type'          => 'select',
+  '#title'         => t('Background Image'),
+  '#default_value' => $settings['background_image'],
+  '#options'       => $bg_images,
+  '#suffix'        => $bg_image_suffix,
+  '#prefix'        => '<p>Selecting a new background image makes it visible immediately. If you want to add your own images, add them to the images/backgrounds folder in the theme directory and it will show up here automatically.</p>'
 );
\ No newline at end of file
Index: features/sooper-livepreview/sooper-livepreview.js
===================================================================
--- features/sooper-livepreview/sooper-livepreview.js	(revision 6)
+++ features/sooper-livepreview/sooper-livepreview.js	(working copy)
@@ -1,216 +1,216 @@
-$(document).ready(function(){
-
-  var initPreview;
-  var initToucan;
-  var themePath = Drupal.settings.theme_path;
-  var currentTheme = Drupal.settings.current_theme;
-  var themeSettingsPage = Drupal.settings.t_s_page;
-  var selectedBackground = '';
-
-  // Update colors when farbtastic is updated
-  $('.color-form input').click(function(event){
-   updateColors();
-  });
-
-  $('.color-form input').keyup(function(event){
-   updateColors();
-  });
-
-  $('.color-form select').click(function(event){
-   updateColors();
-  });
-
-  $('.color-form select').keyup(function(event){
-   updateColors();
-  });
-
-  $(document).bind('mousemove', checkDrag).bind('mouseup', checkDrag);
-
-  function checkDrag() {
-    if (document.dragging) {
-      updateColors();
-    }
-  }
-
-  function updateColors(source) {
-
-    if (!initPreview) {
-      initPreview = true;
-      // Set warning message
-      $('fieldset#color_scheme_form').prepend('<div class="messages warning sooper-livepreview-mssg">You are tuning colors in preview mode. Preview mode has some imperfections and will only give an approximate preview of the colorscheme. <strong>Submit the form to view the colorscheme in full effect</strong>.</div>');
-      // Replace normal images with PNG ones
-
-      toucan();
-    }
-
-    // From selectors as in the CSS theme-options file rendering in template.php... deleted all the selectors that are not needed on the colorform page to improve farbtastic performance.
-    $('body, .item-list li,h1,h2,h3,h4,h5,h6').css('color',$('#edit-palette-text').val()); // dit overwrite alle css van alle tekst :|
-    $('body a').css('color',$('#edit-palette-base').val());
-    $('.poll .bar, #content ul.secondary li a, #cycle-pager a, ul.primary li a, div.block div.edit a, #toolbar, .skinr-color-3 .block-inner').css('background-color',$('#edit-palette-text').val());
-    $('ul.secondary-links li a,#content ul.secondary li a.active, input.form-submit,#navbar, #navbar ul ul, ul.primary li.active a,.poll .bar .foreground,.skinr-color,ul.quicktabs_tabs.quicktabs-style-tundra li.active a').css('background-color',$('#edit-palette-base').val());
-    $('#footer').css('border-color',$('#edit-palette-link').val());
-    $('.skinr-color-2 .block-inner').css('background-color',$('#edit-palette-link').val());
-    $('ul.secondary-links li a,#content ul.secondary li a.active, input.form-submit,#navbar a, ul.primary li.active a,.skinr-color,#content ul.secondary li a, #cycle-pager a, ul.primary li a, div.block div.edit a, #toolbar, .skinr-color-3 .block-inner').css('color','#fff');
-    if ((window.Cufon)) { //Only update cufon if the headings color is updating, otherwise the layout update will be very slow
-    Cufon.refresh();
-    }
-  }
-
-  // Update layout when LivePreview button is clicked
-  var containerWidth = '';
-  var selectedUnit = '';
-  var sidebarWidth = '';
-  var singleWidth = '';
-  var dualWidth = '';
-
-  $('#live-preview-layout').click(function(event){
-   updateLayout();
-  });
-
-  function updateLayout() {
-  $('.sooper-mast').css('min-width',$('#edit-layout-min-width').val());
-
-  if ($('#edit-layout-max-width').val() > 0) {
-    $('.sooper-mast').css('max-width',$('#edit-layout-max-width').val());
-  } else {
-    $('.sooper-mast').css('max-width','none');
-  }
-
-    selectedUnit = $("input[@name='fixedfluid']:checked").val();
-    widthFluid = $('#edit-layout-width-fluid').val();
-    widthFixed = $('#edit-layout-width-fixed').val();
-    if (selectedUnit == 'px') {
-      $('.sooper-mast').animate({'width': widthFixed+'px'}, '1000ms');
-    } else {
-      $('.sooper-mast').animate({'width': widthFluid+'%'}, '1000ms');
-    }
-
-    sidebarWidth = Math.round($('#edit-sidebar-width').val()*1000)/1000;
-    dualWidth = Math.round((100-$('#edit-sidebar-width').val()*2)*1000)/1000;
-    singleWidth = Math.round((100-$('#edit-sidebar-width').val())*1000)/1000;
-    $('body.two-sidebars #content').animate({'width': dualWidth+'%'}, '1000ms');
-    $('body.one-sidebar #content').animate({'width': singleWidth+'%'}, '1000ms');
-    $('.sidebar').animate({'width': sidebarWidth+'%'}, '1000ms');
-
-    toucan();
-  }
-
-  // Update layout when randomizer is clicked
-  $('#random-layout').click(function(event){
-   randomLayout();
-  });
-  function randomLayout() {
-    randomBinary = Math.floor(Math.random()*2);
-    randomFixed = Math.floor(Math.random()*1401+600);
-    randomFluid = Math.floor(Math.random()*71+30);
-    randomSide = Math.floor(Math.random()*16+15);
-
-    $('#edit-layout-width-fluid').val(randomFluid);
-    $('#edit-layout-width-fixed').val(randomFixed);
-    $('#edit-sidebar-width').val(randomSide)
-    if (randomBinary) {
-      $("input[@name='fixedfluid']").filter('[value=px]').attr('checked', true);
-    } else {
-      $("input[@name='fixedfluid']").filter('[value=%]').attr('checked', true);
-    }
-    updateLayout();
-  }
-
-  // Update Typography when selection changes
-  $('#edit-headings-font-face, #edit-body-font-face').click(function(event){
-   updateType();
-  });
-
-  $('#edit-headings-font-face, #edit-body-font-face').keyup(function(event){
-   updateType();
-  });
-
-  function updateType() {
-    bodyType = $('#edit-body-font-face').val();
-    headingType = $('#edit-headings-font-face').val();
-
-    $('body').css('font-family',fontFamily(bodyType));
-    $('h1, h2, h3, h4, h5, h6, legend, p.mission, p.slogan').css('font-family',fontFamily(headingType));
-
-    // Javascript does not support associative arrays :(
-    function fontFamily(fontKey) {
-      if (fontKey == 'helvetica') { family = 'Arial, Helvetica, "Helvetica Neue", "Nimbus Sans L", "Liberation Sans", "FreeSans", sans-serif'; }
-      if (fontKey == 'verdana') { family = 'Verdana, "Bitstream Vera Sans", Arial, sans-serif'; }
-      if (fontKey == 'lucida') { family = '"Lucida Grande", "Lucida Sans", "Lucida Sans Unicode", "DejaVu Sans", Arial, sans-serif'; }
-      if (fontKey == 'geneva') { family = '"Geneva", "Bitstream Vera Serif", "Tahoma", sans-serif'; }
-      if (fontKey == 'tahoma') { family = 'Tahoma, Geneva, "DejaVu Sans Condensed", sans-serif'; }
-      if (fontKey == 'century') { family = '"Century Gothic", "URW Gothic L", Helvetica, Arial, sans-serif'; }
-      if (fontKey == 'georgia') { family = 'Georgia, "Bitstream Vera Serif", serif'; }
-      if (fontKey == 'palatino') { family = '"Palatino Linotype", "URW Palladio L", "Book Antiqua", "Palatino", serif'; }
-      if (fontKey == 'times') { family = '"Times New Roman", Cambria, "Free Serif", Times, serif'; }
-
-      return family;
-    }
-
-    toucan();
-  }
-
-  // Reload Cufon when selected font changes
-  $('select#edit-cufon-font-face').change(function(event){
-   updateCufon();
-  });
-
-  function updateCufon() {
-    fontFile = $('select#edit-cufon-font-face').val();
-    fontUrl = themePath+'features/sooper-fontkit/fonts/'+fontFile;
-
-    $.getScript(fontUrl, function(){
-      if(window.Cufon) { // unfortunately cufon.refresh works unreliably and the whole invocation needs to run here
-        Cufon.replace('h1#sitename a, h1.nodetitle a', {
-            hover: true
-        });
-        Cufon.replace(Drupal.settings.fontKit.invoke);
-      } else {
-        alert('Cufon needs to be enabled first, please enable cufon and save theme settings.')
-      }
-      alert("Font Loaded and Replaced");
-    });
-
-    toucan();
-  }
-
-  // Updating Background Image when selection changes
-  $('#edit-background-image').click(function(event){
-   updateBackground();
-  });
-
-  $('#edit-background-image').keyup(function(event){
-   updateBackground();
-  });
-
-  function updateBackground() {
-    selectedBackground = $('#edit-background-image').val()
-    $('body').css('background-image','url('+themePath+'images/backgrounds/'+selectedBackground+')');
-    
-    toucan();
-  }
-
-  // Update colors when randomizer is clicked
-  $('#random-color').click(function(event){
-   randomColors();
-  });
-  function randomColors() {
-    randomSeed = Math.floor(Math.random()*101)/100;
-    randomLumi = Math.floor(Math.random()*101)/100;
-    if (randomLumi > 0.85) { randomLumi = 0.85; };
-    var farb = $.farbtastic('#placeholder');
-    var randomHSL = [randomSeed,randomSeed,randomLumi]
-    farb.setHSL(randomHSL);
-
-    updateColors();
-  }
-
-  function toucan() {
-    if (!initToucan) {
-      initToucan = true;
-      $('body').append('<div class="cornerstone toucan"></div>');
-      $('.toucan').animate({'bottom': '-10px'},'2000ms');
-    }
-  }
-
-});
+$(document).ready(function(){
+
+  var initPreview;
+  var initToucan;
+  var themePath = Drupal.settings.theme_path;
+  var currentTheme = Drupal.settings.current_theme;
+  var themeSettingsPage = Drupal.settings.t_s_page;
+  var selectedBackground = '';
+
+  // Update colors when farbtastic is updated
+  $('.color-form input').click(function(event){
+   updateColors();
+  });
+
+  $('.color-form input').keyup(function(event){
+   updateColors();
+  });
+
+  $('.color-form select').click(function(event){
+   updateColors();
+  });
+
+  $('.color-form select').keyup(function(event){
+   updateColors();
+  });
+
+  $(document).bind('mousemove', checkDrag).bind('mouseup', checkDrag);
+
+  function checkDrag() {
+    if (document.dragging) {
+      updateColors();
+    }
+  }
+
+  function updateColors(source) {
+
+    if (!initPreview) {
+      initPreview = true;
+      // Set warning message
+      $('fieldset#color_scheme_form').prepend('<div class="messages warning sooper-livepreview-mssg">You are tuning colors in preview mode. Preview mode has some imperfections and will only give an approximate preview of the colorscheme. <strong>Submit the form to view the colorscheme in full effect</strong>.</div>');
+      // Replace normal images with PNG ones
+
+      toucan();
+    }
+
+    // From selectors as in the CSS theme-options file rendering in template.php... deleted all the selectors that are not needed on the colorform page to improve farbtastic performance.
+    $('body, .item-list li,h1,h2,h3,h4,h5,h6').css('color',$('#edit-palette-text').val()); // dit overwrite alle css van alle tekst :|
+    $('body a').css('color',$('#edit-palette-base').val());
+    $('.poll .bar, #content ul.secondary li a, #cycle-pager a, ul.primary li a, div.block div.edit a, #toolbar, .skinr-color-3 .block-inner').css('background-color',$('#edit-palette-text').val());
+    $('ul.secondary-links li a,#content ul.secondary li a.active, input.form-submit,#navbar, #navbar ul ul, ul.primary li.active a,.poll .bar .foreground,.skinr-color,ul.quicktabs_tabs.quicktabs-style-tundra li.active a').css('background-color',$('#edit-palette-base').val());
+    $('#footer').css('border-color',$('#edit-palette-link').val());
+    $('.skinr-color-2 .block-inner').css('background-color',$('#edit-palette-link').val());
+    $('ul.secondary-links li a,#content ul.secondary li a.active, input.form-submit,#navbar a, ul.primary li.active a,.skinr-color,#content ul.secondary li a, #cycle-pager a, ul.primary li a, div.block div.edit a, #toolbar, .skinr-color-3 .block-inner').css('color','#fff');
+    if ((window.Cufon)) { //Only update cufon if the headings color is updating, otherwise the layout update will be very slow
+    Cufon.refresh();
+    }
+  }
+
+  // Update layout when LivePreview button is clicked
+  var containerWidth = '';
+  var selectedUnit = '';
+  var sidebarWidth = '';
+  var singleWidth = '';
+  var dualWidth = '';
+
+  $('#live-preview-layout').click(function(event){
+   updateLayout();
+  });
+
+  function updateLayout() {
+  $('.sooper-mast').css('min-width',$('#edit-layout-min-width').val());
+
+  if ($('#edit-layout-max-width').val() > 0) {
+    $('.sooper-mast').css('max-width',$('#edit-layout-max-width').val());
+  } else {
+    $('.sooper-mast').css('max-width','none');
+  }
+
+    selectedUnit = $("input[@name='fixedfluid']:checked").val();
+    widthFluid = $('#edit-layout-width-fluid').val();
+    widthFixed = $('#edit-layout-width-fixed').val();
+    if (selectedUnit == 'px') {
+      $('.sooper-mast').animate({'width': widthFixed+'px'}, '1000ms');
+    } else {
+      $('.sooper-mast').animate({'width': widthFluid+'%'}, '1000ms');
+    }
+
+    sidebarWidth = Math.round($('#edit-sidebar-width').val()*1000)/1000;
+    dualWidth = Math.round((100-$('#edit-sidebar-width').val()*2)*1000)/1000;
+    singleWidth = Math.round((100-$('#edit-sidebar-width').val())*1000)/1000;
+    $('body.two-sidebars #content').animate({'width': dualWidth+'%'}, '1000ms');
+    $('body.one-sidebar #content').animate({'width': singleWidth+'%'}, '1000ms');
+    $('.sidebar').animate({'width': sidebarWidth+'%'}, '1000ms');
+
+    toucan();
+  }
+
+  // Update layout when randomizer is clicked
+  $('#random-layout').click(function(event){
+   randomLayout();
+  });
+  function randomLayout() {
+    randomBinary = Math.floor(Math.random()*2);
+    randomFixed = Math.floor(Math.random()*1401+600);
+    randomFluid = Math.floor(Math.random()*71+30);
+    randomSide = Math.floor(Math.random()*16+15);
+
+    $('#edit-layout-width-fluid').val(randomFluid);
+    $('#edit-layout-width-fixed').val(randomFixed);
+    $('#edit-sidebar-width').val(randomSide)
+    if (randomBinary) {
+      $("input[@name='fixedfluid']").filter('[value=px]').attr('checked', true);
+    } else {
+      $("input[@name='fixedfluid']").filter('[value=%]').attr('checked', true);
+    }
+    updateLayout();
+  }
+
+  // Update Typography when selection changes
+  $('#edit-headings-font-face, #edit-body-font-face').click(function(event){
+   updateType();
+  });
+
+  $('#edit-headings-font-face, #edit-body-font-face').keyup(function(event){
+   updateType();
+  });
+
+  function updateType() {
+    bodyType = $('#edit-body-font-face').val();
+    headingType = $('#edit-headings-font-face').val();
+
+    $('body').css('font-family',fontFamily(bodyType));
+    $('h1, h2, h3, h4, h5, h6, legend, p.mission, p.slogan').css('font-family',fontFamily(headingType));
+
+    // Javascript does not support associative arrays :(
+    function fontFamily(fontKey) {
+      if (fontKey == 'helvetica') { family = 'Arial, Helvetica, "Helvetica Neue", "Nimbus Sans L", "Liberation Sans", "FreeSans", sans-serif'; }
+      if (fontKey == 'verdana') { family = 'Verdana, "Bitstream Vera Sans", Arial, sans-serif'; }
+      if (fontKey == 'lucida') { family = '"Lucida Grande", "Lucida Sans", "Lucida Sans Unicode", "DejaVu Sans", Arial, sans-serif'; }
+      if (fontKey == 'geneva') { family = '"Geneva", "Bitstream Vera Serif", "Tahoma", sans-serif'; }
+      if (fontKey == 'tahoma') { family = 'Tahoma, Geneva, "DejaVu Sans Condensed", sans-serif'; }
+      if (fontKey == 'century') { family = '"Century Gothic", "URW Gothic L", Helvetica, Arial, sans-serif'; }
+      if (fontKey == 'georgia') { family = 'Georgia, "Bitstream Vera Serif", serif'; }
+      if (fontKey == 'palatino') { family = '"Palatino Linotype", "URW Palladio L", "Book Antiqua", "Palatino", serif'; }
+      if (fontKey == 'times') { family = '"Times New Roman", Cambria, "Free Serif", Times, serif'; }
+
+      return family;
+    }
+
+    toucan();
+  }
+
+  // Reload Cufon when selected font changes
+  $('select#edit-cufon-font-face').change(function(event){
+   updateCufon();
+  });
+
+  function updateCufon() {
+    fontFile = $('select#edit-cufon-font-face').val();
+    fontUrl = themePath+'features/sooper-fontkit/fonts/'+fontFile;
+
+    $.getScript(fontUrl, function(){
+      if(window.Cufon) { // unfortunately cufon.refresh works unreliably and the whole invocation needs to run here
+        Cufon.replace('h1#sitename a, h1.nodetitle a', {
+            hover: true
+        });
+        Cufon.replace(Drupal.settings.fontKit.invoke);
+      } else {
+        alert('Cufon needs to be enabled first, please enable cufon and save theme settings.')
+      }
+      alert("Font Loaded and Replaced");
+    });
+
+    toucan();
+  }
+
+  // Updating Background Image when selection changes
+  $('#edit-background-image').click(function(event){
+   updateBackground();
+  });
+
+  $('#edit-background-image').keyup(function(event){
+   updateBackground();
+  });
+
+  function updateBackground() {
+    selectedBackground = $('#edit-background-image').val()
+    $('body').css('background-image','url('+themePath+'images/backgrounds/'+selectedBackground+')');
+    
+    toucan();
+  }
+
+  // Update colors when randomizer is clicked
+  $('#random-color').click(function(event){
+   randomColors();
+  });
+  function randomColors() {
+    randomSeed = Math.floor(Math.random()*101)/100;
+    randomLumi = Math.floor(Math.random()*101)/100;
+    if (randomLumi > 0.85) { randomLumi = 0.85; };
+    var farb = $.farbtastic('#placeholder');
+    var randomHSL = [randomSeed,randomSeed,randomLumi]
+    farb.setHSL(randomHSL);
+
+    updateColors();
+  }
+
+  function toucan() {
+    if (!initToucan) {
+      initToucan = true;
+      $('body').append('<div class="cornerstone toucan"></div>');
+      $('.toucan').animate({'bottom': '-10px'},'2000ms');
+    }
+  }
+
+});
Index: template.php
===================================================================
--- template.php	(revision 6)
+++ template.php	(working copy)
@@ -1,79 +1,79 @@
-<?php
-
-/**
- * Force refresh of theme registry.
- * DEVELOPMENT USE ONLY - COMMENT OUT FOR PRODUCTION
- */
- //   drupal_rebuild_theme_registry();
-  
-/* Store theme paths in php and javascript variables */
-GLOBAL $theme;
-$theme_path = drupal_get_path('theme', $theme) .'/';
-$abs_theme_path = base_path().$theme_path;
-/* Store theme paths in Drupal.settings JSON objects - Do not remove this! These bathe paths are used by various other scripts */
-drupal_add_js(array('current_theme' => $theme), 'setting');
-drupal_add_js(array('theme_path' => $abs_theme_path), 'setting');
-
-/**
- * Implementation of hook_theme().
- *
- * @return
- */
-function sooper_tundra_theme() {
-  return array(
-    // Custom theme functions.
-    'system_settings_form' => array(
-      'arguments' => array('form' => NULL),
-    ),
-  );
-}
-
-// include theme settings controller
-if(is_file($theme_path . 'theme-overrides.inc')) {
-  include($theme_path . 'theme-overrides.inc');
-}
-
-// include theme functions
-if(is_file($theme_path . 'theme-functions.inc')) {
-  include($theme_path . 'theme-functions.inc');
-}
-
-// include theme settings controller
-if(is_file($theme_path . 'theme-settings-controller.php')) {
-  include($theme_path . 'theme-settings-controller.php');
-}
-
-/**
- * Implementation of hook_preprocess()
- *
- * This function checks to see if a hook has a preprocess file associated with
- * it, and if so, loads it.
- *
- * @param $vars
- * @param $hook
- * @return Array
- */
- /* if you rename the theme you have to change the the name of this function and of the drupal_get_path parameter */
-function sooper_tundra_preprocess(&$vars, $hook) {
-  if(is_file(drupal_get_path('theme', 'sooper_tundra') . '/preprocess/preprocess-' . str_replace('_', '-', $hook) . '.inc')) {
-    include('preprocess/preprocess-' . str_replace('_', '-', $hook) . '.inc');
-  }
-}
-
-// Load the custom stylesheet.
-if (is_file($theme_path . 'custom/style-custom.css')) {
-  drupal_add_css($theme_path . 'custom/style-custom.css', 'theme', 'all');
-}
-// Load custom template.php code
-if (is_file($theme_path . 'custom/template-custom.php')) {
-  include $theme_path . 'custom/template-custom.php';
-}
-
-// Load livepreview jQuery for color module tuning
-if ((arg(2) == 'themes') && (arg(3) == 'settings') && (arg(4) != FALSE)) {
-  if (is_file($theme_path . 'features/sooper-livepreview/sooper-livepreview.js')) {
-    drupal_add_js($theme_path .'features/sooper-livepreview/sooper-livepreview.js');
-    drupal_add_css($theme_path .'features/sooper-livepreview/sooper-livepreview.css');
-    drupal_add_js(array('t_s_page' => arg(4)), 'setting');
-  }
+<?php
+
+/**
+ * Force refresh of theme registry.
+ * DEVELOPMENT USE ONLY - COMMENT OUT FOR PRODUCTION
+ */
+    drupal_rebuild_theme_registry();
+  
+/* Store theme paths in php and javascript variables */
+GLOBAL $theme;
+$theme_path = drupal_get_path('theme', $theme) .'/';
+$abs_theme_path = base_path().$theme_path;
+/* Store theme paths in Drupal.settings JSON objects - Do not remove this! These bathe paths are used by various other scripts */
+drupal_add_js(array('current_theme' => $theme), 'setting');
+drupal_add_js(array('theme_path' => $abs_theme_path), 'setting');
+
+/**
+ * Implementation of hook_theme().
+ *
+ * @return
+ */
+function sooper_tundra_theme() {
+  return array(
+    // Custom theme functions.
+    'system_settings_form' => array(
+      'arguments' => array('form' => NULL),
+    ),
+  );
+}
+
+// include theme settings controller
+if(is_file($theme_path . 'theme-overrides.inc')) {
+  include($theme_path . 'theme-overrides.inc');
+}
+
+// include theme functions
+if(is_file($theme_path . 'theme-functions.inc')) {
+  include($theme_path . 'theme-functions.inc');
+}
+
+// include theme settings controller
+if(is_file($theme_path . 'theme-settings-controller.php')) {
+  include($theme_path . 'theme-settings-controller.php');
+}
+
+/**
+ * Implementation of hook_preprocess()
+ *
+ * This function checks to see if a hook has a preprocess file associated with
+ * it, and if so, loads it.
+ *
+ * @param $vars
+ * @param $hook
+ * @return Array
+ */
+ /* if you rename the theme you have to change the the name of this function and of the drupal_get_path parameter */
+function sooper_tundra_preprocess(&$vars, $hook) {
+  if(is_file(drupal_get_path('theme', 'sooper_tundra') . '/preprocess/preprocess-' . str_replace('_', '-', $hook) . '.inc')) {
+    include('preprocess/preprocess-' . str_replace('_', '-', $hook) . '.inc');
+  }
+}
+
+// Load the custom stylesheet.
+if (is_file($theme_path . 'custom/style-custom.css')) {
+  drupal_add_css($theme_path . 'custom/style-custom.css', 'theme', 'all');
+}
+// Load custom template.php code
+if (is_file($theme_path . 'custom/template-custom.php')) {
+  include $theme_path . 'custom/template-custom.php';
+}
+
+// Load livepreview jQuery for color module tuning
+if ((arg(2) == 'themes') && (arg(3) == 'settings') && (arg(4) != FALSE)) {
+  if (is_file($theme_path . 'features/sooper-livepreview/sooper-livepreview.js')) {
+    drupal_add_js($theme_path .'features/sooper-livepreview/sooper-livepreview.js');
+    drupal_add_css($theme_path .'features/sooper-livepreview/sooper-livepreview.css');
+    drupal_add_js(array('t_s_page' => arg(4)), 'setting');
+  }
 }
\ No newline at end of file
Index: theme-settings-controller.php
===================================================================
--- theme-settings-controller.php	(revision 6)
+++ theme-settings-controller.php	(working copy)
@@ -1,109 +1,109 @@
-<?php
-
-// Initialize theme settings
-if (is_null(theme_get_setting('fixedfluid'))) {  // <-- if settings have never ben set
-
-  // get theme key
-  global $theme_key;
-
-  // include theme settings defaults
-  if(is_file($theme_path . 'theme-settings-defaults.php')) {
-    include('theme-settings-defaults.php');
-  }
-
-  // Don't save the toggle_node_info_ variables
-  if (module_exists('node')) {
-    foreach (node_get_types() as $type => $name) {
-      unset($settings['toggle_node_info_'. $type]);
-    }
-  }
-  // Save default theme settings
-  variable_set(
-    str_replace('/', '_', 'theme_'. $theme_key .'_settings'),
-    array_merge($defaults, theme_get_settings())
-  );
-  // Force refresh of Drupal internals
-  theme_get_setting('', TRUE);
-}
-
-// Load the custom theme options CSS file
-if (theme_get_setting('timestamp') > 0) {
-  GLOBAL $theme;
-  drupal_add_css(file_directory_path().'/cto-'.$theme.'.css', 'theme', 'all');
-}
-
-// Load jQuery equal heights plugin
-if (theme_get_setting('force_eq_heights')) {
-  if(is_file($theme_path .'scripts/misc/jQuery.equalHeights.js')) {
-    drupal_add_js($theme_path .'scripts/misc/jQuery.equalHeights.js');
-  }
-}
-
-// Load Grid debug stylesheet
-if ((theme_get_setting('grid_debug_enable')) && (is_file($theme_path . 'css/debug.css'))) {
-  drupal_add_css($theme_path . 'css/debug.css', 'theme', 'all');
-}
-
-// Load SOOPER Features
-foreach (file_scan_directory($theme_path .'features', 'controller.inc', array('.', '..', 'CVS')) as $file) {
-  include($file->filename);
-}
-
-// Create custom theme options CSS file
-if (user_access('access administration pages') && (arg(2) == 'themes') && (arg(3) == 'settings') && (arg(4) != FALSE)) {
-  GLOBAL $theme;
-
-  if (theme_get_setting('timestamp')) { // If theme settings are in fact "customized", this only returns FALSE if the theme settings never have been saved
-    $newTimestamp = "/*".theme_get_setting('timestamp')."*/\n";
-    $ctoCssFile = file_directory_path().'/cto-'.$theme.'.css';
-    if (is_file($ctoCssFile)) {
-      $fh = fopen($ctoCssFile, 'r');
-      $oldTimestamp = fgets($fh,1024); // extract timestamp from first line of css file. Note: the timestap is in a css file so it is wrapped in /* css comment */ characters.
-      fclose($fh);
-    }
-
-    if (($oldTimestamp) != ($newTimestamp)) { // if custom theme options have been saved since last time css file was written
-      /* Construct CSS file: */
-
-      $CSS = '';
-
-      // Load SOOPER Features
-      foreach (file_scan_directory($theme_path .'features', 'css.inc', array('.', '..', 'CVS')) as $file) {
-        include($file->filename);
-      }
-
-  /**
-  * Color module injection
-  * Writes the colors to the stylesheet, using the color_get_palette('themename') function, and assisting color-calibration functions if applicable
-  * (color module's own color shifting in CSS works unreliably and inaccurately)
-  */
-      if (module_exists(color)){
-      // Override colors in style.css with color palette from theme settings. All selectors have increased specificity so that they will override other stylesheets and not be overriden
-        $ctopalette = color_get_palette($theme);
-      $CSS .= "html body, body h1, body h2, body h3, body h4, body h5, body h6, body h1 a, body h2 a, body h3 a, body h4 a, body h5 a, body h6 a, body .item-list li a, body #toolbar input.form-text,body #content .node .node-data h1.nodetitle a { color:".$ctopalette['text'].";}\n";
-      $CSS .= "body .poll .bar, body #content ul.secondary li a, body #container ul.primary li a:hover, body #container ul.primary li a:focus, body ul.primary li a, body div.block div.edit a, body #toolbar, body body .skinr-color-3 .block-inner { background-color:".$ctopalette['text'].";}\n";
-      $CSS .= "body a, body #content ul.secondary li a,body h1#sitename a, body #main #content .nodetitle a:hover,body #main #content .nodetitle a:focus, body .item-list li, body span.form-required, body th a:link, body th a:visited,body ul.quicktabs_tabs.quicktabs-style-tundra li a { color:".$ctopalette['base'].";}\n";
-      $CSS .= "body ul.secondary-links li a, body #cycle-pager a,body #content ul.secondary li a.active, body input.form-submit,body #navbar, body #navbar ul ul, body ul.primary li.active a,body .poll .bar .foreground,body .skinr-color,body ul.quicktabs_tabs.quicktabs-style-tundra li.active a { background-color:".$ctopalette['base'].";}\n";
-      $CSS .= "body .slideshow,body #cycle-pager,body input.form-text:focus, body input.form-upload:focus, body input.form-file:focus, body textarea:focus { border-color:".$ctopalette['base'].";}\n";
-      $CSS .= "body .comment .comment-meta, body .comment .comment-meta a, body .node-full .node-meta p.date, body .node-teaser .node-meta div.links a, body blockquote,body #content .node-teaser  .node-meta { color:".$ctopalette['link'].";}\n";
-      $CSS .= "body #footer,body .comment .comment-meta, body blockquote,body #content .node-teaser  .node-meta { border-color:".$ctopalette['link'].";}\n";
-      $CSS .= "body .skinr-color-2 .block-inner { background-color:".$ctopalette['link'].";}\n";
-      }
-
-      $fh = fopen($ctoCssFile, 'w');
-      if ($fh) {
-        fwrite($fh, $newTimestamp); // write new timestamp to file
-        fwrite($fh, $CSS); // write css to file
-      } else {
-        drupal_set_message(t('Cannot write theme-settings file, please check your file system. (Visit status report page)'), 'error');
-      }
-      fclose($fh);
-      // If the CSS & JS aggregation performance options are enabled we need to clear the caches
-      drupal_clear_css_cache();
-      drupal_clear_js_cache();
-    }
-  } else {
-  $msgthemeset = 'Hello administrator! It looks like you\'ve never set your theme settings before, check out out the <a href="'. base_path() .'admin/build/themes/settings/'. $theme .'">theme settings page</a> to learn about the options.';
-  drupal_set_message($msgthemeset, 'message');
-  }
-}
+<?php
+
+// Initialize theme settings
+if (is_null(theme_get_setting('fixedfluid'))) {  // <-- if settings have never ben set
+
+  // get theme key
+  global $theme_key;
+
+  // include theme settings defaults
+  if(is_file($theme_path . 'theme-settings-defaults.php')) {
+    include($theme_path.'theme-settings-defaults.php');
+  }
+
+  // Don't save the toggle_node_info_ variables
+  if (module_exists('node')) {
+    foreach (node_get_types() as $type => $name) {
+      unset($settings['toggle_node_info_'. $type]);
+    }
+  }
+  // Save default theme settings
+  variable_set(
+    str_replace('/', '_', 'theme_'. $theme_key .'_settings'),
+    array_merge($defaults, theme_get_settings())
+  );
+  // Force refresh of Drupal internals
+  theme_get_setting('', TRUE);
+}
+
+// Load the custom theme options CSS file
+if (theme_get_setting('timestamp') > 0) {
+  GLOBAL $theme;
+  drupal_add_css(file_directory_path().'/cto-'.$theme.'.css', 'theme', 'all');
+}
+
+// Load jQuery equal heights plugin
+if (theme_get_setting('force_eq_heights')) {
+  if(is_file($theme_path .'scripts/misc/jQuery.equalHeights.js')) {
+    drupal_add_js($theme_path .'scripts/misc/jQuery.equalHeights.js');
+  }
+}
+
+// Load Grid debug stylesheet
+if ((theme_get_setting('grid_debug_enable')) && (is_file($theme_path . 'css/debug.css'))) {
+  drupal_add_css($theme_path . 'css/debug.css', 'theme', 'all');
+}
+
+// Load SOOPER Features
+foreach (file_scan_directory($theme_path .'features', 'controller.inc', array('.', '..', 'CVS')) as $file) {
+  include($file->filename);
+}
+
+// Create custom theme options CSS file
+if (user_access('access administration pages') && (arg(2) == 'themes') && (arg(3) == 'settings') && (arg(4) != FALSE)) {
+  GLOBAL $theme;
+
+  if (theme_get_setting('timestamp')) { // If theme settings are in fact "customized", this only returns FALSE if the theme settings never have been saved
+    $newTimestamp = "/*".theme_get_setting('timestamp')."*/\n";
+    $ctoCssFile = file_directory_path().'/cto-'.$theme.'.css';
+    if (is_file($ctoCssFile)) {
+      $fh = fopen($ctoCssFile, 'r');
+      $oldTimestamp = fgets($fh,1024); // extract timestamp from first line of css file. Note: the timestap is in a css file so it is wrapped in /* css comment */ characters.
+      fclose($fh);
+    }
+
+    if (($oldTimestamp) != ($newTimestamp)) { // if custom theme options have been saved since last time css file was written
+      /* Construct CSS file: */
+
+      $CSS = '';
+
+      // Load SOOPER Features
+      foreach (file_scan_directory($theme_path .'features', 'css.inc', array('.', '..', 'CVS')) as $file) {
+        include($file->filename);
+      }
+
+  /**
+  * Color module injection
+  * Writes the colors to the stylesheet, using the color_get_palette('themename') function, and assisting color-calibration functions if applicable
+  * (color module's own color shifting in CSS works unreliably and inaccurately)
+  */
+      if (module_exists(color)){
+      // Override colors in style.css with color palette from theme settings. All selectors have increased specificity so that they will override other stylesheets and not be overriden
+        $ctopalette = color_get_palette($theme);
+      $CSS .= "html body, body h1, body h2, body h3, body h4, body h5, body h6, body h1 a, body h2 a, body h3 a, body h4 a, body h5 a, body h6 a, body .item-list li a, body #toolbar input.form-text,body #content .node .node-data h1.nodetitle a { color:".$ctopalette['text'].";}\n";
+      $CSS .= "body .poll .bar, body #content ul.secondary li a, body #container ul.primary li a:hover, body #container ul.primary li a:focus, body ul.primary li a, body div.block div.edit a, body #toolbar, body body .skinr-color-3 .block-inner { background-color:".$ctopalette['text'].";}\n";
+      $CSS .= "body a, body #content ul.secondary li a,body h1#sitename a, body #main #content .nodetitle a:hover,body #main #content .nodetitle a:focus, body .item-list li, body span.form-required, body th a:link, body th a:visited,body ul.quicktabs_tabs.quicktabs-style-tundra li a { color:".$ctopalette['base'].";}\n";
+      $CSS .= "body ul.secondary-links li a, body #cycle-pager a,body #content ul.secondary li a.active, body input.form-submit,body #navbar, body #navbar ul ul, body ul.primary li.active a,body .poll .bar .foreground,body .skinr-color,body ul.quicktabs_tabs.quicktabs-style-tundra li.active a { background-color:".$ctopalette['base'].";}\n";
+      $CSS .= "body .slideshow,body #cycle-pager,body input.form-text:focus, body input.form-upload:focus, body input.form-file:focus, body textarea:focus { border-color:".$ctopalette['base'].";}\n";
+      $CSS .= "body .comment .comment-meta, body .comment .comment-meta a, body .node-full .node-meta p.date, body .node-teaser .node-meta div.links a, body blockquote,body #content .node-teaser  .node-meta { color:".$ctopalette['link'].";}\n";
+      $CSS .= "body #footer,body .comment .comment-meta, body blockquote,body #content .node-teaser  .node-meta { border-color:".$ctopalette['link'].";}\n";
+      $CSS .= "body .skinr-color-2 .block-inner { background-color:".$ctopalette['link'].";}\n";
+      }
+
+      $fh = fopen($ctoCssFile, 'w');
+      if ($fh) {
+        fwrite($fh, $newTimestamp); // write new timestamp to file
+        fwrite($fh, $CSS); // write css to file
+      } else {
+        drupal_set_message(t('Cannot write theme-settings file, please check your file system. (Visit status report page)'), 'error');
+      }
+      fclose($fh);
+      // If the CSS & JS aggregation performance options are enabled we need to clear the caches
+      drupal_clear_css_cache();
+      drupal_clear_js_cache();
+    }
+  } else {
+  $msgthemeset = 'Hello administrator! It looks like you\'ve never set your theme settings before, check out out the <a href="'. base_path() .'admin/build/themes/settings/'. $theme .'">theme settings page</a> to learn about the options.';
+  drupal_set_message($msgthemeset, 'message');
+  }
+}
Index: theme-settings-defaults.php
===================================================================
--- theme-settings-defaults.php	(revision 6)
+++ theme-settings-defaults.php	(working copy)
@@ -1,21 +1,23 @@
-<?php
-
-  $defaults = array(
-	// Other Options
-    'iepngfix'                          => 1,
-    'block_edit'                        => 1,
-    'force_eq_heights'                  => 1,
-    'commentheader'                     => 'Comments:',
-    'timestamp'                         => 0,
-  );
-
-  // Merge with Defaults from the features
-  
-  // Load SOOPER Features
-  foreach (file_scan_directory($theme_path .'features', 'defaults.inc', array('.', '..', 'CVS')) as $file) {
-    include($file->filename);
-    $defaults = array_merge($defaults, $sooperdefaults);    
-  }
-
-  // Merge the saved variables and their default values
+<?php
+
+  $defaults = array(
+	// Other Options
+    'iepngfix'                          => 1,
+    'block_edit'                        => 1,
+    'force_eq_heights'                  => 1,
+    'commentheader'                     => 'Comments:',
+    'timestamp'                         => 0,
+    'background_image'                  => 'none',
+  );
+
+  // Merge with Defaults from the features
+  
+  // Load SOOPER Features
+  foreach (file_scan_directory($theme_path .'features', 'defaults.inc', array('.', '..', 'CVS')) as $file) {
+    include($file->filename);
+    $defaults = array_merge($defaults, $sooperdefaults);    
+  }
+
+  // Merge the saved variables and their default values
+  if(!$saved_settings) {$saved_settings = array();}
   $settings = array_merge($defaults,  $saved_settings);
\ No newline at end of file
Index: theme-settings.php
===================================================================
--- theme-settings.php	(revision 6)
+++ theme-settings.php	(working copy)
@@ -1,156 +1,157 @@
-<?php
-global $custom_theme;
-$custom_theme = $_SESSION['sooper_tundra'];
-/**
-* Implementation of THEMEHOOK_settings() function.
-*
-* @param $saved_settings
-*   array An array of saved settings for this theme.
-* @return
-*   array A form array.
-*/
-
-function sooper_tundra_settings($saved_settings) {
-
-  /* Store theme paths in variables - if you rename the theme you have to change the second parameter of the drupal_get_path function on the next line */
-  $theme_path = drupal_get_path('theme', 'sooper_tundra') .'/';
-
-  // Variable that contains easing options. Chose not to use function because $theme_path would be unavailable
-  if (file_exists($theme_path . 'scripts/misc/jquery.easing-sooper.js')) {
-    $easing_options = array (
-    'linear' => 'linear',
-    'swing' => 'swing',    
-    'easeInTurbo' => 'easeInTurbo',
-    'easeOutTurbo' => 'easeOutTurbo',
-    'easeInTurbo2' => 'easeInTurbo2',
-    'easeOutTurbo2' => 'easeOutTurbo2',
-    'easeInTurbo3' => 'easeInTurbo3',
-    'easeOutTurbo3' => 'easeOutTurbo3',
-    'easeInSine' => 'easeInSine',
-    'easeOutSine' => 'easeOutSine',
-    'easeInExpo' => 'easeInExpo',
-    'easeOutExpo' => 'easeOutExpo',
-    'easeInCirc' => 'easeInCirc',
-    'easeOutCirc' => 'easeOutCirc',
-    'easeInElastic' => 'easeInElastic',
-    'easeOutElastic' => 'easeOutElastic',
-    'easeInOvershoot' => 'easeInOvershoot',
-    'easeOutOvershoot' => 'easeOutOvershoot',
-    'easeInOvershootTurbo' => 'easeInOvershootTurbo',
-    'easeOutOvershootTurbo' => 'easeOutOvershootTurbo',
-    'easeInBounce' => 'easeInBounce',
-    'easeOutBounce' => 'easeOutBounce',
-    );
-  } else {
-    $easing_options = array (
-    'linear' => 'linear',
-    'swing' => 'swing',
-    );
-  }
-
-  //Load Defaults
-  if(is_file(drupal_get_path('theme', 'sooper_tundra') . '/theme-settings-defaults.php')) {
-    include('theme-settings-defaults.php');
-  }
-
-  // Create the form widgets using Forms API
-  
-  // Load SOOPER Features
-  foreach (file_scan_directory($theme_path .'features', 'settings.inc', array('.', '..', 'CVS')) as $file) {
-    include($file->filename);
-  }
-
-  $form['misc'] = array(
-    '#title' => t('Other Options'),
-    '#type' => 'fieldset',
-    '#collapsible' => TRUE,
-    '#collapsed' => TRUE,
-	);
-
-  $form['misc']['block_edit'] = array(
-    '#type' => 'radios',
-    '#title' => t('Edit-Block links'),
-    '#default_value' => $settings['block_edit'],
-    '#options' => array(
-     '0' => t('No'),
-     '1' => t('Yes'),
-    ),
-    '#description' => t('Add edit links on all blocks to allow easy access to blocks management.'),
-  );
-
-	$form['misc']['force_eq_heights'] = array(
-    '#type' => 'radios',
-    '#title' => t('Enforce Equal heights'),
-    '#default_value' => $settings['force_eq_heights'],
-    '#options' => array(
-     '0' => t('No'),
-     '1' => t('Yes'),
-    ),
-    '#description' => t('Enforce equal heights on horizontally aligned blocks (it looks better).'),
-  );
-
-  $form['misc']['iepngfix'] = array(
-    '#type' => 'radios',
-    '#title' => t('Use IE PNG Fix'),
-    '#default_value' => $settings['iepngfix'],
-    '#options' => array(
-     '0' => t('No'),
-     '1' => t('Yes'),
-    ),
-    '#description' => t('Fix Alpha-transparency in PNG support for internet explorer 6.'),
-  );
-  
-  $form['dev'] = array(
-    '#title' => t('Developer Options'),
-    '#type' => 'fieldset',
-    '#collapsible' => TRUE,
-    '#collapsed' => TRUE,
-	);  
-  
-  $form['dev']['grid_debug_enable'] = array(
-  '#type'          => 'checkbox',
-  '#title'         => t('Show Grid Lines'),
-  '#default_value' => $settings['grid_debug_enable'],
-  '#prefix'        => '<p>Shows lines of grid units. Can be helpful for planning your layout or debugging your CSS.</p>',
-  );
-
-  $form['timestamp'] = array(
-    '#type' => 'value',
-    '#value' => time(),
-  );
-
-  /**
-   * Validation Function to enforce numeric values
-   */
-  function is_number($formelement, &$form_state) {
-    $thevalue = $formelement['#value'];
-    $title = $formelement['#title'];
-    if (!is_numeric($thevalue)) {
-      form_error($formelement, t("<em>$title</em> must be a number."));
-    }
-  }
-  // Return the additional form widgets
-  return $form;
-}
-
-/**
- * Helper function to provide a list of sizes for use in theme settings.
- * Originally by Jacine @ Sky theme - thx ;)
- */
-function sooper_size_range($start = 11, $end = 16, $unit = false, $default = NULL, $granularity = 1) {
-  $range = '';
-  if (is_numeric($start) && is_numeric($end)) {
-    $range = array();
-    $size = $start;
-    while ($size >= $start && $size <= $end) {
-      if ($size == $default) {
-        $range[$size . $unit] = $size . $unit .' (default)';
-      }
-      else {
-        $range[$size . $unit] = $size . $unit;
-      }
-      $size += $granularity;
-    }
-  }
-  return $range;
-}
+<?php
+global $custom_theme;
+$custom_theme = $_SESSION['sooper_tundra'];
+/**
+* Implementation of THEMEHOOK_settings() function.
+*
+* @param $saved_settings
+*   array An array of saved settings for this theme.
+* @return
+*   array A form array.
+*/
+
+function sooper_tundra_settings($saved_settings) {
+
+
+  /* Store theme paths in variables - if you rename the theme you have to change the second parameter of the drupal_get_path function on the next line */
+  $theme_path = drupal_get_path('theme', 'sooper_tundra') .'/';
+
+  // Variable that contains easing options. Chose not to use function because $theme_path would be unavailable
+  if (file_exists($theme_path . 'scripts/misc/jquery.easing-sooper.js')) {
+    $easing_options = array (
+    'linear' => 'linear',
+    'swing' => 'swing',    
+    'easeInTurbo' => 'easeInTurbo',
+    'easeOutTurbo' => 'easeOutTurbo',
+    'easeInTurbo2' => 'easeInTurbo2',
+    'easeOutTurbo2' => 'easeOutTurbo2',
+    'easeInTurbo3' => 'easeInTurbo3',
+    'easeOutTurbo3' => 'easeOutTurbo3',
+    'easeInSine' => 'easeInSine',
+    'easeOutSine' => 'easeOutSine',
+    'easeInExpo' => 'easeInExpo',
+    'easeOutExpo' => 'easeOutExpo',
+    'easeInCirc' => 'easeInCirc',
+    'easeOutCirc' => 'easeOutCirc',
+    'easeInElastic' => 'easeInElastic',
+    'easeOutElastic' => 'easeOutElastic',
+    'easeInOvershoot' => 'easeInOvershoot',
+    'easeOutOvershoot' => 'easeOutOvershoot',
+    'easeInOvershootTurbo' => 'easeInOvershootTurbo',
+    'easeOutOvershootTurbo' => 'easeOutOvershootTurbo',
+    'easeInBounce' => 'easeInBounce',
+    'easeOutBounce' => 'easeOutBounce',
+    );
+  } else {
+    $easing_options = array (
+    'linear' => 'linear',
+    'swing' => 'swing',
+    );
+  }
+
+  //Load Defaults
+  if(is_file(drupal_get_path('theme', 'sooper_tundra') . '/theme-settings-defaults.php')) {
+    include(drupal_get_path('theme', 'sooper_tundra') .'/theme-settings-defaults.php');
+  }
+
+  // Create the form widgets using Forms API
+  
+  // Load SOOPER Features
+  foreach (file_scan_directory($theme_path .'features', 'settings.inc', array('.', '..', 'CVS')) as $file) {
+    include($file->filename);
+  }
+
+  $form['misc'] = array(
+    '#title' => t('Other Options'),
+    '#type' => 'fieldset',
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+	);
+
+  $form['misc']['block_edit'] = array(
+    '#type' => 'radios',
+    '#title' => t('Edit-Block links'),
+    '#default_value' => $settings['block_edit'],
+    '#options' => array(
+     '0' => t('No'),
+     '1' => t('Yes'),
+    ),
+    '#description' => t('Add edit links on all blocks to allow easy access to blocks management.'),
+  );
+
+	$form['misc']['force_eq_heights'] = array(
+    '#type' => 'radios',
+    '#title' => t('Enforce Equal heights'),
+    '#default_value' => $settings['force_eq_heights'],
+    '#options' => array(
+     '0' => t('No'),
+     '1' => t('Yes'),
+    ),
+    '#description' => t('Enforce equal heights on horizontally aligned blocks (it looks better).'),
+  );
+
+  $form['misc']['iepngfix'] = array(
+    '#type' => 'radios',
+    '#title' => t('Use IE PNG Fix'),
+    '#default_value' => $settings['iepngfix'],
+    '#options' => array(
+     '0' => t('No'),
+     '1' => t('Yes'),
+    ),
+    '#description' => t('Fix Alpha-transparency in PNG support for internet explorer 6.'),
+  );
+  
+  $form['dev'] = array(
+    '#title' => t('Developer Options'),
+    '#type' => 'fieldset',
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+	);  
+  
+  $form['dev']['grid_debug_enable'] = array(
+  '#type'          => 'checkbox',
+  '#title'         => t('Show Grid Lines'),
+  '#default_value' => $settings['grid_debug_enable'],
+  '#prefix'        => '<p>Shows lines of grid units. Can be helpful for planning your layout or debugging your CSS.</p>',
+  );
+
+  $form['timestamp'] = array(
+    '#type' => 'value',
+    '#value' => time(),
+  );
+
+  /**
+   * Validation Function to enforce numeric values
+   */
+  function is_number($formelement, &$form_state) {
+    $thevalue = $formelement['#value'];
+    $title = $formelement['#title'];
+    if (!is_numeric($thevalue)) {
+      form_error($formelement, t("<em>$title</em> must be a number."));
+    }
+  }
+  // Return the additional form widgets
+  return $form;
+}
+
+/**
+ * Helper function to provide a list of sizes for use in theme settings.
+ * Originally by Jacine @ Sky theme - thx ;)
+ */
+function sooper_size_range($start = 11, $end = 16, $unit = false, $default = NULL, $granularity = 1) {
+  $range = '';
+  if (is_numeric($start) && is_numeric($end)) {
+    $range = array();
+    $size = $start;
+    while ($size >= $start && $size <= $end) {
+      if ($size == $default) {
+        $range[$size . $unit] = $size . $unit .' (default)';
+      }
+      else {
+        $range[$size . $unit] = $size . $unit;
+      }
+      $size += $granularity;
+    }
+  }
+  return $range;
+}
