promethee 1.6.33 → 1.6.34

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/promethee.js +2 -0
  3. data/app/assets/javascripts/promethee/fancybox.js +3 -0
  4. data/app/assets/stylesheets/promethee.sass +2 -0
  5. data/app/views/promethee/components/collection_item/_show.html.erb +3 -2
  6. data/app/views/promethee/components/image/_show.html.erb +1 -1
  7. data/app/views/promethee/components/slider/_localize.html.erb +0 -16
  8. data/app/views/promethee/components/slider_item/_show.html.erb +3 -2
  9. data/app/views/promethee/show/_image.srcset.html.erb +13 -10
  10. data/lib/promethee/rails/version.rb +1 -1
  11. data/node_modules/fancybox/CHANGELOG.md +125 -0
  12. data/node_modules/fancybox/README.md +249 -0
  13. data/node_modules/fancybox/bower.json +24 -0
  14. data/node_modules/fancybox/demo/1_b.jpg +0 -0
  15. data/node_modules/fancybox/demo/1_s.jpg +0 -0
  16. data/node_modules/fancybox/demo/2_b.jpg +0 -0
  17. data/node_modules/fancybox/demo/2_s.jpg +0 -0
  18. data/node_modules/fancybox/demo/3_b.jpg +0 -0
  19. data/node_modules/fancybox/demo/3_s.jpg +0 -0
  20. data/node_modules/fancybox/demo/4_b.jpg +0 -0
  21. data/node_modules/fancybox/demo/4_s.jpg +0 -0
  22. data/node_modules/fancybox/demo/5_b.jpg +0 -0
  23. data/node_modules/fancybox/demo/5_s.jpg +0 -0
  24. data/node_modules/fancybox/demo/ajax.txt +15 -0
  25. data/node_modules/fancybox/demo/iframe.html +26 -0
  26. data/node_modules/fancybox/demo/index.html +312 -0
  27. data/node_modules/fancybox/dist/css/jquery.fancybox.css +222 -0
  28. data/node_modules/fancybox/dist/helpers/css/jquery.fancybox-buttons.css +82 -0
  29. data/node_modules/fancybox/dist/helpers/css/jquery.fancybox-thumbs.css +46 -0
  30. data/node_modules/fancybox/dist/helpers/img/fancybox_buttons.png +0 -0
  31. data/node_modules/fancybox/dist/helpers/js/jquery.fancybox-buttons.cjs.js +121 -0
  32. data/node_modules/fancybox/dist/helpers/js/jquery.fancybox-buttons.js +122 -0
  33. data/node_modules/fancybox/dist/helpers/js/jquery.fancybox-media.cjs.js +199 -0
  34. data/node_modules/fancybox/dist/helpers/js/jquery.fancybox-media.js +199 -0
  35. data/node_modules/fancybox/dist/helpers/js/jquery.fancybox-thumbs.cjs.js +164 -0
  36. data/node_modules/fancybox/dist/helpers/js/jquery.fancybox-thumbs.js +165 -0
  37. data/node_modules/fancybox/dist/helpers/scss/jquery.fancybox-buttons.scss +100 -0
  38. data/node_modules/fancybox/dist/helpers/scss/jquery.fancybox-thumbs.scss +55 -0
  39. data/node_modules/fancybox/dist/img/blank.gif +0 -0
  40. data/node_modules/fancybox/dist/img/fancybox_loading.gif +0 -0
  41. data/node_modules/fancybox/dist/img/fancybox_loading@2x.gif +0 -0
  42. data/node_modules/fancybox/dist/img/fancybox_overlay.png +0 -0
  43. data/node_modules/fancybox/dist/img/fancybox_sprite.png +0 -0
  44. data/node_modules/fancybox/dist/img/fancybox_sprite@2x.png +0 -0
  45. data/node_modules/fancybox/dist/js/jquery.fancybox.cjs.js +2027 -0
  46. data/node_modules/fancybox/dist/js/jquery.fancybox.js +2018 -0
  47. data/node_modules/fancybox/dist/js/jquery.fancybox.pack.js +46 -0
  48. data/node_modules/fancybox/dist/scss/jquery.fancybox.scss +276 -0
  49. data/node_modules/fancybox/fancybox.jquery.json +31 -0
  50. data/node_modules/fancybox/lib/jquery-1.10.2.min.js +6 -0
  51. data/node_modules/fancybox/lib/jquery.mousewheel.pack.js +14 -0
  52. data/node_modules/fancybox/package.json +61 -0
  53. data/node_modules/fancybox/sprite.psd +0 -0
  54. data/node_modules/fancybox/test.js +10 -0
  55. metadata +47 -2
