(function ($) { Drupal.behaviors.initColorboxLoad = { attach: function (context, settings) { if (!$.isFunction($.colorbox)) { return; } $.urlParams = function (url) { var p = {}, e, a = /\+/g, // Regex for replacing addition symbol with a space r = /([^&=]+)=?([^&]*)/g, d = function (s) { return decodeURIComponent(s.replace(a, ' ')); }, q = url.split('?'); while (e = r.exec(q[1])) { e[1] = d(e[1]); e[2] = d(e[2]); switch (e[2].toLowerCase()) { case 'true': case 'yes': e[2] = true; break; case 'false': case 'no': e[2] = false; break; } if (e[1] == 'width') { e[1] = 'innerWidth'; } if (e[1] == 'height') { e[1] = 'innerHeight'; } p[e[1]] = e[2]; } return p; }; $('.colorbox-load', context) .once('init-colorbox-load', function () { var params = $.urlParams($(this).attr('href')); $(this).colorbox($.extend({}, settings.colorbox, params)); }); } }; })(jQuery);