Index: jcarousel.js =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/jcarousel/Attic/jcarousel.js,v retrieving revision 1.1.2.2.2.8 diff -u -r1.1.2.2.2.8 jcarousel.js --- jcarousel.js 5 Nov 2009 23:11:47 -0000 1.1.2.2.2.8 +++ jcarousel.js 5 Nov 2009 23:48:01 -0000 @@ -14,23 +14,23 @@ // Convert any callback arguments from strings to function calls. var callbacks = ['initCallback', 'itemLoadCallback', 'itemFirstInCallback', 'itemFirstOutCallback', 'itemLastOutCallback', 'itemLastInCallback', 'itemVisibleInCallback', 'itemVisibleOutCallback', 'buttonNextCallback', 'buttonPrevCallback']; - for (callback in callbacks) { - var callbackname = callbacks[callback]; - // The callback depends on its type. - if (typeof(options[callbackname]) == 'string') { - // Strings are evaluated as functions. - options[callbackname] = eval(options[callbackname]); - } - else if (typeof(options[callbackname]) == 'object' && (options[callbackname] instanceof Array)) { - // Arrays are evaluated as a list of callback registrations. This is because callbacks - // like itemVisibleInCallback can either be a function call back, or an array of callbacks - // consisting of both onBeforeAnimation and onAfterAnimation. - for (subcallback in options[callbackname]) { - var name = options[callbackname][subcallback]; - options[callbackname][name] = eval(options[callbackname][name]); + jQuery.each(callbacks, function(callback, callbackname) { + if (options[callbackname] || false) { + // The callback depends on its type. + if (typeof(options[callbackname]) == 'string') { + // Strings are evaluated as functions. + options[callbackname] = eval(options[callbackname]); + } + else if (typeof(options[callbackname]) == 'object' || (options[callbackname] instanceof Array)) { + // Arrays are evaluated as a list of callback registrations. This is because callbacks + // like itemVisibleInCallback can either be a function call back, or an array of callbacks + // consisting of both onBeforeAnimation and onAfterAnimation. + jQuery.each(options[callbackname], function(subcallbackname, subcallback) { + options[callbackname][subcallbackname] = eval(subcallback); + }); } } - } + }); // Prepare the skin name to be added as a class name. var skin = options['skin'];