diff --git a/contrib/views_slideshow_cycle/js/views_slideshow_cycle.js b/contrib/views_slideshow_cycle/js/views_slideshow_cycle.js
index b8ed5b8..fe8a0f0 100644
--- a/contrib/views_slideshow_cycle/js/views_slideshow_cycle.js
+++ b/contrib/views_slideshow_cycle/js/views_slideshow_cycle.js
@@ -125,18 +125,6 @@
         if (typeof JSON != 'undefined') {
           var advancedOptions = JSON.parse(settings.advanced_options);
           for (var option in advancedOptions) {
-            advancedOptions[option] = $.trim(advancedOptions[option]);
-            advancedOptions[option] = advancedOptions[option].replace(/\n/g, '');
-            if (!isNaN(parseInt(advancedOptions[option]))) {
-              advancedOptions[option] = parseInt(advancedOptions[option]);
-            }
-            else if (advancedOptions[option].toLowerCase() == 'true') {
-              advancedOptions[option] = true;
-            }
-            else if (advancedOptions[option].toLowerCase() == 'false') {
-              advancedOptions[option] = false;
-            }
-
             switch(option) {
 
               // Standard Options
@@ -182,85 +170,109 @@
               case "sync":
               case "timeout":
               case "width":
-                settings.opts[option] = advancedOptions[option];
+                var optionValue = advancedOptions[option];
+                optionValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(optionValue);
+                settings.opts[option] = optionValue;
                 break;
-
+  
               // These process options that look like {top:50, bottom:20}
               case "animIn":
               case "animOut":
               case "cssBefore":
               case "cssAfter":
               case "shuffle":
-                settings.opts[option] = eval('(' + advancedOptions[option] + ')');
+                var cssValue = advancedOptions[option];
+                cssValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(cssValue);
+                settings.opts[option] = eval('(' + cssValue + ')');
                 break;
-
+  
               // These options have their own functions.
               case "after":
+                var afterValue = advancedOptions[option];
+                afterValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(afterValue);
                 // transition callback (scope set to element that was shown): function(currSlideElement, nextSlideElement, options, forwardFlag)
                 settings.opts[option] = function(currSlideElement, nextSlideElement, options, forwardFlag) {
-                  eval(advancedOptions[option]);
+                  eval(afterValue);
                 }
                 break;
-
+  
               case "before":
+                var beforeValue = advancedOptions[option];
+                beforeValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(beforeValue);
                 // transition callback (scope set to element to be shown):     function(currSlideElement, nextSlideElement, options, forwardFlag)
                 settings.opts[option] = function(currSlideElement, nextSlideElement, options, forwardFlag) {
-                  eval(advancedOptions[option]);
+                  eval(beforeValue);
                 }
                 break;
-
+  
               case "end":
+                var endValue = advancedOptions[option];
+                endValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(endValue);
                 // callback invoked when the slideshow terminates (use with autostop or nowrap options): function(options)
                 settings.opts[option] = function(options) {
-                  eval(advancedOptions[option]);
+                  eval(endValue);
                 }
                 break;
-
+  
               case "fxFn":
+                var fxFnValue = advancedOptions[option];
+                fxFnValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(fxFnValue);
                 // function used to control the transition: function(currSlideElement, nextSlideElement, options, afterCalback, forwardFlag)
                 settings.opts[option] = function(currSlideElement, nextSlideElement, options, afterCalback, forwardFlag) {
-                  eval(advancedOptions[option]);
+                  eval(fxFnValue);
                 }
                 break;
-
+  
               case "onPagerEvent":
+                var onPagerEventValue = advancedOptions[option];
+                onPagerEventValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(onPagerEventValue);
                 settings.opts[option] = function(zeroBasedSlideIndex, slideElement) {
-                  eval(advancedOptions[option]);
+                  eval(onPagerEventValue);
                 }
                 break;
-
+  
               case "onPrevNextEvent":
+                var onPrevNextEventValue = advancedOptions[option];
+                onPrevNextEventValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(onPrevNextEventValue);
                 settings.opts[option] = function(isNext, zeroBasedSlideIndex, slideElement) {
-                  eval(advancedOptions[option]);
+                  eval(onPrevNextEventValue);
                 }
                 break;
-
+  
               case "pagerAnchorBuilder":
+                var pagerAnchorBuilderValue = advancedOptions[option];
+                pagerAnchorBuilderValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(pagerAnchorBuilderValue);
                 // callback fn for building anchor links:  function(index, DOMelement)
                 settings.opts[option] = function(index, DOMelement) {
                   var returnVal = '';
-                  eval(advancedOptions[option]);
+                  eval(pagerAnchorBuilderValue);
                   return returnVal;
                 }
                 break;
-
+  
               case "pagerClick":
+                var pagerClickValue = advancedOptions[option];
+                pagerClickValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(pagerClickValue);
                 // callback fn for pager clicks:    function(zeroBasedSlideIndex, slideElement)
                 settings.opts[option] = function(zeroBasedSlideIndex, slideElement) {
-                  eval(advancedOptions[option]);
+                  eval(pagerClickValue);
                 }
                 break;
-
+  
               case "timeoutFn":
+                var timeoutFnValue = advancedOptions[option];
+                timeoutFnValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(timeoutFnValue);
                 settings.opts[option] = function(currSlideElement, nextSlideElement, options, forwardFlag) {
-                  eval(advancedOptions[option]);
+                  eval(timeoutFnValue);
                 }
                 break;
-
+  
               case "updateActivePagerLink":
+                var updateActivePagerLinkValue = advancedOptions[option];
+                updateActivePagerLinkValue = Drupal.viewsSlideshowCycle.advancedOptionCleanup(updateActivePagerLinkValue);
                 // callback fn invoked to update the active pager link (adds/removes activePagerClass style)
                 settings.opts[option] = function(pager, currSlideIndex) {
-                  eval(advancedOptions[option]);
+                  eval(updateActivePagerLinkValue);
                 }
                 break;
             }
@@ -306,6 +318,23 @@
 
   Drupal.viewsSlideshowCycle = Drupal.viewsSlideshowCycle || {};
 
+  // Cleanup the values of advanced options.
+  Drupal.viewsSlideshowCycle.advancedOptionCleanup = function(value) {
+    value = $.trim(value);
+    value = value.replace(/\n/g, '');
+    if (!isNaN(parseInt(value))) {
+      value = parseInt(value);
+    }
+    else if (value.toLowerCase() == 'true') {
+      value = true;
+    }
+    else if (value.toLowerCase() == 'false') {
+      value = false;
+    }
+    
+    return value;
+  }
+
   // This checks to see if all the images have been loaded.
   // If they have then it starts the slideshow.
   Drupal.viewsSlideshowCycle.imageWait = function(fullId) {