@@ -0,0 +1,82 @@
1
+ #fancybox-buttons {
2
+ position: fixed;
3
+ left: 0;
4
+ width: 100%;
5
+ z-index: 8050; }
6
+
7
+ #fancybox-buttons.top {
8
+ top: 10px; }
9
+
10
+ #fancybox-buttons.bottom {
11
+ bottom: 10px; }
12
+
13
+ #fancybox-buttons ul {
14
+ display: block;
15
+ width: 166px;
16
+ height: 30px;
17
+ margin: 0 auto;
18
+ padding: 0;
19
+ list-style: none;
20
+ border: 1px solid #111;
21
+ border-radius: 3px;
22
+ -webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05);
23
+ -moz-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05);
24
+ box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05);
25
+ background: #323232;
26
+ background: -moz-linear-gradient(top, #444444 0%, #343434 50%, #292929 50%, #333333 100%);
27
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #444444), color-stop(50%, #343434), color-stop(50%, #292929), color-stop(100%, #333333));
28
+ background: -webkit-linear-gradient(top, #444444 0%, #343434 50%, #292929 50%, #333333 100%);
29
+ background: -o-linear-gradient(top, #444444 0%, #343434 50%, #292929 50%, #333333 100%);
30
+ background: -ms-linear-gradient(top, #444444 0%, #343434 50%, #292929 50%, #333333 100%);
31
+ background: linear-gradient(top, #444444 0%, #343434 50%, #292929 50%, #333333 100%);
32
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#444444', endColorstr='#222222',GradientType=0 ); }
33
+
34
+ #fancybox-buttons ul li {
35
+ float: left;
36
+ margin: 0;
37
+ padding: 0; }
38
+
39
+ #fancybox-buttons a {
40
+ display: block;
41
+ width: 30px;
42
+ height: 30px;
43
+ text-indent: -9999px;
44
+ background-color: transparent;
45
+ background-image: url("../img/fancybox_buttons.png");
46
+ background-repeat: no-repeat;
47
+ outline: none;
48
+ opacity: 0.8; }
49
+
50
+ #fancybox-buttons a:hover {
51
+ opacity: 1; }
52
+
53
+ #fancybox-buttons a.btnPrev {
54
+ background-position: 5px 0; }
55
+
56
+ #fancybox-buttons a.btnNext {
57
+ background-position: -33px 0;
58
+ border-right: 1px solid #3e3e3e; }
59
+
60
+ #fancybox-buttons a.btnPlay {
61
+ background-position: 0 -30px; }
62
+
63
+ #fancybox-buttons a.btnPlayOn {
64
+ background-position: -30px -30px; }
65
+
66
+ #fancybox-buttons a.btnToggle {
67
+ background-position: 3px -60px;
68
+ border-left: 1px solid #111;
69
+ border-right: 1px solid #3e3e3e;
70
+ width: 35px; }
71
+
72
+ #fancybox-buttons a.btnToggleOn {
73
+ background-position: -27px -60px; }
74
+
75
+ #fancybox-buttons a.btnClose {
76
+ border-left: 1px solid #111;
77
+ width: 35px;
78
+ background-position: -56px 0px; }
79
+
80
+ #fancybox-buttons a.btnDisabled {
81
+ opacity: 0.4;
82
+ cursor: default; }
@@ -0,0 +1,46 @@
1
+ #fancybox-thumbs {
2
+ position: fixed;
3
+ left: 0;
4
+ width: 100%;
5
+ overflow: hidden;
6
+ z-index: 8050; }
7
+
8
+ #fancybox-thumbs.bottom {
9
+ bottom: 2px; }
10
+
11
+ #fancybox-thumbs.top {
12
+ top: 2px; }
13
+
14
+ #fancybox-thumbs ul {
15
+ position: relative;
16
+ list-style: none;
17
+ margin: 0;
18
+ padding: 0; }
19
+
20
+ #fancybox-thumbs ul li {
21
+ float: left;
22
+ padding: 1px;
23
+ opacity: 0.5; }
24
+
25
+ #fancybox-thumbs ul li.active {
26
+ opacity: 0.75;
27
+ padding: 0;
28
+ border: 1px solid #fff; }
29
+
30
+ #fancybox-thumbs ul li:hover {
31
+ opacity: 1; }
32
+
33
+ #fancybox-thumbs ul li a {
34
+ display: block;
35
+ position: relative;
36
+ overflow: hidden;
37
+ border: 1px solid #222;
38
+ background: #111;
39
+ outline: none; }
40
+
41
+ #fancybox-thumbs ul li img {
42
+ display: block;
43
+ position: relative;
44
+ border: 0;
45
+ padding: 0;
46
+ max-width: none; }
@@ -0,0 +1,121 @@
1
+ /*!
2
+ * Buttons helper for fancyBox
3
+ * version: 1.0.5 (Mon, 15 Oct 2012)
4
+ * @requires fancyBox v2.0 or later
5
+ *
6
+ * Usage:
7
+ * $(".fancybox").fancybox({
8
+ * helpers : {
9
+ * buttons: {
10
+ * position : 'top'
11
+ * }
12
+ * }
13
+ * });
14
+ *
15
+ */
16
+ module.exports = function($) {
17
+ //Shortcut for fancyBox object
18
+ var F = $.fancybox;
19
+
20
+ //Add helper object
21
+ F.helpers.buttons = {
22
+ defaults: {
23
+ skipSingle: false, // disables if gallery contains single image
24
+ position: 'top', // 'top' or 'bottom'
25
+ tpl: '<div id="fancybox-buttons"><ul><li><a class="btnPrev" title="Previous" href="javascript:;"></a></li><li><a class="btnPlay" title="Start slideshow" href="javascript:;"></a></li><li><a class="btnNext" title="Next" href="javascript:;"></a></li><li><a class="btnToggle" title="Toggle size" href="javascript:;"></a></li><li><a class="btnClose" title="Close" href="javascript:;"></a></li></ul></div>'
26
+ },
27
+
28
+ list: null,
29
+ buttons: null,
30
+
31
+ beforeLoad: function(opts, obj) {
32
+ //Remove self if gallery do not have at least two items
33
+
34
+ if (opts.skipSingle && obj.group.length < 2) {
35
+ obj.helpers.buttons = false;
36
+ obj.closeBtn = true;
37
+
38
+ return;
39
+ }
40
+
41
+ //Increase top margin to give space for buttons
42
+ obj.margin[opts.position === 'bottom' ? 2 : 0] += 30;
43
+ },
44
+
45
+ onPlayStart: function() {
46
+ if (this.buttons) {
47
+ this.buttons.play.attr('title', 'Pause slideshow').addClass('btnPlayOn');
48
+ }
49
+ },
50
+
51
+ onPlayEnd: function() {
52
+ if (this.buttons) {
53
+ this.buttons.play.attr('title', 'Start slideshow').removeClass('btnPlayOn');
54
+ }
55
+ },
56
+
57
+ afterShow: function(opts, obj) {
58
+ var buttons = this.buttons;
59
+
60
+ if (!buttons) {
61
+ this.list = $(opts.tpl).addClass(opts.position).appendTo('body');
62
+
63
+ buttons = {
64
+ prev: this.list.find('.btnPrev').click(F.prev),
65
+ next: this.list.find('.btnNext').click(F.next),
66
+ play: this.list.find('.btnPlay').click(F.play),
67
+ toggle: this.list.find('.btnToggle').click(F.toggle),
68
+ close: this.list.find('.btnClose').click(F.close)
69
+ }
70
+ }
71
+
72
+ //Prev
73
+ if (obj.index > 0 || obj.loop) {
74
+ buttons.prev.removeClass('btnDisabled');
75
+ } else {
76
+ buttons.prev.addClass('btnDisabled');
77
+ }
78
+
79
+ //Next / Play
80
+ if (obj.loop || obj.index < obj.group.length - 1) {
81
+ buttons.next.removeClass('btnDisabled');
82
+ buttons.play.removeClass('btnDisabled');
83
+
84
+ } else {
85
+ buttons.next.addClass('btnDisabled');
86
+ buttons.play.addClass('btnDisabled');
87
+ }
88
+
89
+ this.buttons = buttons;
90
+
91
+ this.onUpdate(opts, obj);
92
+ },
93
+
94
+ onUpdate: function(opts, obj) {
95
+ var toggle;
96
+
97
+ if (!this.buttons) {
98
+ return;
99
+ }
100
+
101
+ toggle = this.buttons.toggle.removeClass('btnDisabled btnToggleOn');
102
+
103
+ //Size toggle button
104
+ if (obj.canShrink) {
105
+ toggle.addClass('btnToggleOn');
106
+
107
+ } else if (!obj.canExpand) {
108
+ toggle.addClass('btnDisabled');
109
+ }
110
+ },
111
+
112
+ beforeClose: function() {
113
+ if (this.list) {
114
+ this.list.remove();
115
+ }
116
+
117
+ this.list = null;
118
+ this.buttons = null;
119
+ }
120
+ };
121
+ }
@@ -0,0 +1,122 @@
1
+ /*!
2
+ * Buttons helper for fancyBox
3
+ * version: 1.0.5 (Mon, 15 Oct 2012)
4
+ * @requires fancyBox v2.0 or later
5
+ *
6
+ * Usage:
7
+ * $(".fancybox").fancybox({
8
+ * helpers : {
9
+ * buttons: {
10
+ * position : 'top'
11
+ * }
12
+ * }
13
+ * });
14
+ *
15
+ */
16
+ ;(function ($) {
17
+ //Shortcut for fancyBox object
18
+ var F = $.fancybox;
19
+
20
+ //Add helper object
21
+ F.helpers.buttons = {
22
+ defaults : {
23
+ skipSingle : false, // disables if gallery contains single image
24
+ position : 'top', // 'top' or 'bottom'
25
+ tpl : '<div id="fancybox-buttons"><ul><li><a class="btnPrev" title="Previous" href="javascript:;"></a></li><li><a class="btnPlay" title="Start slideshow" href="javascript:;"></a></li><li><a class="btnNext" title="Next" href="javascript:;"></a></li><li><a class="btnToggle" title="Toggle size" href="javascript:;"></a></li><li><a class="btnClose" title="Close" href="javascript:;"></a></li></ul></div>'
26
+ },
27
+
28
+ list : null,
29
+ buttons: null,
30
+
31
+ beforeLoad: function (opts, obj) {
32
+ //Remove self if gallery do not have at least two items
33
+
34
+ if (opts.skipSingle && obj.group.length < 2) {
35
+ obj.helpers.buttons = false;
36
+ obj.closeBtn = true;
37
+
38
+ return;
39
+ }
40
+
41
+ //Increase top margin to give space for buttons
42
+ obj.margin[ opts.position === 'bottom' ? 2 : 0 ] += 30;
43
+ },
44
+
45
+ onPlayStart: function () {
46
+ if (this.buttons) {
47
+ this.buttons.play.attr('title', 'Pause slideshow').addClass('btnPlayOn');
48
+ }
49
+ },
50
+
51
+ onPlayEnd: function () {
52
+ if (this.buttons) {
53
+ this.buttons.play.attr('title', 'Start slideshow').removeClass('btnPlayOn');
54
+ }
55
+ },
56
+
57
+ afterShow: function (opts, obj) {
58
+ var buttons = this.buttons;
59
+
60
+ if (!buttons) {
61
+ this.list = $(opts.tpl).addClass(opts.position).appendTo('body');
62
+
63
+ buttons = {
64
+ prev : this.list.find('.btnPrev').click( F.prev ),
65
+ next : this.list.find('.btnNext').click( F.next ),
66
+ play : this.list.find('.btnPlay').click( F.play ),
67
+ toggle : this.list.find('.btnToggle').click( F.toggle ),
68
+ close : this.list.find('.btnClose').click( F.close )
69
+ }
70
+ }
71
+
72
+ //Prev
73
+ if (obj.index > 0 || obj.loop) {
74
+ buttons.prev.removeClass('btnDisabled');
75
+ } else {
76
+ buttons.prev.addClass('btnDisabled');
77
+ }
78
+
79
+ //Next / Play
80
+ if (obj.loop || obj.index < obj.group.length - 1) {
81
+ buttons.next.removeClass('btnDisabled');
82
+ buttons.play.removeClass('btnDisabled');
83
+
84
+ } else {
85
+ buttons.next.addClass('btnDisabled');
86
+ buttons.play.addClass('btnDisabled');
87
+ }
88
+
89
+ this.buttons = buttons;
90
+
91
+ this.onUpdate(opts, obj);
92
+ },
93
+
94
+ onUpdate: function (opts, obj) {
95
+ var toggle;
96
+
97
+ if (!this.buttons) {
98
+ return;
99
+ }
100
+
101
+ toggle = this.buttons.toggle.removeClass('btnDisabled btnToggleOn');
102
+
103
+ //Size toggle button
104
+ if (obj.canShrink) {
105
+ toggle.addClass('btnToggleOn');
106
+
107
+ } else if (!obj.canExpand) {
108
+ toggle.addClass('btnDisabled');
109
+ }
110
+ },
111
+
112
+ beforeClose: function () {
113
+ if (this.list) {
114
+ this.list.remove();
115
+ }
116
+
117
+ this.list = null;
118
+ this.buttons = null;
119
+ }
120
+ };
121
+
122
+ }(jQuery));
@@ -0,0 +1,199 @@
1
+ /*!
2
+ * Media helper for fancyBox
3
+ * version: 1.0.6 (Fri, 14 Jun 2013)
4
+ * @requires fancyBox v2.0 or later
5
+ *
6
+ * Usage:
7
+ * $(".fancybox").fancybox({
8
+ * helpers : {
9
+ * media: true
10
+ * }
11
+ * });
12
+ *
13
+ * Set custom URL parameters:
14
+ * $(".fancybox").fancybox({
15
+ * helpers : {
16
+ * media: {
17
+ * youtube : {
18
+ * params : {
19
+ * autoplay : 0
20
+ * }
21
+ * }
22
+ * }
23
+ * }
24
+ * });
25
+ *
26
+ * Or:
27
+ * $(".fancybox").fancybox({,
28
+ * helpers : {
29
+ * media: true
30
+ * },
31
+ * youtube : {
32
+ * autoplay: 0
33
+ * }
34
+ * });
35
+ *
36
+ * Supports:
37
+ *
38
+ * Youtube
39
+ * http://www.youtube.com/watch?v=opj24KnzrWo
40
+ * http://www.youtube.com/embed/opj24KnzrWo
41
+ * http://youtu.be/opj24KnzrWo
42
+ * http://www.youtube-nocookie.com/embed/opj24KnzrWo
43
+ * Vimeo
44
+ * http://vimeo.com/40648169
45
+ * http://vimeo.com/channels/staffpicks/38843628
46
+ * http://vimeo.com/groups/surrealism/videos/36516384
47
+ * http://player.vimeo.com/video/45074303
48
+ * Metacafe
49
+ * http://www.metacafe.com/watch/7635964/dr_seuss_the_lorax_movie_trailer/
50
+ * http://www.metacafe.com/watch/7635964/
51
+ * Dailymotion
52
+ * http://www.dailymotion.com/video/xoytqh_dr-seuss-the-lorax-premiere_people
53
+ * Twitvid
54
+ * http://twitvid.com/QY7MD
55
+ * Twitpic
56
+ * http://twitpic.com/7p93st
57
+ * Instagram
58
+ * http://instagr.am/p/IejkuUGxQn/
59
+ * http://instagram.com/p/IejkuUGxQn/
60
+ * Google maps
61
+ * http://maps.google.com/maps?q=Eiffel+Tower,+Avenue+Gustave+Eiffel,+Paris,+France&t=h&z=17
62
+ * http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16
63
+ * http://maps.google.com/?ll=48.859463,2.292626&spn=0.000965,0.002642&t=m&z=19&layer=c&cbll=48.859524,2.292532&panoid=YJ0lq28OOy3VT2IqIuVY0g&cbp=12,151.58,,0,-15.56
64
+ */
65
+
66
+ module.exports = function($) {
67
+ "use strict";
68
+
69
+ //Shortcut for fancyBox object
70
+ var F = $.fancybox,
71
+ format = function(url, rez, params) {
72
+ params = params || '';
73
+
74
+ if ($.type(params) === "object") {
75
+ params = $.param(params, true);
76
+ }
77
+
78
+ $.each(rez, function(key, value) {
79
+ url = url.replace('$' + key, value || '');
80
+ });
81
+
82
+ if (params.length) {
83
+ url += (url.indexOf('?') > 0 ? '&' : '?') + params;
84
+ }
85
+
86
+ return url;
87
+ };
88
+
89
+ //Add helper object
90
+ F.helpers.media = {
91
+ defaults: {
92
+ youtube: {
93
+ matcher: /(youtube\.com|youtu\.be|youtube-nocookie\.com)\/(watch\?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*)).*/i,
94
+ params: {
95
+ autoplay: 1,
96
+ autohide: 1,
97
+ fs: 1,
98
+ rel: 0,
99
+ hd: 1,
100
+ wmode: 'opaque',
101
+ enablejsapi: 1
102
+ },
103
+ type: 'iframe',
104
+ url: '//www.youtube.com/embed/$3'
105
+ },
106
+ vimeo: {
107
+ matcher: /(?:vimeo(?:pro)?.com)\/(?:[^\d]+)?(\d+)(?:.*)/,
108
+ params: {
109
+ autoplay: 1,
110
+ hd: 1,
111
+ show_title: 1,
112
+ show_byline: 1,
113
+ show_portrait: 0,
114
+ fullscreen: 1
115
+ },
116
+ type: 'iframe',
117
+ url: '//player.vimeo.com/video/$1'
118
+ },
119
+ metacafe: {
120
+ matcher: /metacafe.com\/(?:watch|fplayer)\/([\w\-]{1,10})/,
121
+ params: {
122
+ autoPlay: 'yes'
123
+ },
124
+ type: 'swf',
125
+ url: function(rez, params, obj) {
126
+ obj.swf.flashVars = 'playerVars=' + $.param(params, true);
127
+
128
+ return '//www.metacafe.com/fplayer/' + rez[1] + '/.swf';
129
+ }
130
+ },
131
+ dailymotion: {
132
+ matcher: /dailymotion.com\/video\/(.*)\/?(.*)/,
133
+ params: {
134
+ additionalInfos: 0,
135
+ autoStart: 1
136
+ },
137
+ type: 'swf',
138
+ url: '//www.dailymotion.com/swf/video/$1'
139
+ },
140
+ twitvid: {
141
+ matcher: /twitvid\.com\/([a-zA-Z0-9_\-\?\=]+)/i,
142
+ params: {
143
+ autoplay: 0
144
+ },
145
+ type: 'iframe',
146
+ url: '//www.twitvid.com/embed.php?guid=$1'
147
+ },
148
+ twitpic: {
149
+ matcher: /twitpic\.com\/(?!(?:place|photos|events)\/)([a-zA-Z0-9\?\=\-]+)/i,
150
+ type: 'image',
151
+ url: '//twitpic.com/show/full/$1/'
152
+ },
153
+ instagram: {
154
+ matcher: /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,
155
+ type: 'image',
156
+ url: '//$1/p/$2/media/?size=l'
157
+ },
158
+ google_maps: {
159
+ matcher: /maps\.google\.([a-z]{2,3}(\.[a-z]{2})?)\/(\?ll=|maps\?)(.*)/i,
160
+ type: 'iframe',
161
+ url: function(rez) {
162
+ return '//maps.google.' + rez[1] + '/' + rez[3] + '' + rez[4] + '&output=' + (rez[4].indexOf('layer=c') > 0 ? 'svembed' : 'embed');
163
+ }
164
+ }
165
+ },
166
+
167
+ beforeLoad: function(opts, obj) {
168
+ var url = obj.href || '',
169
+ type = false,
170
+ what,
171
+ item,
172
+ rez,
173
+ params;
174
+
175
+ for (what in opts) {
176
+ if (opts.hasOwnProperty(what)) {
177
+ item = opts[what];
178
+ rez = url.match(item.matcher);
179
+
180
+ if (rez) {
181
+ type = item.type;
182
+ params = $.extend(true, {}, item.params, obj[what] || ($.isPlainObject(opts[what]) ? opts[what].params : null));
183
+
184
+ url = $.type(item.url) === "function" ? item.url.call(this, rez, params, obj) : format(item.url, rez, params);
185
+
186
+ break;
187
+ }
188
+ }
189
+ }
190
+
191
+ if (type) {
192
+ obj.href = url;
193
+ obj.type = type;
194
+
195
+ obj.autoHeight = false;
196
+ }
197
+ }
198
+ };
199
+ }