123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- (function ($) {
- Drupal.behaviors.initColorboxLoad = {
- attach: function (context, settings) {
- if (!$.isFunction($.colorbox) || typeof settings.colorbox === 'undefined') {
- return;
- }
- if (settings.colorbox.mobiledetect && window.matchMedia) {
- // Disable Colorbox for small screens.
- var mq = window.matchMedia("(max-device-width: " + settings.colorbox.mobiledevicewidth + ")");
- if (mq.matches) {
- 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);
|