Slideshow Gallery - Version 1.6.8

Version Description

  • ADD: Set an expiry date on a slide
  • ADD: Use WP_List_Table for proper, responsive tables in admin
  • IMPROVE: Static textdomain for easier translation
  • IMPROVE: Update WP Color Picker
  • IMPROVE: http:// to https://
  • IMPROVE: hange INPUT to BUTTON element in several places
  • IMPROVE: Prevent conflict with outdated Select2 versions from other plugins
  • FIX: Jetpack Lazy Load causes problems with slides
  • FIX: url() function sometimes breaks plugin path
  • FIX: Use link on slide confusion and not opening
  • FIX: Apostrophe in gallery title/name won't save
  • FIX: "No slides are available" due to getimagesize() not supported
Download this release

Release Info

Developer contrid
Plugin Icon 128x128 Slideshow Gallery
Version 1.6.8
Comparing to
See all releases

Code changes from version 1.6.7.1 to 1.6.8

Files changed (57) hide show
  1. css/admin.css +27 -7
  2. css/fontawesome.css +2 -2
  3. css/jquery-ui.css +1479 -1808
  4. helpers/html.php +77 -37
  5. includes/checkinit.php +6 -5
  6. includes/class.gallery-list-table.php +320 -0
  7. includes/class.slide-list-table.php +422 -0
  8. includes/constants.php +1 -1
  9. js/colorbox.js +1 -1
  10. js/select2.js +1 -2
  11. js/tinymce/editor_plugin.js +2 -2
  12. languages/readme.txt +3 -3
  13. models/gallery.php +2 -2
  14. models/galleryslides.php +3 -3
  15. models/slide.php +33 -12
  16. models/slideshow.php +4 -4
  17. readme.txt +28 -14
  18. slideshow-gallery-plugin.php +27 -86
  19. slideshow-gallery.php +176 -170
  20. vendors/BFI_Thumb.php +3 -3
  21. vendors/class.paginate.php +0 -247
  22. vendors/class.slides-listtable.php +0 -516
  23. vendors/class.update.php +2 -2
  24. vendors/otf_regen_thumbs.php +1 -1
  25. views/admin/about.php +1 -1
  26. views/admin/err-top.php +1 -1
  27. views/admin/galleries/hardcode.php +9 -4
  28. views/admin/galleries/index.php +20 -148
  29. views/admin/galleries/save.php +8 -8
  30. views/admin/galleries/view.php +24 -7
  31. views/admin/head.php +9 -1
  32. views/admin/lite-upgrade.php +6 -6
  33. views/admin/metaboxes/settings-about.php +5 -5
  34. views/admin/metaboxes/settings-general.php +101 -101
  35. views/admin/metaboxes/settings-linksimages.php +5 -5
  36. views/admin/metaboxes/settings-plugins.php +11 -2
  37. views/admin/metaboxes/settings-postspages.php +4 -4
  38. views/admin/metaboxes/settings-styles.php +60 -167
  39. views/admin/metaboxes/settings-submit.php +4 -4
  40. views/admin/metaboxes/settings-tech.php +3 -3
  41. views/admin/metaboxes/settings-wprelated.php +4 -4
  42. views/admin/msg-top.php +1 -1
  43. views/admin/paginate.php +0 -11
  44. views/admin/settings-submitserial.php +6 -5
  45. views/admin/settings.php +32 -3
  46. views/admin/slides/index.php +34 -13
  47. views/admin/slides/loop.php +0 -236
  48. views/admin/slides/order-gallery.php +5 -5
  49. views/admin/slides/order.php +6 -6
  50. views/admin/slides/save-multiple.php +18 -19
  51. views/admin/slides/save.php +84 -56
  52. views/admin/submitserial.php +15 -14
  53. views/admin/tinymce-dialog.php +26 -26
  54. views/default/css/fontawesome.css +2 -2
  55. views/default/gallery.php +16 -16
  56. views/default/js/colorbox.js +1 -1
  57. views/default/js/jquery-ui.js +52 -52
css/admin.css CHANGED
@@ -1,5 +1,19 @@
1
- .fa {
2
  font: normal normal normal 16px/1.5 FontAwesome !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  }
4
 
5
  #adminmenu .toplevel_page_slideshow-slides div.wp-menu-image:before,
@@ -8,8 +22,7 @@
8
  content: "\f03e";
9
  -webkit-font-smoothing: antialiased;
10
  -moz-osx-font-smoothing: grayscale;
11
- /*font-size: 16px;
12
- top: 3px;*/
13
  }
14
 
15
  .slideshow-badge {
@@ -151,12 +164,19 @@ a.colorbox img.slideshow,
151
  -webkit-border-radius: 4px;
152
  }
153
 
154
- .slideshow_error {
155
- color: red;
 
 
 
 
 
 
156
  }
157
 
158
- .slideshow_success {
159
- color: green;
 
160
  }
161
 
162
  /* Sortable */
1
+ /*.fa {
2
  font: normal normal normal 16px/1.5 FontAwesome !important;
3
+ }*/
4
+
5
+ /* WP List Table */
6
+
7
+ /** Slide List Table **/
8
+
9
+ .slideshow .wp-list-table .column-id,
10
+ .slideshow .wp-list-table .column-order { width: 5%; }
11
+ .slideshow .wp-list-table .column-image { width: 100px; }
12
+ .slideshow .wp-list-table .column-title { width: 25%; }
13
+
14
+ .slideshow .ui-datepicker-trigger:before {
15
+ font-family: FontAwesome !important;
16
+ content: "\f073";
17
  }
18
 
19
  #adminmenu .toplevel_page_slideshow-slides div.wp-menu-image:before,
22
  content: "\f03e";
23
  -webkit-font-smoothing: antialiased;
24
  -moz-osx-font-smoothing: grayscale;
25
+ font-size: 18px;
 
26
  }
27
 
28
  .slideshow-badge {
164
  -webkit-border-radius: 4px;
165
  }
166
 
167
+ .slideshow_error,
168
+ .slideshow_error a {
169
+ color: #CC0000 !important;
170
+ }
171
+
172
+ .slideshow_success,
173
+ .slideshow_success a {
174
+ color: #629632 !important;
175
  }
176
 
177
+ .slideshow_warning,
178
+ .slideshow_warning a {
179
+ color: #e66f00;
180
  }
181
 
182
  /* Sortable */
css/fontawesome.css CHANGED
@@ -1,4 +1,4 @@
1
  /*!
2
- * Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome
3
- * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4
  */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.5.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.5.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.5.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.5.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.5.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}
1
  /*!
2
+ * Font Awesome 4.5.0 by @davegandy - https://fontawesome.io - @fontawesome
3
+ * License - https://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4
  */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.5.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.5.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.5.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.5.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.5.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}
css/jquery-ui.css CHANGED
@@ -1,1954 +1,1625 @@
1
- /*! jQuery UI - v1.11.0 - 2014-08-06
2
- * http://jqueryui.com
3
- * Includes: core.css, draggable.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, menu.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css
4
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
5
- * Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */
 
 
 
 
 
6
 
7
  /* Layout helpers
8
  ----------------------------------*/
9
- .ui-helper-hidden {
10
- display: none;
11
- }
12
-
13
- .ui-helper-hidden-accessible {
14
- border: 0;
15
- clip: rect(0 0 0 0);
16
- height: 1px;
17
- margin: -1px;
18
- overflow: hidden;
19
- padding: 0;
20
- position: absolute;
21
- width: 1px;
22
- }
23
-
24
- .ui-helper-reset {
25
- margin: 0;
26
- padding: 0;
27
- border: 0;
28
- outline: 0;
29
- line-height: 1.3;
30
- text-decoration: none;
31
- font-size: 100%;
32
- list-style: none;
33
  }
34
-
35
  .ui-helper-clearfix:before,
36
  .ui-helper-clearfix:after {
37
- content: "";
38
- display: table;
39
- border-collapse: collapse;
40
- }
41
-
42
- .ui-helper-clearfix:after {
43
- clear: both;
44
- }
45
-
46
- .ui-helper-clearfix {
47
- min-height: 0; /* support: IE7 */
48
- }
49
-
50
- .ui-helper-zfix {
51
- width: 100%;
52
- height: 100%;
53
- top: 0;
54
- left: 0;
55
- position: absolute;
56
- opacity: 0;
57
- filter: Alpha(Opacity=0);
 
 
 
 
 
 
 
 
58
  }
59
-
60
  .ui-front {
61
- z-index: 100;
62
  }
63
 
 
64
  /* Interaction Cues
65
  ----------------------------------*/
66
- .ui-state-disabled {
67
- cursor: default !important;
68
- }
69
 
70
  /* Icons
71
  ----------------------------------*/
72
 
73
  /* states and images */
74
- .ui-icon {
75
- display: block;
76
- text-indent: -99999px;
77
- overflow: hidden;
78
- background-repeat: no-repeat;
79
  }
80
 
 
81
  /* Misc visuals
82
  ----------------------------------*/
83
 
84
  /* Overlays */
85
- .ui-widget-overlay {
86
- position: fixed;
87
- top: 0;
88
- left: 0;
89
- width: 100%;
90
- height: 100%;
91
- }
92
-
93
- .ui-draggable-handle {
94
- -ms-touch-action: none;
95
- touch-action: none;
96
  }
97
 
98
- .ui-resizable {
99
- position: relative;
100
- }
101
-
102
- .ui-resizable-handle {
103
- position: absolute;
104
- font-size: 0.1px;
105
- display: block;
106
- -ms-touch-action: none;
107
- touch-action: none;
108
- }
109
 
110
- .ui-resizable-disabled .ui-resizable-handle,
111
- .ui-resizable-autohide .ui-resizable-handle {
112
- display: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
113
  }
114
 
115
- .ui-resizable-n {
116
- cursor: n-resize;
117
- height: 7px;
118
- width: 100%;
119
- top: -5px;
120
- left: 0;
 
 
 
 
 
 
 
121
  }
122
 
123
- .ui-resizable-s {
124
- cursor: s-resize;
125
- height: 7px;
126
- width: 100%;
127
- bottom: -5px;
128
- left: 0;
129
- }
 
 
 
 
130
 
131
- .ui-resizable-e {
132
- cursor: e-resize;
133
- width: 7px;
134
- right: -5px;
135
- top: 0;
136
- height: 100%;
137
- }
 
 
 
 
 
138
 
139
- .ui-resizable-w {
140
- cursor: w-resize;
141
- width: 7px;
142
- left: -5px;
143
- top: 0;
144
- height: 100%;
145
- }
146
 
147
- .ui-resizable-se {
148
- cursor: se-resize;
149
- width: 12px;
150
- height: 12px;
151
- right: 1px;
152
- bottom: 1px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
153
  }
154
 
155
- .ui-resizable-sw {
156
- cursor: sw-resize;
157
- width: 9px;
158
- height: 9px;
159
- left: -5px;
160
- bottom: -5px;
161
- }
162
 
163
- .ui-resizable-nw {
164
- cursor: nw-resize;
165
- width: 9px;
166
- height: 9px;
167
- left: -5px;
168
- top: -5px;
169
- }
170
 
171
- .ui-resizable-ne {
172
- cursor: ne-resize;
173
- width: 9px;
174
- height: 9px;
175
- right: -5px;
176
- top: -5px;
177
- }
178
 
179
- .ui-selectable {
180
- -ms-touch-action: none;
181
- touch-action: none;
182
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
183
 
184
- .ui-selectable-helper {
185
- position: absolute;
186
- z-index: 100;
187
- border: 1px dotted black;
188
- }
189
 
190
- .ui-sortable-handle {
191
- -ms-touch-action: none;
192
- touch-action: none;
193
- }
194
 
195
- .ui-accordion .ui-accordion-header {
196
- display: block;
197
- cursor: pointer;
198
- position: relative;
199
- margin: 2px 0 0 0;
200
- padding: .5em .5em .5em .7em;
201
- min-height: 0; /* support: IE7 */
202
- font-size: 100%;
203
- }
204
 
205
- .ui-accordion .ui-accordion-icons {
206
- padding-left: 2.2em;
207
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
208
 
209
- .ui-accordion .ui-accordion-icons .ui-accordion-icons {
210
- padding-left: 2.2em;
211
- }
212
 
213
- .ui-accordion .ui-accordion-header .ui-accordion-header-icon {
214
- position: absolute;
215
- left: .5em;
216
- top: 50%;
217
- margin-top: -8px;
218
- }
219
 
220
- .ui-accordion .ui-accordion-content {
221
- padding: 1em 2.2em;
222
- border-top: 0;
223
- overflow: auto;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
224
  }
225
 
226
- .ui-autocomplete {
227
- position: absolute;
228
- top: 0;
229
- left: 0;
230
- cursor: default;
231
- }
232
 
233
- .ui-button {
234
- display: inline-block;
235
- position: relative;
236
- padding: 0;
237
- line-height: normal;
238
- margin-right: .1em;
239
- cursor: pointer;
240
- vertical-align: middle;
241
- text-align: center;
242
- overflow: visible; /* removes extra width in IE */
243
- }
244
 
245
- .ui-button,
246
- .ui-button:link,
247
- .ui-button:visited,
248
- .ui-button:hover,
249
- .ui-button:active {
250
- text-decoration: none;
251
  }
252
 
253
- /* to make room for the icon, a width needs to be set here */
254
- .ui-button-icon-only {
255
- width: 2.2em;
 
 
 
 
 
 
256
  }
257
 
258
- /* button elements seem to need a little more width */
259
- button.ui-button-icon-only {
260
- width: 2.4em;
261
- }
 
 
 
 
 
262
 
263
- .ui-button-icons-only {
264
- width: 3.4em;
265
- }
266
 
267
- button.ui-button-icons-only {
268
- width: 3.7em;
269
  }
270
-
271
- /* button text element */
272
- .ui-button .ui-button-text {
273
- display: block;
274
- line-height: normal;
 
275
  }
276
-
277
- .ui-button-text-only .ui-button-text {
278
- padding: .4em 1em;
279
  }
280
-
281
- .ui-button-icon-only .ui-button-text,
282
- .ui-button-icons-only .ui-button-text {
283
- padding: .4em;
284
- text-indent: -9999999px;
285
  }
286
-
287
- .ui-button-text-icon-primary .ui-button-text,
288
- .ui-button-text-icons .ui-button-text {
289
- padding: .4em 1em .4em 2.1em;
290
  }
291
-
292
- .ui-button-text-icon-secondary .ui-button-text,
293
- .ui-button-text-icons .ui-button-text {
294
- padding: .4em 2.1em .4em 1em;
295
  }
296
-
297
- .ui-button-text-icons .ui-button-text {
298
- padding-left: 2.1em;
299
- padding-right: 2.1em;
 
300
  }
301
-
302
- /* no icon support for input elements, provide padding by default */
303
- input.ui-button {
304
- padding: .4em 1em;
 
 
 
 
 
 
305
  }
306
-
307
- /* button icon element(s) */
308
- .ui-button-icon-only .ui-icon,
309
- .ui-button-text-icon-primary .ui-icon,
310
- .ui-button-text-icon-secondary .ui-icon,
311
- .ui-button-text-icons .ui-icon,
312
- .ui-button-icons-only .ui-icon {
313
- position: absolute;
314
- top: 50%;
315
- margin-top: -8px;
316
  }
317
 
318
- .ui-button-icon-only .ui-icon {
319
- left: 50%;
320
- margin-left: -8px;
321
- }
 
 
 
 
 
322
 
323
- .ui-button-text-icon-primary .ui-button-icon-primary,
324
- .ui-button-text-icons .ui-button-icon-primary,
325
- .ui-button-icons-only .ui-button-icon-primary {
326
- left: .5em;
 
327
  }
328
 
329
- .ui-button-text-icon-secondary .ui-button-icon-secondary,
330
- .ui-button-text-icons .ui-button-icon-secondary,
331
- .ui-button-icons-only .ui-button-icon-secondary {
332
- right: .5em;
333
- }
 
 
 
 
334
 
335
- /* button sets */
336
- .ui-buttonset {
337
- margin-right: 7px;
338
- }
339
 
340
- .ui-buttonset .ui-button {
341
- margin-left: 0;
342
- margin-right: -.3em;
343
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
344
 
345
  /* workarounds */
346
- /* reset extra padding in Firefox, see h5bp.com/l */
347
- input.ui-button::-moz-focus-inner,
348
- button.ui-button::-moz-focus-inner {
349
- border: 0;
350
- padding: 0;
351
- }
352
-
353
- .ui-datepicker {
354
- width: 17em;
355
- padding: .2em .2em 0;
356
- display: none;
357
- }
358
-
359
- .ui-datepicker .ui-datepicker-header {
360
- position: relative;
361
- padding: .2em 0;
362
- }
363
-
364
- .ui-datepicker .ui-datepicker-prev,
365
- .ui-datepicker .ui-datepicker-next {
366
- position: absolute;
367
- top: 2px;
368
- width: 1.8em;
369
- height: 1.8em;
370
- }
371
-
372
- .ui-datepicker .ui-datepicker-prev-hover,
373
- .ui-datepicker .ui-datepicker-next-hover {
374
- top: 1px;
375
- }
376
-
377
- .ui-datepicker .ui-datepicker-prev {
378
- left: 2px;
379
- }
380
-
381
- .ui-datepicker .ui-datepicker-next {
382
- right: 2px;
383
- }
384
-
385
- .ui-datepicker .ui-datepicker-prev-hover {
386
- left: 1px;
387
- }
388
-
389
- .ui-datepicker .ui-datepicker-next-hover {
390
- right: 1px;
391
- }
392
-
393
- .ui-datepicker .ui-datepicker-prev span,
394
- .ui-datepicker .ui-datepicker-next span {
395
- display: block;
396
- position: absolute;
397
- left: 50%;
398
- margin-left: -8px;
399
- top: 50%;
400
- margin-top: -8px;
401
- }
402
-
403
- .ui-datepicker .ui-datepicker-title {
404
- margin: 0 2.3em;
405
- line-height: 1.8em;
406
- text-align: center;
407
- }
408
-
409
- .ui-datepicker .ui-datepicker-title select {
410
- font-size: 1em;
411
- margin: 1px 0;
412
- }
413
-
414
- .ui-datepicker select.ui-datepicker-month,
415
- .ui-datepicker select.ui-datepicker-year {
416
- width: 49%;
417
- }
418
-
419
- .ui-datepicker table {
420
- width: 100%;
421
- font-size: .9em;
422
- border-collapse: collapse;
423
- margin: 0 0 .4em;
424
- }
425
-
426
- .ui-datepicker th {
427
- padding: .7em .3em;
428
- text-align: center;
429
- font-weight: bold;
430
- border: 0;
431
- }
432
-
433
- .ui-datepicker td {
434
- border: 0;
435
- padding: 1px;
436
- }
437
-
438
- .ui-datepicker td span,
439
- .ui-datepicker td a {
440
- display: block;
441
- padding: .2em;
442
- text-align: right;
443
- text-decoration: none;
444
- }
445
-
446
- .ui-datepicker .ui-datepicker-buttonpane {
447
- background-image: none;
448
- margin: .7em 0 0 0;
449
- padding: 0 .2em;
450
- border-left: 0;
451
- border-right: 0;
452
- border-bottom: 0;
453
- }
454
-
455
- .ui-datepicker .ui-datepicker-buttonpane button {
456
- float: right;
457
- margin: .5em .2em .4em;
458
- cursor: pointer;
459
- padding: .2em .6em .3em .6em;
460
- width: auto;
461
- overflow: visible;
462
- }
463
-
464
- .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
465
- float: left;
466
- }
467
-
468
- /* with multiple calendars */
469
- .ui-datepicker.ui-datepicker-multi {
470
- width: auto;
471
- }
472
-
473
- .ui-datepicker-multi .ui-datepicker-group {
474
- float: left;
475
- }
476
-
477
- .ui-datepicker-multi .ui-datepicker-group table {
478
- width: 95%;
479
- margin: 0 auto .4em;
480
- }
481
-
482
- .ui-datepicker-multi-2 .ui-datepicker-group {
483
- width: 50%;
484
- }
485
-
486
- .ui-datepicker-multi-3 .ui-datepicker-group {
487
- width: 33.3%;
488
- }
489
-
490
- .ui-datepicker-multi-4 .ui-datepicker-group {
491
- width: 25%;
492
- }
493
-
494
- .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
495
- .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
496
- border-left-width: 0;
497
- }
498
-
499
- .ui-datepicker-multi .ui-datepicker-buttonpane {
500
- clear: left;
501
- }
502
 
503
- .ui-datepicker-row-break {
504
- clear: both;
505
- width: 100%;
506
- font-size: 0;
507
- }
508
 
509
- /* RTL support */
510
- .ui-datepicker-rtl {
511
- direction: rtl;
512
- }
 
 
 
 
 
513
 
514
- .ui-datepicker-rtl .ui-datepicker-prev {
515
- right: 2px;
516
- left: auto;
517
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
518
 
519
- .ui-datepicker-rtl .ui-datepicker-next {
520
- left: 2px;
521
- right: auto;
522
- }
523
 
524
- .ui-datepicker-rtl .ui-datepicker-prev:hover {
525
- right: 1px;
526
- left: auto;
527
- }
528
 
529
- .ui-datepicker-rtl .ui-datepicker-next:hover {
530
- left: 1px;
531
- right: auto;
532
- }
533
 
534
- .ui-datepicker-rtl .ui-datepicker-buttonpane {
535
- clear: right;
536
- }
537
 
538
- .ui-datepicker-rtl .ui-datepicker-buttonpane button {
539
- float: left;
540
- }
541
 
542
- .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
543
- .ui-datepicker-rtl .ui-datepicker-group {
544
- float: right;
545
- }
 
 
 
 
 
546
 
547
- .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
548
- .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
549
- border-right-width: 0;
550
- border-left-width: 1px;
551
- }
 
 
 
552
 
553
- .ui-dialog {
554
- overflow: hidden;
555
- position: absolute;
556
- top: 0;
557
- left: 0;
558
- padding: .2em;
559
- outline: 0;
560
  }
561
 
562
- .ui-dialog .ui-dialog-titlebar {
563
- padding: .4em 1em;
564
- position: relative;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
565
  }
566
-
567
  .ui-dialog .ui-dialog-title {
568
- float: left;
569
- margin: .1em 0;
570
- white-space: nowrap;
571
- width: 90%;
572
- overflow: hidden;
573
- text-overflow: ellipsis;
 
 
574
  }
575
-
576
  .ui-dialog .ui-dialog-titlebar-close {
577
- position: absolute;
578
- right: .3em;
579
- top: 50%;
580
- width: 20px;
581
- margin: -10px 0 0 0;
582
- padding: 1px;
583
- height: 20px;
584
- }
585
-
586
- .ui-dialog .ui-dialog-content {
587
- position: relative;
588
- border: 0;
589
- padding: .5em 1em;
590
- background: none;
591
- overflow: auto;
592
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
593
 
594
  .ui-dialog .ui-dialog-buttonpane {
595
- text-align: left;
596
- border-width: 1px 0 0 0;
597
- background-image: none;
598
- margin-top: .5em;
599
- padding: .3em 1em .5em .4em;
600
- }
601
-
602
- .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
603
- float: right;
604
- }
605
-
606
- .ui-dialog .ui-dialog-buttonpane button {
607
- margin: .5em .4em .5em 0;
608
- cursor: pointer;
609
- }
610
-
611
- .ui-dialog .ui-resizable-se {
612
- width: 12px;
613
- height: 12px;
614
- right: -5px;
615
- bottom: -5px;
616
- background-position: 16px 16px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
617
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
618
 
619
- .ui-draggable .ui-dialog-titlebar {
620
- cursor: move;
621
- }
 
 
 
 
 
 
 
 
622
 
623
- .ui-menu {
624
- list-style: none;
625
- padding: 0;
626
- margin: 0;
627
- display: block;
628
- outline: none;
629
- }
630
 
631
- .ui-menu .ui-menu {
632
- position: absolute;
 
 
 
633
  }
634
 
635
- .ui-menu .ui-menu-item {
636
- position: relative;
637
- margin: 0;
638
- padding: 3px 1em 3px .4em;
639
- cursor: pointer;
640
- min-height: 0; /* support: IE7 */
641
- /* support: IE10, see #8844 */
642
- list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
643
- }
644
 
645
- .ui-menu .ui-menu-divider {
646
- margin: 5px 0;
647
- height: 0;
648
- font-size: 0;
649
- line-height: 0;
650
- border-width: 1px 0 0 0;
651
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
652
 
653
- .ui-menu .ui-state-focus,
654
- .ui-menu .ui-state-active {
655
- margin: -1px;
656
- }
657
 
658
- /* icon support */
659
- .ui-menu-icons {
660
- position: relative;
661
  }
662
 
663
- .ui-menu-icons .ui-menu-item {
664
- padding-left: 2em;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
665
  }
666
 
667
- /* left-aligned */
668
- .ui-menu .ui-icon {
669
- position: absolute;
670
- top: 0;
671
- bottom: 0;
672
- left: .2em;
673
- margin: auto 0;
674
- }
675
 
676
- /* right-aligned */
677
- .ui-menu .ui-menu-icon {
678
- left: auto;
679
- right: 0;
680
- }
 
 
 
 
 
 
 
681
 
682
- .ui-progressbar {
683
- height: 2em;
684
- text-align: left;
685
- overflow: hidden;
686
- }
687
 
688
- .ui-progressbar .ui-progressbar-value {
689
- margin: -1px;
690
- height: 100%;
691
- }
692
 
693
- .ui-progressbar .ui-progressbar-overlay {
694
- background: url("../images/jquery-ui/animated-overlay.gif");
695
- height: 100%;
696
- filter: alpha(opacity=25);
697
- opacity: 0.25;
698
- }
 
 
 
 
 
 
 
699
 
700
- .ui-progressbar-indeterminate .ui-progressbar-value {
701
- background-image: none;
702
- }
 
 
 
 
 
 
 
 
703
 
704
- .ui-selectmenu-menu {
705
- padding: 0;
706
- margin: 0;
707
- position: absolute;
708
- top: 0;
709
- left: 0;
710
- display: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
711
  }
712
 
713
- .ui-selectmenu-menu .ui-menu {
714
- overflow: auto;
715
- /* Support: IE7 */
716
- overflow-x: hidden;
717
- padding-bottom: 1px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
718
  }
719
 
720
- .ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
721
- font-size: 1em;
722
- font-weight: bold;
723
- line-height: 1.5;
724
- padding: 2px 0.4em;
725
- margin: 0.5em 0 0 0;
726
- height: auto;
727
- border: 0;
728
  }
729
 
730
- .ui-selectmenu-open {
731
- display: block;
732
  }
733
 
734
- .ui-selectmenu-button {
735
- display: inline-block;
736
- overflow: hidden;
737
- position: relative;
738
- text-decoration: none;
739
- cursor: pointer;
740
  }
741
 
742
- .ui-selectmenu-button span.ui-icon {
743
- right: 0.5em;
744
- left: auto;
745
- margin-top: -8px;
746
- position: absolute;
747
- top: 50%;
 
 
 
 
 
 
748
  }
749
 
750
- .ui-selectmenu-button span.ui-selectmenu-text {
751
- text-align: left;
752
- padding: 0.4em 2.1em 0.4em 1em;
753
- display: block;
754
- line-height: 1.4;
755
- overflow: hidden;
756
- text-overflow: ellipsis;
757
- white-space: nowrap;
758
  }
759
 
760
- .ui-slider {
761
- position: relative;
762
- text-align: left;
 
 
 
 
 
763
  }
764
 
765
- .ui-slider .ui-slider-handle {
766
- position: absolute;
767
- z-index: 2;
768
- width: 1.2em;
769
- height: 1.2em;
770
- cursor: default;
771
- -ms-touch-action: none;
772
- touch-action: none;
773
  }
774
 
775
- .ui-slider .ui-slider-range {
776
- position: absolute;
777
- z-index: 1;
778
- font-size: .7em;
779
- display: block;
780
- border: 0;
781
- background-position: 0 0;
782
  }
783
 
784
- /* For IE8 - See #6727 */
785
- .ui-slider.ui-state-disabled .ui-slider-handle,
786
- .ui-slider.ui-state-disabled .ui-slider-range {
787
- filter: inherit;
788
  }
789
 
790
- .ui-slider-horizontal {
791
- height: .8em;
 
 
 
 
 
 
792
  }
793
 
794
- .ui-slider-horizontal .ui-slider-handle {
795
- top: -.3em;
796
- margin-left: -.6em;
 
 
 
 
 
 
 
 
 
797
  }
798
 
799
- .ui-slider-horizontal .ui-slider-range {
800
- top: 0;
801
- height: 100%;
802
  }
803
 
804
- .ui-slider-horizontal .ui-slider-range-min {
805
- left: 0;
 
 
 
 
 
 
806
  }
807
 
808
- .ui-slider-horizontal .ui-slider-range-max {
809
- right: 0;
810
- }
811
 
812
- .ui-slider-vertical {
813
- width: .8em;
814
- height: 100px;
815
  }
816
 
817
- .ui-slider-vertical .ui-slider-handle {
818
- left: -.3em;
819
- margin-left: 0;
820
- margin-bottom: -.6em;
821
- }
822
 
823
- .ui-slider-vertical .ui-slider-range {
824
- left: 0;
825
- width: 100%;
826
- }
827
-
828
- .ui-slider-vertical .ui-slider-range-min {
829
- bottom: 0;
830
- }
831
-
832
- .ui-slider-vertical .ui-slider-range-max {
833
- top: 0;
834
- }
835
-
836
- .ui-spinner {
837
- position: relative;
838
- display: inline-block;
839
- overflow: hidden;
840
- padding: 0;
841
- vertical-align: middle;
842
- }
843
-
844
- .ui-spinner-input {
845
- border: none;
846
- background: none;
847
- color: inherit;
848
- padding: 0;
849
- margin: .2em 0;
850
- vertical-align: middle;
851
- margin-left: .4em;
852
- margin-right: 22px;
853
- }
854
-
855
- .ui-spinner-button {
856
- width: 16px;
857
- height: 50%;
858
- font-size: .5em;
859
- padding: 0;
860
- margin: 0;
861
- text-align: center;
862
- position: absolute;
863
- cursor: default;
864
- display: block;
865
- overflow: hidden;
866
- right: 0;
867
- }
868
-
869
- /* more specificity required here to override default borders */
870
- .ui-spinner a.ui-spinner-button {
871
- border-top: none;
872
- border-bottom: none;
873
- border-right: none;
874
- }
875
-
876
- /* vertically center icon */
877
- .ui-spinner .ui-icon {
878
- position: absolute;
879
- margin-top: -8px;
880
- top: 50%;
881
- left: 0;
882
- }
883
-
884
- .ui-spinner-up {
885
- top: 0;
886
- }
887
-
888
- .ui-spinner-down {
889
- bottom: 0;
890
- }
891
-
892
- /* TR overrides */
893
- .ui-spinner .ui-icon-triangle-1-s {
894
- /* need to fix icons sprite */
895
- background-position: -65px -16px;
896
- }
897
-
898
- /*
899
- * jQuery UI Tabs 1.8.16
900
- *
901
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
902
- * Dual licensed under the MIT or GPL Version 2 licenses.
903
- * http://jquery.org/license
904
- *
905
- * http://docs.jquery.com/UI/Tabs#theming
906
- */
907
- .ui-tabs {
908
- position: relative;
909
- zoom: 1;
910
- }
911
-
912
- /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
913
- .ui-tabs .ui-tabs-nav {
914
- margin: 0;
915
- padding: 0;
916
- }
917
-
918
- .ui-tabs .ui-tabs-nav li {
919
- list-style: none;
920
- float: left;
921
- width: auto;
922
- position: relative;
923
- top: 1px;
924
- margin: 0;
925
- border-bottom: 0 !important;
926
- padding: 0;
927
- white-space: nowrap;
928
- padding-right: 3px;
929
- }
930
-
931
- .ui-tabs .ui-tabs-nav li a {
932
- float: left;
933
- font-weight: bold;
934
- padding: 0 15px;
935
- line-height: 30px;
936
- height: 30px;
937
- text-decoration: none;
938
- border: 1px solid #DDD;
939
- /*-moz-border-radius:5px 5px 0 0;
940
- -webkit-border-radius:5px 5px 0 0;
941
- border-radius:5px 5px 0 0;*/
942
- border-bottom: 0 none;
943
- background: #DDD;
944
- background: -webkit-gradient(linear, 0 0, 0 bottom, from(#FFFFFF), to(#ececec));
945
- background: -moz-linear-gradient(#FFFFFF, #ececec);
946
- background: linear-gradient(#FFFFFF, #ececec);
947
- -pie-background: linear-gradient(#FFFFFF, #ececec);
948
- color: #666666;
949
- }
950
-
951
- .ui-tabs .ui-tabs-nav li a:hover {
952
- background: -webkit-gradient(linear, 0 0, 0 bottom, from(#ececec), to(#FFFFFF));
953
- background: -moz-linear-gradient(#ececec, #FFFFFF);
954
- background: linear-gradient(#ececec, #FFFFFF);
955
- -pie-background: linear-gradient(#ececec, #FFFFFF);
956
- }
957
-
958
- .ui-tabs .ui-tabs-nav li.ui-state-active a {
959
- border-bottom: 1px solid #FFF;
960
- background: #FFF;
961
- }
962
-
963
- .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a,
964
- .ui-tabs .ui-tabs-nav li.ui-state-processing a {
965
- cursor: text;
966
- }
967
-
968
- .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a {
969
- cursor: pointer;
970
- }
971
-
972
- /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
973
-
974
- .ui-tabs .ui-tabs-panel {
975
- /*float:left;*/
976
- display: block;
977
- border-width: 0;
978
- padding: 10px;
979
- /*width: 96%;*/
980
- border: 1px solid #DDD;
981
- -moz-border-radius: 0 5px 5px 5px;
982
- -webkit-border-radius: 0 5px 5px 5px;
983
- border-radius: 0 5px 5px 5px;
984
- background: none;
985
- margin-bottom: 5px;
986
- background: #FFFFFF;
987
- }
988
-
989
- .ui-tabs .ui-tabs-hide {
990
- display: none !important;
991
- }
992
-
993
- .ui-tooltip {
994
- padding: 8px;
995
- position: absolute;
996
- z-index: 9999;
997
- max-width: 300px;
998
- -webkit-box-shadow: 0 0 5px #aaa;
999
- box-shadow: 0 0 5px #aaa;
1000
- }
1001
-
1002
- body .ui-tooltip {
1003
- border-width: 2px;
1004
- }
1005
-
1006
- /* Component containers
1007
- ----------------------------------*/
1008
- .ui-widget {
1009
- /* font-family: Verdana,Arial,sans-serif; */
1010
- /* font-size: 1.1em; */
1011
- }
1012
-
1013
- .ui-widget .ui-widget {
1014
- font-size: 1em;
1015
- }
1016
-
1017
- .ui-widget input,
1018
- .ui-widget select,
1019
- .ui-widget textarea,
1020
- .ui-widget button {
1021
- /* font-family: Verdana,Arial,sans-serif; */
1022
- /* font-size: 1em; */
1023
- }
1024
-
1025
- .ui-widget-content {
1026
- /* border: 1px solid #aaaaaa; */
1027
- /* background: #ffffff url("../images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x; */
1028
- color: #222222;
1029
- }
1030
-
1031
- .ui-widget-content a {
1032
- color: #222222;
1033
- }
1034
-
1035
- .ui-widget-header {
1036
- /* border: 1px solid #aaaaaa; */
1037
- /* background: #cccccc url("../images/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x; */
1038
- color: #222222;
1039
- font-weight: bold;
1040
- }
1041
-
1042
- .ui-widget-header a {
1043
- color: #222222;
1044
- }
1045
-
1046
- /* Interaction states
1047
- ----------------------------------*/
1048
- .ui-state-default,
1049
- .ui-widget-content .ui-state-default,
1050
- .ui-widget-header .ui-state-default {
1051
- /* border: 1px solid #d3d3d3; */
1052
- /* background: #e6e6e6 url("../images/jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x; */
1053
- font-weight: normal;
1054
- color: #555555;
1055
- }
1056
-
1057
- .ui-state-default a,
1058
- .ui-state-default a:link,
1059
- .ui-state-default a:visited {
1060
- color: #555555;
1061
- text-decoration: none;
1062
- }
1063
-
1064
- .ui-state-hover,
1065
- .ui-widget-content .ui-state-hover,
1066
- .ui-widget-header .ui-state-hover,
1067
- .ui-state-focus,
1068
- .ui-widget-content .ui-state-focus,
1069
- .ui-widget-header .ui-state-focus {
1070
- /* border: 1px solid #999999; */
1071
- /* background: #dadada url("../images/jquery-ui/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x; */
1072
- font-weight: normal;
1073
- color: #212121;
1074
- }
1075
-
1076
- .ui-state-hover a,
1077
- .ui-state-hover a:hover,
1078
- .ui-state-hover a:link,
1079
- .ui-state-hover a:visited,
1080
- .ui-state-focus a,
1081
- .ui-state-focus a:hover,
1082
- .ui-state-focus a:link,
1083
- .ui-state-focus a:visited {
1084
- color: #212121;
1085
- text-decoration: none;
1086
- }
1087
-
1088
- .ui-state-active,
1089
- .ui-widget-content .ui-state-active,
1090
- .ui-widget-header .ui-state-active {
1091
- /* border: 1px solid #aaaaaa; */
1092
- /* background: #ffffff url("../images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x; */
1093
- font-weight: normal;
1094
- color: #212121;
1095
- }
1096
-
1097
- .ui-state-active a,
1098
- .ui-state-active a:link,
1099
- .ui-state-active a:visited {
1100
- color: #212121;
1101
- text-decoration: none;
1102
- }
1103
-
1104
- /* Interaction Cues
1105
- ----------------------------------*/
1106
- .ui-state-highlight,
1107
- .ui-widget-content .ui-state-highlight,
1108
- .ui-widget-header .ui-state-highlight {
1109
- border: 1px solid #fcefa1;
1110
- background: #fbf9ee url("../images/jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;
1111
- color: #363636;
1112
- }
1113
-
1114
- .ui-state-highlight a,
1115
- .ui-widget-content .ui-state-highlight a,
1116
- .ui-widget-header .ui-state-highlight a {
1117
- color: #363636;
1118
- }
1119
-
1120
- .ui-state-error,
1121
- .ui-widget-content .ui-state-error,
1122
- .ui-widget-header .ui-state-error {
1123
- border: 1px solid #cd0a0a;
1124
- background: #fef1ec url("../images/jquery-ui/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;
1125
- color: #cd0a0a;
1126
- }
1127
-
1128
- .ui-state-error a,
1129
- .ui-widget-content .ui-state-error a,
1130
- .ui-widget-header .ui-state-error a {
1131
- color: #cd0a0a;
1132
- }
1133
-
1134
- .ui-state-error-text,
1135
- .ui-widget-content .ui-state-error-text,
1136
- .ui-widget-header .ui-state-error-text {
1137
- color: #cd0a0a;
1138
- }
1139
-
1140
- .ui-priority-primary,
1141
- .ui-widget-content .ui-priority-primary,
1142
- .ui-widget-header .ui-priority-primary {
1143
- font-weight: bold;
1144
- }
1145
-
1146
- .ui-priority-secondary,
1147
- .ui-widget-content .ui-priority-secondary,
1148
- .ui-widget-header .ui-priority-secondary {
1149
- opacity: .7;
1150
- filter: Alpha(Opacity=70);
1151
- font-weight: normal;
1152
- }
1153
-
1154
- .ui-state-disabled,
1155
- .ui-widget-content .ui-state-disabled,
1156
- .ui-widget-header .ui-state-disabled {
1157
- opacity: .35;
1158
- filter: Alpha(Opacity=35);
1159
- background-image: none;
1160
- }
1161
-
1162
- .ui-state-disabled .ui-icon {
1163
- filter: Alpha(Opacity=35); /* For IE8 - See #6059 */
1164
- }
1165
-
1166
- /* Icons
1167
- ----------------------------------*/
1168
-
1169
- /* states and images */
1170
- .ui-icon {
1171
- width: 16px;
1172
- height: 16px;
1173
- }
1174
-
1175
- .ui-icon,
1176
- .ui-widget-content .ui-icon {
1177
- background-image: url("../images/jquery-ui/ui-icons_222222_256x240.png");
1178
- }
1179
-
1180
- .ui-widget-header .ui-icon {
1181
- background-image: url("../images/jquery-ui/ui-icons_222222_256x240.png");
1182
- }
1183
-
1184
- .ui-state-default .ui-icon {
1185
- background-image: url("../images/jquery-ui/ui-icons_888888_256x240.png");
1186
- }
1187
-
1188
- .ui-state-hover .ui-icon,
1189
- .ui-state-focus .ui-icon {
1190
- background-image: url("../images/jquery-ui/ui-icons_454545_256x240.png");
1191
- }
1192
-
1193
- .ui-state-active .ui-icon {
1194
- background-image: url("../images/jquery-ui/ui-icons_454545_256x240.png");
1195
- }
1196
-
1197
- .ui-state-highlight .ui-icon {
1198
- background-image: url("../images/jquery-ui/ui-icons_2e83ff_256x240.png");
1199
- }
1200
-
1201
- .ui-state-error .ui-icon,
1202
- .ui-state-error-text .ui-icon {
1203
- background-image: url("../images/jquery-ui/ui-icons_cd0a0a_256x240.png");
1204
- }
1205
-
1206
- /* positioning */
1207
- .ui-icon-blank {
1208
- background-position: 16px 16px;
1209
- }
1210
-
1211
- .ui-icon-carat-1-n {
1212
- background-position: 0 0;
1213
- }
1214
-
1215
- .ui-icon-carat-1-ne {
1216
- background-position: -16px 0;
1217
- }
1218
-
1219
- .ui-icon-carat-1-e {
1220
- background-position: -32px 0;
1221
- }
1222
-
1223
- .ui-icon-carat-1-se {
1224
- background-position: -48px 0;
1225
- }
1226
-
1227
- .ui-icon-carat-1-s {
1228
- background-position: -64px 0;
1229
- }
1230
-
1231
- .ui-icon-carat-1-sw {
1232
- background-position: -80px 0;
1233
- }
1234
-
1235
- .ui-icon-carat-1-w {
1236
- background-position: -96px 0;
1237
- }
1238
-
1239
- .ui-icon-carat-1-nw {
1240
- background-position: -112px 0;
1241
- }
1242
-
1243
- .ui-icon-carat-2-n-s {
1244
- background-position: -128px 0;
1245
- }
1246
-
1247
- .ui-icon-carat-2-e-w {
1248
- background-position: -144px 0;
1249
- }
1250
-
1251
- .ui-icon-triangle-1-n {
1252
- background-position: 0 -16px;
1253
- }
1254
-
1255
- .ui-icon-triangle-1-ne {
1256
- background-position: -16px -16px;
1257
- }
1258
-
1259
- .ui-icon-triangle-1-e {
1260
- background-position: -32px -16px;
1261
- }
1262
-
1263
- .ui-icon-triangle-1-se {
1264
- background-position: -48px -16px;
1265
- }
1266
-
1267
- .ui-icon-triangle-1-s {
1268
- background-position: -64px -16px;
1269
- }
1270
-
1271
- .ui-icon-triangle-1-sw {
1272
- background-position: -80px -16px;
1273
- }
1274
-
1275
- .ui-icon-triangle-1-w {
1276
- background-position: -96px -16px;
1277
- }
1278
-
1279
- .ui-icon-triangle-1-nw {
1280
- background-position: -112px -16px;
1281
- }
1282
-
1283
- .ui-icon-triangle-2-n-s {
1284
- background-position: -128px -16px;
1285
- }
1286
-
1287
- .ui-icon-triangle-2-e-w {
1288
- background-position: -144px -16px;
1289
- }
1290
-
1291
- .ui-icon-arrow-1-n {
1292
- background-position: 0 -32px;
1293
- }
1294
-
1295
- .ui-icon-arrow-1-ne {
1296
- background-position: -16px -32px;
1297
- }
1298
-
1299
- .ui-icon-arrow-1-e {
1300
- background-position: -32px -32px;
1301
- }
1302
-
1303
- .ui-icon-arrow-1-se {
1304
- background-position: -48px -32px;
1305
- }
1306
-
1307
- .ui-icon-arrow-1-s {
1308
- background-position: -64px -32px;
1309
- }
1310
-
1311
- .ui-icon-arrow-1-sw {
1312
- background-position: -80px -32px;
1313
- }
1314
-
1315
- .ui-icon-arrow-1-w {
1316
- background-position: -96px -32px;
1317
- }
1318
-
1319
- .ui-icon-arrow-1-nw {
1320
- background-position: -112px -32px;
1321
- }
1322
-
1323
- .ui-icon-arrow-2-n-s {
1324
- background-position: -128px -32px;
1325
- }
1326
-
1327
- .ui-icon-arrow-2-ne-sw {
1328
- background-position: -144px -32px;
1329
- }
1330
-
1331
- .ui-icon-arrow-2-e-w {
1332
- background-position: -160px -32px;
1333
- }
1334
-
1335
- .ui-icon-arrow-2-se-nw {
1336
- background-position: -176px -32px;
1337
- }
1338
-
1339
- .ui-icon-arrowstop-1-n {
1340
- background-position: -192px -32px;
1341
- }
1342
-
1343
- .ui-icon-arrowstop-1-e {
1344
- background-position: -208px -32px;
1345
- }
1346
-
1347
- .ui-icon-arrowstop-1-s {
1348
- background-position: -224px -32px;
1349
- }
1350
-
1351
- .ui-icon-arrowstop-1-w {
1352
- background-position: -240px -32px;
1353
- }
1354
-
1355
- .ui-icon-arrowthick-1-n {
1356
- background-position: 0 -48px;
1357
- }
1358
-
1359
- .ui-icon-arrowthick-1-ne {
1360
- background-position: -16px -48px;
1361
- }
1362
-
1363
- .ui-icon-arrowthick-1-e {
1364
- background-position: -32px -48px;
1365
- }
1366
-
1367
- .ui-icon-arrowthick-1-se {
1368
- background-position: -48px -48px;
1369
- }
1370
-
1371
- .ui-icon-arrowthick-1-s {
1372
- background-position: -64px -48px;
1373
- }
1374
-
1375
- .ui-icon-arrowthick-1-sw {
1376
- background-position: -80px -48px;
1377
- }
1378
-
1379
- .ui-icon-arrowthick-1-w {
1380
- background-position: -96px -48px;
1381
- }
1382
-
1383
- .ui-icon-arrowthick-1-nw {
1384
- background-position: -112px -48px;
1385
- }
1386
-
1387
- .ui-icon-arrowthick-2-n-s {
1388
- background-position: -128px -48px;
1389
- }
1390
-
1391
- .ui-icon-arrowthick-2-ne-sw {
1392
- background-position: -144px -48px;
1393
- }
1394
-
1395
- .ui-icon-arrowthick-2-e-w {
1396
- background-position: -160px -48px;
1397
- }
1398
-
1399
- .ui-icon-arrowthick-2-se-nw {
1400
- background-position: -176px -48px;
1401
- }
1402
-
1403
- .ui-icon-arrowthickstop-1-n {
1404
- background-position: -192px -48px;
1405
- }
1406
-
1407
- .ui-icon-arrowthickstop-1-e {
1408
- background-position: -208px -48px;
1409
- }
1410
-
1411
- .ui-icon-arrowthickstop-1-s {
1412
- background-position: -224px -48px;
1413
- }
1414
-
1415
- .ui-icon-arrowthickstop-1-w {
1416
- background-position: -240px -48px;
1417
- }
1418
-
1419
- .ui-icon-arrowreturnthick-1-w {
1420
- background-position: 0 -64px;
1421
- }
1422
-
1423
- .ui-icon-arrowreturnthick-1-n {
1424
- background-position: -16px -64px;
1425
- }
1426
-
1427
- .ui-icon-arrowreturnthick-1-e {
1428
- background-position: -32px -64px;
1429
- }
1430
-
1431
- .ui-icon-arrowreturnthick-1-s {
1432
- background-position: -48px -64px;
1433
- }
1434
-
1435
- .ui-icon-arrowreturn-1-w {
1436
- background-position: -64px -64px;
1437
- }
1438
-
1439
- .ui-icon-arrowreturn-1-n {
1440
- background-position: -80px -64px;
1441
- }
1442
-
1443
- .ui-icon-arrowreturn-1-e {
1444
- background-position: -96px -64px;
1445
- }
1446
-
1447
- .ui-icon-arrowreturn-1-s {
1448
- background-position: -112px -64px;
1449
- }
1450
-
1451
- .ui-icon-arrowrefresh-1-w {
1452
- background-position: -128px -64px;
1453
- }
1454
-
1455
- .ui-icon-arrowrefresh-1-n {
1456
- background-position: -144px -64px;
1457
- }
1458
-
1459
- .ui-icon-arrowrefresh-1-e {
1460
- background-position: -160px -64px;
1461
- }
1462
-
1463
- .ui-icon-arrowrefresh-1-s {
1464
- background-position: -176px -64px;
1465
- }
1466
-
1467
- .ui-icon-arrow-4 {
1468
- background-position: 0 -80px;
1469
- }
1470
-
1471
- .ui-icon-arrow-4-diag {
1472
- background-position: -16px -80px;
1473
- }
1474
-
1475
- .ui-icon-extlink {
1476
- background-position: -32px -80px;
1477
- }
1478
-
1479
- .ui-icon-newwin {
1480
- background-position: -48px -80px;
1481
- }
1482
-
1483
- .ui-icon-refresh {
1484
- background-position: -64px -80px;
1485
- }
1486
-
1487
- .ui-icon-shuffle {
1488
- background-position: -80px -80px;
1489
- }
1490
-
1491
- .ui-icon-transfer-e-w {
1492
- background-position: -96px -80px;
1493
- }
1494
-
1495
- .ui-icon-transferthick-e-w {
1496
- background-position: -112px -80px;
1497
- }
1498
-
1499
- .ui-icon-folder-collapsed {
1500
- background-position: 0 -96px;
1501
- }
1502
-
1503
- .ui-icon-folder-open {
1504
- background-position: -16px -96px;
1505
- }
1506
-
1507
- .ui-icon-document {
1508
- background-position: -32px -96px;
1509
- }
1510
-
1511
- .ui-icon-document-b {
1512
- background-position: -48px -96px;
1513
- }
1514
-
1515
- .ui-icon-note {
1516
- background-position: -64px -96px;
1517
- }
1518
-
1519
- .ui-icon-mail-closed {
1520
- background-position: -80px -96px;
1521
- }
1522
-
1523
- .ui-icon-mail-open {
1524
- background-position: -96px -96px;
1525
- }
1526
-
1527
- .ui-icon-suitcase {
1528
- background-position: -112px -96px;
1529
- }
1530
-
1531
- .ui-icon-comment {
1532
- background-position: -128px -96px;
1533
- }
1534
-
1535
- .ui-icon-person {
1536
- background-position: -144px -96px;
1537
- }
1538
-
1539
- .ui-icon-print {
1540
- background-position: -160px -96px;
1541
- }
1542
-
1543
- .ui-icon-trash {
1544
- background-position: -176px -96px;
1545
- }
1546
-
1547
- .ui-icon-locked {
1548
- background-position: -192px -96px;
1549
- }
1550
-
1551
- .ui-icon-unlocked {
1552
- background-position: -208px -96px;
1553
- }
1554
-
1555
- .ui-icon-bookmark {
1556
- background-position: -224px -96px;
1557
- }
1558
-
1559
- .ui-icon-tag {
1560
- background-position: -240px -96px;
1561
- }
1562
-
1563
- .ui-icon-home {
1564
- background-position: 0 -112px;
1565
- }
1566
-
1567
- .ui-icon-flag {
1568
- background-position: -16px -112px;
1569
- }
1570
-
1571
- .ui-icon-calendar {
1572
- background-position: -32px -112px;
1573
- }
1574
-
1575
- .ui-icon-cart {
1576
- background-position: -48px -112px;
1577
- }
1578
-
1579
- .ui-icon-pencil {
1580
- background-position: -64px -112px;
1581
- }
1582
-
1583
- .ui-icon-clock {
1584
- background-position: -80px -112px;
1585
- }
1586
-
1587
- .ui-icon-disk {
1588
- background-position: -96px -112px;
1589
- }
1590
-
1591
- .ui-icon-calculator {
1592
- background-position: -112px -112px;
1593
- }
1594
-
1595
- .ui-icon-zoomin {
1596
- background-position: -128px -112px;
1597
- }
1598
-
1599
- .ui-icon-zoomout {
1600
- background-position: -144px -112px;
1601
- }
1602
-
1603
- .ui-icon-search {
1604
- background-position: -160px -112px;
1605
- }
1606
-
1607
- .ui-icon-wrench {
1608
- background-position: -176px -112px;
1609
- }
1610
-
1611
- .ui-icon-gear {
1612
- background-position: -192px -112px;
1613
- }
1614
-
1615
- .ui-icon-heart {
1616
- background-position: -208px -112px;
1617
- }
1618
-
1619
- .ui-icon-star {
1620
- background-position: -224px -112px;
1621
- }
1622
-
1623
- .ui-icon-link {
1624
- background-position: -240px -112px;
1625
- }
1626
-
1627
- .ui-icon-cancel {
1628
- background-position: 0 -128px;
1629
- }
1630
-
1631
- .ui-icon-plus {
1632
- background-position: -16px -128px;
1633
- }
1634
-
1635
- .ui-icon-plusthick {
1636
- background-position: -32px -128px;
1637
- }
1638
-
1639
- .ui-icon-minus {
1640
- background-position: -48px -128px;
1641
- }
1642
-
1643
- .ui-icon-minusthick {
1644
- background-position: -64px -128px;
1645
- }
1646
-
1647
- .ui-icon-close {
1648
- background-position: -80px -128px;
1649
- }
1650
-
1651
- .ui-icon-closethick {
1652
- background-position: -96px -128px;
1653
- }
1654
-
1655
- .ui-icon-key {
1656
- background-position: -112px -128px;
1657
- }
1658
-
1659
- .ui-icon-lightbulb {
1660
- background-position: -128px -128px;
1661
- }
1662
-
1663
- .ui-icon-scissors {
1664
- background-position: -144px -128px;
1665
- }
1666
-
1667
- .ui-icon-clipboard {
1668
- background-position: -160px -128px;
1669
- }
1670
-
1671
- .ui-icon-copy {
1672
- background-position: -176px -128px;
1673
- }
1674
-
1675
- .ui-icon-contact {
1676
- background-position: -192px -128px;
1677
- }
1678
-
1679
- .ui-icon-image {
1680
- background-position: -208px -128px;
1681
- }
1682
-
1683
- .ui-icon-video {
1684
- background-position: -224px -128px;
1685
- }
1686
-
1687
- .ui-icon-script {
1688
- background-position: -240px -128px;
1689
- }
1690
-
1691
- .ui-icon-alert {
1692
- background-position: 0 -144px;
1693
- }
1694
-
1695
- .ui-icon-info {
1696
- background-position: -16px -144px;
1697
- }
1698
-
1699
- .ui-icon-notice {
1700
- background-position: -32px -144px;
1701
- }
1702
-
1703
- .ui-icon-help {
1704
- background-position: -48px -144px;
1705
- }
1706
-
1707
- .ui-icon-check {
1708
- background-position: -64px -144px;
1709
- }
1710
-
1711
- .ui-icon-bullet {
1712
- background-position: -80px -144px;
1713
- }
1714
-
1715
- .ui-icon-radio-on {
1716
- background-position: -96px -144px;
1717
- }
1718
-
1719
- .ui-icon-radio-off {
1720
- background-position: -112px -144px;
1721
- }
1722
-
1723
- .ui-icon-pin-w {
1724
- background-position: -128px -144px;
1725
- }
1726
-
1727
- .ui-icon-pin-s {
1728
- background-position: -144px -144px;
1729
- }
1730
-
1731
- .ui-icon-play {
1732
- background-position: 0 -160px;
1733
- }
1734
-
1735
- .ui-icon-pause {
1736
- background-position: -16px -160px;
1737
- }
1738
-
1739
- .ui-icon-seek-next {
1740
- background-position: -32px -160px;
1741
- }
1742
-
1743
- .ui-icon-seek-prev {
1744
- background-position: -48px -160px;
1745
- }
1746
-
1747
- .ui-icon-seek-end {
1748
- background-position: -64px -160px;
1749
- }
1750
-
1751
- .ui-icon-seek-start {
1752
- background-position: -80px -160px;
1753
- }
1754
-
1755
- /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
1756
- .ui-icon-seek-first {
1757
- background-position: -80px -160px;
1758
- }
1759
-
1760
- .ui-icon-stop {
1761
- background-position: -96px -160px;
1762
- }
1763
-
1764
- .ui-icon-eject {
1765
- background-position: -112px -160px;
1766
- }
1767
-
1768
- .ui-icon-volume-off {
1769
- background-position: -128px -160px;
1770
- }
1771
-
1772
- .ui-icon-volume-on {
1773
- background-position: -144px -160px;
1774
- }
1775
-
1776
- .ui-icon-power {
1777
- background-position: 0 -176px;
1778
- }
1779
-
1780
- .ui-icon-signal-diag {
1781
- background-position: -16px -176px;
1782
- }
1783
-
1784
- .ui-icon-signal {
1785
- background-position: -32px -176px;
1786
- }
1787
-
1788
- .ui-icon-battery-0 {
1789
- background-position: -48px -176px;
1790
- }
1791
-
1792
- .ui-icon-battery-1 {
1793
- background-position: -64px -176px;
1794
- }
1795
-
1796
- .ui-icon-battery-2 {
1797
- background-position: -80px -176px;
1798
- }
1799
-
1800
- .ui-icon-battery-3 {
1801
- background-position: -96px -176px;
1802
- }
1803
-
1804
- .ui-icon-circle-plus {
1805
- background-position: 0 -192px;
1806
- }
1807
-
1808
- .ui-icon-circle-minus {
1809
- background-position: -16px -192px;
1810
- }
1811
-
1812
- .ui-icon-circle-close {
1813
- background-position: -32px -192px;
1814
- }
1815
-
1816
- .ui-icon-circle-triangle-e {
1817
- background-position: -48px -192px;
1818
- }
1819
-
1820
- .ui-icon-circle-triangle-s {
1821
- background-position: -64px -192px;
1822
- }
1823
-
1824
- .ui-icon-circle-triangle-w {
1825
- background-position: -80px -192px;
1826
- }
1827
-
1828
- .ui-icon-circle-triangle-n {
1829
- background-position: -96px -192px;
1830
- }
1831
-
1832
- .ui-icon-circle-arrow-e {
1833
- background-position: -112px -192px;
1834
- }
1835
-
1836
- .ui-icon-circle-arrow-s {
1837
- background-position: -128px -192px;
1838
- }
1839
-
1840
- .ui-icon-circle-arrow-w {
1841
- background-position: -144px -192px;
1842
- }
1843
-
1844
- .ui-icon-circle-arrow-n {
1845
- background-position: -160px -192px;
1846
- }
1847
-
1848
- .ui-icon-circle-zoomin {
1849
- background-position: -176px -192px;
1850
- }
1851
-
1852
- .ui-icon-circle-zoomout {
1853
- background-position: -192px -192px;
1854
- }
1855
-
1856
- .ui-icon-circle-check {
1857
- background-position: -208px -192px;
1858
- }
1859
-
1860
- .ui-icon-circlesmall-plus {
1861
- background-position: 0 -208px;
1862
- }
1863
-
1864
- .ui-icon-circlesmall-minus {
1865
- background-position: -16px -208px;
1866
- }
1867
-
1868
- .ui-icon-circlesmall-close {
1869
- background-position: -32px -208px;
1870
- }
1871
-
1872
- .ui-icon-squaresmall-plus {
1873
- background-position: -48px -208px;
1874
- }
1875
-
1876
- .ui-icon-squaresmall-minus {
1877
- background-position: -64px -208px;
1878
- }
1879
-
1880
- .ui-icon-squaresmall-close {
1881
- background-position: -80px -208px;
1882
- }
1883
-
1884
- .ui-icon-grip-dotted-vertical {
1885
- background-position: 0 -224px;
1886
- }
1887
-
1888
- .ui-icon-grip-dotted-horizontal {
1889
- background-position: -16px -224px;
1890
- }
1891
-
1892
- .ui-icon-grip-solid-vertical {
1893
- background-position: -32px -224px;
1894
- }
1895
-
1896
- .ui-icon-grip-solid-horizontal {
1897
- background-position: -48px -224px;
1898
- }
1899
-
1900
- .ui-icon-gripsmall-diagonal-se {
1901
- background-position: -64px -224px;
1902
- }
1903
-
1904
- .ui-icon-grip-diagonal-se {
1905
- background-position: -80px -224px;
1906
- }
1907
-
1908
- /* Misc visuals
1909
- ----------------------------------*/
1910
-
1911
- /* Corner radius */
1912
- .ui-corner-all,
1913
- .ui-corner-top,
1914
- .ui-corner-left,
1915
- .ui-corner-tl {
1916
- border-top-left-radius: 4px;
1917
- }
1918
-
1919
- .ui-corner-all,
1920
- .ui-corner-top,
1921
- .ui-corner-right,
1922
- .ui-corner-tr {
1923
- border-top-right-radius: 4px;
1924
- }
1925
-
1926
- .ui-corner-all,
1927
- .ui-corner-bottom,
1928
- .ui-corner-left,
1929
- .ui-corner-bl {
1930
- border-bottom-left-radius: 4px;
1931
- }
1932
-
1933
- .ui-corner-all,
1934
- .ui-corner-bottom,
1935
- .ui-corner-right,
1936
- .ui-corner-br {
1937
- border-bottom-right-radius: 4px;
1938
- }
1939
-
1940
- /* Overlays */
1941
- .ui-widget-overlay {
1942
- background: #aaaaaa url("../images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
1943
- opacity: .3;
1944
- filter: Alpha(Opacity=30);
1945
- }
1946
-
1947
- .ui-widget-shadow {
1948
- margin: -8px 0 0 -8px;
1949
- padding: 8px;
1950
- background: #aaaaaa url("../images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
1951
- opacity: .3;
1952
- filter: Alpha(Opacity=30);
1953
- border-radius: 8px;
1954
  }
1
+ /*!
2
+ * jQuery UI Bootstrap (0.5)
3
+ * https://addyosmani.github.com/jquery-ui-bootstrap
4
+ *
5
+ * Copyright 2012 - 2013, Addy Osmani
6
+ * Dual licensed under the MIT or GPL Version 2 licenses.
7
+ *
8
+ * Portions copyright jQuery UI & Twitter Bootstrap
9
+ */
10
+
11
 
12
  /* Layout helpers
13
  ----------------------------------*/
14
+ .ui-helper-hidden { display: none; }
15
+ .ui-helper-hidden-accessible {
16
+ border: 0; clip: rect(0 0 0 0);
17
+ height: 1px;
18
+ margin: -1px;
19
+ overflow: hidden;
20
+ padding: 0;
21
+ position: absolute;
22
+ width: 1px;
23
+ }
24
+ .ui-helper-reset {
25
+ margin: 0;
26
+ padding: 0;
27
+ border: 0;
28
+ outline: 0;
29
+ line-height: 1.3;
30
+ text-decoration: none;
31
+ font-size: 100%;
32
+ list-style: none;
 
 
 
 
 
33
  }
 
34
  .ui-helper-clearfix:before,
35
  .ui-helper-clearfix:after {
36
+ content: "";
37
+ display: table;
38
+ }
39
+ .ui-helper-clearfix:after {
40
+ content: ".";
41
+ display: block;
42
+ height: 0;
43
+ clear: both;
44
+ visibility: hidden;
45
+ }
46
+ .ui-helper-clearfix {
47
+ /*display: inline-block; */
48
+ display:block;
49
+ min-height: 0; /* support: IE7 */
50
+ }
51
+ /* required comment for clearfix to work in Opera \*/
52
+ * html .ui-helper-clearfix {
53
+ height:1%;
54
+ }
55
+
56
+ /* end clearfix */
57
+ .ui-helper-zfix {
58
+ width: 100%;
59
+ height: 100%;
60
+ top: 0;
61
+ left: 0;
62
+ position: absolute;
63
+ opacity: 0;
64
+ filter:Alpha(Opacity=0);
65
  }
 
66
  .ui-front {
67
+ z-index: 100;
68
  }
69
 
70
+
71
  /* Interaction Cues
72
  ----------------------------------*/
73
+ .ui-state-disabled { cursor: default !important; }
74
+
 
75
 
76
  /* Icons
77
  ----------------------------------*/
78
 
79
  /* states and images */
80
+ .ui-icon {
81
+ display: block;
82
+ text-indent: -99999px;
83
+ overflow: hidden;
84
+ background-repeat: no-repeat;
85
  }
86
 
87
+
88
  /* Misc visuals
89
  ----------------------------------*/
90
 
91
  /* Overlays */
92
+ .ui-widget-overlay {
93
+ position: absolute;
94
+ top: 0;
95
+ left: 0;
96
+ width: 100%;
97
+ height: 100%;
 
 
 
 
 
98
  }
99
 
100
+ /*
101
+ * jQuery UI Resizable 1.10.0
102
+ *
103
+ * Copyright 2013, AUTHORS.txt (https://jqueryui.com/about)
104
+ * Dual licensed under the MIT or GPL Version 2 licenses.
105
+ * https://jquery.org/license
106
+ *
107
+ * https://api.jqueryui.com/resizable/
108
+ */
 
 
109
 
110
+ .ui-resizable {
111
+ position: relative;
112
+ }
113
+ .ui-resizable-handle {
114
+ position: absolute;
115
+ font-size: 0.1px;
116
+ z-index: 99999;
117
+ display: block;
118
+ }
119
+ .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle {
120
+ display: none;
121
+ }
122
+ .ui-resizable-n {
123
+ cursor: n-resize;
124
+ height: 7px;
125
+ width: 100%;
126
+ top: -5px;
127
+ left: 0;
128
+ }
129
+ .ui-resizable-s {
130
+ cursor: s-resize;
131
+ height: 7px;
132
+ width: 100%;
133
+ bottom: -5px;
134
+ left: 0;
135
+ }
136
+ .ui-resizable-e {
137
+ cursor: e-resize;
138
+ width: 7px;
139
+ right: -5px;
140
+ top: 0;
141
+ height: 100%;
142
+ }
143
+ .ui-resizable-w {
144
+ cursor: w-resize;
145
+ width: 7px;
146
+ left: -5px;
147
+ top: 0;
148
+ height: 100%;
149
+ }
150
+ .ui-resizable-se {
151
+ cursor: se-resize;
152
+ width: 12px;
153
+ height: 12px;
154
+ right: 1px;
155
+ bottom: 1px;
156
+ }
157
+ .ui-resizable-sw {
158
+ cursor: sw-resize;
159
+ width: 9px;
160
+ height: 9px;
161
+ left: -5px;
162
+ bottom: -5px;
163
+ }
164
+ .ui-resizable-nw {
165
+ cursor: nw-resize;
166
+ width: 9px;
167
+ height: 9px;
168
+ left: -5px;
169
+ top: -5px;
170
+ }
171
+ .ui-resizable-ne {
172
+ cursor: ne-resize;
173
+ width: 9px;
174
+ height: 9px;
175
+ right: -5px;
176
+ top: -5px;
177
  }
178
 
179
+ /*
180
+ * jQuery UI Selectable 1.10.0
181
+ *
182
+ * Copyright 2013, AUTHORS.txt (https://jqueryui.com/about)
183
+ * Dual licensed under the MIT or GPL Version 2 licenses.
184
+ * https://jquery.org/license
185
+ *
186
+ * https://jqueryui.com/selectable/
187
+ */
188
+ .ui-selectable-helper {
189
+ position: absolute;
190
+ z-index: 100;
191
+ border:1px dotted black;
192
  }
193
 
194
+ /*
195
+ * jQuery UI CSS Framework 1.10.0
196
+ *
197
+ * Copyright 2013, AUTHORS.txt (https://jqueryui.com/about)
198
+ * Dual licensed under the MIT or GPL Version 2 licenses.
199
+ * https://jquery.org/license
200
+ *
201
+ *
202
+ *
203
+ * To view and modify this theme, visit https://jqueryui.com/themeroller/
204
+ */
205
 
206
+ /* Component containers
207
+ ----------------------------------*/
208
+ .ui-widget { /*font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;*/ /*font-size:13px;*/ }
209
+ .ui-widget .ui-widget { /*font-size: 1em;*/ }
210
+ .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { /*font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;*/ /*font-size: 1em;*/ }
211
+ .ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(../images/jquery-ui/ui-bg_glass_75_ffffff_1x400.png) 50% 50% repeat-x; color: #404040; }
212
+ .ui-widget-content a { color: #404040; }
213
+ .ui-widget-header {
214
+ font-weight:bold;
215
+ border-color: #0064cd #0064cd #003f81;
216
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
217
+ border:1px solid #666;
218
 
219
+ }
220
+ .ui-widget-header a { color: #222222; }
 
 
 
 
 
221
 
222
+ /* Interaction states
223
+ ----------------------------------*/
224
+ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
225
+
226
+ background-color: #e6e6e6;
227
+ background-repeat: no-repeat;
228
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6));
229
+ background-image: -webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
230
+ background-image: -moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6);
231
+ background-image: -ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
232
+ background-image: -o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
233
+ background-image: linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
234
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);
235
+
236
+ text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
237
+
238
+ color: #333;
239
+ /*font-size: 13px;*/
240
+ line-height: normal;
241
+ border: 1px solid #ccc;
242
+ border-bottom-color: #bbb;
243
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
244
+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
245
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
246
+ -webkit-transition: 0.1s linear background-image;
247
+ -moz-transition: 0.1s linear background-image;
248
+ -ms-transition: 0.1s linear background-image;
249
+ -o-transition: 0.1s linear background-image;
250
+ transition: 0.1s linear background-image;
251
+ overflow: visible;
252
+
253
+ }
254
+
255
+
256
+ .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
257
+ .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, /*.ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus*/ {
258
+ background-position: 0 -15px;
259
+ color: #333;
260
+ text-decoration: none;
261
+ }
262
+
263
+ .ui-tabs .ui-tabs-nav li.ui-state-focus a,
264
+ .ui-tabs .ui-tabs-nav li.ui-state-focus {
265
+ outline: none;
266
+ box-shadow: none;
267
  }
268
 
269
+ .ui-state-hover a, .ui-state-hover a:hover, .ui-state-hover a:link, .ui-state-hover a:visited { color: #212121; text-decoration: none; }
270
+ .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; font-weight: normal; color: #212121; }
271
+ .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
272
+ .ui-widget :active { outline: none; }
 
 
 
273
 
274
+ /* Interaction Cues
275
+ ----------------------------------*/
 
 
 
 
 
276
 
 
 
 
 
 
 
 
277
 
278
+ .ui-state-highlight p, .ui-state-error p, .ui-state-default p{
279
+ /*font-size: 13px;*/
280
+ font-weight: normal;
281
+ line-height: 18px;
282
+ margin:7px 15px;
283
+ }
284
+
285
+ .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
286
+ .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {
287
+
288
+
289
+ position: relative;
290
+ margin-bottom: 18px;
291
+ color: #ffffff;
292
+ border-width: 1px;
293
+ border-style: solid;
294
+ -webkit-border-radius: 4px;
295
+ -moz-border-radius: 4px;
296
+ border-radius: 4px;
297
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
298
+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
299
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
300
+ background-color: #c43c35;
301
+ background-repeat: repeat-x;
302
+ background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));
303
+ background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
304
+ background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
305
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));
306
+ background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
307
+ background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
308
+ background-image: linear-gradient(top, #ee5f5b, #c43c35);
309
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
310
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
311
+ border-color: #c43c35 #c43c35 #882a25;
312
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
313
+
314
+
315
+ }
316
+ .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
317
+ .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
318
+ .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
319
+ .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
320
+ .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
321
+ .ui-state-disabled .ui-icon { filter:Alpha(Opacity=35); } /* For IE8 - See #6059 */
322
 
 
 
 
 
 
323
 
324
+ /* Icons
325
+ ----------------------------------*/
 
 
326
 
327
+ /* states and images */
328
+ .ui-icon { width: 16px; height: 16px; background-image: url(../images/jquery-ui/ui-icons_222222_256x240.png); }
329
+ .ui-widget-content .ui-icon {background-image: url(../images/jquery-ui/ui-icons_222222_256x240.png); }
330
+ .ui-widget-header .ui-icon {background-image: url(../images/jquery-ui/ui-icons_222222_256x240.png); }
331
+ .ui-state-default .ui-icon { background-image: url(../images/jquery-ui/ui-icons_888888_256x240.png); }
332
+ .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(../images/jquery-ui/ui-icons_454545_256x240.png); }
333
+ .ui-state-active .ui-icon {background-image: url(../images/jquery-ui/ui-icons_454545_256x240.png); }
334
+ .ui-state-highlight .ui-icon {background-image: url(../images/jquery-ui/ui-icons_2e83ff_256x240.png); }
335
+ .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(../images/jquery-ui/ui-icons_f6cf3b_256x240.png); }
336
 
337
+ /* positioning */
338
+ .ui-icon-carat-1-n { background-position: 0 0; }
339
+ .ui-icon-carat-1-ne { background-position: -16px 0; }
340
+ .ui-icon-carat-1-e { background-position: -32px 0; }
341
+ .ui-icon-carat-1-se { background-position: -48px 0; }
342
+ .ui-icon-carat-1-s { background-position: -64px 0; }
343
+ .ui-icon-carat-1-sw { background-position: -80px 0; }
344
+ .ui-icon-carat-1-w { background-position: -96px 0; }
345
+ .ui-icon-carat-1-nw { background-position: -112px 0; }
346
+ .ui-icon-carat-2-n-s { background-position: -128px 0; }
347
+ .ui-icon-carat-2-e-w { background-position: -144px 0; }
348
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
349
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
350
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
351
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
352
+ .ui-icon-triangle-1-s { background-position: -64px -16px; }
353
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
354
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
355
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
356
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
357
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
358
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
359
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
360
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
361
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
362
+ .ui-icon-arrow-1-s { background-position: -64px -32px; }
363
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
364
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
365
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
366
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
367
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
368
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
369
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
370
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
371
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
372
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
373
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
374
+ .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
375
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
376
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
377
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
378
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
379
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
380
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
381
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
382
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
383
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
384
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
385
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
386
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
387
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
388
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
389
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
390
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
391
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
392
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
393
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
394
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
395
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
396
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
397
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
398
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
399
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
400
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
401
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
402
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
403
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
404
+ .ui-icon-extlink { background-position: -32px -80px; }
405
+ .ui-icon-newwin { background-position: -48px -80px; }
406
+ .ui-icon-refresh { background-position: -64px -80px; }
407
+ .ui-icon-shuffle { background-position: -80px -80px; }
408
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
409
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
410
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
411
+ .ui-icon-folder-open { background-position: -16px -96px; }
412
+ .ui-icon-document { background-position: -32px -96px; }
413
+ .ui-icon-document-b { background-position: -48px -96px; }
414
+ .ui-icon-note { background-position: -64px -96px; }
415
+ .ui-icon-mail-closed { background-position: -80px -96px; }
416
+ .ui-icon-mail-open { background-position: -96px -96px; }
417
+ .ui-icon-suitcase { background-position: -112px -96px; }
418
+ .ui-icon-comment { background-position: -128px -96px; }
419
+ .ui-icon-person { background-position: -144px -96px; }
420
+ .ui-icon-print { background-position: -160px -96px; }
421
+ .ui-icon-trash { background-position: -176px -96px; }
422
+ .ui-icon-locked { background-position: -192px -96px; }
423
+ .ui-icon-unlocked { background-position: -208px -96px; }
424
+ .ui-icon-bookmark { background-position: -224px -96px; }
425
+ .ui-icon-tag { background-position: -240px -96px; }
426
+ .ui-icon-home { background-position: 0 -112px; }
427
+ .ui-icon-flag { background-position: -16px -112px; }
428
+ .ui-icon-calendar { background-position: -32px -112px; }
429
+ .ui-icon-cart { background-position: -48px -112px; }
430
+ .ui-icon-pencil { background-position: -64px -112px; }
431
+ .ui-icon-clock { background-position: -80px -112px; }
432
+ .ui-icon-disk { background-position: -96px -112px; }
433
+ .ui-icon-calculator { background-position: -112px -112px; }
434
+ .ui-icon-zoomin { background-position: -128px -112px; }
435
+ .ui-icon-zoomout { background-position: -144px -112px; }
436
+ .ui-icon-search { background-position: -160px -112px; }
437
+ .ui-icon-wrench { background-position: -176px -112px; }
438
+ .ui-icon-gear { background-position: -192px -112px; }
439
+ .ui-icon-heart { background-position: -208px -112px; }
440
+ .ui-icon-star { background-position: -224px -112px; }
441
+ .ui-icon-link { background-position: -240px -112px; }
442
+ .ui-icon-cancel { background-position: 0 -128px; }
443
+ .ui-icon-plus { background-position: -16px -128px; }
444
+ .ui-icon-plusthick { background-position: -32px -128px; }
445
+ .ui-icon-minus { background-position: -48px -128px; }
446
+ .ui-icon-minusthick { background-position: -64px -128px; }
447
+ .ui-icon-close { background-position: -80px -128px; }
448
+ .ui-icon-closethick { background-position: -96px -128px; }
449
+ .ui-icon-key { background-position: -112px -128px; }
450
+ .ui-icon-lightbulb { background-position: -128px -128px; }
451
+ .ui-icon-scissors { background-position: -144px -128px; }
452
+ .ui-icon-clipboard { background-position: -160px -128px; }
453
+ .ui-icon-copy { background-position: -176px -128px; }
454
+ .ui-icon-contact { background-position: -192px -128px; }
455
+ .ui-icon-image { background-position: -208px -128px; }
456
+ .ui-icon-video { background-position: -224px -128px; }
457
+ .ui-icon-script { background-position: -240px -128px; }
458
+ .ui-icon-alert { background-position: 0 -144px; }
459
+ .ui-icon-info { background-position: -16px -144px; }
460
+ .ui-icon-notice { background-position: -32px -144px; }
461
+ .ui-icon-help { background-position: -48px -144px; }
462
+ .ui-icon-check { background-position: -64px -144px; }
463
+ .ui-icon-bullet { background-position: -80px -144px; }
464
+ .ui-icon-radio-off { background-position: -96px -144px; }
465
+ .ui-icon-radio-on { background-position: -112px -144px; }
466
+ .ui-icon-pin-w { background-position: -128px -144px; }
467
+ .ui-icon-pin-s { background-position: -144px -144px; }
468
+ .ui-icon-play { background-position: 0 -160px; }
469
+ .ui-icon-pause { background-position: -16px -160px; }
470
+ .ui-icon-seek-next { background-position: -32px -160px; }
471
+ .ui-icon-seek-prev { background-position: -48px -160px; }
472
+ .ui-icon-seek-end { background-position: -64px -160px; }
473
+ .ui-icon-seek-start { background-position: -80px -160px; }
474
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
475
+ .ui-icon-seek-first { background-position: -80px -160px; }
476
+ .ui-icon-stop { background-position: -96px -160px; }
477
+ .ui-icon-eject { background-position: -112px -160px; }
478
+ .ui-icon-volume-off { background-position: -128px -160px; }
479
+ .ui-icon-volume-on { background-position: -144px -160px; }
480
+ .ui-icon-power { background-position: 0 -176px; }
481
+ .ui-icon-signal-diag { background-position: -16px -176px; }
482
+ .ui-icon-signal { background-position: -32px -176px; }
483
+ .ui-icon-battery-0 { background-position: -48px -176px; }
484
+ .ui-icon-battery-1 { background-position: -64px -176px; }
485
+ .ui-icon-battery-2 { background-position: -80px -176px; }
486
+ .ui-icon-battery-3 { background-position: -96px -176px; }
487
+ .ui-icon-circle-plus { background-position: 0 -192px; }
488
+ .ui-icon-circle-minus { background-position: -16px -192px; }
489
+ .ui-icon-circle-close { background-position: -32px -192px; }
490
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
491
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
492
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
493
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
494
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
495
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
496
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
497
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
498
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
499
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
500
+ .ui-icon-circle-check { background-position: -208px -192px; }
501
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
502
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
503
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
504
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
505
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
506
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
507
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
508
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
509
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
510
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
511
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
512
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
513
 
 
 
 
514
 
515
+ /* Misc visuals
516
+ ----------------------------------*/
 
 
 
 
517
 
518
+ /* Corner radius */
519
+ .ui-corner-all,
520
+ .ui-corner-top,
521
+ .ui-corner-left,
522
+ .ui-corner-tl {
523
+ -moz-border-radius-topleft: 4px;
524
+ -webkit-border-top-left-radius: 4px;
525
+ -khtml-border-top-left-radius: 4px;
526
+ border-top-left-radius: 4px;
527
+ }
528
+ .ui-corner-all,
529
+ .ui-corner-top,
530
+ .ui-corner-right,
531
+ .ui-corner-tr {
532
+ -moz-border-radius-topright: 4px;
533
+ -webkit-border-top-right-radius: 4px;
534
+ -khtml-border-top-right-radius: 4px;
535
+ border-top-right-radius: 4px;
536
+ }
537
+ .ui-corner-all,
538
+ .ui-corner-bottom,
539
+ .ui-corner-left,
540
+ .ui-corner-bl {
541
+ -moz-border-radius-bottomleft: 4px;
542
+ -webkit-border-bottom-left-radius: 4px;
543
+ -khtml-border-bottom-left-radius: 4px;
544
+ border-bottom-left-radius: 4px;
545
+ }
546
+ .ui-corner-all,
547
+ .ui-corner-bottom,
548
+ .ui-corner-right,
549
+ .ui-corner-br {
550
+ -moz-border-radius-bottomright: 4px;
551
+ -webkit-border-bottom-right-radius: 4px;
552
+ -khtml-border-bottom-right-radius: 4px;
553
+ border-bottom-right-radius: 4px;
554
  }
555
 
 
 
 
 
 
 
556
 
557
+ /* Overlays */
 
 
 
 
 
 
 
 
 
 
558
 
559
+ .ui-widget-overlay {
560
+ background: #aaaaaa url(../images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
561
+ opacity: .30;
562
+ filter:Alpha(Opacity=30);
563
+ height: 100%;
 
564
  }
565
 
566
+ .ui-widget-shadow {
567
+ margin: -8px 0 0 -8px;
568
+ padding: 8px;
569
+ background: #aaaaaa url(../images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
570
+ opacity: .30;filter:Alpha(Opacity=30);
571
+ -moz-border-radius: 8px;
572
+ -khtml-border-radius: 8px;
573
+ -webkit-border-radius: 8px;
574
+ border-radius: 8px;
575
  }
576
 
577
+ /*
578
+ * jQuery UI Accordion 1.10.0
579
+ *
580
+ * Copyright 2013, AUTHORS.txt (https://jqueryui.com/about)
581
+ * Dual licensed under the MIT or GPL Version 2 licenses.
582
+ * https://jquery.org/license
583
+ *
584
+ * https://jqueryui.com/accordion/
585
+ */
586
 
587
+ /* IE/Win - Fix animation bug - #4615 */
 
 
588
 
589
+ .ui-accordion {
590
+ width: 100%;
591
  }
592
+ .ui-accordion .ui-accordion-header {
593
+ cursor: pointer;
594
+ position: relative;
595
+ margin-top: 1px;
596
+ zoom: 1;
597
+ font-weight:bold;
598
  }
599
+ .ui-accordion .ui-accordion-li-fix {
600
+ display: inline;
 
601
  }
602
+ .ui-accordion .ui-accordion-header-active {
603
+ border-bottom: 0 !important;
 
 
 
604
  }
605
+ .ui-accordion .ui-accordion-header a {
606
+ display: block;
607
+ font-size: 1em;
608
+ padding: .5em .5em .5em 1.7em;
609
  }
610
+ .ui-accordion-icons .ui-accordion-header a {
611
+ padding-left: 2.2em;
 
 
612
  }
613
+ .ui-accordion .ui-accordion-header .ui-icon {
614
+ position: absolute;
615
+ left: .5em;
616
+ top: 50%;
617
+ margin-top: -8px;
618
  }
619
+ .ui-accordion .ui-accordion-content {
620
+ padding: 1em 2.2em;
621
+ border-top: 0;
622
+ margin-top: -2px;
623
+ position: relative;
624
+ top: 1px;
625
+ margin-bottom: 2px;
626
+ overflow: auto;
627
+ display: none;
628
+ zoom: 1;
629
  }
630
+ .ui-accordion .ui-accordion-content-active {
631
+ display: block;
 
 
 
 
 
 
 
 
632
  }
633
 
634
+ /*
635
+ * jQuery UI Autocomplete 1.10.0
636
+ *
637
+ * Copyright 2013, AUTHORS.txt (https://jqueryui.com/about)
638
+ * Dual licensed under the MIT or GPL Version 2 licenses.
639
+ * https://jquery.org/license
640
+ *
641
+ * https://jqueryui.com/autocomplete/
642
+ */
643
 
644
+ .ui-autocomplete {
645
+ position: absolute;
646
+ top: 0;
647
+ left: 0;
648
+ cursor: default;
649
  }
650
 
651
+ /*
652
+ * jQuery UI Button 1.10.0
653
+ *
654
+ * Copyright 2013, AUTHORS.txt (https://jqueryui.com/about)
655
+ * Dual licensed under the MIT or GPL Version 2 licenses.
656
+ * https://jquery.org/license
657
+ *
658
+ * https://docs.jquery.com/UI/Button#theming
659
+ */
660
 
661
+ .ui-button {
 
 
 
662
 
663
+ cursor: pointer;
664
+ display: inline-block;
665
+ background-color: #e6e6e6;
666
+ background-repeat: no-repeat;
667
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6));
668
+ background-image: -webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
669
+ background-image: -moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6);
670
+ background-image: -ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
671
+ background-image: -o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
672
+ background-image: linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
673
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);
674
+ padding: 5px 14px 6px;
675
+ margin: 0;
676
+ text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
677
+ color: #333;
678
+ /*font-size: 13px;*/
679
+ line-height: normal;
680
+ border: 1px solid #ccc;
681
+ border-bottom-color: #bbb;
682
+
683
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
684
+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
685
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
686
+ -webkit-transition: 0.1s linear background-image;
687
+ -moz-transition: 0.1s linear background-image;
688
+ -ms-transition: 0.1s linear background-image;
689
+ -o-transition: 0.1s linear background-image;
690
+ transition: 0.1s linear background-image;
691
+ overflow: visible;
692
+ } /* the overflow property removes extra width in IE */
693
+
694
+ .ui-button-primary {
695
+ color: #ffffff;
696
+ background-color: #0064cd;
697
+ background-repeat: repeat-x;
698
+ background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));
699
+ background-image: -moz-linear-gradient(top, #049cdb, #0064cd);
700
+ background-image: -ms-linear-gradient(top, #049cdb, #0064cd);
701
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));
702
+ background-image: -webkit-linear-gradient(top, #049cdb, #0064cd);
703
+ background-image: -o-linear-gradient(top, #049cdb, #0064cd);
704
+ background-image: linear-gradient(top, #049cdb, #0064cd);
705
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0);
706
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
707
+ border-color: #0064cd #0064cd #003f81;
708
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
709
+ }
710
+
711
+
712
+ .ui-button-success{
713
+ color:#ffffff;
714
+ background-color: #57a957;
715
+ background-repeat: repeat-x;
716
+ background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957));
717
+ background-image: -moz-linear-gradient(top, #62c462, #57a957);
718
+ background-image: -ms-linear-gradient(top, #62c462, #57a957);
719
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957));
720
+ background-image: -webkit-linear-gradient(top, #62c462, #57a957);
721
+ background-image: -o-linear-gradient(top, #62c462, #57a957);
722
+ background-image: linear-gradient(top, #62c462, #57a957);
723
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
724
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
725
+ border-color: #57a957 #57a957 #3d773d;
726
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
727
+ }
728
+
729
+ .ui-button-error{
730
+ color:#ffffff;
731
+ background-color: #c43c35;
732
+ background-repeat: repeat-x;
733
+ background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));
734
+ background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
735
+ background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
736
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));
737
+ background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
738
+ background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
739
+ background-image: linear-gradient(top, #ee5f5b, #c43c35);
740
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
741
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
742
+ border-color: #c43c35 #c43c35 #882a25;
743
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
744
+ }
745
+
746
+ .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
747
+ button.ui-button-icon-only { } /* button elements seem to need a little more width */
748
+ .ui-button-icons-only { width: 3.4em; }
749
+ button.ui-button-icons-only { width: 3.7em; }
750
+
751
+ /*button text element */
752
+
753
+ .ui-button .ui-button-text { display: block; }
754
+ .ui-button-text-only .ui-button-text { }
755
+ .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; /*tempfix*/ display:none;}
756
+ .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
757
+ .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
758
+ .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
759
+ /* no icon support for input elements, provide padding by default */
760
+ /* input.ui-button { padding: .4em 1em; } */
761
+
762
+ /*button icon element(s) */
763
+ .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { top: 50%; margin-top:-3px; margin-bottom:3px; }
764
+ .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
765
+ .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
766
+ .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
767
+ .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
768
+
769
+ /*button sets*/
770
+
771
+
772
+ .ui-buttonset { margin-right: 7px; }
773
+ .ui-buttonset .ui-state-active {
774
+ color: #ffffff;
775
+ background-color: #0064cd;
776
+ background-repeat: repeat-x;
777
+ background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));
778
+ background-image: -moz-linear-gradient(top, #049cdb, #0064cd);
779
+ background-image: -ms-linear-gradient(top, #049cdb, #0064cd);
780
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));
781
+ background-image: -webkit-linear-gradient(top, #049cdb, #0064cd);
782
+ background-image: -o-linear-gradient(top, #049cdb, #0064cd);
783
+ background-image: linear-gradient(top, #049cdb, #0064cd);
784
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0);
785
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
786
+ border-color: #0064cd #0064cd #003f81;
787
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
788
+ }
789
+ .ui-buttonset .ui-button { margin-left: 0; margin-right: -.4em; }
790
 
791
  /* workarounds */
792
+ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
793
 
 
 
 
 
 
794
 
795
+ /*
796
+ * jQuery UI Menu 1.10.0
797
+ *
798
+ * Copyright 2013, AUTHORS.txt (https://jqueryui.com/about)
799
+ * Dual licensed under the MIT or GPL Version 2 licenses.
800
+ * https://jquery.org/license
801
+ *
802
+ * https://docs.jquery.com/UI/Menu#theming
803
+ */
804
 
805
+ .ui-menu { list-style:none; padding: 2px; margin: 0; display:block; float:left; outline: none; }
806
+ .ui-menu .ui-menu { margin-top: -3px; position: absolute; }
807
+ .ui-menu .ui-menu-item { margin: 0; padding: 0; zoom: 1;float: left;clear: left; width: 100%; }
808
+ .ui-menu .ui-menu-divider { margin: 5px -2px 5px -2px; height: 0; font-size: 0; line-height: 0; border-width: 1px 0 0 0; }
809
+ .ui-menu .ui-menu-item a { text-decoration: none; display: block; padding: 2px .4em; line-height: 1.5; zoom: 1; font-weight: normal; }
810
+ /*.ui-menu .ui-menu-item a.ui-state-focus,*/
811
+ .ui-menu .ui-menu-item a.ui-state-active {
812
+ font-weight: normal;
813
+ margin: 0;
814
+ color: #ffffff;
815
+ background: #0064cd;
816
+ background-color: #0064cd;
817
+ background-repeat: repeat-x;
818
+ background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));
819
+ background-image: -moz-linear-gradient(top, #049cdb, #0064cd);
820
+ background-image: -ms-linear-gradient(top, #049cdb, #0064cd);
821
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));
822
+ background-image: -webkit-linear-gradient(top, #049cdb, #0064cd);
823
+ background-image: -o-linear-gradient(top, #049cdb, #0064cd);
824
+ background-image: linear-gradient(top, #049cdb, #0064cd);
825
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0);
826
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
827
+ border-color: #0064cd #0064cd #003f81;
828
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
829
+ }
830
+ /* Fix problem with border in ui-state-active */
831
+ .ui-menu .ui-menu-item a.ui-state-active {
832
+ padding: 1px .4em;
833
+ }
834
+
835
+ .ui-menu .ui-state-disabled { font-weight: normal; margin: .4em 0 .2em; line-height: 1.5; }
836
+ .ui-menu .ui-state-disabled a { cursor: default; }
837
 
838
+ /* icon support */
839
+ .ui-menu-icons { position: relative; }
840
+ .ui-menu-icons .ui-menu-item a { position: relative; padding-left: 2em; }
 
841
 
842
+ /* left-aligned */
843
+ .ui-menu .ui-icon { position: absolute; top: .2em; left: .2em; }
 
 
844
 
845
+ /* right-aligned */
846
+ .ui-menu .ui-menu-icon { position: static; float: right; }
 
 
847
 
848
+ .ui-menu { width: 200px; margin-bottom: 2em; }
 
 
849
 
 
 
 
850
 
851
+ /*
852
+ * jQuery UI spinner 1.10.0
853
+ *
854
+ * Copyright 2013, AUTHORS.txt (https://jqueryui.com/about)
855
+ * Dual licensed under the MIT or GPL Version 2 licenses.
856
+ * https://jquery.org/license
857
+ *
858
+ * https://docs.jquery.com/UI/Menu#theming
859
+ */
860
 
861
+ .ui-spinner { position:relative; display: inline-block; overflow: hidden; padding: 0; vertical-align: middle; }
862
+ .ui-spinner-input { border: none; background: none; padding: 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; margin-right: 22px; }
863
+ .ui-spinner{}
864
+ .ui-spinner-button { width: 16px; height: 50%; font-size: .5em; padding: 0; margin: 0; text-align: center; position: absolute; cursor: default; display: block; overflow: hidden; right: 0; }
865
+ .ui-spinner a.ui-spinner-button { border-top: none; border-bottom: none; border-right: none; } /* more specificity required here to overide default borders */
866
+ .ui-spinner .ui-icon { position: absolute; margin-top: -8px; top: 50%; left: 0; } /* vertical centre icon */
867
+ .ui-spinner-up { top: 0; }
868
+ .ui-spinner-down { bottom: 0; }
869
 
870
+ /* TR overrides */
871
+ .ui-spinner .ui-icon-triangle-1-s {
872
+ /* need to fix icons sprite */
873
+ background-position:-65px -16px;
 
 
 
874
  }
875
 
876
+ /*
877
+ * jQuery UI Dialog 1.10.0
878
+ *
879
+ * Copyright 2013, AUTHORS.txt (https://jqueryui.com/about)
880
+ * Dual licensed under the MIT or GPL Version 2 licenses.
881
+ * https://jquery.org/license
882
+ *
883
+ * https://docs.jquery.com/UI/Dialog#theming
884
+ */
885
+ .ui-dialog {
886
+ position: absolute;
887
+ top: 0;
888
+ left: 0;
889
+ padding: .2em;
890
+ width: 300px;
891
+ overflow: hidden;
892
+ outline: 0;
893
+ background-clip: padding-box;
894
+ background-color: #FFFFFF;
895
+ border: 1px solid rgba(0, 0, 0, 0.3);
896
+ border-radius: 6px 6px 6px 6px;
897
+ box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
898
+ /*left: 50%;
899
+ margin-left: -280px;*/
900
+ outline: medium none;
901
+ position: fixed;
902
+ /*top: 10%;
903
+ width: 560px;*/
904
+ z-index: 1050;
905
+ }
906
+ .ui-dialog .ui-dialog-titlebar { /*padding: .4em 1em;*/
907
+ position: relative;
908
+ padding:5px 15px;
909
+ border:0px 0px 0px 1px solid;
910
+ border-color: white;
911
+ padding: 5px 15px;
912
+ font-size: 18px;
913
+ text-decoration:none;
914
+ background:none;
915
+ -moz-border-radius-bottomright: 0px;
916
+ -webkit-border-bottom-right-radius: 0px;
917
+ -khtml-border-bottom-right-radius: 0px;
918
+
919
+ -moz-border-radius-bottomleft: 0px;
920
+ -webkit-border-bottom-left-radius: 0px;
921
+ -khtml-border-bottom-left-radius: 0px;
922
+ border-bottom-left-radius: 0px;
923
+ border-bottom:1px solid #ccc;
924
  }
 
925
  .ui-dialog .ui-dialog-title {
926
+ float: left;
927
+ color:#404040;
928
+ font-weight:bold;
929
+ margin-top:5px;
930
+ margin-bottom:5px;
931
+ padding:5px;
932
+ text-overflow: ellipsis;
933
+ overflow: hidden;
934
  }
 
935
  .ui-dialog .ui-dialog-titlebar-close {
936
+ position: absolute;
937
+ right: .3em;
938
+ top: 50%;
939
+ width: 19px;
940
+ margin: -20px 0 0 0;
941
+ padding: 1px;
942
+ height: 18px;
943
+ font-size: 20px;
944
+ font-weight: bold;
945
+ line-height: 13.5px;
946
+ text-shadow: 0 1px 0 #ffffff;
947
+ filter: alpha(opacity=25);
948
+ -khtml-opacity: 0.25;
949
+ -moz-opacity: 0.25;
950
+ opacity: 0.25;
951
+ background:none;
952
+ border-width: 0;
953
+ border:none;
954
+ box-shadow: none;
955
+ }
956
+
957
+ .ui-dialog .ui-dialog-titlebar-close span {
958
+ display: block;
959
+ margin: 1px;
960
+ text-indent: 9999px;
961
+ }
962
+
963
+ .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 1px; filter: alpha(opacity=90);
964
+ -khtml-opacity: 0.90;
965
+ -moz-opacity: 0.90;
966
+ opacity: 0.90;
967
+ }
968
+
969
+ .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
970
 
971
  .ui-dialog .ui-dialog-buttonpane {
972
+ text-align: left;
973
+ border-width: 1px 0 0 0;
974
+ background-image: none;
975
+ margin: .5em 0 0 0;
976
+ background-color: #f5f5f5;
977
+ padding: 5px 15px 5px;
978
+ border-top: 1px solid #ddd;
979
+ -webkit-border-radius: 0 0 6px 6px;
980
+ -moz-border-radius: 0 0 6px 6px;
981
+ border-radius: 0 0 6px 6px;
982
+ -webkit-box-shadow: inset 0 1px 0 #ffffff;
983
+ -moz-box-shadow: inset 0 1px 0 #ffffff;
984
+ box-shadow: inset 0 1px 0 #ffffff;
985
+ zoom: 1;
986
+ margin-bottom: 0;
987
+
988
+ }
989
+ .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
990
+ .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
991
+ .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
992
+ .ui-draggable .ui-dialog-titlebar { cursor: move; }
993
+
994
+ .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button{
995
+ color: #ffffff;
996
+ background-color: #0064cd;
997
+ background-repeat: repeat-x;
998
+ background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));
999
+ background-image: -moz-linear-gradient(top, #049cdb, #0064cd);
1000
+ background-image: -ms-linear-gradient(top, #049cdb, #0064cd);
1001
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));
1002
+ background-image: -webkit-linear-gradient(top, #049cdb, #0064cd);
1003
+ background-image: -o-linear-gradient(top, #049cdb, #0064cd);
1004
+ background-image: linear-gradient(top, #049cdb, #0064cd);
1005
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0);
1006
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1007
+ border-color: #0064cd #0064cd #003f81;
1008
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1009
  }
1010
+ /*
1011
+ * jQuery UI Slider 1.8.16
1012
+ *
1013
+ * Copyright 2011, AUTHORS.txt (https://jqueryui.com/about)
1014
+ * Dual licensed under the MIT or GPL Version 2 licenses.
1015
+ * https://jquery.org/license
1016
+ *
1017
+ * https://docs.jquery.com/UI/Slider#theming
1018
+ */
1019
+ .ui-slider { position: relative; text-align: left; }
1020
+ .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
1021
+ .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0;
1022
+
1023
+ color: #ffffff;
1024
+ background-color: #0064cd;
1025
+ background-repeat: repeat-x;
1026
+ background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));
1027
+ background-image: -moz-linear-gradient(top, #049cdb, #0064cd);
1028
+ background-image: -ms-linear-gradient(top, #049cdb, #0064cd);
1029
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));
1030
+ background-image: -webkit-linear-gradient(top, #049cdb, #0064cd);
1031
+ background-image: -o-linear-gradient(top, #049cdb, #0064cd);
1032
+ background-image: linear-gradient(top, #049cdb, #0064cd);
1033
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0);
1034
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1035
+ border-color: #0064cd #0064cd #003f81;
1036
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1037
+
1038
+ }
1039
+
1040
+ .ui-slider-horizontal { height: .8em; }
1041
+ .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
1042
+ .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
1043
+ .ui-slider-horizontal .ui-slider-range-min { left: 0; }
1044
+ .ui-slider-horizontal .ui-slider-range-max { right: 0; }
1045
+
1046
+ .ui-slider-vertical { width: .8em; height: 100px; }
1047
+ .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
1048
+ .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
1049
+ .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
1050
+ .ui-slider-vertical .ui-slider-range-max { top: 0; }
1051
 
1052
+ /*
1053
+ * jQuery UI Tabs 1.9.2
1054
+ *
1055
+ * Copyright 2012, AUTHORS.txt (https://jqueryui.com/about)
1056
+ * Dual licensed under the MIT or GPL Version 2 licenses.
1057
+ * https://jquery.org/license
1058
+ *
1059
+ * https://jqueryui.com/tabs/
1060
+ */
1061
+ .ui-tabs .ui-tabs-nav{ background:none; border-color: #ddd;border-style: solid;border-width: 0 0 1px;}
1062
+ .ui-tabs { position: relative; padding: .2em; zoom: 1; border:0px;} /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
1063
 
 
 
 
 
 
 
 
1064
 
1065
+ .ui-tabs .ui-tabs-nav li:hover, .ui-tabs .ui-tabs-nav li a:hover{
1066
+ background:whiteSmoke;
1067
+ border-bottom:1px solid #ddd;
1068
+ padding-bottom:0px;
1069
+ color:#00438A;
1070
  }
1071
 
1072
+ .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; border-bottom:1px solid #DDD; }
1073
+ .ui-tabs .ui-tabs-nav li { text-decoration: none; list-style: none; float: left; position: relative; top: 1px; padding: 0px 0px 1px 0px; margin:0; white-space: nowrap; background:none; border:0px; }
 
 
 
 
 
 
 
1074
 
1075
+ .ui-tabs-nav .ui-state-default{
1076
+ -webkit-box-shadow: 0px 0px 0px #ffffff; /* Saf3-4, iOS 4.0.2 - 4.2, Android 2.3+ */
1077
+ -moz-box-shadow: 0px 0px 0px #ffffff; /* FF3.5 - 3.6 */
1078
+ box-shadow: 0px 0px 0px #ffffff; /* Opera 10.5, IE9, FF4+, Chrome 6+, iOS 5 */
 
 
1079
  }
1080
+ .ui-tabs .ui-tabs-nav li a {
1081
+ float: left;
1082
+ text-decoration: none;
1083
+ cursor: text;
1084
+ padding: 0 15px;
1085
+ margin-right: 2px;
1086
+ line-height: 34px;
1087
+ border: 1px solid transparent;
1088
+ -webkit-border-radius: 4px 4px 0 0;
1089
+ -moz-border-radius: 4px 4px 0 0;
1090
+ border-radius: 4px 4px 0 0;
1091
+
1092
+
1093
+ }
1094
+
1095
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active { top: 2px; margin-bottom: 0; padding-bottom: 0px; outline:none;}
1096
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active , .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a {
1097
+ background-color: #ffffff;
1098
+ border: 1px solid #ddd;
1099
+ border-bottom-color: #ffffff;
1100
+ cursor: default;
1101
+ color:gray;
1102
+ outline:none;
1103
+ }
1104
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active a{background-color: #ffffff;outline:none;border:none;}
1105
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active:hover{
1106
+ background:#ffffff;
1107
+ outline:none;
1108
+ margin-bottom:0px;
1109
+ }
1110
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a { cursor: text; }
1111
+ .ui-tabs .ui-tabs-nav li a, .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { cursor: pointer; color:#0069D6; background:none; font-weight:normal; margin-bottom:-1px;}
1112
+ /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
1113
+ .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 10px 5px; background: none; }
1114
+ .ui-tabs-panel .ui-button{text-decoration:none;}
1115
+ .ui-tabs .ui-tabs-hide { display: none !important; }
1116
 
 
 
 
 
1117
 
1118
+ /* IE fix for background inheritance from ui-widget*/
1119
+ .ui-tabs .ui-tabs-nav li{
1120
+ filter:none;
1121
  }
1122
 
1123
+ /*
1124
+ * jQuery UI Tooltip 1.9.0
1125
+ *
1126
+ * Copyright 2012-10-11, AUTHORS.txt (https://jqueryui.com/about)
1127
+ * Dual licensed under the MIT or GPL Version 2 licenses.
1128
+ * https://jquery.org/license
1129
+ *
1130
+ * https://jqueryui.com/tooltip/
1131
+ */
1132
+ .ui-tooltip {
1133
+ padding:8px;
1134
+ position:absolute;
1135
+ z-index:9999;
1136
+ max-width: 300px;
1137
+ -o-box-shadow: 0 0 5px #ddd;
1138
+ -moz-box-shadow: 0 0 5px #ddd;
1139
+ -webkit-box-shadow: 0 0 5px #ddd;
1140
+ /*box-shadow: 0 2px 5px #ddd;*/
1141
+ box-shadow: inset 0 1px 0 #ffffff;
1142
  }
1143
 
1144
+ body .ui-tooltip { border-width:2px; }
 
 
 
 
 
 
 
1145
 
1146
+ /*
1147
+ * jQuery UI Datepicker 1.9.0
1148
+ *
1149
+ * Copyright 2012-10-11, AUTHORS.txt (https://jqueryui.com/about)
1150
+ * Dual licensed under the MIT or GPL Version 2 licenses.
1151
+ * https://jquery.org/license
1152
+ *
1153
+ * https://jqueryui.com/datepicker/
1154
+ */
1155
+ .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
1156
+ .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; border:0px; font-weight: bold; width: 100%; padding: 4px 0; background-color: #f5f5f5; color: #808080; }
1157
+ .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
1158
 
1159
+ .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { /*top: 1px;*/ }
1160
+ .ui-datepicker .ui-datepicker-prev { left:2px; }
1161
+ .ui-datepicker .ui-datepicker-next { right:2px; }
 
 
1162
 
1163
+ .ui-datepicker .ui-datepicker-prev-hover { /*left:1px;*/ }
1164
+ .ui-datepicker .ui-datepicker-next-hover { /*right:1px;*/ }
 
 
1165
 
1166
+ .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
1167
+ .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
1168
+ .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
1169
+ .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
1170
+ .ui-datepicker select.ui-datepicker-month,
1171
+ .ui-datepicker select.ui-datepicker-year { width: 49%;}
1172
+ .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
1173
+ .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
1174
+ .ui-datepicker td { border: 0; padding: 1px; }
1175
+ .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
1176
+ .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
1177
+ .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
1178
+ .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
1179
 
1180
+ /* with multiple calendars */
1181
+ .ui-datepicker.ui-datepicker-multi { width:auto; }
1182
+ .ui-datepicker-multi .ui-datepicker-group { float:left; }
1183
+ .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
1184
+ .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
1185
+ .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
1186
+ .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
1187
+ .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
1188
+ .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
1189
+ .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
1190
+ .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
1191
 
1192
+ /* RTL support */
1193
+ .ui-datepicker-rtl { direction: rtl; }
1194
+ .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
1195
+ .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
1196
+ .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
1197
+ .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
1198
+ .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
1199
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
1200
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
1201
+ .ui-datepicker-rtl .ui-datepicker-group { float:right; }
1202
+ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
1203
+ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
1204
+
1205
+ /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
1206
+ .ui-datepicker-cover {
1207
+ display: none; /*sorry for IE5*/
1208
+ display/**/: block; /*sorry for IE5*/
1209
+ position: absolute; /*must have*/
1210
+ z-index: -1; /*must have*/
1211
+ filter: mask(); /*must have*/
1212
+ top: -4px; /*must have*/
1213
+ left: -4px; /*must have*/
1214
+ width: 200px; /*must have*/
1215
+ height: 200px; /*must have*/
1216
+ }
1217
+
1218
+ .ui-datepicker th{
1219
+ font-weight: bold;
1220
+ color: gray;
1221
+ }
1222
+
1223
+ .ui-datepicker-today a:hover{
1224
+ background-color: #808080;
1225
+ color: #ffffff;
1226
+
1227
+ }
1228
+ .ui-datepicker-today a{
1229
+ background-color: #BFBFBF;
1230
+ cursor: pointer;
1231
+ padding: 0 4px;
1232
+ margin-bottom:0px;
1233
+
1234
+ }
1235
+
1236
+
1237
+ .ui-datepicker td a{
1238
+ margin-bottom:0px;
1239
+ border:0px;
1240
+ }
1241
+
1242
+ .ui-datepicker td:hover{
1243
+ color: #ffffff;
1244
+ }
1245
+
1246
+ .ui-datepicker td .ui-state-default {
1247
+ border:0px;
1248
+ background:none;
1249
+ margin-bottom:0px;
1250
+ padding:5px;
1251
+ color:gray;
1252
+ text-align: center;
1253
+ filter:none;
1254
+ }
1255
+
1256
+
1257
+ .ui-datepicker td .ui-state-active{
1258
+ background:#BFBFBF;
1259
+ margin-bottom:0px;
1260
+ font-size:normal;
1261
+ text-shadow: 0px;
1262
+ color: #ffffff;
1263
+ -webkit-border-radius: 4px;
1264
+ -moz-border-radius: 4px;
1265
+ border-radius: 4px;
1266
+ }
1267
+
1268
+ .ui-state-highlight,
1269
+ .ui-datepicker td .ui-state-highlight,
1270
+ .ui-widget-content .ui-state-highlight,
1271
+ .ui-widget-header .ui-state-highlight {
1272
+
1273
+
1274
+ position: relative;
1275
+ margin-bottom: 18px;
1276
+ color: #404040;
1277
+ background-color: #eedc94;
1278
+ background-repeat: repeat-x;
1279
+ background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));
1280
+ background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
1281
+ background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
1282
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));
1283
+ background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
1284
+ background-image: -o-linear-gradient(top, #fceec1, #eedc94);
1285
+ background-image: linear-gradient(top, #fceec1, #eedc94);
1286
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);
1287
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1288
+ border-color: #eedc94 #eedc94 #e4c652;
1289
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1290
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
1291
+ border-width: 1px;
1292
+ border-style: solid;
1293
+ -webkit-border-radius: 4px;
1294
+ -moz-border-radius: 4px;
1295
+ border-radius: 4px;
1296
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
1297
+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
1298
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
1299
+
1300
+
1301
+ }
1302
+
1303
+ .ui-datepicker td .ui-state-hover {
1304
+ color: #ffffff !important;
1305
+ background: #0064cd;
1306
+ background-color: #0064cd;
1307
+ background-repeat: repeat-x;
1308
+ background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));
1309
+ background-image: -moz-linear-gradient(top, #049cdb, #0064cd);
1310
+ background-image: -ms-linear-gradient(top, #049cdb, #0064cd);
1311
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));
1312
+ background-image: -webkit-linear-gradient(top, #049cdb, #0064cd);
1313
+ background-image: -o-linear-gradient(top, #049cdb, #0064cd);
1314
+ background-image: linear-gradient(top, #049cdb, #0064cd);
1315
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0);
1316
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1317
+ border-color: #0064cd #0064cd #003f81;
1318
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1319
+ -webkit-border-radius: 4px;
1320
+ -moz-border-radius: 4px;
1321
+ -khtml-border-radius: 4px;
1322
+ border-radius: 4px;
1323
  }
1324
 
1325
+ /*
1326
+ * jQuery UI Progressbar 1.8.16
1327
+ *
1328
+ * Copyright 2011, AUTHORS.txt (https://jqueryui.com/about)
1329
+ * Dual licensed under the MIT or GPL Version 2 licenses.
1330
+ * https://jquery.org/license
1331
+ *
1332
+ * https://docs.jquery.com/UI/Progressbar#theming
1333
+ */
1334
+ .ui-progressbar { height:2em; text-align: left; }
1335
+ .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%;
1336
+
1337
+ /*this can be removed if ui-widget-header is blue*/
1338
+ color: #ffffff;
1339
+ background-color: #0064cd;
1340
+ background-repeat: repeat-x;
1341
+ background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));
1342
+ background-image: -moz-linear-gradient(top, #049cdb, #0064cd);
1343
+ background-image: -ms-linear-gradient(top, #049cdb, #0064cd);
1344
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));
1345
+ background-image: -webkit-linear-gradient(top, #049cdb, #0064cd);
1346
+ background-image: -o-linear-gradient(top, #049cdb, #0064cd);
1347
+ background-image: linear-gradient(top, #049cdb, #0064cd);
1348
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0);
1349
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1350
+ border-color: #0064cd #0064cd #003f81;
1351
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1352
+ }
1353
+
1354
+
1355
+
1356
+ /*** Input field styling from Bootstrap **/
1357
+ .newsletters input, .newsletters textarea {
1358
+ -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
1359
+ -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
1360
+ -ms-transition: border linear 0.2s, box-shadow linear 0.2s;
1361
+ -o-transition: border linear 0.2s, box-shadow linear 0.2s;
1362
+ transition: border linear 0.2s, box-shadow linear 0.2s;
1363
+ -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
1364
+ -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
1365
+ box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
1366
+ }
1367
+ .newsletters input:focus, .newsletters textarea:focus {
1368
+ outline: 0;
1369
+ border-color: rgba(82, 168, 236, 0.8);
1370
+ -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6);
1371
+ -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6);
1372
+ box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6);
1373
+ }
1374
+ .newsletters input[type=file]:focus, .newsletters input[type=checkbox]:focus, .newsletters select:focus {
1375
+ -webkit-box-shadow: none;
1376
+ -moz-box-shadow: none;
1377
+ box-shadow: none;
1378
+ outline: 1px dotted #666;
1379
+ }
1380
+
1381
+ .newsletters input[type="text"],
1382
+ .newsletters input[type="password"],
1383
+ .newsletters .ui-autocomplete-input,
1384
+ .newsletters textarea,
1385
+ .newsletters .uneditable-input {
1386
+ display: inline-block;
1387
+ padding: 4px;
1388
+ /*font-size: 13px;*/
1389
+ line-height: 18px;
1390
+ color: #333;
1391
+ border: 1px solid #ccc;
1392
+ -webkit-border-radius: 3px;
1393
+ -moz-border-radius: 3px;
1394
+ border-radius: 3px;
1395
+ }
1396
+
1397
+
1398
+
1399
+ /**Toolbar**/
1400
+
1401
+ .ui-toolbar{
1402
+ padding: 7px 14px;
1403
+ margin: 0 0 18px;
1404
+ background-color: #f5f5f5;
1405
+ background-repeat: repeat-x;
1406
+ background-image: -khtml-gradient(linear, left top, left bottom, from(#ffffff), to(#f5f5f5));
1407
+ background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5);
1408
+ background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5);
1409
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffffff), color-stop(100%, #f5f5f5));
1410
+ background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5);
1411
+ background-image: -o-linear-gradient(top, #ffffff, #f5f5f5);
1412
+ background-image: linear-gradient(top, #ffffff, #f5f5f5);
1413
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);
1414
+ border: 1px solid #ddd;
1415
+ -webkit-border-radius: 3px;
1416
+ -moz-border-radius: 3px;
1417
+ border-radius: 3px;
1418
+ -webkit-box-shadow: inset 0 1px 0 #ffffff;
1419
+ -moz-box-shadow: inset 0 1px 0 #ffffff;
1420
+ box-shadow: inset 0 1px 0 #ffffff;
1421
+ }
1422
+
1423
+
1424
+ /***Dialog fixes**/
1425
+
1426
+ .ui-dialog-buttonset .ui-button:nth-child(2){
1427
+ cursor: pointer;
1428
+ display: inline-block;
1429
+ background-color: #e6e6e6;
1430
+ background-repeat: no-repeat;
1431
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6));
1432
+ background-image: -webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
1433
+ background-image: -moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6);
1434
+ background-image: -ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
1435
+ background-image: -o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
1436
+ background-image: linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
1437
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);
1438
+ padding: 5px 14px 6px;
1439
+ text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
1440
+ color: #333;
1441
+ /*font-size: 13px;*/
1442
+ line-height: normal;
1443
+ border: 1px solid #ccc;
1444
+ border-bottom-color: #bbb;
1445
+ -webkit-border-radius: 4px;
1446
+ -moz-border-radius: 4px;
1447
+ border-radius: 4px;
1448
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1449
+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1450
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1451
+ -webkit-transition: 0.1s linear all;
1452
+ -moz-transition: 0.1s linear all;
1453
+ -ms-transition: 0.1s linear all;
1454
+ -o-transition: 0.1s linear all;
1455
+ transition: 0.1s linear all;
1456
+ overflow: visible;
1457
+ }
1458
+
1459
+
1460
+
1461
+ /***Wijmo Theming**/
1462
+
1463
+ div.wijmo-wijmenu{
1464
+ padding:0 20px;
1465
+ background-color: #222;
1466
+ background-color: #222222;
1467
+ background-repeat: repeat-x;
1468
+ background-image: -khtml-gradient(linear, left top, left bottom, from(#333333), to(#222222));
1469
+ background-image: -moz-linear-gradient(top, #333333, #222222);
1470
+ background-image: -ms-linear-gradient(top, #333333, #222222);
1471
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #333333), color-stop(100%, #222222));
1472
+ background-image: -webkit-linear-gradient(top, #333333, #222222);
1473
+ background-image: -o-linear-gradient(top, #333333, #222222);
1474
+ background-image: linear-gradient(top, #333333, #222222);
1475
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);
1476
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
1477
+ -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
1478
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
1479
+ }
1480
+
1481
+ .wijmo-wijmenu .ui-state-default{
1482
+ box-shadow: none;
1483
+ color:#BFBFBF;
1484
+ }
1485
+
1486
+ .wijmo-wijmenu .ui-state-default .wijmo-wijmenu-text{
1487
+ color:#BFBFBF;
1488
+ }
1489
+
1490
+ .wijmo-wijmenu .ui-state-hover{
1491
+ background: #444;
1492
+ background: rgba(255, 255, 255, 0.05);
1493
+ }
1494
+
1495
+ .wijmo-wijmenu .ui-state-hover .wijmo-wijmenu-text{
1496
+ color:#ffffff;
1497
+ }
1498
+
1499
+ div.wijmo-wijmenu .ui-widget-header h3{
1500
+ position: relative;
1501
+ margin-top:1px;
1502
+ padding:0;
1503
+ }
1504
+
1505
+ .wijmo-wijmenu h3 a{
1506
+ color: #FFFFFF;
1507
+ display: block;
1508
+ float: left;
1509
+ font-size: 20px;
1510
+ font-weight: 200;
1511
+ line-height: 1;
1512
+ margin-left: -20px;
1513
+ margin-top:1px;
1514
+ padding: 8px 20px 12px;
1515
  }
1516
 
1517
+ .wijmo-wijmenu h3 a:hover{
1518
+ background-color: rgba(255, 255, 255, 0.05);
1519
+ color: #FFFFFF;
1520
+ text-decoration: none;
 
 
 
 
1521
  }
1522
 
1523
+ .wijmo-wijmenu .ui-widget-header{
1524
+ border:0px;
1525
  }
1526
 
1527
+ .wijmo-wijmenu .wijmo-wijmenu-parent .wijmo-wijmenu-child{
1528
+ padding: 0.3em 0;
 
 
 
 
1529
  }
1530
 
1531
+ div.wijmo-wijmenu .wijmo-wijmenu-item .wijmo-wijmenu-child{
1532
+ background: #333;
1533
+ border:0;
1534
+ margin:0;
1535
+ padding: 6px 0;
1536
+ width:160px;
1537
+ -webkit-border-radius: 0 0 6px 6px;
1538
+ -moz-border-radius: 0 0 6px 6px;
1539
+ border-radius: 0 0 6px 6px;
1540
+ -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
1541
+ -moz-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
1542
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
1543
  }
1544
 
1545
+ div.wijmo-wijmenu .wijmo-wijmenu-item{
1546
+ margin:0;
1547
+ border:0;
 
 
 
 
 
1548
  }
1549
 
1550
+ .wijmo-wijmenu a.wijmo-wijmenu-link{
1551
+ margin:0;
1552
+ line-height: 19px;
1553
+ padding: 10px 10px 11px;
1554
+ border:0;
1555
+ -webkit-border-radius: 0;
1556
+ -moz-border-radius: 0;
1557
+ border-radius:0;
1558
  }
1559
 
1560
+ div.wijmo-wijmenu .wijmo-wijmenu-child .wijmo-wijmenu-link{
1561
+ display:block;
1562
+ float:none;
1563
+ padding: 4px 15px;
1564
+ width:auto;
 
 
 
1565
  }
1566
 
1567
+ div.wijmo-wijmenu .wijmo-wijmenu-child .wijmo-wijmenu-text
1568
+ {
1569
+ float:none;
 
 
 
 
1570
  }
1571
 
1572
+ .wijmo-wijmenu .wijmo-wijmenu-item .wijmo-wijmenu-child .ui-state-hover {
1573
+ background: #191919;
 
 
1574
  }
1575
 
1576
+ .wijmo-wijmenu .wijmo-wijmenu-item .wijmo-wijmenu-separator{
1577
+ padding: 5px 0;
1578
+ background-image: none;
1579
+ background-color: #222;
1580
+ border-top: 1px solid #444;
1581
+ border-bottom:0;
1582
+ border-left:0;
1583
+ border-right:0;
1584
  }
1585
 
1586
+ .wijmo-wijmenu .wijmo-wijmenu-item input {
1587
+ -moz-transition: none 0s ease 0s;
1588
+ background-color: rgba(255, 255, 255, 0.3);
1589
+ border: 1px solid #111111;
1590
+ border-radius: 4px 4px 4px 4px;
1591
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) inset, 0 1px 0 rgba(255, 255, 255, 0.25);
1592
+ color: rgba(255, 255, 255, 0.75);
1593
+ /*font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;*/
1594
+ line-height: 1;
1595
+ margin: 5px 10px 0 10px;
1596
+ padding: 4px 9px;
1597
+ width:100px;
1598
  }
1599
 
1600
+ .wijmo-wijmenu .wijmo-wijmenu-item input:hover {
1601
+ background-color: rgba(255, 255, 255, 0.5);
1602
+ color: #FFFFFF;
1603
  }
1604
 
1605
+ .wijmo-wijmenu .wijmo-wijmenu-item input:focus {
1606
+ background-color: #FFFFFF;
1607
+ border: 0 none;
1608
+ box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
1609
+ color: #404040;
1610
+ outline: 0 none;
1611
+ padding: 5px 10px;
1612
+ text-shadow: 0 1px 0 #FFFFFF;
1613
  }
1614
 
 
 
 
1615
 
1616
+ .wijmo-wijmenu .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
1617
+ text-shadow:none;
 
1618
  }
1619
 
 
 
 
 
 
1620
 
1621
+ .wijmo-wijmenu .ui-state-default{
1622
+ box-shadow: none;
1623
+ color:#BFBFBF;
1624
+ filter: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1625
  }
helpers/html.php CHANGED
@@ -24,6 +24,69 @@ class GalleryHtmlHelper extends GalleryPlugin {
24
  return $html;
25
  }
26
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
 
28
  function is_image($filename = null) {
29
  if (!empty($filename)) {
@@ -57,13 +120,13 @@ class GalleryHtmlHelper extends GalleryPlugin {
57
  if (!empty($section)) {
58
  switch ($section) {
59
  case 'slides' :
60
- $name = __('Manage Slides', $this -> plugin_name);
61
  break;
62
  case 'galleries' :
63
- $name = __('Manage Galleries', $this -> plugin_name);
64
  break;
65
  case 'settings' :
66
- $name = __('Configuration', $this -> plugin_name);
67
  break;
68
  }
69
 
@@ -276,40 +339,16 @@ class GalleryHtmlHelper extends GalleryPlugin {
276
 
277
  return rtrim($ret, "&");
278
  }
279
-
280
- function retainquery($add = null, $old_url = null, $endslash = true) {
281
- $url = (empty($old_url)) ? $_SERVER['REQUEST_URI'] : rtrim($old_url, '&');
282
- $urls = @explode("?", $url);
283
- $add = ltrim($add, '&');
284
-
285
- $url_parts = @parse_url($url);
286
- parse_str($url_parts['query'], $path_parts);
287
- $add = str_replace("&", "&", $add);
288
- parse_str($add, $add_parts);
289
-
290
- if (empty($path_parts) || !is_array($path_parts)) {
291
- $path_parts = array();
292
- }
293
-
294
- if (!empty($add_parts) && is_array($add_parts)) {
295
- foreach ($add_parts as $addkey => $addvalue) {
296
- $path_parts[$addkey] = $addvalue;
297
- }
298
  }
299
-
300
- $querystring = $this -> queryString($path_parts);
301
-
302
- $urls[1] = preg_replace("/[\&|\?]Gallerymessage\=([0-9a-z-_+]*)/i", "", $urls[1]);
303
- $urls[1] = preg_replace("/[\&|\?]page\=/si", "", $urls[1]);
304
-
305
- $url = $urls[0];
306
- $url .= '?';
307
-
308
- if (!empty($querystring)) {
309
- $url .= '&' . $querystring;
310
- }
311
-
312
- return preg_replace("/\?(\&)?/si", "?", $url);
313
  }
314
 
315
  function strip_ext($filename = null, $return = 'ext') {
@@ -337,8 +376,9 @@ class GalleryHtmlHelper extends GalleryPlugin {
337
  }
338
 
339
  function gen_date($format = "Y-m-d H:i:s", $time = false) {
 
340
  $time = (empty($time)) ? time() : $time;
341
- $date = date($format, $time);
342
 
343
  return $date;
344
  }
24
  return $html;
25
  }
26
  }
27
+
28
+ /*
29
+ * Matches each symbol of PHP date format standard
30
+ * with jQuery equivalent codeword
31
+ * @author Tristan Jahier
32
+ */
33
+ function dateformat_PHP_to_jQueryUI($php_format = null) {
34
+ $SYMBOLS_MATCHING = array(
35
+ // Day
36
+ 'd' => 'dd',
37
+ 'D' => 'D',
38
+ 'j' => 'd',
39
+ 'l' => 'DD',
40
+ 'N' => '',
41
+ 'S' => '',
42
+ 'w' => '',
43
+ 'z' => 'o',
44
+ // Week
45
+ 'W' => '',
46
+ // Month
47
+ 'F' => 'MM',
48
+ 'm' => 'mm',
49
+ 'M' => 'M',
50
+ 'n' => 'm',
51
+ 't' => '',
52
+ // Year
53
+ 'L' => '',
54
+ 'o' => '',
55
+ 'Y' => 'yy',
56
+ 'y' => 'y',
57
+ // Time
58
+ 'a' => '',
59
+ 'A' => '',
60
+ 'B' => '',
61
+ 'g' => '',
62
+ 'G' => '',
63
+ 'h' => '',
64
+ 'H' => '',
65
+ 'i' => '',
66
+ 's' => '',
67
+ 'u' => ''
68
+ );
69
+
70
+ $jqueryui_format = "";
71
+ $escaping = false;
72
+ for($i = 0; $i < strlen($php_format); $i++) {
73
+ $char = $php_format[$i];
74
+ if($char === '\\') {
75
+ $i++;
76
+ if($escaping) $jqueryui_format .= $php_format[$i];
77
+ else $jqueryui_format .= '\'' . $php_format[$i];
78
+ $escaping = true;
79
+ } else {
80
+ if($escaping) { $jqueryui_format .= "'"; $escaping = false; }
81
+ if(isset($SYMBOLS_MATCHING[$char]))
82
+ $jqueryui_format .= $SYMBOLS_MATCHING[$char];
83
+ else
84
+ $jqueryui_format .= $char;
85
+ }
86
+ }
87
+
88
+ return $jqueryui_format;
89
+ }
90
 
91
  function is_image($filename = null) {
92
  if (!empty($filename)) {
120
  if (!empty($section)) {
121
  switch ($section) {
122
  case 'slides' :
123
+ $name = __('Manage Slides', 'slideshow-gallery');
124
  break;
125
  case 'galleries' :
126
+ $name = __('Manage Galleries', 'slideshow-gallery');
127
  break;
128
  case 'settings' :
129
+ $name = __('Configuration', 'slideshow-gallery');
130
  break;
131
  }
132
 
339
 
340
  return rtrim($ret, "&");
341
  }
342
+
343
+ function retainquery($add = null, $old_url = null, $endslash = true, $onlyquery = false) {
344
+ $add_parts = $add;
345
+ if (!is_array($add)) {
346
+ $add = str_replace("&amp;", "&", $add);
347
+ parse_str($add, $add_parts);
 
 
 
 
 
 
 
 
 
 
 
 
 
348
  }
349
+
350
+ $url = (empty($old_url)) ? $_SERVER['REQUEST_URI'] : rtrim($old_url, '&');
351
+ return add_query_arg($add_parts, $url);
 
 
 
 
 
 
 
 
 
 
 
352
  }
353
 
354
  function strip_ext($filename = null, $return = 'ext') {
376
  }
377
 
378
  function gen_date($format = "Y-m-d H:i:s", $time = false) {
379
+ $format = (empty($format)) ? get_option('date_format') : $format;
380
  $time = (empty($time)) ? time() : $time;
381
+ $date = date_i18n($format, $time);
382
 
383
  return $date;
384
  }
includes/checkinit.php CHANGED
@@ -34,12 +34,13 @@ if (!class_exists('GalleryCheckinit')) {
34
  function ci_initialization() {
35
 
36
  $this -> add_action('after_plugin_row_' . $this -> plugin_name . '/slideshow-gallery.php', 'after_plugin_row', 10, 2);
 
37
 
38
- if ($this -> ci_serial_valid()) {
39
- $this -> add_action('install_plugins_pre_plugin-information', 'display_changelog', 10, 1);
40
- $this -> add_filter('transient_update_plugins', 'check_update', 10, 1);
41
- $this -> add_filter('site_transient_update_plugins', 'check_update', 10, 1);
42
- }
43
 
44
  return true;
45
  }
34
  function ci_initialization() {
35
 
36
  $this -> add_action('after_plugin_row_' . $this -> plugin_name . '/slideshow-gallery.php', 'after_plugin_row', 10, 2);
37
+ $this -> add_action('install_plugins_pre_plugin-information', 'display_changelog', 10, 1);
38
 
39
+ $this -> add_filter('default_hidden_columns', 'default_hidden_columns', 10, 2);
40
+ $this -> add_filter('set-screen-option', 'set_screen_option', 10, 3);
41
+ $this -> add_filter('removable_query_args', 'removable_query_args', 10, 1);
42
+ $this -> add_filter('transient_update_plugins', 'check_update', 10, 1);
43
+ $this -> add_filter('site_transient_update_plugins', 'check_update', 10, 1);
44
 
45
  return true;
46
  }
includes/class.gallery-list-table.php ADDED
@@ -0,0 +1,320 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // WP_List_Table is not loaded automatically so we need to load it in our application
4
+ if( ! class_exists( 'WP_List_Table' ) ) {
5
+ require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
6
+ }
7
+
8
+ /**
9
+ * Create a new table class that will extend the WP_List_Table
10
+ */
11
+ class Gallery_List_Table extends WP_List_Table {
12
+ /**
13
+ * Prepare the items for the table to process
14
+ *
15
+ * @return Void
16
+ */
17
+ public function prepare_items() {
18
+ $per_page = $this -> get_items_per_page('slideshow_galleries_perpage', 15);
19
+ $page_number = $this -> get_pagenum();
20
+
21
+ $this -> process_bulk_action();
22
+
23
+ $data = $this -> table_data($per_page, $page_number);
24
+ usort($data, array($this, 'sort_data'));
25
+ $total_items = $this -> record_count();
26
+
27
+ $this -> set_pagination_args( array(
28
+ 'total_items' => $total_items,
29
+ 'per_page' => $per_page
30
+ ) );
31
+
32
+ $this -> _column_headers = $this -> get_column_info();
33
+
34
+ $this -> items = $data;
35
+ }
36
+
37
+ /**
38
+ * Returns the count of records in the database.
39
+ *
40
+ * @return null|string
41
+ */
42
+ public function record_count() {
43
+ global $wpdb;
44
+
45
+ $galleries_table = SG() -> Gallery() -> table;
46
+
47
+ $sql = "SELECT COUNT(DISTINCT " . $galleries_table . ".id) FROM " . $galleries_table;
48
+ $sql .= $this -> add_conditions();
49
+
50
+ return $wpdb -> get_var($sql);
51
+ }
52
+
53
+ /**
54
+ * Get the table data
55
+ *
56
+ * @return Array
57
+ */
58
+ private function table_data($per_page = 15, $page_number = 1) {
59
+ global $wpdb;
60
+
61
+ $data = array();
62
+
63
+ $galleries_table = SG() -> Gallery() -> table;
64
+
65
+ $sql = "SELECT DISTINCT " . $galleries_table . ".* FROM " . $galleries_table;
66
+ $sql .= $this -> add_conditions();
67
+
68
+ $orderby = (empty($_REQUEST['orderby'])) ? $galleries_table . '.modified' : esc_html($_REQUEST['orderby']);
69
+ $order = (empty($_REQUEST['order'])) ? 'desc' : esc_html($_REQUEST['order']);
70
+
71
+ $sql .= " ORDER BY " . $orderby . " " . $order;
72
+ $sql .= " LIMIT $per_page";
73
+ $sql .= ' OFFSET ' . ( $page_number - 1 ) * $per_page;
74
+
75
+ $result = $wpdb -> get_results($sql, 'ARRAY_A');
76
+
77
+ if (!empty($result)) {
78
+ $n = 0;
79
+ foreach ($result as $record) {
80
+ $data[$n] = (array) SG() -> init_class(SG() -> Gallery() -> model, (object) $record);
81
+ $n++;
82
+ }
83
+ }
84
+
85
+ return $data;
86
+ }
87
+
88
+ function add_conditions() {
89
+ $query = '';
90
+ $conditions = array();
91
+
92
+ $search = esc_html($_REQUEST['s']);
93
+ if (!empty($search)) {
94
+ $conditions['s'] = $search;
95
+ }
96
+
97
+ $galleries_table = SG() -> Gallery() -> table;
98
+
99
+ if (!empty($conditions)) {
100
+ $query .= " WHERE";
101
+ $q = 0;
102
+
103
+ foreach ($conditions as $key => $val) {
104
+ $didvalue = false;
105
+
106
+ switch ($key) {
107
+ case 's' :
108
+ $query .= " " . $galleries_table . ".title LIKE '%" . esc_sql($val) . "%'";
109
+ $didvalue = true;
110
+ $q++;
111
+ break;
112
+ }
113
+
114
+ if (!empty($didvalue) && $q < count($conditions)) {
115
+ $query .= " AND";
116
+ }
117
+ }
118
+
119
+ }
120
+
121
+ return $query;
122
+ }
123
+
124
+ /**
125
+ * Override the parent columns method. Defines the columns to use in your listing table
126
+ *
127
+ * @return Array
128
+ */
129
+ public function get_columns() {
130
+ $columns = array(
131
+ 'cb' => '<input type="checkbox" />',
132
+ 'title' => __('Title', 'slideshow-gallery'),
133
+ 'id' => __('ID', 'slideshow-gallery'),
134
+ 'slides' => __('Slides', 'slideshow-gallery'),
135
+ 'shortcode' => __('Shortcode', 'slideshow-gallery'),
136
+ 'modified' => __('Date', 'slideshow-gallery'),
137
+ );
138
+
139
+ return $columns;
140
+ }
141
+
142
+ /**
143
+ * Define which columns are hidden
144
+ *
145
+ * @return Array
146
+ */
147
+ public function get_hidden_columns() {
148
+ return array(
149
+ 'id',
150
+ );
151
+ }
152
+
153
+ /**
154
+ * Define the sortable columns
155
+ *
156
+ * @return Array
157
+ */
158
+ public function get_sortable_columns() {
159
+ $sortable = array(
160
+ 'id' => array('id', true),
161
+ 'title' => array('title', true),
162
+ 'modified' => array('modified', true),
163
+ );
164
+
165
+ return $sortable;
166
+ }
167
+
168
+ function get_bulk_actions() {
169
+ $actions = array(
170
+ 'delete' => __('Delete', 'slideshow-gallery'),
171
+ );
172
+
173
+ return $actions;
174
+ }
175
+
176
+ function process_bulk_action() {
177
+ global $wpdb;
178
+
179
+ $current_action = $this -> current_action();
180
+ if (!empty($current_action)) {
181
+ $galleries = $_REQUEST['galleries'];
182
+
183
+ if (!empty($galleries)) {
184
+ //Detect when a bulk action is being triggered...
185
+ switch ($current_action) {
186
+ case 'delete' :
187
+ foreach ($galleries as $gallery_id) {
188
+ SG() -> Gallery() -> delete($gallery_id);
189
+ }
190
+
191
+ $message = __('Selected galleries deleted', 'slideshow-gallery');
192
+ SG() -> redirect(false, 'message', $message);
193
+ break;
194
+ }
195
+ }
196
+
197
+ SG() -> redirect();
198
+ }
199
+ }
200
+
201
+ public function extra_tablenav($which = null) {
202
+ if (!empty($which) && $which == "top") {
203
+ ?>
204
+
205
+ <?php /*<div class="alignleft actions">
206
+ <a href=""></a>
207
+ </div>*/ ?>
208
+
209
+ <?php
210
+ }
211
+ }
212
+
213
+ /**
214
+ * Define what data to show on each column of the table
215
+ *
216
+ * @param Array $item Data
217
+ * @param String $column_name - Current column name
218
+ *
219
+ * @return Mixed
220
+ */
221
+ public function column_default($item, $column_name) {
222
+ switch( $column_name ) {
223
+ case 'id' :
224
+ return $item[$column_name];
225
+ break;
226
+ default :
227
+ return $item[$column_name];
228
+ break;
229
+ }
230
+ }
231
+
232
+ function column_cb($item) {
233
+ return sprintf(
234
+ '<input type="checkbox" name="galleries[]" value="%s" />', $item['id']
235
+ );
236
+ }
237
+
238
+ function column_title($item = null) {
239
+
240
+ $title = '';
241
+ $title .= '<a class="row-title" href="' . admin_url('admin.php?page=' . SG() -> sections -> galleries . '&method=save&id=' . $item['id']) . '">' . __($item['title']) . '</a>';
242
+
243
+ $actions = [
244
+ 'view' => sprintf('<a href="%s">%s</a>', admin_url('admin.php?page=' . SG() -> sections -> galleries . '&method=view&id=' . $item['id']), __('View', 'slideshow-gallery')),
245
+ 'edit' => sprintf('<a href="%s">%s</a>', admin_url('admin.php?page=' . SG() -> sections -> galleries . '&method=save&id=' . $item['id']), __('Edit', 'slideshow-gallery')),
246
+ 'embed' => sprintf('<a href="%s">%s</a>', admin_url('admin.php?page=' . SG() -> sections -> galleries . '&method=hardcode&id=' . $item['id']), __('Embed', 'slideshow-gallery')),
247
+ 'order' => sprintf('<a href="%s">%s</a>', admin_url('admin.php?page=' . SG() -> sections -> slides . '&method=order&gallery_id=' . $item['id']), __('Order Slides', 'slideshow-gallery')),
248
+ 'delete' => sprintf('<a href="%s" onclick="%s">%s</a>', admin_url('admin.php?page=' . SG() -> sections -> galleries . '&method=delete&id=' . $item['id']), "if (!confirm('" . __('Are you sure you want to delete this gallery?', 'slideshow-gallery') . "')) { return false; }", __('Delete', 'slideshow-gallery')),
249
+ ];
250
+
251
+ $title .= $this -> row_actions($actions);
252
+
253
+ return $title;
254
+ }
255
+
256
+ function column_slides($item = array()) {
257
+
258
+ $slides = '<a href="' . admin_url('admin.php?page=' . SG() -> sections -> galleries . '&method=view&id=' . $item['id']) . '">' . $item['slidescount'] . '</a>';
259
+
260
+ return $slides;
261
+ }
262
+
263
+ function column_shortcode($item = array()) {
264
+
265
+ $shortcode = '<code>[tribulant_slideshow gallery_id=' . $item['id'] . ']</code>';
266
+
267
+ return $shortcode;
268
+ }
269
+
270
+ function column_modified($item = array()) {
271
+ $modified = '';
272
+
273
+ if (!empty($item['modified'])) {
274
+ $modified = '<label><abbr title="' . esc_attr(stripslashes($item['modified'])) . '">' . SG() -> Html -> gen_date(false, strtotime($item['modified'])) . '</abbr></label>';
275
+ }
276
+
277
+ return $modified;
278
+ }
279
+
280
+ /** Text displayed when no customer data is available */
281
+ public function no_items() {
282
+ _e('No galleries avaliable.', 'slideshow-gallery');
283
+ }
284
+
285
+ /**
286
+ * Allows you to sort the data by the variables set in the $_GET
287
+ *
288
+ * @return Mixed
289
+ */
290
+ private function sort_data( $a, $b ) {
291
+ // Set defaults
292
+ $orderby = 'modified';
293
+ $order = 'desc';
294
+
295
+ // If orderby is set, use this as the sort column
296
+ if(!empty($_GET['orderby'])) {
297
+ $orderby = esc_html($_GET['orderby']);
298
+ }
299
+
300
+ // If order is set use this as the order
301
+ if(!empty($_GET['order']))
302
+ {
303
+ $order = esc_html($_GET['order']);
304
+ }
305
+
306
+
307
+ $result = strcmp( $a[$orderby], $b[$orderby] );
308
+
309
+ if($order === 'asc') {
310
+ return $result;
311
+ }
312
+
313
+ return -$result;
314
+ }
315
+
316
+ function debug($var = array()) {
317
+ echo '<pre>' . print_r($var, true) . '</pre>';
318
+ return true;
319
+ }
320
+ }
includes/class.slide-list-table.php ADDED
@@ -0,0 +1,422 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // WP_List_Table is not loaded automatically so we need to load it in our application
4
+ if( ! class_exists( 'WP_List_Table' ) ) {
5
+ require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
6
+ }
7
+
8
+ /**
9
+ * Create a new table class that will extend the WP_List_Table
10
+ */
11
+ class Slide_List_Table extends WP_List_Table {
12
+
13
+ /**
14
+ * Prepare the items for the table to process
15
+ *
16
+ * @return Void
17
+ */
18
+ public function prepare_items() {
19
+ $per_page = $this -> get_items_per_page('slideshow_slides_perpage', 15);
20
+ $page_number = $this -> get_pagenum();
21
+
22
+ $this -> process_bulk_action();
23
+
24
+ $data = $this -> table_data($per_page, $page_number);
25
+ usort($data, array($this, 'sort_data'));
26
+ $total_items = $this -> record_count();
27
+
28
+ $this -> set_pagination_args( array(
29
+ 'total_items' => $total_items,
30
+ 'per_page' => $per_page
31
+ ) );
32
+
33
+ $this -> _column_headers = $this -> get_column_info();
34
+
35
+ $this -> items = $data;
36
+ }
37
+
38
+ /**
39
+ * Returns the count of records in the database.
40
+ *
41
+ * @return null|string
42
+ */
43
+ public function record_count() {
44
+ global $wpdb;
45
+
46
+ $slides_table = SG() -> Slide() -> table;
47
+ $slidesgalleries_table = SG() -> GallerySlides() -> table;
48
+
49
+ $sql = "SELECT COUNT(DISTINCT " . $slides_table . ".id) FROM " . $slides_table;
50
+ $sql .= " LEFT JOIN " . $slidesgalleries_table . " ON " . $slides_table . ".id = " . $slidesgalleries_table . ".slide_id";
51
+ $sql .= $this -> add_conditions();
52
+
53
+ return $wpdb -> get_var($sql);
54
+ }
55
+
56
+ /**
57
+ * Get the table data
58
+ *
59
+ * @return Array
60
+ */
61
+ private function table_data($per_page = 15, $page_number = 1) {
62
+ global $wpdb;
63
+
64
+ $data = array();
65
+
66
+ $slides_table = SG() -> Slide() -> table;
67
+ $slidesgalleries_table = SG() -> GallerySlides() -> table;
68
+
69
+ $sql = "SELECT DISTINCT " . $slides_table . ".* FROM " . $slides_table;
70
+ $sql .= " LEFT JOIN " . $slidesgalleries_table . " ON " . $slides_table . ".id = " . $slidesgalleries_table . ".slide_id";
71
+ $sql .= $this -> add_conditions();
72
+
73
+ $orderby = (empty($_REQUEST['orderby'])) ? $slides_table . '.modified' : esc_html($_REQUEST['orderby']);
74
+ $order = (empty($_REQUEST['order'])) ? 'desc' : esc_html($_REQUEST['order']);
75
+
76
+ $sql .= " ORDER BY " . $orderby . " " . $order;
77
+ $sql .= " LIMIT $per_page";
78
+ $sql .= ' OFFSET ' . ( $page_number - 1 ) * $per_page;
79
+
80
+ $result = $wpdb -> get_results($sql, 'ARRAY_A');
81
+
82
+ if (!empty($result)) {
83
+ $n = 0;
84
+ foreach ($result as $record) {
85
+ $data[$n] = (array) SG() -> init_class(SG() -> Slide() -> model, (object) $record);
86
+ $n++;
87
+ }
88
+ }
89
+
90
+ return $data;
91
+ }
92
+
93
+ function add_conditions() {
94
+ $query = '';
95
+ $conditions = array();
96
+
97
+ $search = esc_html($_REQUEST['s']);
98
+ if (!empty($search)) {
99
+ $conditions['s'] = $search;
100
+ }
101
+
102
+ $gallery_id = esc_html($_REQUEST['id']);
103
+ if (!empty($gallery_id)) {
104
+ $conditions['gallery_id'] = $gallery_id;
105
+ }
106
+
107
+ $slides_table = SG() -> Slide() -> table;
108
+ $slidesgalleries_table = SG() -> GallerySlides() -> table;
109
+
110
+ if (!empty($conditions)) {
111
+ $query .= " WHERE";
112
+ $q = 0;
113
+
114
+ foreach ($conditions as $key => $val) {
115
+ $didvalue = false;
116
+
117
+ switch ($key) {
118
+ case 's' :
119
+ $query .= " " . $slides_table . ".title LIKE '%" . esc_sql($val) . "%'";
120
+ $didvalue = true;
121
+ $q++;
122
+ break;
123
+ case 'gallery_id' :
124
+ $query .= " " . $slidesgalleries_table . ".gallery_id = '" . esc_sql($val) . "'";
125
+ $didvalue = true;
126
+ $q++;
127
+ break;
128
+ }
129
+
130
+ if (!empty($didvalue) && $q < count($conditions)) {
131
+ $query .= " AND";
132
+ }
133
+ }
134
+
135
+ }
136
+
137
+ return $query;
138
+ }
139
+
140
+ /**
141
+ * Override the parent columns method. Defines the columns to use in your listing table
142
+ *
143
+ * @return Array
144
+ */
145
+ public function get_columns() {
146
+ $columns = array(
147
+ 'cb' => '<input type="checkbox" />',
148
+ 'image' => __('Image', 'slideshow-gallery'),
149
+ 'id' => __('ID', 'slideshow-gallery'),
150
+ 'title' => __('Title', 'slideshow-gallery'),
151
+ 'galleries' => __('Galleries', 'slideshow-gallery'),
152
+ 'link' => __('Link', 'slideshow-gallery'),
153
+ 'expiry' => __('Expiry', 'slideshow-gallery'),
154
+ 'modified' => __('Date', 'slideshow-gallery'),
155
+ 'order' => __('Order', 'slideshow-gallery'),
156
+ );
157
+
158
+ return $columns;
159
+ }
160
+
161
+ /**
162
+ * Define which columns are hidden
163
+ *
164
+ * @return Array
165
+ */
166
+ public function get_hidden_columns() {
167
+ return array(
168
+ 'id',
169
+ 'link',
170
+ 'expiry',
171
+ 'order',
172
+ );
173
+ }
174
+
175
+ /**
176
+ * Define the sortable columns
177
+ *
178
+ * @return Array
179
+ */
180
+ public function get_sortable_columns() {
181
+ $sortable = array(
182
+ 'id' => array('id', true),
183
+ 'image' => array('image', true),
184
+ 'title' => array('title', true),
185
+ 'link' => array('link', true),
186
+ 'expiry' => array('expiry', true),
187
+ 'modified' => array('modified', true),
188
+ 'order' => array('order', true),
189
+ );
190
+
191
+ return $sortable;
192
+ }
193
+
194
+ function get_bulk_actions() {
195
+ $actions = array(
196
+ 'delete' => __('Delete', 'slideshow-gallery'),
197
+ 'addgalleries' => __('Add Galleries...', 'slideshow-gallery'),
198
+ 'setgalleries' => __('Set Galleries...', 'slideshow-gallery'),
199
+ 'remgalleries' => __('Remove Galleries', 'slideshow-gallery'),
200
+ );
201
+
202
+ return $actions;
203
+ }
204
+
205
+ function process_bulk_action() {
206
+ global $wpdb;
207
+
208
+ $current_action = $this -> current_action();
209
+ if (!empty($current_action)) {
210
+ $slides = $_REQUEST['slides'];
211
+ $galleries = $_REQUEST['galleries'];
212
+
213
+ if (!empty($slides)) {
214
+ //Detect when a bulk action is being triggered...
215
+ switch ($current_action) {
216
+ case 'delete' :
217
+ foreach ($slides as $slide_id) {
218
+ SG() -> Slide() -> delete($slide_id);
219
+ }
220
+
221
+ $message = __('Selected slides deleted', 'slideshow-gallery');
222
+ SG() -> redirect(false, 'message', $message);
223
+ break;
224
+ case 'remgalleries' :
225
+ foreach ($slides as $slide_id) {
226
+ SG() -> GallerySlides() -> delete_all(array('slide_id' => $slide_id));
227
+ }
228
+
229
+ $message = __('Selected slides removed from all galleries', 'slideshow-gallery');
230
+ SG() -> redirect(false, 'message', $message);
231
+ break;
232
+ case 'setgalleries' :
233
+ foreach ($slides as $slide_id) {
234
+ SG() -> GallerySlides() -> delete_all(array('slide_id' => $slide_id));
235
+ }
236
+ case 'addgalleries' :
237
+ if (!empty($galleries)) {
238
+ foreach ($slides as $slide_id) {
239
+ foreach ($galleries as $gallery_id) {
240
+ SG() -> GallerySlides() -> save(array(
241
+ 'slide_id' => $slide_id,
242
+ 'gallery_id' => $gallery_id,
243
+ ));
244
+ }
245
+ }
246
+
247
+ $message = __('Slides added to selected galleries', 'slideshow-gallery');
248
+ SG() -> redirect(false, 'message', $message);
249
+ }
250
+ break;
251
+ }
252
+ }
253
+
254
+ SG() -> redirect();
255
+ }
256
+ }
257
+
258
+ public function extra_tablenav($which = null) {
259
+ if (!empty($which) && $which == "top") {
260
+ ?>
261
+
262
+ <div class="alignleft actions">
263
+ <a href="<?php echo admin_url('admin.php?page=' . SG() -> sections -> slides . '&method=order' . ((!empty($_GET['id'])) ? '&gallery_id=' . esc_html($_GET['id']) : '')); ?>" class="button"><i class="fa fa-sort fa-fw"></i> <?php _e('Order Slides', 'slideshow-gallery'); ?></a>
264
+ </div>
265
+
266
+ <div id="action_galleries_div" style="display:none;">
267
+ <br class="clear" />
268
+ <?php if ($galleries = SG() -> Gallery() -> select()) : ?>
269
+ <div><label style="font-weight:bold"><input onclick="jqCheckAll(this, false, 'galleries');" type="checkbox" name="checkboxall" value="1" /> <?php _e('Select all', 'slideshow-gallery'); ?></label></div>
270
+ <?php foreach ($galleries as $gallery_id => $gallery_name) : ?>
271
+ <div><label><input type="checkbox" name="galleries[]" value="<?php echo $gallery_id; ?>" /> <?php _e($gallery_name); ?></label></div>
272
+ <?php endforeach; ?>
273
+ <?php else : ?>
274
+ <p class="slideshow_error"><?php _e('No galleries are available', 'slideshow-gallery'); ?></p>
275
+ <?php endif; ?>
276
+ </div>
277
+
278
+ <?php
279
+ }
280
+ }
281
+
282
+ /**
283
+ * Define what data to show on each column of the table
284
+ *
285
+ * @param Array $item Data
286
+ * @param String $column_name - Current column name
287
+ *
288
+ * @return Mixed
289
+ */
290
+ public function column_default($item, $column_name) {
291
+ switch( $column_name ) {
292
+ case 'id' :
293
+ return $item[$column_name];
294
+ break;
295
+ default :
296
+ return $item[$column_name];
297
+ break;
298
+ }
299
+ }
300
+
301
+ function column_cb($item) {
302
+ return sprintf(
303
+ '<input type="checkbox" name="slides[]" value="%s" />', $item['id']
304
+ );
305
+ }
306
+
307
+ function column_image($item) {
308
+
309
+ $image = '<a href="' . $item['image_path'] . '" title="' . esc_attr(stripslashes(__($item['title']))) . '" class="colorbox" rel="slides"><img style="width:50px; height:50px;" class="img-rounded" src="' . SG() -> Html -> otf_image_src((object) $item, 50, 50, 100) . '" alt="' . SG() -> Html -> sanitize(__($slide -> title)) . '" /></a>';
310
+
311
+ return $image;
312
+ }
313
+
314
+ function column_title($item = null) {
315
+
316
+ $title = '';
317
+ $title .= '<a class="row-title" href="' . admin_url('admin.php?page=' . SG() -> sections -> slides . '&method=save&id=' . $item['id']) . '">' . __($item['title']) . '</a>';
318
+
319
+ $actions = [
320
+ 'edit' => sprintf('<a href="%s">%s</a>', admin_url('admin.php?page=' . SG() -> sections -> slides . '&method=save&id=' . $item['id']), __('Edit', 'slideshow-gallery')),
321
+ 'delete' => sprintf('<a href="%s" onclick="%s">%s</a>', admin_url('admin.php?page=' . SG() -> sections -> slides . '&method=delete&id=' . $item['id']), "if (!confirm('" . __('Are you sure you want to delete this slide?', 'slideshow-gallery') . "')) { return false; }", __('Delete', 'slideshow-gallery')),
322
+ ];
323
+
324
+ $title .= $this -> row_actions($actions);
325
+
326
+ return $title;
327
+ }
328
+
329
+ function column_galleries($item = null) {
330
+
331
+ $galleries = __('None', 'slideshow-gallery');
332
+ if (!empty($item['gallery'])) {
333
+ $galleries = '';
334
+ $g = 1;
335
+ foreach ($item['gallery'] as $gallery) {
336
+ $galleries .= '<a href="' . admin_url('admin.php?page=' . SG() -> sections -> galleries . '&method=view&id=' . $gallery -> id) . '">' . __($gallery -> title) . '</a>';
337
+ if ($g < count($item['gallery'])) {
338
+ $galleries .= ', ';
339
+ }
340
+ $g++;
341
+ }
342
+ }
343
+
344
+ return $galleries;
345
+ }
346
+
347
+ function column_link($item = null) {
348
+ $link = '<span class="slideshow_error"><i class="fa fa-times fa-fw"></i> ' . __('No', 'slideshow-gallery') . '</span>';
349
+
350
+ if (!empty($item['uselink']) && !empty($item['link'])) {
351
+ $link = '<span class="slideshow_success"><i class="fa fa-check fa-fw"></i> ' . __('Yes', 'slideshow-gallery') . '</span>';
352
+ $link .= ' (<a href="' . esc_attr(stripslashes($item['link'])) . '" target="_blank">' . __('Open', 'slideshow-gallery') . '</a>)';
353
+ }
354
+
355
+ return $link;
356
+ }
357
+
358
+ function column_expiry($item = null) {
359
+ $expiry = '<span class="slideshow_success"><i class="fa fa-times fa-fw"></i> ' . __('No', 'slideshow-gallery') . '</span>';
360
+ if (!empty($item['expiry'])) {
361
+ $expiry = '<span class="slideshow_warning"><i class="fa fa-check fa-fw"></i> ';
362
+ $expiry .= date_i18n(get_option('date_format'), strtotime($item['expiry']));
363
+ $expiry .= '</span>';
364
+ if (strtotime($item['expiry']) < time()) {
365
+ $expiry .= '<br/><span class="slideshow_error"><i class="fa fa-exclamation-triangle fa-fw"></i> ' . __('Expired', 'slideshow-gallery') . '</span>';
366
+ }
367
+ }
368
+
369
+ return $expiry;
370
+ }
371
+
372
+ function column_modified($item = array()) {
373
+ $modified = '';
374
+
375
+ if (!empty($item['modified'])) {
376
+ $modified = '<label><abbr title="' . esc_attr(stripslashes($item['modified'])) . '">' . SG() -> Html -> gen_date(false, strtotime($item['modified'])) . '</abbr></label>';
377
+ }
378
+
379
+ return $modified;
380
+ }
381
+
382
+ /** Text displayed when no customer data is available */
383
+ public function no_items() {
384
+ _e('No slides avaliable.', 'slideshow-gallery');
385
+ }
386
+
387
+ /**
388
+ * Allows you to sort the data by the variables set in the $_GET
389
+ *
390
+ * @return Mixed
391
+ */
392
+ private function sort_data( $a, $b ) {
393
+ // Set defaults
394
+ $orderby = 'modified';
395
+ $order = 'desc';
396
+
397
+ // If orderby is set, use this as the sort column
398
+ if(!empty($_GET['orderby'])) {
399
+ $orderby = esc_html($_GET['orderby']);
400
+ }
401
+
402
+ // If order is set use this as the order
403
+ if(!empty($_GET['order']))
404
+ {
405
+ $order = esc_html($_GET['order']);
406
+ }
407
+
408
+
409
+ $result = strcmp( $a[$orderby], $b[$orderby] );
410
+
411
+ if($order === 'asc') {
412
+ return $result;
413
+ }
414
+
415
+ return -$result;
416
+ }
417
+
418
+ function debug($var = array()) {
419
+ echo '<pre>' . print_r($var, true) . '</pre>';
420
+ return true;
421
+ }
422
+ }
includes/constants.php CHANGED
@@ -1,5 +1,5 @@
1
  <?php
2
 
3
- if (!defined('SLIDESHOW_MANAGER_URL')) { define('SLIDESHOW_MANAGER_URL', "http://tribulant.com/plugins/"); }
4
 
5
  ?>
1
  <?php
2
 
3
+ if (!defined('SLIDESHOW_MANAGER_URL')) { define('SLIDESHOW_MANAGER_URL', "https://tribulant.com/plugins/"); }
4
 
5
  ?>
js/colorbox.js CHANGED
@@ -1,6 +1,6 @@
1
  /*!
2
  Colorbox 1.6.4
3
  license: MIT
4
- http://www.jacklmoore.com/colorbox
5
  */
6
  (function(t,e,i){function n(i,n,o){var r=e.createElement(i);return n&&(r.id=Z+n),o&&(r.style.cssText=o),t(r)}function o(){return i.innerHeight?i.innerHeight:t(i).height()}function r(e,i){i!==Object(i)&&(i={}),this.cache={},this.el=e,this.value=function(e){var n;return void 0===this.cache[e]&&(n=t(this.el).attr("data-cbox-"+e),void 0!==n?this.cache[e]=n:void 0!==i[e]?this.cache[e]=i[e]:void 0!==X[e]&&(this.cache[e]=X[e])),this.cache[e]},this.get=function(e){var i=this.value(e);return t.isFunction(i)?i.call(this.el,this):i}}function h(t){var e=W.length,i=(A+t)%e;return 0>i?e+i:i}function a(t,e){return Math.round((/%/.test(t)?("x"===e?E.width():o())/100:1)*parseInt(t,10))}function s(t,e){return t.get("photo")||t.get("photoRegex").test(e)}function l(t,e){return t.get("retinaUrl")&&i.devicePixelRatio>1?e.replace(t.get("photoRegex"),t.get("retinaSuffix")):e}function d(t){"contains"in x[0]&&!x[0].contains(t.target)&&t.target!==v[0]&&(t.stopPropagation(),x.focus())}function c(t){c.str!==t&&(x.add(v).removeClass(c.str).addClass(t),c.str=t)}function g(e){A=0,e&&e!==!1&&"nofollow"!==e?(W=t("."+te).filter(function(){var i=t.data(this,Y),n=new r(this,i);return n.get("rel")===e}),A=W.index(_.el),-1===A&&(W=W.add(_.el),A=W.length-1)):W=t(_.el)}function u(i){t(e).trigger(i),ae.triggerHandler(i)}function f(i){var o;if(!G){if(o=t(i).data(Y),_=new r(i,o),g(_.get("rel")),!U){U=$=!0,c(_.get("className")),x.css({visibility:"hidden",display:"block",opacity:""}),I=n(se,"LoadedContent","width:0; height:0; overflow:hidden; visibility:hidden"),b.css({width:"",height:""}).append(I),j=T.height()+k.height()+b.outerHeight(!0)-b.height(),D=C.width()+H.width()+b.outerWidth(!0)-b.width(),N=I.outerHeight(!0),z=I.outerWidth(!0);var h=a(_.get("initialWidth"),"x"),s=a(_.get("initialHeight"),"y"),l=_.get("maxWidth"),f=_.get("maxHeight");_.w=Math.max((l!==!1?Math.min(h,a(l,"x")):h)-z-D,0),_.h=Math.max((f!==!1?Math.min(s,a(f,"y")):s)-N-j,0),I.css({width:"",height:_.h}),J.position(),u(ee),_.get("onOpen"),O.add(F).hide(),x.focus(),_.get("trapFocus")&&e.addEventListener&&(e.addEventListener("focus",d,!0),ae.one(re,function(){e.removeEventListener("focus",d,!0)})),_.get("returnFocus")&&ae.one(re,function(){t(_.el).focus()})}var p=parseFloat(_.get("opacity"));v.css({opacity:p===p?p:"",cursor:_.get("overlayClose")?"pointer":"",visibility:"visible"}).show(),_.get("closeButton")?B.html(_.get("close")).appendTo(b):B.appendTo("<div/>"),w()}}function p(){x||(V=!1,E=t(i),x=n(se).attr({id:Y,"class":t.support.opacity===!1?Z+"IE":"",role:"dialog",tabindex:"-1"}).hide(),v=n(se,"Overlay").hide(),L=t([n(se,"LoadingOverlay")[0],n(se,"LoadingGraphic")[0]]),y=n(se,"Wrapper"),b=n(se,"Content").append(F=n(se,"Title"),R=n(se,"Current"),P=t('<button type="button"/>').attr({id:Z+"Previous"}),K=t('<button type="button"/>').attr({id:Z+"Next"}),S=t('<button type="button"/>').attr({id:Z+"Slideshow"}),L),B=t('<button type="button"/>').attr({id:Z+"Close"}),y.append(n(se).append(n(se,"TopLeft"),T=n(se,"TopCenter"),n(se,"TopRight")),n(se,!1,"clear:left").append(C=n(se,"MiddleLeft"),b,H=n(se,"MiddleRight")),n(se,!1,"clear:left").append(n(se,"BottomLeft"),k=n(se,"BottomCenter"),n(se,"BottomRight"))).find("div div").css({"float":"left"}),M=n(se,!1,"position:absolute; width:9999px; visibility:hidden; display:none; max-width:none;"),O=K.add(P).add(R).add(S)),e.body&&!x.parent().length&&t(e.body).append(v,x.append(y,M))}function m(){function i(t){t.which>1||t.shiftKey||t.altKey||t.metaKey||t.ctrlKey||(t.preventDefault(),f(this))}return x?(V||(V=!0,K.click(function(){J.next()}),P.click(function(){J.prev()}),B.click(function(){J.close()}),v.click(function(){_.get("overlayClose")&&J.close()}),t(e).bind("keydown."+Z,function(t){var e=t.keyCode;U&&_.get("escKey")&&27===e&&(t.preventDefault(),J.close()),U&&_.get("arrowKey")&&W[1]&&!t.altKey&&(37===e?(t.preventDefault(),P.click()):39===e&&(t.preventDefault(),K.click()))}),t.isFunction(t.fn.on)?t(e).on("click."+Z,"."+te,i):t("."+te).live("click."+Z,i)),!0):!1}function w(){var e,o,r,h=J.prep,d=++le;if($=!0,q=!1,u(he),u(ie),_.get("onLoad"),_.h=_.get("height")?a(_.get("height"),"y")-N-j:_.get("innerHeight")&&a(_.get("innerHeight"),"y"),_.w=_.get("width")?a(_.get("width"),"x")-z-D:_.get("innerWidth")&&a(_.get("innerWidth"),"x"),_.mw=_.w,_.mh=_.h,_.get("maxWidth")&&(_.mw=a(_.get("maxWidth"),"x")-z-D,_.mw=_.w&&_.w<_.mw?_.w:_.mw),_.get("maxHeight")&&(_.mh=a(_.get("maxHeight"),"y")-N-j,_.mh=_.h&&_.h<_.mh?_.h:_.mh),e=_.get("href"),Q=setTimeout(function(){L.show()},100),_.get("inline")){var c=t(e).eq(0);r=t("<div>").hide().insertBefore(c),ae.one(he,function(){r.replaceWith(c)}),h(c)}else _.get("iframe")?h(" "):_.get("html")?h(_.get("html")):s(_,e)?(e=l(_,e),q=_.get("createImg"),t(q).addClass(Z+"Photo").bind("error."+Z,function(){h(n(se,"Error").html(_.get("imgError")))}).one("load",function(){d===le&&setTimeout(function(){var e;_.get("retinaImage")&&i.devicePixelRatio>1&&(q.height=q.height/i.devicePixelRatio,q.width=q.width/i.devicePixelRatio),_.get("scalePhotos")&&(o=function(){q.height-=q.height*e,q.width-=q.width*e},_.mw&&q.width>_.mw&&(e=(q.width-_.mw)/q.width,o()),_.mh&&q.height>_.mh&&(e=(q.height-_.mh)/q.height,o())),_.h&&(q.style.marginTop=Math.max(_.mh-q.height,0)/2+"px"),W[1]&&(_.get("loop")||W[A+1])&&(q.style.cursor="pointer",t(q).bind("click."+Z,function(){J.next()})),q.style.width=q.width+"px",q.style.height=q.height+"px",h(q)},1)}),q.src=e):e&&M.load(e,_.get("data"),function(e,i){d===le&&h("error"===i?n(se,"Error").html(_.get("xhrError")):t(this).contents())})}var v,x,y,b,T,C,H,k,W,E,I,M,L,F,R,S,K,P,B,O,_,j,D,N,z,A,q,U,$,G,Q,J,V,X={html:!1,photo:!1,iframe:!1,inline:!1,transition:"elastic",speed:300,fadeOut:300,width:!1,initialWidth:"600",innerWidth:!1,maxWidth:!1,height:!1,initialHeight:"450",innerHeight:!1,maxHeight:!1,scalePhotos:!0,scrolling:!0,opacity:.9,preloading:!0,className:!1,overlayClose:!0,escKey:!0,arrowKey:!0,top:!1,bottom:!1,left:!1,right:!1,fixed:!1,data:void 0,closeButton:!0,fastIframe:!0,open:!1,reposition:!0,loop:!0,slideshow:!1,slideshowAuto:!0,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow",photoRegex:/\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\?).*)?$/i,retinaImage:!1,retinaUrl:!1,retinaSuffix:"@2x.$1",current:"image {current} of {total}",previous:"previous",next:"next",close:"close",xhrError:"This content failed to load.",imgError:"This image failed to load.",returnFocus:!0,trapFocus:!0,onOpen:!1,onLoad:!1,onComplete:!1,onCleanup:!1,onClosed:!1,rel:function(){return this.rel},href:function(){return t(this).attr("href")},title:function(){return this.title},createImg:function(){var e=new Image,i=t(this).data("cbox-img-attrs");return"object"==typeof i&&t.each(i,function(t,i){e[t]=i}),e},createIframe:function(){var i=e.createElement("iframe"),n=t(this).data("cbox-iframe-attrs");return"object"==typeof n&&t.each(n,function(t,e){i[t]=e}),"frameBorder"in i&&(i.frameBorder=0),"allowTransparency"in i&&(i.allowTransparency="true"),i.name=(new Date).getTime(),i.allowFullscreen=!0,i}},Y="colorbox",Z="cbox",te=Z+"Element",ee=Z+"_open",ie=Z+"_load",ne=Z+"_complete",oe=Z+"_cleanup",re=Z+"_closed",he=Z+"_purge",ae=t("<a/>"),se="div",le=0,de={},ce=function(){function t(){clearTimeout(h)}function e(){(_.get("loop")||W[A+1])&&(t(),h=setTimeout(J.next,_.get("slideshowSpeed")))}function i(){S.html(_.get("slideshowStop")).unbind(s).one(s,n),ae.bind(ne,e).bind(ie,t),x.removeClass(a+"off").addClass(a+"on")}function n(){t(),ae.unbind(ne,e).unbind(ie,t),S.html(_.get("slideshowStart")).unbind(s).one(s,function(){J.next(),i()}),x.removeClass(a+"on").addClass(a+"off")}function o(){r=!1,S.hide(),t(),ae.unbind(ne,e).unbind(ie,t),x.removeClass(a+"off "+a+"on")}var r,h,a=Z+"Slideshow_",s="click."+Z;return function(){r?_.get("slideshow")||(ae.unbind(oe,o),o()):_.get("slideshow")&&W[1]&&(r=!0,ae.one(oe,o),_.get("slideshowAuto")?i():n(),S.show())}}();t[Y]||(t(p),J=t.fn[Y]=t[Y]=function(e,i){var n,o=this;return e=e||{},t.isFunction(o)&&(o=t("<a/>"),e.open=!0),o[0]?(p(),m()&&(i&&(e.onComplete=i),o.each(function(){var i=t.data(this,Y)||{};t.data(this,Y,t.extend(i,e))}).addClass(te),n=new r(o[0],e),n.get("open")&&f(o[0])),o):o},J.position=function(e,i){function n(){T[0].style.width=k[0].style.width=b[0].style.width=parseInt(x[0].style.width,10)-D+"px",b[0].style.height=C[0].style.height=H[0].style.height=parseInt(x[0].style.height,10)-j+"px"}var r,h,s,l=0,d=0,c=x.offset();if(E.unbind("resize."+Z),x.css({top:-9e4,left:-9e4}),h=E.scrollTop(),s=E.scrollLeft(),_.get("fixed")?(c.top-=h,c.left-=s,x.css({position:"fixed"})):(l=h,d=s,x.css({position:"absolute"})),d+=_.get("right")!==!1?Math.max(E.width()-_.w-z-D-a(_.get("right"),"x"),0):_.get("left")!==!1?a(_.get("left"),"x"):Math.round(Math.max(E.width()-_.w-z-D,0)/2),l+=_.get("bottom")!==!1?Math.max(o()-_.h-N-j-a(_.get("bottom"),"y"),0):_.get("top")!==!1?a(_.get("top"),"y"):Math.round(Math.max(o()-_.h-N-j,0)/2),x.css({top:c.top,left:c.left,visibility:"visible"}),y[0].style.width=y[0].style.height="9999px",r={width:_.w+z+D,height:_.h+N+j,top:l,left:d},e){var g=0;t.each(r,function(t){return r[t]!==de[t]?(g=e,void 0):void 0}),e=g}de=r,e||x.css(r),x.dequeue().animate(r,{duration:e||0,complete:function(){n(),$=!1,y[0].style.width=_.w+z+D+"px",y[0].style.height=_.h+N+j+"px",_.get("reposition")&&setTimeout(function(){E.bind("resize."+Z,J.position)},1),t.isFunction(i)&&i()},step:n})},J.resize=function(t){var e;U&&(t=t||{},t.width&&(_.w=a(t.width,"x")-z-D),t.innerWidth&&(_.w=a(t.innerWidth,"x")),I.css({width:_.w}),t.height&&(_.h=a(t.height,"y")-N-j),t.innerHeight&&(_.h=a(t.innerHeight,"y")),t.innerHeight||t.height||(e=I.scrollTop(),I.css({height:"auto"}),_.h=I.height()),I.css({height:_.h}),e&&I.scrollTop(e),J.position("none"===_.get("transition")?0:_.get("speed")))},J.prep=function(i){function o(){return _.w=_.w||I.width(),_.w=_.mw&&_.mw<_.w?_.mw:_.w,_.w}function a(){return _.h=_.h||I.height(),_.h=_.mh&&_.mh<_.h?_.mh:_.h,_.h}if(U){var d,g="none"===_.get("transition")?0:_.get("speed");I.remove(),I=n(se,"LoadedContent").append(i),I.hide().appendTo(M.show()).css({width:o(),overflow:_.get("scrolling")?"auto":"hidden"}).css({height:a()}).prependTo(b),M.hide(),t(q).css({"float":"none"}),c(_.get("className")),d=function(){function i(){t.support.opacity===!1&&x[0].style.removeAttribute("filter")}var n,o,a=W.length;U&&(o=function(){clearTimeout(Q),L.hide(),u(ne),_.get("onComplete")},F.html(_.get("title")).show(),I.show(),a>1?("string"==typeof _.get("current")&&R.html(_.get("current").replace("{current}",A+1).replace("{total}",a)).show(),K[_.get("loop")||a-1>A?"show":"hide"]().html(_.get("next")),P[_.get("loop")||A?"show":"hide"]().html(_.get("previous")),ce(),_.get("preloading")&&t.each([h(-1),h(1)],function(){var i,n=W[this],o=new r(n,t.data(n,Y)),h=o.get("href");h&&s(o,h)&&(h=l(o,h),i=e.createElement("img"),i.src=h)})):O.hide(),_.get("iframe")?(n=_.get("createIframe"),_.get("scrolling")||(n.scrolling="no"),t(n).attr({src:_.get("href"),"class":Z+"Iframe"}).one("load",o).appendTo(I),ae.one(he,function(){n.src="//about:blank"}),_.get("fastIframe")&&t(n).trigger("load")):o(),"fade"===_.get("transition")?x.fadeTo(g,1,i):i())},"fade"===_.get("transition")?x.fadeTo(g,0,function(){J.position(0,d)}):J.position(g,d)}},J.next=function(){!$&&W[1]&&(_.get("loop")||W[A+1])&&(A=h(1),f(W[A]))},J.prev=function(){!$&&W[1]&&(_.get("loop")||A)&&(A=h(-1),f(W[A]))},J.close=function(){U&&!G&&(G=!0,U=!1,u(oe),_.get("onCleanup"),E.unbind("."+Z),v.fadeTo(_.get("fadeOut")||0,0),x.stop().fadeTo(_.get("fadeOut")||0,0,function(){x.hide(),v.hide(),u(he),I.remove(),setTimeout(function(){G=!1,u(re),_.get("onClosed")},1)}))},J.remove=function(){x&&(x.stop(),t[Y].close(),x.stop(!1,!0).remove(),v.remove(),G=!1,x=null,t("."+te).removeData(Y).removeClass(te),t(e).unbind("click."+Z).unbind("keydown."+Z))},J.element=function(){return t(_.el)},J.settings=X)})(jQuery,document,window);
1
  /*!
2
  Colorbox 1.6.4
3
  license: MIT
4
+ https://www.jacklmoore.com/colorbox
5
  */
6
  (function(t,e,i){function n(i,n,o){var r=e.createElement(i);return n&&(r.id=Z+n),o&&(r.style.cssText=o),t(r)}function o(){return i.innerHeight?i.innerHeight:t(i).height()}function r(e,i){i!==Object(i)&&(i={}),this.cache={},this.el=e,this.value=function(e){var n;return void 0===this.cache[e]&&(n=t(this.el).attr("data-cbox-"+e),void 0!==n?this.cache[e]=n:void 0!==i[e]?this.cache[e]=i[e]:void 0!==X[e]&&(this.cache[e]=X[e])),this.cache[e]},this.get=function(e){var i=this.value(e);return t.isFunction(i)?i.call(this.el,this):i}}function h(t){var e=W.length,i=(A+t)%e;return 0>i?e+i:i}function a(t,e){return Math.round((/%/.test(t)?("x"===e?E.width():o())/100:1)*parseInt(t,10))}function s(t,e){return t.get("photo")||t.get("photoRegex").test(e)}function l(t,e){return t.get("retinaUrl")&&i.devicePixelRatio>1?e.replace(t.get("photoRegex"),t.get("retinaSuffix")):e}function d(t){"contains"in x[0]&&!x[0].contains(t.target)&&t.target!==v[0]&&(t.stopPropagation(),x.focus())}function c(t){c.str!==t&&(x.add(v).removeClass(c.str).addClass(t),c.str=t)}function g(e){A=0,e&&e!==!1&&"nofollow"!==e?(W=t("."+te).filter(function(){var i=t.data(this,Y),n=new r(this,i);return n.get("rel")===e}),A=W.index(_.el),-1===A&&(W=W.add(_.el),A=W.length-1)):W=t(_.el)}function u(i){t(e).trigger(i),ae.triggerHandler(i)}function f(i){var o;if(!G){if(o=t(i).data(Y),_=new r(i,o),g(_.get("rel")),!U){U=$=!0,c(_.get("className")),x.css({visibility:"hidden",display:"block",opacity:""}),I=n(se,"LoadedContent","width:0; height:0; overflow:hidden; visibility:hidden"),b.css({width:"",height:""}).append(I),j=T.height()+k.height()+b.outerHeight(!0)-b.height(),D=C.width()+H.width()+b.outerWidth(!0)-b.width(),N=I.outerHeight(!0),z=I.outerWidth(!0);var h=a(_.get("initialWidth"),"x"),s=a(_.get("initialHeight"),"y"),l=_.get("maxWidth"),f=_.get("maxHeight");_.w=Math.max((l!==!1?Math.min(h,a(l,"x")):h)-z-D,0),_.h=Math.max((f!==!1?Math.min(s,a(f,"y")):s)-N-j,0),I.css({width:"",height:_.h}),J.position(),u(ee),_.get("onOpen"),O.add(F).hide(),x.focus(),_.get("trapFocus")&&e.addEventListener&&(e.addEventListener("focus",d,!0),ae.one(re,function(){e.removeEventListener("focus",d,!0)})),_.get("returnFocus")&&ae.one(re,function(){t(_.el).focus()})}var p=parseFloat(_.get("opacity"));v.css({opacity:p===p?p:"",cursor:_.get("overlayClose")?"pointer":"",visibility:"visible"}).show(),_.get("closeButton")?B.html(_.get("close")).appendTo(b):B.appendTo("<div/>"),w()}}function p(){x||(V=!1,E=t(i),x=n(se).attr({id:Y,"class":t.support.opacity===!1?Z+"IE":"",role:"dialog",tabindex:"-1"}).hide(),v=n(se,"Overlay").hide(),L=t([n(se,"LoadingOverlay")[0],n(se,"LoadingGraphic")[0]]),y=n(se,"Wrapper"),b=n(se,"Content").append(F=n(se,"Title"),R=n(se,"Current"),P=t('<button type="button"/>').attr({id:Z+"Previous"}),K=t('<button type="button"/>').attr({id:Z+"Next"}),S=t('<button type="button"/>').attr({id:Z+"Slideshow"}),L),B=t('<button type="button"/>').attr({id:Z+"Close"}),y.append(n(se).append(n(se,"TopLeft"),T=n(se,"TopCenter"),n(se,"TopRight")),n(se,!1,"clear:left").append(C=n(se,"MiddleLeft"),b,H=n(se,"MiddleRight")),n(se,!1,"clear:left").append(n(se,"BottomLeft"),k=n(se,"BottomCenter"),n(se,"BottomRight"))).find("div div").css({"float":"left"}),M=n(se,!1,"position:absolute; width:9999px; visibility:hidden; display:none; max-width:none;"),O=K.add(P).add(R).add(S)),e.body&&!x.parent().length&&t(e.body).append(v,x.append(y,M))}function m(){function i(t){t.which>1||t.shiftKey||t.altKey||t.metaKey||t.ctrlKey||(t.preventDefault(),f(this))}return x?(V||(V=!0,K.click(function(){J.next()}),P.click(function(){J.prev()}),B.click(function(){J.close()}),v.click(function(){_.get("overlayClose")&&J.close()}),t(e).bind("keydown."+Z,function(t){var e=t.keyCode;U&&_.get("escKey")&&27===e&&(t.preventDefault(),J.close()),U&&_.get("arrowKey")&&W[1]&&!t.altKey&&(37===e?(t.preventDefault(),P.click()):39===e&&(t.preventDefault(),K.click()))}),t.isFunction(t.fn.on)?t(e).on("click."+Z,"."+te,i):t("."+te).live("click."+Z,i)),!0):!1}function w(){var e,o,r,h=J.prep,d=++le;if($=!0,q=!1,u(he),u(ie),_.get("onLoad"),_.h=_.get("height")?a(_.get("height"),"y")-N-j:_.get("innerHeight")&&a(_.get("innerHeight"),"y"),_.w=_.get("width")?a(_.get("width"),"x")-z-D:_.get("innerWidth")&&a(_.get("innerWidth"),"x"),_.mw=_.w,_.mh=_.h,_.get("maxWidth")&&(_.mw=a(_.get("maxWidth"),"x")-z-D,_.mw=_.w&&_.w<_.mw?_.w:_.mw),_.get("maxHeight")&&(_.mh=a(_.get("maxHeight"),"y")-N-j,_.mh=_.h&&_.h<_.mh?_.h:_.mh),e=_.get("href"),Q=setTimeout(function(){L.show()},100),_.get("inline")){var c=t(e).eq(0);r=t("<div>").hide().insertBefore(c),ae.one(he,function(){r.replaceWith(c)}),h(c)}else _.get("iframe")?h(" "):_.get("html")?h(_.get("html")):s(_,e)?(e=l(_,e),q=_.get("createImg"),t(q).addClass(Z+"Photo").bind("error."+Z,function(){h(n(se,"Error").html(_.get("imgError")))}).one("load",function(){d===le&&setTimeout(function(){var e;_.get("retinaImage")&&i.devicePixelRatio>1&&(q.height=q.height/i.devicePixelRatio,q.width=q.width/i.devicePixelRatio),_.get("scalePhotos")&&(o=function(){q.height-=q.height*e,q.width-=q.width*e},_.mw&&q.width>_.mw&&(e=(q.width-_.mw)/q.width,o()),_.mh&&q.height>_.mh&&(e=(q.height-_.mh)/q.height,o())),_.h&&(q.style.marginTop=Math.max(_.mh-q.height,0)/2+"px"),W[1]&&(_.get("loop")||W[A+1])&&(q.style.cursor="pointer",t(q).bind("click."+Z,function(){J.next()})),q.style.width=q.width+"px",q.style.height=q.height+"px",h(q)},1)}),q.src=e):e&&M.load(e,_.get("data"),function(e,i){d===le&&h("error"===i?n(se,"Error").html(_.get("xhrError")):t(this).contents())})}var v,x,y,b,T,C,H,k,W,E,I,M,L,F,R,S,K,P,B,O,_,j,D,N,z,A,q,U,$,G,Q,J,V,X={html:!1,photo:!1,iframe:!1,inline:!1,transition:"elastic",speed:300,fadeOut:300,width:!1,initialWidth:"600",innerWidth:!1,maxWidth:!1,height:!1,initialHeight:"450",innerHeight:!1,maxHeight:!1,scalePhotos:!0,scrolling:!0,opacity:.9,preloading:!0,className:!1,overlayClose:!0,escKey:!0,arrowKey:!0,top:!1,bottom:!1,left:!1,right:!1,fixed:!1,data:void 0,closeButton:!0,fastIframe:!0,open:!1,reposition:!0,loop:!0,slideshow:!1,slideshowAuto:!0,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow",photoRegex:/\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\?).*)?$/i,retinaImage:!1,retinaUrl:!1,retinaSuffix:"@2x.$1",current:"image {current} of {total}",previous:"previous",next:"next",close:"close",xhrError:"This content failed to load.",imgError:"This image failed to load.",returnFocus:!0,trapFocus:!0,onOpen:!1,onLoad:!1,onComplete:!1,onCleanup:!1,onClosed:!1,rel:function(){return this.rel},href:function(){return t(this).attr("href")},title:function(){return this.title},createImg:function(){var e=new Image,i=t(this).data("cbox-img-attrs");return"object"==typeof i&&t.each(i,function(t,i){e[t]=i}),e},createIframe:function(){var i=e.createElement("iframe"),n=t(this).data("cbox-iframe-attrs");return"object"==typeof n&&t.each(n,function(t,e){i[t]=e}),"frameBorder"in i&&(i.frameBorder=0),"allowTransparency"in i&&(i.allowTransparency="true"),i.name=(new Date).getTime(),i.allowFullscreen=!0,i}},Y="colorbox",Z="cbox",te=Z+"Element",ee=Z+"_open",ie=Z+"_load",ne=Z+"_complete",oe=Z+"_cleanup",re=Z+"_closed",he=Z+"_purge",ae=t("<a/>"),se="div",le=0,de={},ce=function(){function t(){clearTimeout(h)}function e(){(_.get("loop")||W[A+1])&&(t(),h=setTimeout(J.next,_.get("slideshowSpeed")))}function i(){S.html(_.get("slideshowStop")).unbind(s).one(s,n),ae.bind(ne,e).bind(ie,t),x.removeClass(a+"off").addClass(a+"on")}function n(){t(),ae.unbind(ne,e).unbind(ie,t),S.html(_.get("slideshowStart")).unbind(s).one(s,function(){J.next(),i()}),x.removeClass(a+"on").addClass(a+"off")}function o(){r=!1,S.hide(),t(),ae.unbind(ne,e).unbind(ie,t),x.removeClass(a+"off "+a+"on")}var r,h,a=Z+"Slideshow_",s="click."+Z;return function(){r?_.get("slideshow")||(ae.unbind(oe,o),o()):_.get("slideshow")&&W[1]&&(r=!0,ae.one(oe,o),_.get("slideshowAuto")?i():n(),S.show())}}();t[Y]||(t(p),J=t.fn[Y]=t[Y]=function(e,i){var n,o=this;return e=e||{},t.isFunction(o)&&(o=t("<a/>"),e.open=!0),o[0]?(p(),m()&&(i&&(e.onComplete=i),o.each(function(){var i=t.data(this,Y)||{};t.data(this,Y,t.extend(i,e))}).addClass(te),n=new r(o[0],e),n.get("open")&&f(o[0])),o):o},J.position=function(e,i){function n(){T[0].style.width=k[0].style.width=b[0].style.width=parseInt(x[0].style.width,10)-D+"px",b[0].style.height=C[0].style.height=H[0].style.height=parseInt(x[0].style.height,10)-j+"px"}var r,h,s,l=0,d=0,c=x.offset();if(E.unbind("resize."+Z),x.css({top:-9e4,left:-9e4}),h=E.scrollTop(),s=E.scrollLeft(),_.get("fixed")?(c.top-=h,c.left-=s,x.css({position:"fixed"})):(l=h,d=s,x.css({position:"absolute"})),d+=_.get("right")!==!1?Math.max(E.width()-_.w-z-D-a(_.get("right"),"x"),0):_.get("left")!==!1?a(_.get("left"),"x"):Math.round(Math.max(E.width()-_.w-z-D,0)/2),l+=_.get("bottom")!==!1?Math.max(o()-_.h-N-j-a(_.get("bottom"),"y"),0):_.get("top")!==!1?a(_.get("top"),"y"):Math.round(Math.max(o()-_.h-N-j,0)/2),x.css({top:c.top,left:c.left,visibility:"visible"}),y[0].style.width=y[0].style.height="9999px",r={width:_.w+z+D,height:_.h+N+j,top:l,left:d},e){var g=0;t.each(r,function(t){return r[t]!==de[t]?(g=e,void 0):void 0}),e=g}de=r,e||x.css(r),x.dequeue().animate(r,{duration:e||0,complete:function(){n(),$=!1,y[0].style.width=_.w+z+D+"px",y[0].style.height=_.h+N+j+"px",_.get("reposition")&&setTimeout(function(){E.bind("resize."+Z,J.position)},1),t.isFunction(i)&&i()},step:n})},J.resize=function(t){var e;U&&(t=t||{},t.width&&(_.w=a(t.width,"x")-z-D),t.innerWidth&&(_.w=a(t.innerWidth,"x")),I.css({width:_.w}),t.height&&(_.h=a(t.height,"y")-N-j),t.innerHeight&&(_.h=a(t.innerHeight,"y")),t.innerHeight||t.height||(e=I.scrollTop(),I.css({height:"auto"}),_.h=I.height()),I.css({height:_.h}),e&&I.scrollTop(e),J.position("none"===_.get("transition")?0:_.get("speed")))},J.prep=function(i){function o(){return _.w=_.w||I.width(),_.w=_.mw&&_.mw<_.w?_.mw:_.w,_.w}function a(){return _.h=_.h||I.height(),_.h=_.mh&&_.mh<_.h?_.mh:_.h,_.h}if(U){var d,g="none"===_.get("transition")?0:_.get("speed");I.remove(),I=n(se,"LoadedContent").append(i),I.hide().appendTo(M.show()).css({width:o(),overflow:_.get("scrolling")?"auto":"hidden"}).css({height:a()}).prependTo(b),M.hide(),t(q).css({"float":"none"}),c(_.get("className")),d=function(){function i(){t.support.opacity===!1&&x[0].style.removeAttribute("filter")}var n,o,a=W.length;U&&(o=function(){clearTimeout(Q),L.hide(),u(ne),_.get("onComplete")},F.html(_.get("title")).show(),I.show(),a>1?("string"==typeof _.get("current")&&R.html(_.get("current").replace("{current}",A+1).replace("{total}",a)).show(),K[_.get("loop")||a-1>A?"show":"hide"]().html(_.get("next")),P[_.get("loop")||A?"show":"hide"]().html(_.get("previous")),ce(),_.get("preloading")&&t.each([h(-1),h(1)],function(){var i,n=W[this],o=new r(n,t.data(n,Y)),h=o.get("href");h&&s(o,h)&&(h=l(o,h),i=e.createElement("img"),i.src=h)})):O.hide(),_.get("iframe")?(n=_.get("createIframe"),_.get("scrolling")||(n.scrolling="no"),t(n).attr({src:_.get("href"),"class":Z+"Iframe"}).one("load",o).appendTo(I),ae.one(he,function(){n.src="//about:blank"}),_.get("fastIframe")&&t(n).trigger("load")):o(),"fade"===_.get("transition")?x.fadeTo(g,1,i):i())},"fade"===_.get("transition")?x.fadeTo(g,0,function(){J.position(0,d)}):J.position(g,d)}},J.next=function(){!$&&W[1]&&(_.get("loop")||W[A+1])&&(A=h(1),f(W[A]))},J.prev=function(){!$&&W[1]&&(_.get("loop")||A)&&(A=h(-1),f(W[A]))},J.close=function(){U&&!G&&(G=!0,U=!1,u(oe),_.get("onCleanup"),E.unbind("."+Z),v.fadeTo(_.get("fadeOut")||0,0),x.stop().fadeTo(_.get("fadeOut")||0,0,function(){x.hide(),v.hide(),u(he),I.remove(),setTimeout(function(){G=!1,u(re),_.get("onClosed")},1)}))},J.remove=function(){x&&(x.stop(),t[Y].close(),x.stop(!1,!0).remove(),v.remove(),G=!1,x=null,t("."+te).removeData(Y).removeClass(te),t(e).unbind("click."+Z).unbind("keydown."+Z))},J.element=function(){return t(_.el)},J.settings=X)})(jQuery,document,window);
js/select2.js CHANGED
@@ -1,2 +1 @@
1
- /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return u.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n=b&&b.split("/"),o=s.map,p=o&&o["*"]||{};if(a&&"."===a.charAt(0))if(b){for(n=n.slice(0,n.length-1),a=a.split("/"),g=a.length-1,s.nodeIdCompat&&w.test(a[g])&&(a[g]=a[g].replace(w,"")),a=n.concat(a),k=0;k<a.length;k+=1)if(m=a[k],"."===m)a.splice(k,1),k-=1;else if(".."===m){if(1===k&&(".."===a[2]||".."===a[0]))break;k>0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}else 0===a.indexOf("./")&&(a=a.substring(2));if((n||p)&&o){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),n)for(l=n.length;l>0;l-=1)if(e=o[n.slice(0,l).join("/")],e&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&p&&p[d]&&(i=p[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(a,c){return function(){return n.apply(b,v.call(arguments,0).concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){q[a]=b}}function j(a){if(e(r,a)){var c=r[a];delete r[a],t[a]=!0,m.apply(b,c)}if(!e(q,a)&&!e(t,a))throw new Error("No "+a);return q[a]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return function(){return s&&s.config&&s.config[a]||{}}}var m,n,o,p,q={},r={},s={},t={},u=Object.prototype.hasOwnProperty,v=[].slice,w=/\.js$/;o=function(a,b){var c,d=k(a),e=d[0];return a=d[1],e&&(e=f(e,b),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(b)):f(a,b):(a=f(a,b),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},p={require:function(a){return g(a)},exports:function(a){var b=q[a];return"undefined"!=typeof b?b:q[a]={}},module:function(a){return{id:a,uri:"",exports:q[a],config:l(a)}}},m=function(a,c,d,f){var h,k,l,m,n,s,u=[],v=typeof d;if(f=f||a,"undefined"===v||"function"===v){for(c=!c.length&&d.length?["require","exports","module"]:c,n=0;n<c.length;n+=1)if(m=o(c[n],f),k=m.f,"require"===k)u[n]=p.require(a);else if("exports"===k)u[n]=p.exports(a),s=!0;else if("module"===k)h=u[n]=p.module(a);else if(e(q,k)||e(r,k)||e(t,k))u[n]=j(k);else{if(!m.p)throw new Error(a+" missing "+k);m.p.load(m.n,g(f,!0),i(k),{}),u[n]=q[k]}l=d?d.apply(q[a],u):void 0,a&&(h&&h.exports!==b&&h.exports!==q[a]?q[a]=h.exports:l===b&&s||(q[a]=l))}else a&&(q[a]=d)},a=c=n=function(a,c,d,e,f){if("string"==typeof a)return p[a]?p[a](c):j(o(a,c).f);if(!a.splice){if(s=a,s.deps&&n(s.deps,s.callback),!c)return;c.splice?(a=c,c=d,d=null):a=b}return c=c||function(){},"function"==typeof d&&(d=e,e=f),e?m(b,a,c,d):setTimeout(function(){m(b,a,c,d)},4),n},n.config=function(a){return n(a)},a._defined=q,d=function(a,b,c){b.splice||(c=b,b=[]),e(q,a)||e(r,a)||(r[a]=[a,b,c])},d.amd={jQuery:!0}}(),b.requirejs=a,b.require=c,b.define=d}}(),b.define("almond",function(){}),b.define("jquery",[],function(){var b=a||$;return null==b&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),b}),b.define("select2/utils",["jquery"],function(a){function b(a){var b=a.prototype,c=[];for(var d in b){var e=b[d];"function"==typeof e&&"constructor"!==d&&c.push(d)}return c}var c={};c.Extend=function(a,b){function c(){this.constructor=a}var d={}.hasOwnProperty;for(var e in b)d.call(b,e)&&(a[e]=b[e]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},c.Decorate=function(a,c){function d(){var b=Array.prototype.unshift,d=c.prototype.constructor.length,e=a.prototype.constructor;d>0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;h<g.length;h++){var i=g[h];d.prototype[i]=a.prototype[i]}for(var j=(function(a){var b=function(){};a in d.prototype&&(b=d.prototype[a]);var e=c.prototype[a];return function(){var a=Array.prototype.unshift;return a.call(arguments,b),e.apply(this,arguments)}}),k=0;k<f.length;k++){var l=f[k];d.prototype[l]=j(l)}return d};var d=function(){this.listeners={}};return d.prototype.on=function(a,b){this.listeners=this.listeners||{},a in this.listeners?this.listeners[a].push(b):this.listeners[a]=[b]},d.prototype.trigger=function(a){var b=Array.prototype.slice;this.listeners=this.listeners||{},a in this.listeners&&this.invoke(this.listeners[a],b.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},d.prototype.invoke=function(a,b){for(var c=0,d=a.length;d>c;c++)a[c].apply(this,b)},c.Observable=d,c.generateChars=function(a){for(var b="",c=0;a>c;c++){var d=Math.floor(36*Math.random());b+=d.toString(36)}return b},c.bind=function(a,b){return function(){a.apply(b,arguments)}},c._convertData=function(a){for(var b in a){var c=b.split("-"),d=a;if(1!==c.length){for(var e=0;e<c.length;e++){var f=c[e];f=f.substring(0,1).toLowerCase()+f.substring(1),f in d||(d[f]={}),e==c.length-1&&(d[f]=a[b]),d=d[f]}delete a[b]}}return a},c.hasScroll=function(b,c){var d=a(c),e=c.style.overflowX,f=c.style.overflowY;return e!==f||"hidden"!==f&&"visible"!==f?"scroll"===e||"scroll"===f?!0:d.innerHeight()<c.scrollHeight||d.innerWidth()<c.scrollWidth:!1},c.escapeMarkup=function(a){var b={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return"string"!=typeof a?a:String(a).replace(/[&<>"'\/\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if("1.7"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c}),b.define("select2/results",["jquery","./utils"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<ul class="select2-results__options" role="tree"></ul>');return this.options.get("multiple")&&b.attr("aria-multiselectable","true"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var d=a('<li role="treeitem" class="select2-results__option"></li>'),e=this.options.get("translations").get(b.message);d.append(c(e(b.args))),this.$results.append(d)},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"}));a.results=this.sort(a.results);for(var c=0;c<a.results.length;c++){var d=a.results[c],e=this.option(d);b.push(e)}this.$results.append(b)},c.prototype.position=function(a,b){var c=b.find(".select2-results");c.append(a)},c.prototype.sort=function(a){var b=this.options.get("sorter");return b(a)},c.prototype.setClasses=function(){var b=this;this.data.current(function(c){var d=a.map(c,function(a){return a.id.toString()}),e=b.$results.find(".select2-results__option[aria-selected]");e.each(function(){var b=a(this),c=a.data(this,"data"),e=""+c.id;null!=c.element&&c.element.selected||null==c.element&&a.inArray(e,d)>-1?b.attr("aria-selected","true"):b.attr("aria-selected","false")});var f=e.filter("[aria-selected=true]");f.length>0?f.first().trigger("mouseenter"):e.first().trigger("mouseenter")})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get("translations").get("searching"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=" loading-results",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},c.prototype.option=function(b){var c=document.createElement("li");c.className="select2-results__option";var d={role:"treeitem","aria-selected":"false"};b.disabled&&(delete d["aria-selected"],d["aria-disabled"]="true"),null==b.id&&delete d["aria-selected"],null!=b._resultId&&(c.id=b._resultId),b.title&&(c.title=b.title),b.children&&(d.role="group",d["aria-label"]=b.text,delete d["aria-selected"]);for(var e in d){var f=d[e];c.setAttribute(e,f)}if(b.children){var g=a(c),h=document.createElement("strong");h.className="select2-results__group";{a(h)}this.template(b,h);for(var i=[],j=0;j<b.children.length;j++){var k=b.children[j],l=this.option(k);i.push(l)}var m=a("<ul></ul>",{"class":"select2-results__options select2-results__options--nested"});m.append(i),g.append(h),g.append(m)}else this.template(b,c);return a.data(c,"data",b),c},c.prototype.bind=function(b){var c=this,d=b.id+"-results";this.$results.attr("id",d),b.on("results:all",function(a){c.clear(),c.append(a.data),b.isOpen()&&c.setClasses()}),b.on("results:append",function(a){c.append(a.data),b.isOpen()&&c.setClasses()}),b.on("query",function(a){c.showLoading(a)}),b.on("select",function(){b.isOpen()&&c.setClasses()}),b.on("unselect",function(){b.isOpen()&&c.setClasses()}),b.on("open",function(){c.$results.attr("aria-expanded","true"),c.$results.attr("aria-hidden","false"),c.setClasses(),c.ensureHighlightVisible()}),b.on("close",function(){c.$results.attr("aria-expanded","false"),c.$results.attr("aria-hidden","true"),c.$results.removeAttr("aria-activedescendant")}),b.on("results:toggle",function(){var a=c.getHighlightedResults();0!==a.length&&a.trigger("mouseup")}),b.on("results:select",function(){var a=c.getHighlightedResults();if(0!==a.length){var b=a.data("data");"true"==a.attr("aria-selected")?c.trigger("close"):c.trigger("select",{data:b})}}),b.on("results:previous",function(){var a=c.getHighlightedResults(),b=c.$results.find("[aria-selected]"),d=b.index(a);if(0!==d){var e=d-1;0===a.length&&(e=0);var f=b.eq(e);f.trigger("mouseenter");var g=c.$results.offset().top,h=f.offset().top,i=c.$results.scrollTop()+(h-g);0===e?c.$results.scrollTop(0):0>h-g&&c.$results.scrollTop(i)}}),b.on("results:next",function(){var a=c.getHighlightedResults(),b=c.$results.find("[aria-selected]"),d=b.index(a),e=d+1;if(!(e>=b.length)){var f=b.eq(e);f.trigger("mouseenter");var g=c.$results.offset().top+c.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=c.$results.scrollTop()+h-g;0===e?c.$results.scrollTop(0):h>g&&c.$results.scrollTop(i)}}),b.on("results:focus",function(a){a.element.addClass("select2-results__option--highlighted")}),b.on("results:message",function(a){c.displayMessage(a)}),a.fn.mousewheel&&this.$results.on("mousewheel",function(a){var b=c.$results.scrollTop(),d=c.$results.get(0).scrollHeight-c.$results.scrollTop()+a.deltaY,e=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&d<=c.$results.height();e?(c.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(c.$results.scrollTop(c.$results.get(0).scrollHeight-c.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(b){var d=a(this),e=d.data("data");return"true"===d.attr("aria-selected")?void(c.options.get("multiple")?c.trigger("unselect",{originalEvent:b,data:e}):c.trigger("close")):void c.trigger("select",{originalEvent:b,data:e})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(){var b=a(this).data("data");c.getHighlightedResults().removeClass("select2-results__option--highlighted"),c.trigger("results:focus",{data:b,element:a(this)})})},c.prototype.getHighlightedResults=function(){var a=this.$results.find(".select2-results__option--highlighted");return a},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find("[aria-selected]"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),2>=c?this.$results.scrollTop(0):(g>this.$results.outerHeight()||0>g)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get("templateResult"),e=this.options.get("escapeMarkup"),f=d(b);null==f?c.style.display="none":"string"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define("select2/keys",[],function(){var a={BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46};return a}),b.define("select2/selection/base",["jquery","../utils","../keys"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var b=a('<span class="select2-selection" role="combobox" aria-autocomplete="list" aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=this.$element.data("old-tabindex")?this._tabindex=this.$element.data("old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),b.attr("title",this.$element.attr("title")),b.attr("tabindex",this._tabindex),this.$selection=b,b},d.prototype.bind=function(a){var b=this,d=(a.id+"-container",a.id+"-results");this.container=a,this.$selection.on("focus",function(a){b.trigger("focus",a)}),this.$selection.on("blur",function(a){b.trigger("blur",a)}),this.$selection.on("keydown",function(a){b.trigger("keypress",a),a.which===c.SPACE&&a.preventDefault()}),a.on("results:focus",function(a){b.$selection.attr("aria-activedescendant",a.data._resultId)}),a.on("selection:update",function(a){b.update(a.data)}),a.on("open",function(){b.$selection.attr("aria-expanded","true"),b.$selection.attr("aria-owns",d),b._attachCloseHandler(a)}),a.on("close",function(){b.$selection.attr("aria-expanded","false"),b.$selection.removeAttr("aria-activedescendant"),b.$selection.removeAttr("aria-owns"),b.$selection.focus(),b._detachCloseHandler(a)}),a.on("enable",function(){b.$selection.attr("tabindex",b._tabindex)}),a.on("disable",function(){b.$selection.attr("tabindex","-1")})},d.prototype._attachCloseHandler=function(b){a(document.body).on("mousedown.select2."+b.id,function(b){var c=a(b.target),d=c.closest(".select2"),e=a(".select2.select2-container--open");e.each(function(){var b=a(this);if(this!=d[0]){var c=b.data("element");c.select2("close")}})})},d.prototype._detachCloseHandler=function(b){a(document.body).off("mousedown.select2."+b.id)},d.prototype.position=function(a,b){var c=b.find(".selection");c.append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(){throw new Error("The `update` method must be defined in child classes.")},d}),b.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(a,b,c){function d(){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("select2-selection--single"),a.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),a},d.prototype.bind=function(a){var b=this;d.__super__.bind.apply(this,arguments);var c=a.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",c),this.$selection.attr("aria-labelledby",c),this.$selection.on("mousedown",function(a){1===a.which&&b.trigger("toggle",{originalEvent:a})}),this.$selection.on("focus",function(){}),this.$selection.on("blur",function(){}),a.on("selection:update",function(a){b.update(a.data)})},d.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},d.prototype.display=function(a){var b=this.options.get("templateSelection"),c=this.options.get("escapeMarkup");return c(b(a))},d.prototype.selectionContainer=function(){return a("<span></span>")},d.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.display(b),d=this.$selection.find(".select2-selection__rendered");d.empty().append(c),d.prop("title",b.title||b.text)},d}),b.define("select2/selection/multiple",["jquery","./base","../utils"],function(a,b,c){function d(){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("select2-selection--multiple"),a.html('<ul class="select2-selection__rendered"></ul>'),a},d.prototype.bind=function(){var b=this;d.__super__.bind.apply(this,arguments),this.$selection.on("click",function(a){b.trigger("toggle",{originalEvent:a})}),this.$selection.on("click",".select2-selection__choice__remove",function(c){var d=a(this),e=d.parent(),f=e.data("data");b.trigger("unselect",{originalEvent:c,data:f})})},d.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},d.prototype.display=function(a){var b=this.options.get("templateSelection"),c=this.options.get("escapeMarkup");return c(b(a))},d.prototype.selectionContainer=function(){var b=a('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">&times;</span></li>');return b},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d<a.length;d++){var e=a[d],f=this.display(e),g=this.selectionContainer();g.append(f),g.prop("title",e.title||e.text),g.data("data",e),b.push(g)}var h=this.$selection.find(".select2-selection__rendered");c.appendMany(h,b)}},d}),b.define("select2/selection/placeholder",["../utils"],function(){function a(a,b,c){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c)}return a.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},a.prototype.createPlaceholder=function(a,b){var c=this.selectionContainer();return c.html(this.display(b)),c.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),c},a.prototype.update=function(a,b){var c=1==b.length&&b[0].id!=this.placeholder.id,d=b.length>1;if(d||c)return a.call(this,b);this.clear();var e=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(e)},a}),b.define("select2/selection/allowClear",["jquery","../keys"],function(a,b){function c(){}return c.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(a){d._handleClear(a)}),b.on("keypress",function(a){d._handleKeyboardClear(a,b)})},c.prototype._handleClear=function(a,b){if(!this.options.get("disabled")){var c=this.$selection.find(".select2-selection__clear");if(0!==c.length){b.stopPropagation();for(var d=c.data("data"),e=0;e<d.length;e++){var f={data:d[e]};if(this.trigger("unselect",f),f.prevented)return}this.$element.val(this.placeholder.id).trigger("change"),this.trigger("toggle")}}},c.prototype._handleKeyboardClear=function(a,c,d){d.isOpen()||(c.which==b.DELETE||c.which==b.BACKSPACE)&&this._handleClear(c)},c.prototype.update=function(b,c){if(b.call(this,c),!(this.$selection.find(".select2-selection__placeholder").length>0||0===c.length)){var d=a('<span class="select2-selection__clear">&times;</span>');d.data("data",c),this.$selection.find(".select2-selection__rendered").prepend(d)}},c}),b.define("select2/selection/search",["jquery","../utils","../keys"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" /></li>');this.$searchContainer=c,this.$search=c.find("input");var d=b.call(this);return d},d.prototype.bind=function(a,b,d){var e=this;a.call(this,b,d),b.on("open",function(){e.$search.attr("tabindex",0),e.$search.focus()}),b.on("close",function(){e.$search.attr("tabindex",-1),e.$search.val(""),e.$search.focus()}),b.on("enable",function(){e.$search.prop("disabled",!1)}),b.on("disable",function(){e.$search.prop("disabled",!0)}),this.$selection.on("focusin",".select2-search--inline",function(a){e.trigger("focus",a)}),this.$selection.on("focusout",".select2-search--inline",function(a){e.trigger("blur",a)}),this.$selection.on("keydown",".select2-search--inline",function(a){a.stopPropagation(),e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented();var b=a.which;if(b===c.BACKSPACE&&""===e.$search.val()){var d=e.$searchContainer.prev(".select2-selection__choice");if(d.length>0){var f=d.data("data");e.searchRemoveChoice(f),a.preventDefault()}}}),this.$selection.on("input",".select2-search--inline",function(){e.$selection.off("keyup.search")}),this.$selection.on("keyup.search input",".select2-search--inline",function(a){e.handleSearch(a)})},d.prototype.createPlaceholder=function(a,b){this.$search.attr("placeholder",b.text)},d.prototype.update=function(a,b){this.$search.attr("placeholder",""),a.call(this,b),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch()},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger("unselect",{data:b}),this.trigger("open"),this.$search.val(b.text+" ")},d.prototype.resizeSearch=function(){this.$search.css("width","25px");var a="";if(""!==this.$search.attr("placeholder"))a=this.$selection.find(".select2-selection__rendered").innerWidth();else{var b=this.$search.val().length+1;a=.75*b+"em"}this.$search.css("width",a)},d}),b.define("select2/selection/eventRelay",["jquery"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=["open","opening","close","closing","select","selecting","unselect","unselecting"],g=["opening","closing","selecting","unselecting"];b.call(this,c,d),c.on("*",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event("select2:"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define("select2/translation",["jquery","require"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define("select2/diacritics",[],function(){var a={"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"};return a}),b.define("select2/data/base",["../utils"],function(a){function b(){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(){throw new Error("The `current` method must be defined in child classes.")},b.prototype.query=function(){throw new Error("The `query` method must be defined in child classes.")},b.prototype.bind=function(){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+"-result-";return d+=a.generateChars(4),d+=null!=c.id?"-"+c.id.toString():"-"+a.generateChars(4)},b}),b.define("select2/data/select",["./base","../utils","jquery"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(":selected").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is("option"))return a.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f<a.length;f++){var g=a[f].id;-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")});else{var d=a.id;this.$element.val(d),this.$element.trigger("change")}},d.prototype.unselect=function(a){var b=this;if(this.$element.prop("multiple"))return a.selected=!1,c(a.element).is("option")?(a.element.selected=!1,void this.$element.trigger("change")):void this.current(function(d){for(var e=[],f=0;f<d.length;f++){var g=d[f].id;g!==a.id&&-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")})},d.prototype.bind=function(a){var b=this;this.container=a,a.on("select",function(a){b.select(a.data)}),a.on("unselect",function(a){b.unselect(a.data)})},d.prototype.destroy=function(){this.$element.find("*").each(function(){c.removeData(this,"data")})},d.prototype.query=function(a,b){var d=[],e=this,f=this.$element.children();f.each(function(){var b=c(this);if(b.is("option")||b.is("optgroup")){var f=e.item(b),g=e.matches(a,f);null!==g&&d.push(g)}}),b({results:d})},d.prototype.addOptions=function(a){b.appendMany(this.$element,a)},d.prototype.option=function(a){var b;a.children?(b=document.createElement("optgroup"),b.label=a.text):(b=document.createElement("option"),void 0!==b.textContent?b.textContent=a.text:b.innerText=a.text),a.id&&(b.value=a.id),a.disabled&&(b.disabled=!0),a.selected&&(b.selected=!0),a.title&&(b.title=a.title);var d=c(b),e=this._normalizeItem(a);return e.element=b,c.data(b,"data",e),d},d.prototype.item=function(a){var b={};
2
- if(b=c.data(a[0],"data"),null!=b)return b;if(a.is("option"))b={id:a.val(),text:a.text(),disabled:a.prop("disabled"),selected:a.prop("selected"),title:a.prop("title")};else if(a.is("optgroup")){b={text:a.prop("label"),children:[],title:a.prop("title")};for(var d=a.children("option"),e=[],f=0;f<d.length;f++){var g=c(d[f]),h=this.item(g);e.push(h)}b.children=e}return b=this._normalizeItem(b),b.element=a[0],c.data(a[0],"data",b),b},d.prototype._normalizeItem=function(a){c.isPlainObject(a)||(a={id:a,text:a}),a=c.extend({},{text:""},a);var b={selected:!1,disabled:!1};return null!=a.id&&(a.id=a.id.toString()),null!=a.text&&(a.text=a.text.toString()),null==a._resultId&&a.id&&null!=this.container&&(a._resultId=this.generateResultId(this.container,a)),c.extend({},b,a)},d.prototype.matches=function(a,b){var c=this.options.get("matcher");return c(a,b)},d}),b.define("select2/data/array",["./select","../utils","jquery"],function(a,b,c){function d(a,b){var c=b.get("data")||[];d.__super__.constructor.call(this,a,b),this.addOptions(this.convertToOptions(c))}return b.Extend(d,a),d.prototype.select=function(a){var b=this.$element.find("option").filter(function(b,c){return c.value==a.id.toString()});0===b.length&&(b=this.option(a),this.addOptions(b)),d.__super__.select.call(this,a)},d.prototype.convertToOptions=function(a){function d(a){return function(){return c(this).val()==a.id}}for(var e=this,f=this.$element.find("option"),g=f.map(function(){return e.item(c(this)).id}).get(),h=[],i=0;i<a.length;i++){var j=this._normalizeItem(a[i]);if(c.inArray(j.id,g)>=0){var k=f.filter(d(j)),l=this.item(k),m=(c.extend(!0,{},l,j),this.option(l));k.replaceWith(m)}else{var n=this.option(j);if(j.children){var o=this.convertToOptions(j.children);b.appendMany(n,o)}h.push(n)}}return h},d}),b.define("select2/data/ajax",["./array","../utils","jquery"],function(a,b,c){function d(b,c){this.ajaxOptions=this._applyDefaults(c.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),a.__super__.constructor.call(this,b,c)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return{q:a.term}},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get("debug")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),b(f)},function(){});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:"GET"},this.ajaxOptions);"function"==typeof f.url&&(f.url=f.url(a)),"function"==typeof f.data&&(f.data=f.data(a)),this.ajaxOptions.delay&&""!==a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define("select2/data/tags",["jquery"],function(a){function b(b,c,d){var e=d.get("tags"),f=d.get("createTag");if(void 0!==f&&(this.createTag=f),b.call(this,c,d),a.isArray(e))for(var g=0;g<e.length;g++){var h=e[g],i=this._normalizeItem(h),j=this.option(i);this.$element.append(j)}}return b.prototype.query=function(a,b,c){function d(a,f){for(var g=a.results,h=0;h<g.length;h++){var i=g[h],j=null!=i.children&&!d({results:i.children},!0),k=i.text===b.term;if(k||j)return f?!1:(a.data=g,void c(a))}if(f)return!0;var l=e.createTag(b);if(null!=l){var m=e.option(l);m.attr("data-select2-tag",!0),e.addOptions([m]),e.insertTag(g,l)}a.results=g,c(a)}var e=this;return this._removeOldTags(),null==b.term||null!=b.page?void a.call(this,b,c):void a.call(this,b,d)},b.prototype.createTag=function(b,c){var d=a.trim(c.term);return""===d?null:{id:d,text:d}},b.prototype.insertTag=function(a,b,c){b.unshift(c)},b.prototype._removeOldTags=function(){var b=(this._lastTag,this.$element.find("option[data-select2-tag]"));b.each(function(){this.selected||a(this).remove()})},b}),b.define("select2/data/tokenizer",["jquery"],function(a){function b(a,b,c){var d=c.get("tokenizer");void 0!==d&&(this.tokenizer=d),a.call(this,b,c)}return b.prototype.bind=function(a,b,c){a.call(this,b,c),this.$search=b.dropdown.$search||b.selection.$search||c.find(".select2-search__field")},b.prototype.query=function(a,b,c){function d(a){e.select(a)}var e=this;b.term=b.term||"";var f=this.tokenizer(b,this.options,d);f.term!==b.term&&(this.$search.length&&(this.$search.val(f.term),this.$search.focus()),b.term=f.term),a.call(this,b,c)},b.prototype.tokenizer=function(b,c,d,e){for(var f=d.get("tokenSeparators")||[],g=c.term,h=0,i=this.createTag||function(a){return{id:a.term,text:a.term}};h<g.length;){var j=g[h];if(-1!==a.inArray(j,f)){var k=g.substr(0,h),l=a.extend({},c,{term:k}),m=i(l);e(m),g=g.substr(h+1)||"",h=0}else h++}return{term:g}},b}),b.define("select2/data/minimumInputLength",[],function(){function a(a,b,c){this.minimumInputLength=c.get("minimumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){return b.term=b.term||"",b.term.length<this.minimumInputLength?void this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define("select2/data/maximumInputLength",[],function(){function a(a,b,c){this.maximumInputLength=c.get("maximumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){return b.term=b.term||"",this.maximumInputLength>0&&b.term.length>this.maximumInputLength?void this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define("select2/data/maximumSelectionLength",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get("maximumSelectionLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;return d.maximumSelectionLength>0&&f>=d.maximumSelectionLength?void d.trigger("results:message",{message:"maximumSelected",args:{maximum:d.maximumSelectionLength}}):void a.call(d,b,c)})},a}),b.define("select2/dropdown",["jquery","./utils"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<span class="select2-dropdown"><span class="select2-results"></span></span>');return b.attr("dir",this.options.get("dir")),this.$dropdown=b,b},c.prototype.position=function(){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define("select2/dropdown/search",["jquery","../utils"],function(a){function b(){}return b.prototype.render=function(b){var c=b.call(this),d=a('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" /></span>');return this.$searchContainer=d,this.$search=d.find("input"),c.prepend(d),c},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on("keydown",function(a){e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on("input",function(){a(this).off("keyup")}),this.$search.on("keyup input",function(a){e.handleSearch(a)}),c.on("open",function(){e.$search.attr("tabindex",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on("close",function(){e.$search.attr("tabindex",-1),e.$search.val("")}),c.on("results:all",function(a){if(null==a.query.term||""===a.query.term){var b=e.showSearch(a);b?e.$searchContainer.removeClass("select2-search--hide"):e.$searchContainer.addClass("select2-search--hide")}})},b.prototype.handleSearch=function(){if(!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},b.prototype.showSearch=function(){return!0},b}),b.define("select2/dropdown/hidePlaceholder",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define("select2/dropdown/infiniteScroll",["jquery"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on("query",function(a){e.lastParams=a,e.loading=!0}),c.on("query:append",function(a){e.lastParams=a,e.loading=!0}),this.$results.on("scroll",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){var c=e.$results.offset().top+e.$results.outerHeight(!1),d=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1);c+50>=d&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger("query:append",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('<li class="option load-more" role="treeitem"></li>'),c=this.options.get("translations").get("loadingMore");return b.html(c(this.lastParams)),b},b}),b.define("select2/dropdown/attachBody",["jquery","../utils"],function(a,b){function c(a,b,c){this.$dropdownParent=c.get("dropdownParent")||document.body,a.call(this,b,c)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on("open",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on("results:all",function(){d._positionDropdown(),d._resizeDropdown()}),b.on("results:append",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on("close",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on("mousedown",function(a){a.stopPropagation()})},c.prototype.position=function(a,b,c){b.attr("class",c.attr("class")),b.removeClass("select2"),b.addClass("select2-container--open"),b.css({position:"absolute",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a("<span></span>"),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c){var d=this,e="scroll.select2."+c.id,f="resize.select2."+c.id,g="orientationchange.select2."+c.id,h=this.$container.parents().filter(b.hasScroll);h.each(function(){a(this).data("select2-scroll-position",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),h.on(e,function(){var b=a(this).data("select2-scroll-position");a(this).scrollTop(b.y)}),a(window).on(e+" "+f+" "+g,function(){d._positionDropdown(),d._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c){var d="scroll.select2."+c.id,e="resize.select2."+c.id,f="orientationchange.select2."+c.id,g=this.$container.parents().filter(b.hasScroll);g.off(d),a(window).off(d+" "+e+" "+f)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass("select2-dropdown--above"),d=this.$dropdown.hasClass("select2-dropdown--below"),e=null,f=(this.$container.position(),this.$container.offset());f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.top<f.top-h.height,k=i.bottom>f.bottom+h.height,l={left:f.left,top:g.bottom};c||d||(e="below"),k||!j||c?!j&&k&&c&&(e="below"):e="above",("above"==e||c&&"below"!==e)&&(l.top=g.top-h.height),null!=e&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+e),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){this.$dropdownContainer.width();var a={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(a.minWidth=a.width,a.width="auto"),this.$dropdown.css(a)},c.prototype._showDropdown=function(){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define("select2/dropdown/minimumResultsForSearch",[],function(){function a(b){for(var c=0,d=0;d<b.length;d++){var e=b[d];e.children?c+=a(e.children):c++}return c}function b(a,b,c,d){this.minimumResultsForSearch=c.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),a.call(this,b,c,d)}return b.prototype.showSearch=function(b,c){return a(c.data.results)<this.minimumResultsForSearch?!1:b.call(this,c)},b}),b.define("select2/dropdown/selectOnClose",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("close",function(){d._handleSelectOnClose()})},a.prototype._handleSelectOnClose=function(){var a=this.getHighlightedResults();a.length<1||this.trigger("select",{data:a.data("data")})},a}),b.define("select2/dropdown/closeOnSelect",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("select",function(a){d._selectTriggered(a)}),b.on("unselect",function(a){d._selectTriggered(a)})},a.prototype._selectTriggered=function(a,b){var c=b.originalEvent;c&&c.ctrlKey||this.trigger("close")},a}),b.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(a){var b=a.input.length-a.maximum,c="Please delete "+b+" character";return 1!=b&&(c+="s"),c},inputTooShort:function(a){var b=a.minimum-a.input.length,c="Please enter "+b+" or more characters";return c},loadingMore:function(){return"Loading more results…"},maximumSelected:function(a){var b="You can only select "+a.maximum+" item";return 1!=a.maximum&&(b+="s"),b},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),b.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C){function D(){this.reset()}D.prototype.apply=function(l){if(l=a.extend({},this.defaults,l),null==l.dataAdapter){if(l.dataAdapter=null!=l.ajax?o:null!=l.data?n:m,l.minimumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),(null!=l.tokenSeparators||null!=l.tokenizer)&&(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+"compat/query");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+"compat/initSelection");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+"compat/dropdownCss");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.selectionAdapter=l.multiple?e:d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+"compat/containerCss");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if("string"==typeof l.language)if(l.language.indexOf("-")>0){var H=l.language.split("-"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push("en");for(var K=l.language,L=0;L<K.length;L++){var M=K[L],N={};try{N=k.loadPath(M)}catch(O){try{M=this.defaults.amdLanguageBase+M,N=k.loadPath(M)}catch(P){l.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+M+'" could not be automatically loaded. A fallback will be used instead.');continue}}J.extend(N)}l.translations=J}else{var Q=k.loadPath(this.defaults.amdLanguageBase+"en"),R=new k(l.language);R.extend(Q),l.translations=R}return l},D.prototype.reset=function(){function b(a){function b(a){return l[a]||a}return a.replace(/[^\u0000-\u007E]/g,b)}function c(d,e){if(""===a.trim(d.term))return e;if(e.children&&e.children.length>0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){var h=e.children[g],i=c(d,h);null==i&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var j=b(e.text).toUpperCase(),k=b(d.term).toUpperCase();return j.indexOf(k)>-1?e:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:"default",width:"resolve"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(this.defaults,f)};var E=new D;return E}),b.define("select2/options",["require","jquery","./defaults","./utils"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is("input")){var f=a(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=["select2"];null==this.options.multiple&&(this.options.multiple=a.prop("multiple")),null==this.options.disabled&&(this.options.disabled=a.prop("disabled")),null==this.options.language&&(a.prop("lang")?this.options.language=a.prop("lang").toLowerCase():a.closest("[lang]").prop("lang")&&(this.options.language=a.closest("[lang]").prop("lang"))),null==this.options.dir&&(this.options.dir=a.prop("dir")?a.prop("dir"):a.closest("[dir]").prop("dir")?a.closest("[dir]").prop("dir"):"ltr"),a.prop("disabled",this.options.disabled),a.prop("multiple",this.options.multiple),a.data("select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),a.data("data",a.data("select2Tags")),a.data("tags",!0)),a.data("ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),a.attr("ajax--url",a.data("ajaxUrl")),a.data("ajax--url",a.data("ajaxUrl")));var e={};e=b.fn.jquery&&"1."==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,a.data()):a.data();var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define("select2/core",["jquery","./options","./utils","./keys"],function(a,b,c,d){var e=function(a,c){null!=a.data("select2")&&a.data("select2").destroy(),this.$element=a,this.id=this._generateId(a),c=c||{},this.options=new b(c,a),e.__super__.constructor.call(this);var d=a.attr("tabindex")||0;a.data("old-tabindex",d),a.attr("tabindex","-1");var f=this.options.get("dataAdapter");this.dataAdapter=new f(a,this.options);var g=this.render();this._placeContainer(g);var h=this.options.get("selectionAdapter");this.selection=new h(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,g);var i=this.options.get("dropdownAdapter");this.dropdown=new i(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,g);var j=this.options.get("resultsAdapter");this.results=new j(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var k=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){k.trigger("selection:update",{data:a})}),a.addClass("select2-hidden-accessible"),a.attr("aria-hidden","true"),this._syncAttributes(),a.data("select2",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b="";return b=null!=a.attr("id")?a.attr("id"):null!=a.attr("name")?a.attr("name")+"-"+c.generateChars(2):c.generateChars(4),b="select2-"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get("width"));null!=b&&a.css("width",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==b){var d=this._resolveWidth(a,"style");return null!=d?d:this._resolveWidth(a,"element")}if("element"==b){var e=a.outerWidth(!1);return 0>=e?"auto":e+"px"}if("style"==b){var f=a.attr("style");if("string"!=typeof f)return null;for(var g=f.split(";"),h=0,i=g.length;i>h;h+=1){var j=g[h].replace(/\s/g,""),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on("change.select2",function(){b.dataAdapter.current(function(a){b.trigger("selection:update",{data:a})})}),this._sync=c.bind(this._syncAttributes,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._sync);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._sync)}),this._observer.observe(this.$element[0],{attributes:!0,subtree:!1})):this.$element[0].addEventListener&&this.$element[0].addEventListener("DOMAttrModified",b._sync,!1)},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=["toggle"];this.selection.on("toggle",function(){b.toggleDropdown()}),this.selection.on("*",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on("open",function(){a.$container.addClass("select2-container--open")}),this.on("close",function(){a.$container.removeClass("select2-container--open")}),this.on("enable",function(){a.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){a.$container.addClass("select2-container--disabled")}),this.on("focus",function(){a.$container.addClass("select2-container--focus")}),this.on("blur",function(){a.$container.removeClass("select2-container--focus")}),this.on("query",function(b){a.isOpen()||a.trigger("open"),this.dataAdapter.query(b,function(c){a.trigger("results:all",{data:c,query:b})})}),this.on("query:append",function(b){this.dataAdapter.query(b,function(c){a.trigger("results:append",{data:c,query:b})})}),this.on("keypress",function(b){var c=b.which;a.isOpen()?c===d.ENTER?(a.trigger("results:select"),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger("results:toggle"),b.preventDefault()):c===d.UP?(a.trigger("results:previous"),b.preventDefault()):c===d.DOWN?(a.trigger("results:next"),b.preventDefault()):(c===d.ESC||c===d.TAB)&&(a.close(),b.preventDefault()):(c===d.ENTER||c===d.SPACE||(c===d.DOWN||c===d.UP)&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable")):this.trigger("enable")},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:"opening",close:"closing",select:"selecting",unselect:"unselecting"};if(a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||(this.trigger("query",{}),this.trigger("open"))},e.prototype.close=function(){this.isOpen()&&this.trigger("close")},e.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},e.prototype.enable=function(a){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),(null==a||0===a.length)&&(a=[!0]);var b=!a[0];this.$element.prop("disabled",b)},e.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger("change")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._sync),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&this.$element[0].removeEventListener("DOMAttrModified",this._sync,!1),this._sync=null,this.$element.off(".select2"),this.$element.attr("tabindex",this.$element.data("old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},e.prototype.render=function(){var b=a('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return b.attr("dir",this.options.get("dir")),this.$container=b,this.$container.addClass("select2-container--"+this.options.get("theme")),b.data("element",this.$element),b},e}),b.define("jquery.select2",["jquery","require","./select2/core","./select2/defaults"],function(a,b,c,d){if(b("jquery.mousewheel"),null==a.fn.select2){var e=["open","close","destroy"];a.fn.select2=function(b){if(b=b||{},"object"==typeof b)return this.each(function(){{var d=a.extend({},b,!0);new c(a(this),d)}}),this;if("string"==typeof b){var d=this.data("select2");null==d&&window.console&&console.error&&console.error("The select2('"+b+"') method was called on an element that is not using Select2.");var f=Array.prototype.slice.call(arguments,1),g=d[b](f);return a.inArray(b,e)>-1?this:g}throw new Error("Invalid arguments for Select2: "+b)}}return null==a.fn.select2.defaults&&(a.fn.select2.defaults=d),c}),b.define("jquery.mousewheel",["jquery"],function(a){return a}),{define:b.define,require:b.require}}(),c=b.require("jquery.select2");return a.fn.select2.amd=b,c});
1
+ /*! Select2 1.0.1 | https://github.com/select2/select2/blob/master/LICENSE.md */!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=function(b,c){return void 0===c&&(c="undefined"!=typeof window?require("jquery"):require("jquery")(b)),a(c),c}:a(jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return v.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o=b&&b.split("/"),p=t.map,q=p&&p["*"]||{};if(a){for(a=a.split("/"),g=a.length-1,t.nodeIdCompat&&x.test(a[g])&&(a[g]=a[g].replace(x,"")),"."===a[0].charAt(0)&&o&&(n=o.slice(0,o.length-1),a=n.concat(a)),k=0;k<a.length;k++)if("."===(m=a[k]))a.splice(k,1),k-=1;else if(".."===m){if(0===k||1===k&&".."===a[2]||".."===a[k-1])continue;k>0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}if((o||q)&&p){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),o)for(l=o.length;l>0;l-=1)if((e=p[o.slice(0,l).join("/")])&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&q&&q[d]&&(i=q[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(a,c){return function(){var d=w.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),o.apply(b,d.concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){r[a]=b}}function j(a){if(e(s,a)){var c=s[a];delete s[a],u[a]=!0,n.apply(b,c)}if(!e(r,a)&&!e(u,a))throw new Error("No "+a);return r[a]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return a?k(a):[]}function m(a){return function(){return t&&t.config&&t.config[a]||{}}}var n,o,p,q,r={},s={},t={},u={},v=Object.prototype.hasOwnProperty,w=[].slice,x=/\.js$/;p=function(a,b){var c,d=k(a),e=d[0],g=b[1];return a=d[1],e&&(e=f(e,g),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(g)):f(a,g):(a=f(a,g),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},q={require:function(a){return g(a)},exports:function(a){var b=r[a];return void 0!==b?b:r[a]={}},module:function(a){return{id:a,uri:"",exports:r[a],config:m(a)}}},n=function(a,c,d,f){var h,k,m,n,o,t,v,w=[],x=typeof d;if(f=f||a,t=l(f),"undefined"===x||"function"===x){for(c=!c.length&&d.length?["require","exports","module"]:c,o=0;o<c.length;o+=1)if(n=p(c[o],t),"require"===(k=n.f))w[o]=q.require(a);else if("exports"===k)w[o]=q.exports(a),v=!0;else if("module"===k)h=w[o]=q.module(a);else if(e(r,k)||e(s,k)||e(u,k))w[o]=j(k);else{if(!n.p)throw new Error(a+" missing "+k);n.p.load(n.n,g(f,!0),i(k),{}),w[o]=r[k]}m=d?d.apply(r[a],w):void 0,a&&(h&&h.exports!==b&&h.exports!==r[a]?r[a]=h.exports:m===b&&v||(r[a]=m))}else a&&(r[a]=d)},a=c=o=function(a,c,d,e,f){if("string"==typeof a)return q[a]?q[a](c):j(p(a,l(c)).f);if(!a.splice){if(t=a,t.deps&&o(t.deps,t.callback),!c)return;c.splice?(a=c,c=d,d=null):a=b}return c=c||function(){},"function"==typeof d&&(d=e,e=f),e?n(b,a,c,d):setTimeout(function(){n(b,a,c,d)},4),o},o.config=function(a){return o(a)},a._defined=r,d=function(a,b,c){if("string"!=typeof a)throw new Error("See almond README: incorrect module build, no module name");b.splice||(c=b,b=[]),e(r,a)||e(s,a)||(s[a]=[a,b,c])},d.amd={jQuery:!0}}(),b.requirejs=a,b.require=c,b.define=d}}(),b.define("almond",function(){}),b.define("jquery",[],function(){var b=a||$;return null==b&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),b}),b.define("select2/utils",["jquery"],function(a){function b(a){var b=a.prototype,c=[];for(var d in b){"function"==typeof b[d]&&("constructor"!==d&&c.push(d))}return c}var c={};c.Extend=function(a,b){function c(){this.constructor=a}var d={}.hasOwnProperty;for(var e in b)d.call(b,e)&&(a[e]=b[e]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},c.Decorate=function(a,c){function d(){var b=Array.prototype.unshift,d=c.prototype.constructor.length,e=a.prototype.constructor;d>0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;h<g.length;h++){var i=g[h];d.prototype[i]=a.prototype[i]}for(var j=(function(a){var b=function(){};a in d.prototype&&(b=d.prototype[a]);var e=c.prototype[a];return function(){return Array.prototype.unshift.call(arguments,b),e.apply(this,arguments)}}),k=0;k<f.length;k++){var l=f[k];d.prototype[l]=j(l)}return d};var d=function(){this.listeners={}};return d.prototype.on=function(a,b){this.listeners=this.listeners||{},a in this.listeners?this.listeners[a].push(b):this.listeners[a]=[b]},d.prototype.trigger=function(a){var b=Array.prototype.slice,c=b.call(arguments,1);this.listeners=this.listeners||{},null==c&&(c=[]),0===c.length&&c.push({}),c[0]._type=a,a in this.listeners&&this.invoke(this.listeners[a],b.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},d.prototype.invoke=function(a,b){for(var c=0,d=a.length;c<d;c++)a[c].apply(this,b)},c.Observable=d,c.generateChars=function(a){for(var b="",c=0;c<a;c++){b+=Math.floor(36*Math.random()).toString(36)}return b},c.bind=function(a,b){return function(){a.apply(b,arguments)}},c._convertData=function(a){for(var b in a){var c=b.split("-"),d=a;if(1!==c.length){for(var e=0;e<c.length;e++){var f=c[e];f=f.substring(0,1).toLowerCase()+f.substring(1),f in d||(d[f]={}),e==c.length-1&&(d[f]=a[b]),d=d[f]}delete a[b]}}return a},c.hasScroll=function(b,c){var d=a(c),e=c.style.overflowX,f=c.style.overflowY;return(e!==f||"hidden"!==f&&"visible"!==f)&&("scroll"===e||"scroll"===f||(d.innerHeight()<c.scrollHeight||d.innerWidth()<c.scrollWidth))},c.escapeMarkup=function(a){var b={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return"string"!=typeof a?a:String(a).replace(/[&<>"'\/\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if("1.7"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c.isTouchscreen=function(){return void 0===c._isTouchscreenCache&&(c._isTouchscreenCache="ontouchstart"in document.documentElement),c._isTouchscreenCache},c}),b.define("select2/results",["jquery","./utils"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<ul class="select2-results__options" role="listbox" tabindex="-1"></ul>');return this.options.get("multiple")&&b.attr("aria-multiselectable","true"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var d=a('<li role="alert" aria-live="assertive" class="select2-results__option"></li>'),e=this.options.get("translations").get(b.message);d.append(c(e(b.args))),d[0].className+=" select2-results__message",this.$results.append(d)},c.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"}));a.results=this.sort(a.results);for(var c=0;c<a.results.length;c++){var d=a.results[c],e=this.option(d);b.push(e)}this.$results.append(b)},c.prototype.position=function(a,b){b.find(".select2-results").append(a)},c.prototype.sort=function(a){return this.options.get("sorter")(a)},c.prototype.highlightFirstItem=function(){var a=this.$results.find(".select2-results__option[data-selected]"),b=a.filter("[data-selected=true]");b.length>0?b.first().trigger("mouseenter"):a.first().trigger("mouseenter"),this.ensureHighlightVisible()},c.prototype.setClasses=function(){var b=this;this.data.current(function(c){var d=a.map(c,function(a){return a.id.toString()});b.$results.find(".select2-results__option[data-selected]").each(function(){var b=a(this),c=a.data(this,"data"),e=""+c.id;null!=c.element&&c.element.selected||null==c.element&&a.inArray(e,d)>-1?b.attr("data-selected","true"):b.attr("data-selected","false")})})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get("translations").get("searching"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=" loading-results",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},c.prototype.option=function(b){var c=document.createElement("li");c.className="select2-results__option";var d={role:"option","data-selected":"false",tabindex:-1};b.disabled&&(delete d["data-selected"],d["aria-disabled"]="true"),null==b.id&&delete d["data-selected"],null!=b._resultId&&(c.id=b._resultId),b.title&&(c.title=b.title),b.children&&(d["aria-label"]=b.text,delete d["data-selected"]);for(var e in d){var f=d[e];c.setAttribute(e,f)}if(b.children){var g=a(c),h=document.createElement("strong");h.className="select2-results__group";var i=a(h);this.template(b,h),i.attr("role","presentation");for(var j=[],k=0;k<b.children.length;k++){var l=b.children[k],m=this.option(l);j.push(m)}var n=a("<ul></ul>",{class:"select2-results__options select2-results__options--nested",role:"listbox"});n.append(j),g.attr("role","list"),g.append(h),g.append(n)}else this.template(b,c);return a.data(c,"data",b),c},c.prototype.bind=function(b,c){var d=this,e=b.id+"-results";this.$results.attr("id",e),b.on("results:all",function(a){d.clear(),d.append(a.data),b.isOpen()&&(d.setClasses(),d.highlightFirstItem())}),b.on("results:append",function(a){d.append(a.data),b.isOpen()&&d.setClasses()}),b.on("query",function(a){d.hideMessages(),d.showLoading(a)}),b.on("select",function(){b.isOpen()&&(d.setClasses(),d.highlightFirstItem())}),b.on("unselect",function(){b.isOpen()&&(d.setClasses(),d.highlightFirstItem())}),b.on("open",function(){d.$results.attr("aria-expanded","true"),d.$results.attr("aria-hidden","false"),d.setClasses(),d.ensureHighlightVisible()}),b.on("close",function(){d.$results.attr("aria-expanded","false"),d.$results.attr("aria-hidden","true"),d.$results.removeAttr("aria-activedescendant")}),b.on("results:toggle",function(){var a=d.getHighlightedResults();0!==a.length&&a.trigger("mouseup")}),b.on("results:select",function(){var a=d.getHighlightedResults();if(0!==a.length){var b=a.data("data");"true"==a.attr("data-selected")?d.trigger("close",{}):d.trigger("select",{data:b})}}),b.on("results:previous",function(){var a=d.getHighlightedResults(),b=d.$results.find("[data-selected]"),c=b.index(a);if(0!==c){var e=c-1;0===a.length&&(e=0);var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top,h=f.offset().top,i=d.$results.scrollTop()+(h-g);0===e?d.$results.scrollTop(0):h-g<0&&d.$results.scrollTop(i)}}),b.on("results:next",function(){var a=d.getHighlightedResults(),b=d.$results.find("[data-selected]"),c=b.index(a),e=c+1;if(!(e>=b.length)){var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top+d.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=d.$results.scrollTop()+h-g;0===e?d.$results.scrollTop(0):h>g&&d.$results.scrollTop(i)}}),b.on("results:focus",function(a){a.element.addClass("select2-results__option--highlighted").attr("aria-selected","true"),d.$results.attr("aria-activedescendant",a.element.attr("id"))}),b.on("results:message",function(a){d.displayMessage(a)}),a.fn.mousewheel&&this.$results.on("mousewheel",function(a){var b=d.$results.scrollTop(),c=d.$results.get(0).scrollHeight-b+a.deltaY,e=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&c<=d.$results.height();e?(d.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(d.$results.scrollTop(d.$results.get(0).scrollHeight-d.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[data-selected]",function(b){var c=a(this),e=c.data("data");if("true"===c.attr("data-selected"))return void(d.options.get("multiple")?d.trigger("unselect",{originalEvent:b,data:e}):d.trigger("close",{}));d.trigger("select",{originalEvent:b,data:e})}),this.$results.on("mouseenter",".select2-results__option[data-selected]",function(b){var c=a(this).data("data");d.getHighlightedResults().removeClass("select2-results__option--highlighted").attr("aria-selected","false"),d.trigger("results:focus",{data:c,element:a(this)})})},c.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find("[data-selected]"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),c<=2?this.$results.scrollTop(0):(g>this.$results.outerHeight()||g<0)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get("templateResult"),e=this.options.get("escapeMarkup"),f=d(b,c);null==f?c.style.display="none":"string"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),b.define("select2/selection/base",["jquery","../utils","../keys"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var b=a('<span class="select2-selection" aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=this.$element.data("old-tabindex")?this._tabindex=this.$element.data("old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),b.attr("title",this.$element.attr("title")),b.attr("tabindex",this._tabindex),this.$selection=b,b},d.prototype.bind=function(a,b){var d=this,e=(a.id,a.id+"-results");this.options.get("minimumResultsForSearch");this.container=a,this.$selection.on("focus",function(a){d.trigger("focus",a)}),this.$selection.on("blur",function(a){d._handleBlur(a)}),this.$selection.on("keydown",function(a){d.trigger("keypress",a),a.which===c.SPACE&&a.preventDefault()}),a.on("results:focus",function(a){d.$selection.attr("aria-activedescendant",a.data._resultId)}),a.on("selection:update",function(a){d.update(a.data)}),a.on("open",function(){d.$selection.attr("aria-expanded","true"),d.$selection.attr("aria-owns",e),d._attachCloseHandler(a)}),a.on("close",function(){d.$selection.attr("aria-expanded","false"),d.$selection.removeAttr("aria-activedescendant"),d.$selection.removeAttr("aria-owns"),window.setTimeout(function(){d.$selection.focus()},1),d._detachCloseHandler(a)}),a.on("enable",function(){d.$selection.attr("tabindex",d._tabindex)}),a.on("disable",function(){d.$selection.attr("tabindex","-1")})},d.prototype._handleBlur=function(b){var c=this;window.setTimeout(function(){document.activeElement==c.$selection[0]||a.contains(c.$selection[0],document.activeElement)||c.trigger("blur",b)},1)},d.prototype._attachCloseHandler=function(b){a(document.body).on("mousedown.select2."+b.id,function(b){var c=a(b.target),d=c.closest(".select2");a(".select2.select2-container--open").each(function(){var b=a(this);this!=d[0]&&(b.data("element").select2("close"),setTimeout(function(){b.find("*:focus").blur(),c.focus()},1))})})},d.prototype._detachCloseHandler=function(b){a(document.body).off("mousedown.select2."+b.id)},d.prototype.position=function(a,b){b.find(".selection").append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(a){throw new Error("The `update` method must be defined in child classes.")},d}),b.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(a,b,c,d){function e(){e.__super__.constructor.apply(this,arguments)}return c.Extend(e,b),e.prototype.render=function(){var a=e.__super__.render.call(this);return a.addClass("select2-selection--single"),a.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),a},e.prototype.bind=function(a,b){var c=this;e.__super__.bind.apply(this,arguments);var d=a.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",d).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",d),this.$selection.attr("role","combobox"),this.$selection.on("mousedown",function(a){1===a.which&&c.trigger("toggle",{originalEvent:a})}),this.$selection.on("focus",function(a){}),this.$selection.on("keydown",function(b){!a.isOpen()&&b.which>=48&&b.which<=90&&a.open()}),this.$selection.on("blur",function(a){}),a.on("focus",function(b){a.isOpen()||c.$selection.focus()}),a.on("selection:update",function(a){c.update(a.data)})},e.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},e.prototype.display=function(a,b){var c=this.options.get("templateSelection");return this.options.get("escapeMarkup")(c(a,b))},e.prototype.selectionContainer=function(){return a("<span></span>")},e.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.$selection.find(".select2-selection__rendered"),d=this.display(b,c);c.empty().append(d),c.prop("title",b.title||b.text)},e}),b.define("select2/selection/multiple",["jquery","./base","../utils"],function(a,b,c){function d(a,b){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("select2-selection--multiple"),a.html('<ul class="select2-selection__rendered" aria-live="polite" aria-relevant="additions removals" aria-atomic="true"></ul>'),a},d.prototype.bind=function(b,c){var e=this;d.__super__.bind.apply(this,arguments),this.$selection.on("click",function(a){e.trigger("toggle",{originalEvent:a})}),this.$selection.on("click",".select2-selection__choice__remove",function(b){if(!e.options.get("disabled")){var c=a(this),d=c.parent(),f=d.data("data");e.trigger("unselect",{originalEvent:b,data:f})}}),this.$selection.on("keydown",function(a){!b.isOpen()&&a.which>=48&&a.which<=90&&b.open()}),b.on("focus",function(){e.focusOnSearch()})},d.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},d.prototype.display=function(a,b){var c=this.options.get("templateSelection");return this.options.get("escapeMarkup")(c(a,b))},d.prototype.selectionContainer=function(){return a('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation" aria-hidden="true">&times;</span></li>')},d.prototype.focusOnSearch=function(){var a=this;void 0!==a.$search&&setTimeout(function(){a._keyUpPrevented=!0,a.$search.focus()},1)},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d<a.length;d++){var e=a[d],f=this.selectionContainer(),g=this.display(e,f).trim();f.append(g),f.prop("title",e.title||e.text),f.data("data",e),b.push(f)}var h=this.$selection.find(".select2-selection__rendered");c.appendMany(h,b)}},d}),b.define("select2/selection/placeholder",["../utils"],function(a){function b(a,b,c){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c)}return b.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},b.prototype.createPlaceholder=function(a,b){var c=this.selectionContainer();return c.html(this.display(b)),c.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),c},b.prototype.update=function(a,b){var c=1==b.length&&b[0].id!=this.placeholder.id;if(b.length>1||c)return a.call(this,b);this.clear();var d=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(d)},b}),b.define("select2/selection/allowClear",["jquery","../keys"],function(a,b){function c(){}return c.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(a){d._handleClear(a)}),b.on("keypress",function(a){d._handleKeyboardClear(a,b)})},c.prototype._handleClear=function(a,b){if(!this.options.get("disabled")){var c=this.$selection.find(".select2-selection__clear");if(0!==c.length){b.stopPropagation();for(var d=c.data("data"),e=0;e<d.length;e++){var f={data:d[e]};if(this.trigger("unselect",f),f.prevented)return}this.$element.val(this.placeholder.id).trigger("change"),this.trigger("toggle",{})}}},c.prototype._handleKeyboardClear=function(a,c,d){d.isOpen()||c.which!=b.DELETE&&c.which!=b.BACKSPACE||this._handleClear(c)},c.prototype.update=function(b,c){if(b.call(this,c),!(this.$selection.find(".select2-selection__placeholder").length>0||0===c.length)){var d=a('<span class="select2-selection__clear">&times;</span>');d.data("data",c),this.$selection.find(".select2-selection__rendered").prepend(d)}},c}),b.define("select2/selection/search",["jquery","../utils","../keys"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="text" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');this.$searchContainer=c,this.$search=c.find("input");var d=b.call(this);return this._transferTabIndex(),d},d.prototype.bind=function(a,b,d){var e=this,f=b.id+"-results";a.call(this,b,d),b.on("open",function(){e.$search.attr("aria-owns",f),e.$search.trigger("focus")}),b.on("close",function(){e.$search.val(""),e.$search.removeAttr("aria-activedescendant"),e.$search.removeAttr("aria-owns"),e.$search.trigger("focus")}),b.on("enable",function(){e.$search.prop("disabled",!1),e._transferTabIndex()}),b.on("disable",function(){e.$search.prop("disabled",!0)}),b.on("focus",function(a){e.$search.trigger("focus")}),b.on("results:focus",function(a){e.$search.attr("aria-activedescendant",a.data._resultId)}),this.$selection.on("focusin",".select2-search--inline",function(a){e.trigger("focus",a)}),this.$selection.on("focusout",".select2-search--inline",function(a){e._handleBlur(a)}),this.$selection.on("keydown",".select2-search--inline",function(a){if(a.stopPropagation(),e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented(),a.which===c.BACKSPACE&&""===e.$search.val()){var d=e.$searchContainer.prev(".select2-selection__choice");if(d.length>0){var f=d.data("data");e.searchRemoveChoice(f),a.preventDefault()}}else a.which===c.ENTER&&(b.open(),a.preventDefault())});var g=document.documentMode,h=g&&g<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(a){if(h)return void e.$selection.off("input.search input.searchcheck");e.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(a){if(h&&"input"===a.type)return void e.$selection.off("input.search input.searchcheck");var b=a.which;b!=c.SHIFT&&b!=c.CTRL&&b!=c.ALT&&b!=c.TAB&&e.handleSearch(a)})},d.prototype._transferTabIndex=function(a){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},d.prototype.createPlaceholder=function(a,b){this.$search.attr("placeholder",b.text)},d.prototype.update=function(a,b){var c=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),a.call(this,b),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),c&&this.$search.focus()},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger("unselect",{data:b}),this.$search.val(b.text),this.handleSearch()},d.prototype.resizeSearch=function(){this.$search.css("width","25px");var a="";if(""!==this.$search.attr("placeholder"))a=this.$selection.find(".select2-selection__rendered").innerWidth();else{a=.75*(this.$search.val().length+1)+"em"}this.$search.css("width",a)},d}),b.define("select2/selection/eventRelay",["jquery"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=["open","opening","close","closing","select","selecting","unselect","unselecting"],g=["opening","closing","selecting","unselecting"];b.call(this,c,d),c.on("*",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event("select2:"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define("select2/translation",["jquery","require"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"}}),b.define("select2/data/base",["../utils"],function(a){function b(a,c){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(a){throw new Error("The `current` method must be defined in child classes.")},b.prototype.query=function(a,b){throw new Error("The `query` method must be defined in child classes.")},b.prototype.bind=function(a,b){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d="";return d+=null!=b?b.id:a.generateChars(4),d+="-result-",d+=a.generateChars(4),null!=c.id?d+="-"+c.id.toString():d+="-"+a.generateChars(4),d},b}),b.define("select2/data/select",["./base","../utils","jquery"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(":selected").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is("option"))return a.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f<a.length;f++){var g=a[f].id;-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")});else{var d=a.id;this.$element.val(d),this.$element.trigger("change")}},d.prototype.unselect=function(a){var b=this;if(this.$element.prop("multiple")){if(a.selected=!1,c(a.element).is("option"))return a.element.selected=!1,void this.$element.trigger("change");this.current(function(d){for(var e=[],f=0;f<d.length;f++){var g=d[f].id;g!==a.id&&-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")})}},d.prototype.bind=function(a,b){var c=this;this.container=a,a.on("select",function(a){c.select(a.data)}),a.on("unselect",function(a){c.unselect(a.data)})},d.prototype.destroy=function(){this.$element.find("*").each(function(){c.removeData(this,"data")})},d.prototype.query=function(a,b){var d=[],e=this;this.$element.children().each(function(){var b=c(this);if(b.is("option")||b.is("optgroup")){var f=e.item(b),g=e.matches(a,f);null!==g&&d.push(g)}}),b({results:d})},d.prototype.addOptions=function(a){b.appendMany(this.$element,a)},d.prototype.option=function(a){var b;a.children?(b=document.createElement("optgroup"),b.label=a.text):(b=document.createElement("option"),void 0!==b.textContent?b.textContent=a.text:b.innerText=a.text),void 0!==a.id&&(b.value=a.id),a.disabled&&(b.disabled=!0),a.selected&&(b.selected=!0),a.title&&(b.title=a.title);var d=c(b),e=this._normalizeItem(a);return e.element=b,c.data(b,"data",e),d},d.prototype.item=function(a){var b={};if(null!=(b=c.data(a[0],"data")))return b;if(a.is("option"))b={id:a.val(),text:a.text(),disabled:a.prop("disabled"),selected:a.prop("selected"),title:a.prop("title")};else if(a.is("optgroup")){b={text:a.prop("label"),children:[],title:a.prop("title")};for(var d=a.children("option"),e=[],f=0;f<d.length;f++){var g=c(d[f]),h=this.item(g);e.push(h)}b.children=e}return b=this._normalizeItem(b),b.element=a[0],c.data(a[0],"data",b),b},d.prototype._normalizeItem=function(a){c.isPlainObject(a)||(a={id:a,text:a}),a=c.extend({},{text:""},a);var b={selected:!1,disabled:!1};return null!=a.id&&(a.id=a.id.toString()),null!=a.text&&(a.text=a.text.toString()),null==a._resultId&&a.id&&(a._resultId=this.generateResultId(this.container,a)),c.extend({},b,a)},d.prototype.matches=function(a,b){return this.options.get("matcher")(a,b)},d}),b.define("select2/data/array",["./select","../utils","jquery"],function(a,b,c){function d(a,b){var c=b.get("data")||[];d.__super__.constructor.call(this,a,b),this.addOptions(this.convertToOptions(c))}return b.Extend(d,a),d.prototype.select=function(a){var b=this.$element.find("option").filter(function(b,c){return c.value==a.id.toString()});0===b.length&&(b=this.option(a),this.addOptions(b)),d.__super__.select.call(this,a)},d.prototype.convertToOptions=function(a){function d(a){return function(){return c(this).val()==a.id}}for(var e=this,f=this.$element.find("option"),g=f.map(function(){return e.item(c(this)).id}).get(),h=[],i=0;i<a.length;i++){var j=this._normalizeItem(a[i]);if(c.inArray(j.id,g)>=0){var k=f.filter(d(j)),l=this.item(k),m=c.extend(!0,{},j,l),n=this.option(m);k.replaceWith(n)}else{var o=this.option(j);if(j.children){var p=this.convertToOptions(j.children);b.appendMany(o,p)}h.push(o)}}return h},d}),b.define("select2/data/ajax",["./array","../utils","jquery"],function(a,b,c){function d(a,b){this.ajaxOptions=this._applyDefaults(b.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),d.__super__.constructor.call(this,a,b)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return c.extend({},a,{q:a.term})},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get("debug")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),b(f),e.container.focusOnActiveElement()},function(){d.status&&"0"===d.status||e.trigger("results:message",{message:"errorLoading"})});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:"GET"},this.ajaxOptions);"function"==typeof f.url&&(f.url=f.url.call(this.$element,a)),"function"==typeof f.data&&(f.data=f.data.call(this.$element,a)),this.ajaxOptions.delay&&null!=a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define("select2/data/tags",["jquery"],function(a){function b(b,c,d){var e=d.get("tags"),f=d.get("createTag");void 0!==f&&(this.createTag=f);var g=d.get("insertTag");if(void 0!==g&&(this.insertTag=g),b.call(this,c,d),a.isArray(e))for(var h=0;h<e.length;h++){var i=e[h],j=this._normalizeItem(i),k=this.option(j);this.$element.append(k)}}return b.prototype.query=function(a,b,c){function d(a,f){for(var g=a.results,h=0;h<g.length;h++){var i=g[h],j=null!=i.children&&!d({results:i.children},!0);if((i.text||"").toUpperCase()===(b.term||"").toUpperCase()||j)return!f&&(a.data=g,void c(a))}if(f)return!0;var k=e.createTag(b);if(null!=k){var l=e.option(k);l.attr("data-select2-tag",!0),e.addOptions([l]),e.insertTag(g,k)}a.results=g,c(a)}var e=this;if(this._removeOldTags(),null==b.term||null!=b.page)return void a.call(this,b,c);a.call(this,b,d)},b.prototype.createTag=function(b,c){var d=a.trim(c.term);return""===d?null:{id:d,text:d}},b.prototype.insertTag=function(a,b,c){b.unshift(c)},b.prototype._removeOldTags=function(b){this._lastTag;this.$element.find("option[data-select2-tag]").each(function(){this.selected||a(this).remove()})},b}),b.define("select2/data/tokenizer",["jquery"],function(a){function b(a,b,c){var d=c.get("tokenizer");void 0!==d&&(this.tokenizer=d),a.call(this,b,c)}return b.prototype.bind=function(a,b,c){a.call(this,b,c),this.$search=b.dropdown.$search||b.selection.$search||c.find(".select2-search__field")},b.prototype.query=function(b,c,d){function e(b){var c=g._normalizeItem(b);if(!g.$element.find("option").filter(function(){return a(this).val()===c.id}).length){var d=g.option(c);d.attr("data-select2-tag",!0),g._removeOldTags(),g.addOptions([d])}f(c)}function f(a){g.trigger("select",{data:a})}var g=this;c.term=c.term||"";var h=this.tokenizer(c,this.options,e);h.term!==c.term&&(this.$search.length&&(this.$search.val(h.term),this.$search.focus()),c.term=h.term),b.call(this,c,d)},b.prototype.tokenizer=function(b,c,d,e){for(var f=d.get("tokenSeparators")||[],g=c.term,h=0,i=this.createTag||function(a){return{id:a.term,text:a.term}};h<g.length;){var j=g[h];if(-1!==a.inArray(j,f)){var k=g.substr(0,h),l=a.extend({},c,{term:k}),m=i(l);null!=m?(e(m),g=g.substr(h+1)||"",h=0):h++}else h++}return{term:g}},b}),b.define("select2/data/minimumInputLength",[],function(){function a(a,b,c){this.minimumInputLength=c.get("minimumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){if(b.term=b.term||"",b.term.length<this.minimumInputLength)return void this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:b.term,params:b}});a.call(this,b,c)},a}),b.define("select2/data/maximumInputLength",[],function(){function a(a,b,c){this.maximumInputLength=c.get("maximumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){if(b.term=b.term||"",this.maximumInputLength>0&&b.term.length>this.maximumInputLength)return void this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:b.term,params:b}});a.call(this,b,c)},a}),b.define("select2/data/maximumSelectionLength",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get("maximumSelectionLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;if(d.maximumSelectionLength>0&&f>=d.maximumSelectionLength)return void d.trigger("results:message",{message:"maximumSelected",args:{maximum:d.maximumSelectionLength}});a.call(d,b,c)})},a}),b.define("select2/dropdown",["jquery","./utils"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<span class="select2-dropdown"><span class="select2-results"></span></span>');return b.attr("dir",this.options.get("dir")),this.$dropdown=b,b},c.prototype.bind=function(){},c.prototype.position=function(a,b){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define("select2/dropdown/search",["jquery","../utils"],function(a,b){function c(){}return c.prototype.render=function(b){var c=b.call(this),d=a('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="text" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="combobox" aria-autocomplete="list" aria-expanded="true" /></span>');return this.$searchContainer=d,this.$search=d.find("input"),c.prepend(d),c},c.prototype.bind=function(b,c,d){var e=this,f=c.id+"-results";b.call(this,c,d),this.$search.on("keydown",function(a){e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on("input",function(b){a(this).off("keyup")}),this.$search.on("keyup input",function(a){e.handleSearch(a)}),c.on("open",function(){e.$search.attr("tabindex",0),e.$search.attr("aria-owns",f),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on("close",function(){e.$search.attr("tabindex",-1),e.$search.removeAttr("aria-activedescendant"),e.$search.removeAttr("aria-owns"),e.$search.val("")}),c.on("focus",function(){c.isOpen()&&e.$search.focus()}),c.on("results:all",function(a){if(null==a.query.term||""===a.query.term){e.showSearch(a)?e.$searchContainer.removeClass("select2-search--hide"):e.$searchContainer.addClass("select2-search--hide")}}),c.on("results:focus",function(a){e.$search.attr("aria-activedescendant",a.data._resultId)})},c.prototype.handleSearch=function(a){if(!this._keyUpPrevented){var b=this.$search.val();this.trigger("query",{term:b})}this._keyUpPrevented=!1},c.prototype.showSearch=function(a,b){return!0},c}),b.define("select2/dropdown/hidePlaceholder",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define("select2/dropdown/infiniteScroll",["jquery"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on("query",function(a){e.lastParams=a,e.loading=!0}),c.on("query:append",function(a){e.lastParams=a,e.loading=!0}),this.$results.on("scroll",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){e.$results.offset().top+e.$results.outerHeight(!1)+50>=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1)&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger("query:append",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('<li class="select2-results__option select2-results__option--load-more"role="option" aria-disabled="true"></li>'),c=this.options.get("translations").get("loadingMore");return b.html(c(this.lastParams)),b},b}),b.define("select2/dropdown/attachBody",["jquery","../utils"],function(a,b){function c(b,c,d){this.$dropdownParent=d.get("dropdownParent")||a(document.body),b.call(this,c,d)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on("open",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on("results:all",function(){d._positionDropdown(),d._resizeDropdown()}),b.on("results:append",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on("close",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on("mousedown",function(a){a.stopPropagation()})},c.prototype.destroy=function(a){a.call(this),this.$dropdownContainer.remove()},c.prototype.position=function(a,b,c){b.attr("class",c.attr("class")),b.removeClass("select2"),b.addClass("select2-container--open"),b.css({position:"absolute",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a("<span></span>"),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(a){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c,d){var e=this,f="scroll.select2."+d.id,g="resize.select2."+d.id,h="orientationchange.select2."+d.id,i=this.$container.parents().filter(b.hasScroll);i.each(function(){a(this).data("select2-scroll-position",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),i.on(f,function(b){var c=a(this).data("select2-scroll-position");a(this).scrollTop(c.y)}),a(window).on(f+" "+g+" "+h,function(a){e._positionDropdown(),e._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c,d){var e="scroll.select2."+d.id,f="resize.select2."+d.id,g="orientationchange.select2."+d.id;this.$container.parents().filter(b.hasScroll).off(e),a(window).off(e+" "+f+" "+g)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass("select2-dropdown--above"),d=this.$dropdown.hasClass("select2-dropdown--below"),e=null,f=this.$container.offset();f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.top<f.top-h.height,k=i.bottom>f.bottom+h.height,l={left:f.left,top:g.bottom},m=this.$dropdownParent;"static"===m.css("position")&&(m=m.offsetParent());var n=m.offset();l.top-=n.top,l.left-=n.left,c||d||(e="below"),k||!j||c?!j&&k&&c&&(e="below"):e="above",("above"==e||c&&"below"!==e)&&(l.top=g.top-n.top-h.height),null!=e&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+e),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){var a={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(a.minWidth=a.width,a.position="relative",a.width="auto"),this.$dropdown.css(a)},c.prototype._showDropdown=function(a){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define("select2/dropdown/minimumResultsForSearch",[],function(){function a(b){for(var c=0,d=0;d<b.length;d++){var e=b[d];e.children?c+=a(e.children):c++}return c}function b(a,b,c,d){this.minimumResultsForSearch=c.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),a.call(this,b,c,d)}return b.prototype.showSearch=function(b,c){return!(a(c.data.results)<this.minimumResultsForSearch)&&b.call(this,c)},b}),b.define("select2/dropdown/selectOnClose",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("close",function(a){d._handleSelectOnClose(a)})},a.prototype._handleSelectOnClose=function(a,b){if(b&&null!=b.originalSelect2Event){var c=b.originalSelect2Event;if("select"===c._type||"unselect"===c._type)return}var d=this.getHighlightedResults();if(!(d.length<1)){var e=d.data("data");null!=e.element&&e.element.selected||null==e.element&&e.selected||this.trigger("select",{data:e})}},a}),b.define("select2/dropdown/closeOnSelect",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("select",function(a){d._selectTriggered(a)}),b.on("unselect",function(a){d._selectTriggered(a)})},a.prototype._selectTriggered=function(a,b){var c=b.originalEvent;c&&c.ctrlKey||this.trigger("close",{originalEvent:c,originalSelect2Event:b})},a}),b.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(a){var b=a.input.length-a.maximum,c="Please delete "+b+" character";return 1!=b&&(c+="s"),c},inputTooShort:function(a){return"Please enter "+(a.minimum-a.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(a){var b="You can only select "+a.maximum+" item";return 1!=a.maximum&&(b+="s"),b},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),b.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C){function D(){this.reset()}return D.prototype.apply=function(l){if(l=a.extend(!0,{},this.defaults,l),null==l.dataAdapter){if(null!=l.ajax?l.dataAdapter=o:null!=l.data?l.dataAdapter=n:l.dataAdapter=m,l.minimumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),null==l.tokenSeparators&&null==l.tokenizer||(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+"compat/query");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+"compat/initSelection");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+"compat/dropdownCss");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.multiple?l.selectionAdapter=e:l.selectionAdapter=d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+"compat/containerCss");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if("string"==typeof l.language)if(l.language.indexOf("-")>0){var H=l.language.split("-"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push("en");for(var K=l.language,L=0;L<K.length;L++){var M=K[L],N={};try{N=k.loadPath(M)}catch(a){try{M=this.defaults.amdLanguageBase+M,N=k.loadPath(M)}catch(a){l.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+M+'" could not be automatically loaded. A fallback will be used instead.');continue}}J.extend(N)}l.translations=J}else{var O=k.loadPath(this.defaults.amdLanguageBase+"en"),P=new k(l.language);P.extend(O),l.translations=P}return l},D.prototype.reset=function(){function b(a){function b(a){return l[a]||a}return a.replace(/[^\u0000-\u007E]/g,b)}function c(d,e){if(""===a.trim(d.term))return e;if(e.children&&e.children.length>0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){null==c(d,e.children[g])&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var h=b(e.text).toUpperCase(),i=b(d.term).toUpperCase();return h.indexOf(i)>-1?e:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:"default",width:"resolve"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(this.defaults,f)},new D}),b.define("select2/options",["require","jquery","./defaults","./utils"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is("input")){var f=a(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=["select2"];null==this.options.multiple&&(this.options.multiple=a.prop("multiple")),null==this.options.disabled&&(this.options.disabled=a.prop("disabled")),null==this.options.language&&(a.prop("lang")?this.options.language=a.prop("lang").toLowerCase():a.closest("[lang]").prop("lang")&&(this.options.language=a.closest("[lang]").prop("lang"))),null==this.options.dir&&(a.prop("dir")?this.options.dir=a.prop("dir"):a.closest("[dir]").prop("dir")?this.options.dir=a.closest("[dir]").prop("dir"):this.options.dir="ltr"),a.prop("disabled",this.options.disabled),a.prop("multiple",this.options.multiple),a.data("select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),a.data("data",a.data("select2Tags")),a.data("tags",!0)),a.data("ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),a.attr("ajax--url",a.data("ajaxUrl")),a.data("ajax--url",a.data("ajaxUrl")));var e={};e=b.fn.jquery&&"1."==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,a.data()):a.data();var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define("select2/core",["jquery","./options","./utils","./keys"],function(a,b,c,d){var e=function(a,c){null!=a.data("select2")&&a.data("select2").destroy(),this.$element=a,this.id=this._generateId(a),c=c||{},this.options=new b(c,a),e.__super__.constructor.call(this);var d=a.attr("tabindex")||0;a.data("old-tabindex",d),a.attr("tabindex","-1");var f=this.options.get("dataAdapter");this.dataAdapter=new f(a,this.options);var g=this.render();this._placeContainer(g);var h=this.options.get("selectionAdapter");this.selection=new h(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,g);var i=this.options.get("dropdownAdapter");this.dropdown=new i(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,g);var j=this.options.get("resultsAdapter");this.results=new j(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var k=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){k.trigger("selection:update",{data:a})}),a.addClass("select2-hidden-accessible"),a.attr("aria-hidden","true"),this._syncAttributes(),a.data("select2",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b="";return b=null!=a.attr("id")?a.attr("id"):null!=a.attr("name")?a.attr("name")+"-"+c.generateChars(2):c.generateChars(4),b=b.replace(/(:|\.|\[|\]|,)/g,""),b="select2-"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get("width"));null!=b&&a.css("width",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==b){var d=this._resolveWidth(a,"style");return null!=d?d:this._resolveWidth(a,"element")}if("element"==b){var e=a.outerWidth(!1);return e<=0?"auto":e+"px"}if("style"==b){var f=a.attr("style");if("string"!=typeof f)return null;for(var g=f.split(";"),h=0,i=g.length;h<i;h+=1){var j=g[h].replace(/\s/g,""),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on("change.select2",function(){b.dataAdapter.current(function(a){b.trigger("selection:update",{data:a})})}),this.$element.on("focus.select2",function(a){b.trigger("focus",a)}),this._syncA=c.bind(this._syncAttributes,this),this._syncS=c.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._syncA),a.each(c,b._syncS)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",b._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",b._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",b._syncS,!1))},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=["toggle","focus"];this.selection.on("toggle",function(){b.toggleDropdown()}),this.selection.on("focus",function(a){b.focus(a)}),this.selection.on("*",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var b=this;this.on("open",function(){b.$container.addClass("select2-container--open")}),this.on("close",function(){b.$container.removeClass("select2-container--open")}),this.on("enable",function(){b.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){b.$container.addClass("select2-container--disabled")}),this.on("blur",function(){b.$container.removeClass("select2-container--focus")}),this.on("query",function(a){b.isOpen()||b.trigger("open",{}),this.dataAdapter.query(a,function(c){b.trigger("results:all",{data:c,query:a})})}),this.on("query:append",function(a){this.dataAdapter.query(a,function(c){b.trigger("results:append",{data:c,query:a})})}),this.on("open",function(){setTimeout(function(){b.focusOnActiveElement()},1)}),a(document).on("keydown",function(a){var c=a.which;if(b.isOpen()){c===d.ESC||c===d.TAB||c===d.UP&&a.altKey?(b.close(),a.preventDefault()):c===d.ENTER?(b.trigger("results:select",{}),a.preventDefault()):c===d.SPACE&&a.ctrlKey?(b.trigger("results:toggle",{}),a.preventDefault()):c===d.UP?(b.trigger("results:previous",{}),a.preventDefault()):c===d.DOWN&&(b.trigger("results:next",{}),a.preventDefault());var e=b.$dropdown.find(".select2-search__field");e.length||(e=b.$container.find(".select2-search__field")),c===d.DOWN||c===d.UP?b.focusOnActiveElement():(e.focus(),setTimeout(function(){b.focusOnActiveElement()},1e3))}else b.hasFocus()&&(c!==d.ENTER&&c!==d.SPACE&&c!==d.DOWN||(b.open(),a.preventDefault()))})},e.prototype.focusOnActiveElement=function(){this.isOpen()&&!c.isTouchscreen()&&this.$results.find("li.select2-results__option--highlighted").focus()},e.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},e.prototype._syncSubtree=function(a,b){var c=!1,d=this;if(!a||!a.target||"OPTION"===a.target.nodeName||"OPTGROUP"===a.target.nodeName){if(b)if(b.addedNodes&&b.addedNodes.length>0)for(var e=0;e<b.addedNodes.length;e++){var f=b.addedNodes[e];f.selected&&(c=!0)}else b.removedNodes&&b.removedNodes.length>0&&(c=!0);else c=!0;c&&this.dataAdapter.current(function(a){d.trigger("selection:update",{data:a})})}},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:"opening",close:"closing",select:"selecting",unselect:"unselecting"};if(void 0===b&&(b={}),a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||this.trigger("query",{})},e.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},e.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},e.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},e.prototype.focus=function(a){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},e.prototype.enable=function(a){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=a&&0!==a.length||(a=[!0]);var b=!a[0];this.$element.prop("disabled",b)},e.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger("change")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",this.$element.data("old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},e.prototype.render=function(){var b=a('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return b.attr("dir",this.options.get("dir")),this.$container=b,this.$container.addClass("select2-container--"+this.options.get("theme")),b.data("element",this.$element),b},e}),b.define("select2/compat/utils",["jquery"],function(a){function b(b,c,d){var e,f,g=[];e=a.trim(b.attr("class")),e&&(e=""+e,a(e.split(/\s+/)).each(function(){0===this.indexOf("select2-")&&g.push(this)})),e=a.trim(c.attr("class")),e&&(e=""+e,a(e.split(/\s+/)).each(function(){0!==this.indexOf("select2-")&&null!=(f=d(this))&&g.push(f)})),b.attr("class",g.join(" "))}return{syncCssClasses:b}}),b.define("select2/compat/containerCss",["jquery","./utils"],function(a,b){function c(a){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get("containerCssClass")||"";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get("adaptContainerCssClass");if(g=g||c,-1!==f.indexOf(":all:")){f=f.replace(":all:","");var h=g;g=function(a){var b=h(a);return null!=b?b+" "+a:a}}var i=this.options.get("containerCss")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define("select2/compat/dropdownCss",["jquery","./utils"],function(a,b){function c(a){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get("dropdownCssClass")||"";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get("adaptDropdownCssClass");if(g=g||c,-1!==f.indexOf(":all:")){f=f.replace(":all:","");var h=g;g=function(a){var b=h(a);return null!=b?b+" "+a:a}}var i=this.options.get("dropdownCss")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define("select2/compat/initSelection",["jquery"],function(a){function b(a,b,c){c.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `initSelection` option has been deprecated in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2"),this.initSelection=c.get("initSelection"),this._isInitialized=!1,a.call(this,b,c)}return b.prototype.current=function(b,c){var d=this;if(this._isInitialized)return void b.call(this,c);this.initSelection.call(null,this.$element,function(b){d._isInitialized=!0,a.isArray(b)||(b=[b]),c(b)})},b}),b.define("select2/compat/inputData",["jquery"],function(a){function b(a,b,c){this._currentData=[],this._valueSeparator=c.get("valueSeparator")||",","hidden"===b.prop("type")&&c.get("debug")&&console&&console.warn&&console.warn("Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a `<select>` element instead."),a.call(this,b,c)}return b.prototype.current=function(b,c){function d(b,c){var e=[];return b.selected||-1!==a.inArray(b.id,c)?(b.selected=!0,e.push(b)):b.selected=!1,b.children&&e.push.apply(e,d(b.children,c)),e}for(var e=[],f=0;f<this._currentData.length;f++){var g=this._currentData[f];e.push.apply(e,d(g,this.$element.val().split(this._valueSeparator)))}c(e)},b.prototype.select=function(b,c){if(this.options.get("multiple")){var d=this.$element.val();d+=this._valueSeparator+c.id,this.$element.val(d),this.$element.trigger("change")}else this.current(function(b){a.map(b,function(a){a.selected=!1})}),this.$element.val(c.id),this.$element.trigger("change")},b.prototype.unselect=function(a,b){var c=this;b.selected=!1,this.current(function(a){for(var d=[],e=0;e<a.length;e++){var f=a[e];b.id!=f.id&&d.push(f.id)}c.$element.val(d.join(c._valueSeparator)),c.$element.trigger("change")})},b.prototype.query=function(a,b,c){for(var d=[],e=0;e<this._currentData.length;e++){var f=this._currentData[e],g=this.matches(b,f);null!==g&&d.push(g)}c({results:d})},b.prototype.addOptions=function(b,c){var d=a.map(c,function(b){return a.data(b[0],"data")});this._currentData.push.apply(this._currentData,d)},b}),b.define("select2/compat/matcher",["jquery"],function(a){function b(b){function c(c,d){var e=a.extend(!0,{},d);if(null==c.term||""===a.trim(c.term))return e;if(d.children){for(var f=d.children.length-1;f>=0;f--){var g=d.children[f];b(c.term,g.text,g)||e.children.splice(f,1)}if(e.children.length>0)return e}return b(c.term,d.text,d)?e:null}return c}return b}),b.define("select2/compat/query",[],function(){function a(a,b,c){c.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `query` option has been deprecated in favor of a custom data adapter that overrides the `query` method. Support will be removed for the `query` option in future versions of Select2."),a.call(this,b,c)}return a.prototype.query=function(a,b,c){b.callback=c,this.options.get("query").call(null,b)},a}),b.define("select2/dropdown/attachContainer",[],function(){function a(a,b,c){a.call(this,b,c)}return a.prototype.position=function(a,b,c){c.find(".dropdown-wrapper").append(b),b.addClass("select2-dropdown--below"),c.addClass("select2-container--below")},a}),b.define("select2/dropdown/stopPropagation",[],function(){function a(){}return a.prototype.bind=function(a,b,c){a.call(this,b,c);var d=["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"];this.$dropdown.on(d.join(" "),function(a){a.stopPropagation()})},a}),b.define("select2/selection/stopPropagation",[],function(){function a(){}return a.prototype.bind=function(a,b,c){a.call(this,b,c);var d=["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"];this.$selection.on(d.join(" "),function(a){a.stopPropagation()})},a}),function(c){"function"==typeof b.define&&b.define.amd?b.define("jquery-mousewheel",["jquery"],c):"object"==typeof exports?module.exports=c:c(a)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||n<f)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120==0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})}),b.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults"],function(a,b,c,d){if(null==a.fn.selectWoo){var e=["open","close","destroy"];a.fn.selectWoo=function(b){if("object"==typeof(b=b||{}))return this.each(function(){var d=a.extend(!0,{},b);new c(a(this),d)}),this;if("string"==typeof b){var d,f=Array.prototype.slice.call(arguments,1);return this.each(function(){var c=a(this).data("select2");null==c&&window.console&&console.error&&console.error("The select2('"+b+"') method was called on an element that is not using Select2."),d=c[b].apply(c,f)}),a.inArray(b,e)>-1?this:d}throw new Error("Invalid arguments for Select2: "+b)}}return null!=a.fn.select2&&null!=a.fn.select2.defaults&&(a.fn.selectWoo.defaults=a.fn.select2.defaults),null==a.fn.selectWoo.defaults&&(a.fn.selectWoo.defaults=d),a.fn.select2=a.fn.select2||a.fn.selectWoo,c}),{define:b.define,require:b.require}}(),c=b.require("jquery.select2");return a.fn.select2.amd=b,a.fn.selectWoo.amd=b,c});
 
js/tinymce/editor_plugin.js CHANGED
@@ -33,8 +33,8 @@
33
  return {
34
  longname : 'Slideshow Gallery TinyMCE Plugin',
35
  author : 'Tribulant Software',
36
- authorurl : 'http://tribulant.com',
37
- infourl : 'http://tribulant.com',
38
  version : "1.0"
39
  };
40
  }
33
  return {
34
  longname : 'Slideshow Gallery TinyMCE Plugin',
35
  author : 'Tribulant Software',
36
+ authorurl : 'https://tribulant.com',
37
+ infourl : 'https://tribulant.com',
38
  version : "1.0"
39
  };
40
  }
languages/readme.txt CHANGED
@@ -12,7 +12,7 @@ You can obtain the language files from Github at: https://github.com/tribulant/s
12
  This folder contains all the .PO and .MO files with the current, available languages.
13
 
14
  Only the .MO files are actually used by WordPress.
15
- The .PO files are the source, which can be opened with an application such as poEdit: http://www.poedit.net
16
 
17
  == How to use the language files ==
18
 
@@ -34,8 +34,8 @@ Follow these steps to update language files:
34
 
35
  1. Go to the languages repository: https://github.com/tribulant/slideshow-gallery-languages
36
  2. Pick the .PO file for the language that you want to update for example "slideshow-gallery-es_ES.po" which is Spanish/Espanol.
37
- 3. Open the .PO file in an application like poEdit: http://www.poedit.net
38
  4. Check the settings of the catalog in the application so it scans the correct paths, etc... and run a scan/update on the .PO file.
39
  5. Translate/update strings as needed and then save the .PO file. It will automatically generate a new .MO file which can be used with the plugin and WordPress
40
 
41
- For any questions or problems, please contact us: http://tribulant.com/support/
12
  This folder contains all the .PO and .MO files with the current, available languages.
13
 
14
  Only the .MO files are actually used by WordPress.
15
+ The .PO files are the source, which can be opened with an application such as poEdit: https://www.poedit.net
16
 
17
  == How to use the language files ==
18
 
34
 
35
  1. Go to the languages repository: https://github.com/tribulant/slideshow-gallery-languages
36
  2. Pick the .PO file for the language that you want to update for example "slideshow-gallery-es_ES.po" which is Spanish/Espanol.
37
+ 3. Open the .PO file in an application like poEdit: https://www.poedit.net
38
  4. Check the settings of the catalog in the application so it scans the correct paths, etc... and run a scan/update on the .PO file.
39
  5. Translate/update strings as needed and then save the .PO file. It will automatically generate a new .MO file which can be used with the plugin and WordPress
40
 
41
+ For any questions or problems, please contact us: https://tribulant.com/support/
models/gallery.php CHANGED
@@ -81,9 +81,9 @@ class GalleryGallery extends GalleryDbHelper {
81
 
82
  extract($data, EXTR_SKIP);
83
 
84
- if (empty($title)) { $this -> errors['title'] = __('Please fill in a title', $this -> plugin_name); }
85
  } else {
86
- $this -> errors[] = __('No data was posted', $this -> plugin_name);
87
  }
88
 
89
  return apply_filters('slideshow_gallery_validation', $this -> errors, $data);
81
 
82
  extract($data, EXTR_SKIP);
83
 
84
+ if (empty($title)) { $this -> errors['title'] = __('Please fill in a title', 'slideshow-gallery'); }
85
  } else {
86
+ $this -> errors[] = __('No data was posted', 'slideshow-gallery');
87
  }
88
 
89
  return apply_filters('slideshow_gallery_validation', $this -> errors, $data);
models/galleryslides.php CHANGED
@@ -64,8 +64,8 @@ class GalleryGallerySlides extends GalleryDbHelper {
64
 
65
  extract($data, EXTR_SKIP);
66
 
67
- if (empty($gallery_id)) { $this -> errors['title'] = __('No gallery was specified', $this -> plugin_name); }
68
- if (empty($slide_id)) { $this -> errors['title'] = __('No slide was specified', $this -> plugin_name); }
69
 
70
  if (empty($this -> errors)) {
71
  if ($galleryslide = $this -> find(array('gallery_id' => $gallery_id, 'slide_id' => $slide_id))) {
@@ -73,7 +73,7 @@ class GalleryGallerySlides extends GalleryDbHelper {
73
  }
74
  }
75
  } else {
76
- $this -> errors[] = __('No data was posted', $this -> plugin_name);
77
  }
78
 
79
  return $this -> errors;
64
 
65
  extract($data, EXTR_SKIP);
66
 
67
+ if (empty($gallery_id)) { $this -> errors['title'] = __('No gallery was specified', 'slideshow-gallery'); }
68
+ if (empty($slide_id)) { $this -> errors['title'] = __('No slide was specified', 'slideshow-gallery'); }
69
 
70
  if (empty($this -> errors)) {
71
  if ($galleryslide = $this -> find(array('gallery_id' => $gallery_id, 'slide_id' => $slide_id))) {
73
  }
74
  }
75
  } else {
76
+ $this -> errors[] = __('No data was posted', 'slideshow-gallery');
77
  }
78
 
79
  return $this -> errors;
models/slide.php CHANGED
@@ -25,6 +25,7 @@ class GallerySlide extends GalleryDbHelper {
25
  'linktarget' => "ENUM('self','blank') NOT NULL DEFAULT 'self'",
26
  'link' => "VARCHAR(200) NOT NULL DEFAULT ''",
27
  'order' => "INT(11) NOT NULL DEFAULT '0'",
 
28
  'created' => "DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'",
29
  'modified' => "DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'",
30
  'key' => "PRIMARY KEY (`id`), INDEX(`type`)",
@@ -65,6 +66,13 @@ class GallerySlide extends GalleryDbHelper {
65
  }
66
  }
67
  break;
 
 
 
 
 
 
 
68
  }
69
  }
70
 
@@ -85,6 +93,19 @@ class GallerySlide extends GalleryDbHelper {
85
  return $defaults;
86
  }
87
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  function validate($data = null) {
89
  $this -> errors = array();
90
 
@@ -93,10 +114,10 @@ class GallerySlide extends GalleryDbHelper {
93
  $data = stripslashes_deep($data);
94
  extract($data, EXTR_SKIP);
95
 
96
- if (empty($title)) { $this -> errors['title'] = __('Please fill in a title', $this -> plugin_name); }
97
  if (empty($showinfo)) { $this -> data -> showinfo = "both"; }
98
 
99
- if (empty($type)) { $this -> errors['type'] = __('Please select an image type', $this -> plugin_name); }
100
  elseif ($type == "media") {
101
  if (!empty($media_file) && !empty($attachment_id)) {
102
  $imagename = basename($media_file);
@@ -105,7 +126,7 @@ class GallerySlide extends GalleryDbHelper {
105
  $this -> data -> image_path = $media_file;
106
  $this -> data -> image_url = $media_file;
107
  } else {
108
- $this -> errors['media_file'] = __('Choose an image', $this -> plugin_name);
109
  }
110
  } elseif ($type == "file") {
111
  if (!empty($image_oldfile) && empty($_FILES['image_file']['name'])) {
@@ -134,7 +155,7 @@ class GallerySlide extends GalleryDbHelper {
134
  }
135
 
136
  if (empty($issafe) || $issafe == false) {
137
- $this -> errors['image_file'] = __('This file type is not allowed for security reasons', $this -> plugin_name);
138
  } else {
139
  $uploadedfile = $_FILES['image_file'];
140
  $upload_overrides = array('test_form' => false);
@@ -151,25 +172,25 @@ class GallerySlide extends GalleryDbHelper {
151
  switch ($_FILES['image_file']['error']) {
152
  case UPLOAD_ERR_INI_SIZE :
153
  case UPLOAD_ERR_FORM_SIZE :
154
- $this -> errors['image_file'] = __('The image file is too large', $this -> plugin_name);
155
  break;
156
  case UPLOAD_ERR_PARTIAL :
157
- $this -> errors['image_file'] = __('The image was partially uploaded, please try again', $this -> plugin_name);
158
  break;
159
  case UPLOAD_ERR_NO_FILE :
160
- $this -> errors['image_file'] = __('No image was chosen for uploading, please choose an image', $this -> plugin_name);
161
  break;
162
  case UPLOAD_ERR_NO_TMP_DIR :
163
- $this -> errors['image_file'] = __('No TMP directory has been specified for PHP to use, please ask your hosting provider', $this -> plugin_name);
164
  break;
165
  case UPLOAD_ERR_CANT_WRITE :
166
- $this -> errors['image_file'] = __('Image cannot be written to disc, please ask your hosting provider', $this -> plugin_name);
167
  break;
168
  }
169
  }
170
  }
171
  } elseif ($type == "url") {
172
- if (empty($image_url)) { $this -> errors['image_url'] = __('Please specify an image', $this -> plugin_name); }
173
  else {
174
  if ($image = wp_remote_fopen(str_replace(" ", "%20", $image_url))) {
175
  $filename = basename($image_url);
@@ -190,7 +211,7 @@ class GallerySlide extends GalleryDbHelper {
190
  $this -> data -> image = $filename;
191
 
192
  if (empty($issafe) || $issafe == false) {
193
- $this -> errors['image_url'] = __('This file type is not allowed for security reasons', $this -> plugin_name);
194
  } else {
195
  if (true || !file_exists($filefull)) {
196
  $fh = fopen($filefull, "w");
@@ -202,7 +223,7 @@ class GallerySlide extends GalleryDbHelper {
202
  }
203
  }
204
  } else {
205
- $this -> errors[] = __('No data was posted', $this -> plugin_name);
206
  }
207
 
208
  return apply_filters('slideshow_slide_validation', $this -> errors, $data);
25
  'linktarget' => "ENUM('self','blank') NOT NULL DEFAULT 'self'",
26
  'link' => "VARCHAR(200) NOT NULL DEFAULT ''",
27
  'order' => "INT(11) NOT NULL DEFAULT '0'",
28
+ 'expiry' => "DATE NOT NULL DEFAULT '0000-00-00'",
29
  'created' => "DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'",
30
  'modified' => "DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'",
31
  'key' => "PRIMARY KEY (`id`), INDEX(`type`)",
66
  }
67
  }
68
  break;
69
+ case 'expiry' :
70
+ if (!empty($dval)) {
71
+ if ($dval == "0000-00-00") {
72
+ $this -> expiry = false;
73
+ }
74
+ }
75
+ break;
76
  }
77
  }
78
 
93
  return $defaults;
94
  }
95
 
96
+ function save($data = null, $validate = true) {
97
+ if (!empty($data)) {
98
+ // Convert the expiry date to database format
99
+ if (!empty($data['Slide']['expiry'])) {
100
+ $data['Slide']['expiry'] = date_i18n("Y-m-d", strtotime($data['Slide']['expiry']));
101
+ } else {
102
+ $data['Slide']['expiry'] = "";
103
+ }
104
+ }
105
+
106
+ return parent::save($data, $validate);
107
+ }
108
+
109
  function validate($data = null) {
110
  $this -> errors = array();
111
 
114
  $data = stripslashes_deep($data);
115
  extract($data, EXTR_SKIP);
116
 
117
+ if (empty($title)) { $this -> errors['title'] = __('Please fill in a title', 'slideshow-gallery'); }
118
  if (empty($showinfo)) { $this -> data -> showinfo = "both"; }
119
 
120
+ if (empty($type)) { $this -> errors['type'] = __('Please select an image type', 'slideshow-gallery'); }
121
  elseif ($type == "media") {
122
  if (!empty($media_file) && !empty($attachment_id)) {
123
  $imagename = basename($media_file);
126
  $this -> data -> image_path = $media_file;
127
  $this -> data -> image_url = $media_file;
128
  } else {
129
+ $this -> errors['media_file'] = __('Choose an image', 'slideshow-gallery');
130
  }
131
  } elseif ($type == "file") {
132
  if (!empty($image_oldfile) && empty($_FILES['image_file']['name'])) {
155
  }
156
 
157
  if (empty($issafe) || $issafe == false) {
158
+ $this -> errors['image_file'] = __('This file type is not allowed for security reasons', 'slideshow-gallery');
159
  } else {
160
  $uploadedfile = $_FILES['image_file'];
161
  $upload_overrides = array('test_form' => false);
172
  switch ($_FILES['image_file']['error']) {
173
  case UPLOAD_ERR_INI_SIZE :
174
  case UPLOAD_ERR_FORM_SIZE :
175
+ $this -> errors['image_file'] = __('The image file is too large', 'slideshow-gallery');
176
  break;
177
  case UPLOAD_ERR_PARTIAL :
178
+ $this -> errors['image_file'] = __('The image was partially uploaded, please try again', 'slideshow-gallery');
179
  break;
180
  case UPLOAD_ERR_NO_FILE :
181
+ $this -> errors['image_file'] = __('No image was chosen for uploading, please choose an image', 'slideshow-gallery');
182
  break;
183
  case UPLOAD_ERR_NO_TMP_DIR :
184
+ $this -> errors['image_file'] = __('No TMP directory has been specified for PHP to use, please ask your hosting provider', 'slideshow-gallery');
185
  break;
186
  case UPLOAD_ERR_CANT_WRITE :
187
+ $this -> errors['image_file'] = __('Image cannot be written to disc, please ask your hosting provider', 'slideshow-gallery');
188
  break;
189
  }
190
  }
191
  }
192
  } elseif ($type == "url") {
193
+ if (empty($image_url)) { $this -> errors['image_url'] = __('Please specify an image', 'slideshow-gallery'); }
194
  else {
195
  if ($image = wp_remote_fopen(str_replace(" ", "%20", $image_url))) {
196
  $filename = basename($image_url);
211
  $this -> data -> image = $filename;
212
 
213
  if (empty($issafe) || $issafe == false) {
214
+ $this -> errors['image_url'] = __('This file type is not allowed for security reasons', 'slideshow-gallery');
215
  } else {
216
  if (true || !file_exists($filefull)) {
217
  $fh = fopen($filefull, "w");
223
  }
224
  }
225
  } else {
226
+ $this -> errors[] = __('No data was posted', 'slideshow-gallery');
227
  }
228
 
229
  return apply_filters('slideshow_slide_validation', $this -> errors, $data);
models/slideshow.php CHANGED
@@ -23,7 +23,7 @@ if (!class_exists('slideshow_lite')) {
23
  }
24
 
25
  function lite_admin_menu($menus = null) {
26
- add_submenu_page($this -> sections -> welcome, __('Upgrade to PRO', $this -> plugin_name), __('Upgrade to PRO', $this -> plugin_name), 'slideshow_welcome', $this -> sections -> lite_upgrade, array($this, 'lite_upgrade'));
27
  }
28
 
29
  function lite_upgrade() {
@@ -45,7 +45,7 @@ if (!class_exists('slideshow_lite')) {
45
 
46
  $args = array(
47
  'id' => 'slideshowlite',
48
- 'title' => '<i class="fa fa-picture-o fa-fw"></i> ' . __('Slideshow LITE', $this -> plugin_name),
49
  'href' => admin_url('admin.php?page=' . $this -> sections -> lite_upgrade),
50
  'meta' => array('class' => 'slideshow-lite'),
51
  );
@@ -54,7 +54,7 @@ if (!class_exists('slideshow_lite')) {
54
 
55
  $args = array(
56
  'id' => 'slideshowlite_submitserial',
57
- 'title' => '<i class="fa fa-key"></i> ' . __('Submit Serial Key', $this -> plugin_name),
58
  'parent' => 'slideshowlite',
59
  'href' => admin_url('admin.php?page=' . $this -> sections -> submitserial),
60
  'meta' => array('class' => 'slideshow-lite-submitserial', 'onclick' => "jQuery.colorbox({href:ajaxurl + \"?action=slideshow_serialkey\"}); return false;"),
@@ -64,7 +64,7 @@ if (!class_exists('slideshow_lite')) {
64
 
65
  $args = array(
66
  'id' => 'slideshowlite_upgrade',
67
- 'title' => '<i class="fa fa-check"></i> ' . __('Upgrade to PRO now!', $this -> plugin_name),
68
  'parent' => 'slideshowlite',
69
  'href' => admin_url('admin.php?page=' . $this -> sections -> lite_upgrade),
70
  'meta' => array('class' => 'slideshow-lite-upgrade'),
23
  }
24
 
25
  function lite_admin_menu($menus = null) {
26
+ add_submenu_page($this -> sections -> welcome, __('Upgrade to PRO', 'slideshow-gallery'), __('Upgrade to PRO', 'slideshow-gallery'), 'slideshow_welcome', $this -> sections -> lite_upgrade, array($this, 'lite_upgrade'));
27
  }
28
 
29
  function lite_upgrade() {
45
 
46
  $args = array(
47
  'id' => 'slideshowlite',
48
+ 'title' => '<i class="fa fa-picture-o fa-fw"></i> ' . __('Slideshow LITE', 'slideshow-gallery'),
49
  'href' => admin_url('admin.php?page=' . $this -> sections -> lite_upgrade),
50
  'meta' => array('class' => 'slideshow-lite'),
51
  );
54
 
55
  $args = array(
56
  'id' => 'slideshowlite_submitserial',
57
+ 'title' => '<i class="fa fa-key"></i> ' . __('Submit Serial Key', 'slideshow-gallery'),
58
  'parent' => 'slideshowlite',
59
  'href' => admin_url('admin.php?page=' . $this -> sections -> submitserial),
60
  'meta' => array('class' => 'slideshow-lite-submitserial', 'onclick' => "jQuery.colorbox({href:ajaxurl + \"?action=slideshow_serialkey\"}); return false;"),
64
 
65
  $args = array(
66
  'id' => 'slideshowlite_upgrade',
67
+ 'title' => '<i class="fa fa-check"></i> ' . __('Upgrade to PRO now!', 'slideshow-gallery'),
68
  'parent' => 'slideshowlite',
69
  'href' => admin_url('admin.php?page=' . $this -> sections -> lite_upgrade),
70
  'meta' => array('class' => 'slideshow-lite-upgrade'),
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === Slideshow Gallery ===
2
  Contributors: contrid
3
- Donate link: http://tribulant.com/
4
  Tags: wordpress plugins, wordpress slideshow gallery, slides, slideshow, image gallery, images, gallery, featured content, content gallery, javascript, javascript slideshow, slideshow gallery
5
  Requires at least: 3.1
6
- Tested up to: 4.8
7
- Stable tag: 1.6.7.1
8
 
9
  Feature content in a JavaScript powered slideshow gallery showcase on your WordPress website
10
 
@@ -16,7 +16,7 @@ You can easily display multiple galleries throughout your WordPress website disp
16
 
17
  The slideshow is flexible, all aspects can easily be configured and embedding/hardcoding the slideshow gallery is a breeze.
18
 
19
- See the <a href="http://tribulant.net/slideshowgallery/">online demonstration</a>.
20
 
21
  Here are several ways to display a slideshow:
22
 
@@ -48,7 +48,7 @@ To embed a slideshow with the images uploaded to a WordPress post/page through i
48
 
49
  = Shortcode for latest/featured products =
50
 
51
- In order to display latest or featured products in a slideshow, you need the <a href="http://tribulant.com/plugins/view/10/wordpress-shopping-cart-plugin" title="WordPress Shopping Cart">Shopping Cart plugin</a> from Tribulant Software. Once you have this installed and activated, you can easily display recent or featured products. To display recent products use the shortcode below.
52
 
53
  `[tribulant_slideshow products="latest"]`
54
 
@@ -91,7 +91,7 @@ This way you can customize each slideshow you embed or hardcode, despite the set
91
  * `effect` [ fade | slide ] = Choose the transition effect of the slideshow. Either fade or slide
92
  * `slide_direction` [ lr | tb ] = If you're using `slide` for the `effect`, you can choose left/right or top/bottom sliding
93
  * `easing` [ swing ] = Choose the easing effect you'd like. The default is `swing`
94
- * `products` [ latest | featured ] = String "latest" or "featured" to display products from the <a href="http://tribulant.com/plugins/view/10/wordpress-shopping-cart-plugin">Checkout plugin</a>.
95
  * `productsnumber` [ productsnumber ] = Numeric/integer to limit the number of products to display.
96
  * `featured` [ true | false ] = Show posts with their featured images
97
  * `featurednumber` [ number ] = A numeric/integer value. The default is 10
@@ -126,10 +126,10 @@ This way you can customize each slideshow you embed or hardcode, despite the set
126
 
127
  Thank you to these wonderful people who contributed to translating the Slideshow Gallery plugin:
128
 
129
- * Afrikaans (af_ZA) by <a href="http://tribulant.com">Antonie Potgieter | Tribulant Software</a>
130
  * Slovak (sk_SK) by Branco Radenovich
131
 
132
- <a href="http://tribulant.com/support/">Contact us</a> to submit your language file and be mentioned here!
133
 
134
  == Installation ==
135
 
@@ -175,15 +175,29 @@ There is an "Images Tester" utility under Slideshow > Configuration on the right
175
 
176
  == Changelog ==
177
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
178
  = 1.6.7 =
179
- * ADD: Compatibility with WordPress 4.8+ feature
180
- * ADD: Display slideshow images inside RSS feeds feature
181
- * FIX: Blank/empty slide breaks slideshow bug
182
- * FIX: Woocommerce loads outdated version of Select2, conflicts bug
183
  * FIX: Conflict with Select2 of Yoast SEO
184
 
185
  = 1.6.6 =
186
- * IMPROVE: Check for missing media/attachment records enhancement
187
  * IMPROVE: ALT attributes on slide images
188
  * FIX: Arrows on thumbnails slider misaligned on some themes
189
  * FIX: Thumbnail dimensions incorrect on media image slides
@@ -201,7 +215,7 @@ There is an "Images Tester" utility under Slideshow > Configuration on the right
201
  * FIX: Security, possible XSS on CSS parameters
202
  * FIX: Missing FontAwesome font files in admin area
203
  * FIX: Fatal error: Call to a member function image_path() on a non-object
204
- * FIX: Colorbox when you have Multiple Galleries bug
205
 
206
  = 1.6.4 =
207
  * ADD: Full retina/high definition compatibility
1
  === Slideshow Gallery ===
2
  Contributors: contrid
3
+ Donate link: https://tribulant.com/
4
  Tags: wordpress plugins, wordpress slideshow gallery, slides, slideshow, image gallery, images, gallery, featured content, content gallery, javascript, javascript slideshow, slideshow gallery
5
  Requires at least: 3.1
6
+ Tested up to: 4.9.7
7
+ Stable tag: 1.6.8
8
 
9
  Feature content in a JavaScript powered slideshow gallery showcase on your WordPress website
10
 
16
 
17
  The slideshow is flexible, all aspects can easily be configured and embedding/hardcoding the slideshow gallery is a breeze.
18
 
19
+ See the <a href="https://tribulant.net/slideshowgallery/">online demonstration</a>.
20
 
21
  Here are several ways to display a slideshow:
22
 
48
 
49
  = Shortcode for latest/featured products =
50
 
51
+ In order to display latest or featured products in a slideshow, you need the <a href="https://tribulant.com/plugins/view/10/wordpress-shopping-cart-plugin" title="WordPress Shopping Cart">Shopping Cart plugin</a> from Tribulant Software. Once you have this installed and activated, you can easily display recent or featured products. To display recent products use the shortcode below.
52
 
53
  `[tribulant_slideshow products="latest"]`
54
 
91
  * `effect` [ fade | slide ] = Choose the transition effect of the slideshow. Either fade or slide
92
  * `slide_direction` [ lr | tb ] = If you're using `slide` for the `effect`, you can choose left/right or top/bottom sliding
93
  * `easing` [ swing ] = Choose the easing effect you'd like. The default is `swing`
94
+ * `products` [ latest | featured ] = String "latest" or "featured" to display products from the <a href="https://tribulant.com/plugins/view/10/wordpress-shopping-cart-plugin">Checkout plugin</a>.
95
  * `productsnumber` [ productsnumber ] = Numeric/integer to limit the number of products to display.
96
  * `featured` [ true | false ] = Show posts with their featured images
97
  * `featurednumber` [ number ] = A numeric/integer value. The default is 10
126
 
127
  Thank you to these wonderful people who contributed to translating the Slideshow Gallery plugin:
128
 
129
+ * Afrikaans (af_ZA) by <a href="https://tribulant.com">Antonie Potgieter | Tribulant Software</a>
130
  * Slovak (sk_SK) by Branco Radenovich
131
 
132
+ <a href="https://tribulant.com/support/">Contact us</a> to submit your language file and be mentioned here!
133
 
134
  == Installation ==
135
 
175
 
176
  == Changelog ==
177
 
178
+ = 1.6.8 =
179
+ * ADD: Set an expiry date on a slide
180
+ * ADD: Use WP_List_Table for proper, responsive tables in admin
181
+ * IMPROVE: Static textdomain for easier translation
182
+ * IMPROVE: Update WP Color Picker
183
+ * IMPROVE: http:// to https://
184
+ * IMPROVE: hange INPUT to BUTTON element in several places
185
+ * IMPROVE: Prevent conflict with outdated Select2 versions from other plugins
186
+ * FIX: Jetpack Lazy Load causes problems with slides
187
+ * FIX: url() function sometimes breaks plugin path
188
+ * FIX: Use link on slide confusion and not opening
189
+ * FIX: Apostrophe in gallery title/name won't save
190
+ * FIX: "No slides are available" due to getimagesize() not supported
191
+
192
  = 1.6.7 =
193
+ * ADD: Compatibility with WordPress 4.8+
194
+ * ADD: Display slideshow images inside RSS feeds
195
+ * FIX: Blank/empty slide breaks slideshow
196
+ * FIX: Woocommerce loads outdated version of Select2, conflicts
197
  * FIX: Conflict with Select2 of Yoast SEO
198
 
199
  = 1.6.6 =
200
+ * IMPROVE: Check for missing media/attachment records
201
  * IMPROVE: ALT attributes on slide images
202
  * FIX: Arrows on thumbnails slider misaligned on some themes
203
  * FIX: Thumbnail dimensions incorrect on media image slides
215
  * FIX: Security, possible XSS on CSS parameters
216
  * FIX: Missing FontAwesome font files in admin area
217
  * FIX: Fatal error: Call to a member function image_path() on a non-object
218
+ * FIX: Colorbox when you have Multiple Galleries
219
 
220
  = 1.6.4 =
221
  * ADD: Full retina/high definition compatibility
slideshow-gallery-plugin.php CHANGED
@@ -4,7 +4,7 @@ if (!defined('ABSPATH')) exit; // Exit if accessed directly
4
 
5
  class GalleryPlugin extends GalleryCheckinit {
6
 
7
- var $version = '1.6.7.1';
8
  var $plugin_name;
9
  var $plugin_base;
10
  var $pre = 'Gallery';
@@ -70,7 +70,6 @@ class GalleryPlugin extends GalleryCheckinit {
70
  $this -> plugin_file = plugin_basename($base);
71
  $this -> sections = apply_filters('slideshow_sections', (object) $this -> sections);
72
  $this -> initialize_classes();
73
- //$this -> initialize_options();
74
 
75
  global $wpdb;
76
  $debugging = get_option('tridebugging');
@@ -104,9 +103,9 @@ class GalleryPlugin extends GalleryCheckinit {
104
  echo '<td colspan="3" class="plugin-update">';
105
  echo '<div class="update-message">';
106
 
107
- echo sprintf(__('You are running Slideshow Gallery LITE. Take your slideshows to the next level with %s. Already purchased? %s.', $this -> plugin_name), '<a href="' . admin_url('admin.php?page=' . $this -> sections -> lite_upgrade) . '">Slideshow Gallery PRO</a>', '<a href="http://tribulant.com/docs/wordpress-slideshow-gallery/1758" target="_blank">' . __('See instructions to install PRO', $this -> plugin_name) . '</a>');
108
- echo ' <a class="button button-primary button-small" href="' . admin_url('admin.php?page=' . $this -> sections -> lite_upgrade) . '"><i class="fa fa-check"></i> ' . __('Upgrade to PRO', $this -> plugin_name) . '</a>';
109
- echo ' <a class="button button-secondary button-small" href="' . admin_url('admin.php?page=' . $this -> sections -> welcome . '&slideshow_method=hidemessage&message=upgradetopro') . '"><i class="fa fa-times"></i> ' . __('Hide this message', $this -> plugin_name) . '</a>';
110
 
111
  echo '</div>';
112
  echo '</td>';
@@ -161,7 +160,7 @@ class GalleryPlugin extends GalleryCheckinit {
161
  if(empty($version_info['is_valid_key']) || version_compare($this -> version, $version_info["version"], '>=')){
162
  unset($option -> response[$plugin_path]);
163
  } else {
164
- $option -> response[$plugin_path] -> url = "http://tribulant.com";
165
  $option -> response[$plugin_path] -> slug = $this -> plugin_name;
166
  $option -> response[$plugin_path] -> package = $version_info['url'];
167
  $option -> response[$plugin_path] -> new_version = $version_info["version"];
@@ -180,14 +179,16 @@ class GalleryPlugin extends GalleryCheckinit {
180
 
181
  if (!empty($_GET['delete'])) {
182
  $this -> delete_option('serialkey');
183
- $errors[] = __('Serial key has been deleted.', $this -> plugin_name);
184
  } else {
185
  if (!empty($_POST)) {
186
- if (empty($_REQUEST['serialkey'])) { $errors[] = __('Please fill in a serial key.', $this -> plugin_name); }
 
 
187
  else {
188
  $this -> update_option('serialkey', $_REQUEST['serialkey']); //update the DB option
189
 
190
- if (!$this -> ci_serial_valid()) { $errors[] = __('Serial key is invalid, please try again.', $this -> plugin_name); }
191
  else {
192
  delete_transient($this -> pre . 'update_info');
193
  $success = true;
@@ -216,7 +217,7 @@ class GalleryPlugin extends GalleryCheckinit {
216
  }
217
  }
218
 
219
- echo '<i class="fa fa-check"></i> ' . __('Slides have been ordered', $this -> plugin_name);
220
  }
221
 
222
  exit();
@@ -302,10 +303,10 @@ class GalleryPlugin extends GalleryCheckinit {
302
  $version = "1.5.3";
303
  }
304
 
305
- if (version_compare($cur_version, "1.6.7.1") < 0) {
306
  $this -> initialize_options();
307
 
308
- $version = "1.6.7.1";
309
  }
310
 
311
  //the current version is older.
@@ -426,7 +427,7 @@ class GalleryPlugin extends GalleryCheckinit {
426
 
427
  add_role(
428
  'slideshow',
429
- _e('Slideshow Manager', $this -> plugin_name),
430
  $newrolecapabilities
431
  );
432
  }
@@ -454,7 +455,11 @@ class GalleryPlugin extends GalleryCheckinit {
454
  }
455
 
456
  function redirect($location = null, $msgtype = null, $message = null, $action = null) {
457
- $url = $location;
 
 
 
 
458
 
459
  if ($msgtype == "message") {
460
  $url .= '&' . $this -> pre . 'updated=true';
@@ -479,73 +484,6 @@ class GalleryPlugin extends GalleryCheckinit {
479
  <?php
480
  }
481
 
482
- function paginate($model = null, $fields = '*', $sub = null, $conditions = null, $searchterm = null, $per_page = 10, $order = array('modified', "DESC")) {
483
- global $wpdb;
484
-
485
- if (!empty($model)) {
486
- global $paginate;
487
- $paginate = $this -> vendor('Paginate');
488
- $paginate -> table = $this -> {$model}() -> table;
489
- $paginate -> sub = (empty($sub)) ? $this -> sections -> {$this -> {$model}() -> controller} : $sub;
490
- $paginate -> fields = (empty($fields)) ? '*' : $fields;
491
- $paginate -> where = (empty($conditions)) ? false : $conditions;
492
- $paginate -> searchterm = (empty($searchterm)) ? false : $searchterm;
493
- $paginate -> per_page = $per_page;
494
- $paginate -> order = $order;
495
-
496
- $page = (empty($_GET[$this -> pre . 'page'])) ? 1 : $_GET[$this -> pre . 'page'];
497
- $data = $paginate -> start_paging(esc_html($page));
498
-
499
- if (!empty($data)) {
500
- $newdata = array();
501
-
502
- foreach ($data as $record) {
503
- $initdata = $this -> init_class($model, $record);
504
-
505
- /*switch ($model) {
506
- case $this -> Slide() -> model :
507
- $slide = $initdata;
508
-
509
- // Image
510
- $initdata -> image = '<a href="' . $slide -> image_path . '" title="' . __($slide -> title) . '" class="colorbox" rel="slides"><img class="img-rounded" src="' . $this -> Html -> otf_image_src($slide, 50, 50, 100) . '" alt="' . $this -> Html -> sanitize(__($slide -> title)) . '" /></a>';
511
-
512
- // Galleries
513
- if (!empty($slide -> gallery)) {
514
- $galleries = array();
515
- foreach ($slide -> gallery as $gallery) {
516
- $galleries[] = '<a href="">' . __($gallery -> title) . '</a>';
517
- }
518
- $initdata -> galleries = implode(", ", $galleries);
519
- } else {
520
- $initdata -> galleries = __('None', $this -> plugin_name);
521
- }
522
-
523
- // Link
524
- if (!empty($slide -> uselink) && $slide -> uselink == "Y" && !empty($slide -> link)) {
525
- $link = $slide -> link;
526
- $initdata -> link = '<span class="slideshow_success"><i class="fa fa-check"></i></span>';
527
- $initdata -> link .= '<small>(<a href="' . __($link) . '" target="_blank">' . __('Open', 'slideshow-gallery') . '</a>)</small>';
528
- } else {
529
- $initdata -> link = '<span class="slideshow_error"><i class="fa fa-times"></i></span>';
530
- }
531
-
532
- break;
533
- }*/
534
-
535
- $newdata[] = $initdata;
536
- }
537
-
538
- $data = array();
539
- $data[$model] = $newdata;
540
- $data['Paginate'] = $paginate;
541
- }
542
-
543
- return $data;
544
- }
545
-
546
- return false;
547
- }
548
-
549
  function vendor($name = null, $folder = null) {
550
  if (!empty($name)) {
551
  $filename = 'class.' . strtolower($name) . '.php';
@@ -574,7 +512,7 @@ class GalleryPlugin extends GalleryCheckinit {
574
  @chmod($uploaddir, 0777);
575
  return true;
576
  } else {
577
- $message = sprintf(__('Uploads folder named "%s" cannot be created inside "%s"', $this -> plugin_name), $this -> plugin_name, "wp-content/uploads/");
578
  $this -> render_msg($message);
579
  }
580
  }
@@ -583,7 +521,7 @@ class GalleryPlugin extends GalleryCheckinit {
583
  if (@mkdir($cachedir, 0777)) {
584
  @chmod($cachedir, 0777);
585
  } else {
586
- $message = sprintf(__('Slideshow cache folder "%s" for resizing images cannot be created inside "%s"', $this -> plugin_name), 'cache', 'wp-content/uploads/' . $this -> plugin_name . '/');
587
  $this -> render_msg($message);
588
  }
589
  }
@@ -629,18 +567,20 @@ class GalleryPlugin extends GalleryCheckinit {
629
  $method = (!empty($_GET['method'])) ? esc_html($_GET['method']) : false;
630
 
631
  if (!empty($page) && in_array($page, (array) $this -> sections)) {
632
- wp_enqueue_script('iris', admin_url('js/iris.min.js'), array('jquery-ui-draggable', 'jquery-ui-slider', 'jquery-touch-punch'), false, 1);
633
- wp_enqueue_script('wp-color-picker', admin_url('js/color-picker.min.js'), array( 'iris' ), false, 1);
634
 
635
  wp_enqueue_script('jquery-ui-tabs');
636
  wp_enqueue_script('jquery-ui-tooltip');
637
  wp_enqueue_script('jquery-ui-slider');
 
638
 
639
  if ($page == 'slideshow-settings') {
640
  wp_enqueue_script('common');
641
  wp_enqueue_script('wp-lists');
642
  wp_enqueue_script('postbox');
643
  wp_enqueue_script('plugin-install');
 
644
  wp_enqueue_script('settings-editor', $this -> render_url('js/settings-editor.js', "admin"), array('jquery'), '1.0');
645
  }
646
 
@@ -715,7 +655,8 @@ class GalleryPlugin extends GalleryCheckinit {
715
  }
716
 
717
  function url() {
718
- return site_url() . '/' . substr(preg_replace("/\\" . DS . "/si", "/", $this -> plugin_base()), strlen(ABSPATH));
 
719
  }
720
 
721
  function add_option($name = '', $value = '') {
4
 
5
  class GalleryPlugin extends GalleryCheckinit {
6
 
7
+ var $version = '1.6.8';
8
  var $plugin_name;
9
  var $plugin_base;
10
  var $pre = 'Gallery';
70
  $this -> plugin_file = plugin_basename($base);
71
  $this -> sections = apply_filters('slideshow_sections', (object) $this -> sections);
72
  $this -> initialize_classes();
 
73
 
74
  global $wpdb;
75
  $debugging = get_option('tridebugging');
103
  echo '<td colspan="3" class="plugin-update">';
104
  echo '<div class="update-message">';
105
 
106
+ echo sprintf(__('You are running Slideshow Gallery LITE. Take your slideshows to the next level with %s. Already purchased? %s.', 'slideshow-gallery'), '<a href="' . admin_url('admin.php?page=' . $this -> sections -> lite_upgrade) . '">Slideshow Gallery PRO</a>', '<a href="https://tribulant.com/docs/wordpress-slideshow-gallery/1758" target="_blank">' . __('See instructions to install PRO', 'slideshow-gallery') . '</a>');
107
+ echo ' <a class="button button-primary button-small" href="' . admin_url('admin.php?page=' . $this -> sections -> lite_upgrade) . '"><i class="fa fa-check"></i> ' . __('Upgrade to PRO', 'slideshow-gallery') . '</a>';
108
+ echo ' <a class="button button-secondary button-small" href="' . admin_url('admin.php?page=' . $this -> sections -> welcome . '&slideshow_method=hidemessage&message=upgradetopro') . '"><i class="fa fa-times"></i> ' . __('Hide this message', 'slideshow-gallery') . '</a>';
109
 
110
  echo '</div>';
111
  echo '</td>';
160
  if(empty($version_info['is_valid_key']) || version_compare($this -> version, $version_info["version"], '>=')){
161
  unset($option -> response[$plugin_path]);
162
  } else {
163
+ $option -> response[$plugin_path] -> url = "https://tribulant.com";
164
  $option -> response[$plugin_path] -> slug = $this -> plugin_name;
165
  $option -> response[$plugin_path] -> package = $version_info['url'];
166
  $option -> response[$plugin_path] -> new_version = $version_info["version"];
179
 
180
  if (!empty($_GET['delete'])) {
181
  $this -> delete_option('serialkey');
182
+ $errors[] = __('Serial key has been deleted.', 'slideshow-gallery');
183
  } else {
184
  if (!empty($_POST)) {
185
+ check_ajax_referer($this -> sections -> submitserial);
186
+
187
+ if (empty($_REQUEST['serialkey'])) { $errors[] = __('Please fill in a serial key.', 'slideshow-gallery'); }
188
  else {
189
  $this -> update_option('serialkey', $_REQUEST['serialkey']); //update the DB option
190
 
191
+ if (!$this -> ci_serial_valid()) { $errors[] = __('Serial key is invalid, please try again.', 'slideshow-gallery'); }
192
  else {
193
  delete_transient($this -> pre . 'update_info');
194
  $success = true;
217
  }
218
  }
219
 
220
+ echo '<i class="fa fa-check"></i> ' . __('Slides have been ordered', 'slideshow-gallery');
221
  }
222
 
223
  exit();
303
  $version = "1.5.3";
304
  }
305
 
306
+ if (version_compare($cur_version, "1.6.8") < 0) {
307
  $this -> initialize_options();
308
 
309
+ $version = "1.6.8";
310
  }
311
 
312
  //the current version is older.
427
 
428
  add_role(
429
  'slideshow',
430
+ _e('Slideshow Manager', 'slideshow-gallery'),
431
  $newrolecapabilities
432
  );
433
  }
455
  }
456
 
457
  function redirect($location = null, $msgtype = null, $message = null, $action = null) {
458
+ if (empty($location)) {
459
+ $url = remove_query_arg(array('action', 'action2', '_wpnonce', '_wp_http_referer'), wp_get_referer());
460
+ } else {
461
+ $url = $location;
462
+ }
463
 
464
  if ($msgtype == "message") {
465
  $url .= '&' . $this -> pre . 'updated=true';
484
  <?php
485
  }
486
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
487
  function vendor($name = null, $folder = null) {
488
  if (!empty($name)) {
489
  $filename = 'class.' . strtolower($name) . '.php';
512
  @chmod($uploaddir, 0777);
513
  return true;
514
  } else {
515
+ $message = sprintf(__('Uploads folder named "%s" cannot be created inside "%s"', 'slideshow-gallery'), $this -> plugin_name, "wp-content/uploads/");
516
  $this -> render_msg($message);
517
  }
518
  }
521
  if (@mkdir($cachedir, 0777)) {
522
  @chmod($cachedir, 0777);
523
  } else {
524
+ $message = sprintf(__('Slideshow cache folder "%s" for resizing images cannot be created inside "%s"', 'slideshow-gallery'), 'cache', 'wp-content/uploads/' . $this -> plugin_name . '/');
525
  $this -> render_msg($message);
526
  }
527
  }
567
  $method = (!empty($_GET['method'])) ? esc_html($_GET['method']) : false;
568
 
569
  if (!empty($page) && in_array($page, (array) $this -> sections)) {
570
+ wp_enqueue_script('iris', admin_url('js/iris.min.js'), array( 'jquery-ui-draggable', 'jquery-ui-slider', 'jquery-touch-punch' ), false, 1);
571
+ wp_enqueue_script('wp-color-picker', admin_url('js/color-picker.min.js'), array( 'iris' ), false, 1);
572
 
573
  wp_enqueue_script('jquery-ui-tabs');
574
  wp_enqueue_script('jquery-ui-tooltip');
575
  wp_enqueue_script('jquery-ui-slider');
576
+ wp_enqueue_script('jquery-ui-datepicker');
577
 
578
  if ($page == 'slideshow-settings') {
579
  wp_enqueue_script('common');
580
  wp_enqueue_script('wp-lists');
581
  wp_enqueue_script('postbox');
582
  wp_enqueue_script('plugin-install');
583
+ wp_enqueue_script('updates');
584
  wp_enqueue_script('settings-editor', $this -> render_url('js/settings-editor.js', "admin"), array('jquery'), '1.0');
585
  }
586
 
655
  }
656
 
657
  function url() {
658
+ $url = rtrim(plugins_url(false, __FILE__));
659
+ return $url;
660
  }
661
 
662
  function add_option($name = '', $value = '') {
slideshow-gallery.php CHANGED
@@ -2,13 +2,13 @@
2
 
3
  /*
4
  Plugin Name: Slideshow Gallery
5
- Plugin URI: http://tribulant.com/plugins/view/13/wordpress-slideshow-gallery
6
  Author: Tribulant Software
7
- Author URI: http://tribulant.com
8
  Description: Feature content in a JavaScript powered slideshow gallery showcase on your WordPress website. The slideshow is flexible and all aspects can easily be configured. Embedding or hardcoding the slideshow gallery is a breeze. To embed into a post/page, simply insert <code>[tribulant_slideshow]</code> into its content with an optional <code>post_id</code> parameter. To hardcode into any PHP file of your WordPress theme, simply use <code>&lt;?php if (function_exists('slideshow')) { slideshow($output = true, $post_id = false, $gallery_id = false, $params = array()); } ?&gt;</code>.
9
- Version: 1.6.7.1
10
  License: GNU General Public License v2 or later
11
- License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
  Tags: slideshow gallery, slideshow, gallery, slider, jquery, bfithumb, galleries, photos, images
13
  Text Domain: slideshow-gallery
14
  Domain Path: /languages
@@ -26,7 +26,7 @@ if (file_exists($path)) {
26
  require_once(dirname(__FILE__) . DS . 'vendors' . DS . 'otf_regen_thumbs.php');
27
  }
28
 
29
- if (!class_exists('Gallery')) {
30
  class SlideshowGallery extends GalleryPlugin {
31
 
32
  function __construct() {
@@ -99,16 +99,14 @@ if (!class_exists('Gallery')) {
99
  $this_plugin = plugin_basename(__FILE__);
100
 
101
  if (!empty($plugin_file) && $plugin_file == $this_plugin) {
102
- $actions[] = '<a href="" onclick="jQuery.colorbox({href:ajaxurl + \'?action=slideshow_serialkey\'}); return false;" id="slideshow_submitseriallink">' . __('Serial Key', $this -> plugin_name) . '</a>';
103
- $actions[] = '<a href="' . admin_url('admin.php?page=' . $this -> sections -> settings) . '">' . __('Settings', $this -> plugin_name) . '</a>';
104
  }
105
 
106
  return $actions;
107
  }
108
 
109
  function init() {
110
-
111
-
112
  }
113
 
114
  function init_textdomain() {
@@ -178,16 +176,20 @@ if (!class_exists('Gallery')) {
178
  }
179
 
180
  function admin_menu() {
 
181
  $this -> check_roles();
182
- add_menu_page(__('Slideshow', $this -> plugin_name), __('Slideshow', $this -> plugin_name), 'slideshow_slides', $this -> sections -> slides, array($this, 'admin_slides'), false);
183
- $this -> menus['slideshow-slides'] = add_submenu_page($this -> sections -> slides, __('Manage Slides', $this -> plugin_name), __('Manage Slides', $this -> plugin_name), 'slideshow_slides', $this -> sections -> slides, array($this, 'admin_slides'));
184
- $this -> menus['slideshow-galleries'] = add_submenu_page($this -> sections -> slides, __('Manage Galleries', $this -> plugin_name), __('Manage Galleries', $this -> plugin_name), 'slideshow_galleries', $this -> sections -> galleries, array($this, 'admin_galleries'));
185
- $this -> menus['slideshow-settings'] = add_submenu_page($this -> sections -> slides, __('Configuration', $this -> plugin_name), __('Configuration', $this -> plugin_name), 'slideshow_settings', $this -> sections -> settings, array($this, 'admin_settings'));
186
 
187
  if (!$this -> ci_serial_valid()) {
188
- $this -> menus['slideshow-submitserial'] = add_submenu_page($this -> sections -> slides, __('Submit Serial Key', $this -> plugin_name), __('Submit Serial Key', $this -> plugin_name), 'slideshow_submitserial', $this -> sections -> submitserial, array($this, 'admin_submitserial'));
189
  }
190
 
 
 
 
191
  do_action('slideshow_admin_menu', $this -> menus);
192
 
193
  add_action('admin_head-' . $this -> menus['slideshow-settings'], array($this, 'admin_head_gallery_settings'));
@@ -196,6 +198,82 @@ if (!class_exists('Gallery')) {
196
  remove_submenu_page('index.php', $this -> sections -> about);
197
  }
198
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
199
  function slideshow_gallery_about() {
200
  $this -> render('about', false, true, 'admin');
201
  }
@@ -205,15 +283,15 @@ if (!class_exists('Gallery')) {
205
  }
206
 
207
  function admin_head_gallery_settings() {
208
- add_meta_box('submitdiv', __('Save Settings', $this -> plugin_name), array($this -> Metabox, "settings_submit"), $this -> menus['slideshow-settings'], 'side', 'core');
209
- add_meta_box('pluginsdiv', __('Recommended Plugin', $this -> plugin_name), array($this -> Metabox, "settings_plugins"), $this -> menus['slideshow-settings'], 'side', 'core');
210
- add_meta_box('aboutdiv', __('About This Plugin', $this -> plugin_name) . $this -> Html -> help(__('More about this plugin and the creators of it', $this -> plugin_name)), array($this -> Metabox, "settings_about"), $this -> menus['slideshow-settings'], 'side', 'core');
211
- add_meta_box('generaldiv', __('General Settings', $this -> plugin_name) . $this -> Html -> help(__('General configuration settings for the inner workings and some default behaviours', $this -> plugin_name)), array($this -> Metabox, "settings_general"), $this -> menus['slideshow-settings'], 'normal', 'core');
212
- add_meta_box('postsdiv', __('Posts/Pages Settings', $this -> plugin_name), array($this -> Metabox, "settings_postspages"), $this -> menus['slideshow-settings'], 'normal', 'core');
213
- add_meta_box('linksimagesdiv', __('Links &amp; Images Overlay', $this -> plugin_name) . $this -> Html -> help(__('Configure the way that slides with links are opened', $this -> plugin_name)), array($this -> Metabox, "settings_linksimages"), $this -> menus['slideshow-settings'], 'normal', 'core');
214
- add_meta_box('stylesdiv', __('Appearance &amp; Styles', $this -> plugin_name) . $this -> Html -> help(__('Change the way the slideshows look so that it suits your needs', $this -> plugin_name)), array($this -> Metabox, "settings_styles"), $this -> menus['slideshow-settings'], 'normal', 'core');
215
- add_meta_box('techdiv', __('Technical Settings', $this -> plugin_name), array($this -> Metabox, "settings_tech"), $this -> menus['slideshow-settings'], 'normal', 'core');
216
- add_meta_box('wprelateddiv', __('WordPress Related', $this -> plugin_name) . $this -> Html -> help(__('Settings specifically related to WordPress', $this -> plugin_name)), array($this -> Metabox, "settings_wprelated"), $this -> menus['slideshow-settings'], 'normal', 'core');
217
 
218
  do_action('do_meta_boxes', $this -> menus['slideshow-settings'], 'normal');
219
  do_action('do_meta_boxes', $this -> menus['slideshow-settings'], 'side');
@@ -223,12 +301,14 @@ if (!class_exists('Gallery')) {
223
  $success = false;
224
 
225
  if (!empty($_POST)) {
226
- if (empty($_REQUEST['serial'])) { $errors[] = __('Please fill in a serial key.', $this -> plugin_name); }
 
 
227
  else {
228
  $this -> update_option('serialkey', $_REQUEST['serial']); //update the DB option
229
  $this -> delete_all_cache('all');
230
 
231
- if (!$this -> ci_serial_valid()) { $errors[] = __('Serial key is invalid, please try again.', $this -> plugin_name); }
232
  else {
233
  delete_transient($this -> pre . 'update_info');
234
  $success = true;
@@ -253,7 +333,7 @@ if (!class_exists('Gallery')) {
253
 
254
  $showmessage_ratereview = $this -> get_option('showmessage_ratereview');
255
  if (!empty($showmessage_ratereview)) {
256
- $message = sprintf(__('You have been using the %s for %s days or more. Please consider to %s it or say it %s on %s.', $this -> plugin_name),
257
  '<a href="https://wordpress.org/plugins/slideshow-gallery/" target="_blank">Tribulant Slideshow Gallery plugin</a>',
258
  $showmessage_ratereview,
259
  '<a class="button" href="https://wordpress.org/support/view/plugin-reviews/slideshow-gallery?rate=5#postform" target="_blank"><i class="fa fa-star"></i> Rate</a>',
@@ -270,9 +350,9 @@ if (!class_exists('Gallery')) {
270
  $hidemessage_upgradetopro = $this -> get_option('hidemessage_upgradetopro');
271
 
272
  if (empty($hidemessage_upgradetopro)) {
273
- $message = sprintf(__('You are using Slideshow Gallery LITE. Take your slideshows to the next level with %s. Already purchased? %s.', $this -> plugin_name), '<a href="' . admin_url('admin.php?page=' . $this -> sections -> lite_upgrade) . '">Slideshow Gallery PRO</a>', '<a href="http://tribulant.com/docs/wordpress-slideshow-gallery/1758" target="_blank">See instructions to install PRO</a>');
274
- $message .= ' <a class="button button-primary" href="' . admin_url('admin.php?page=' . $this -> sections -> lite_upgrade) . '"><i class="fa fa-check"></i> ' . __('Upgrade to PRO', $this -> plugin_name) . '</a>';
275
- $message .= ' <a class="button button-secondary" href="' . admin_url('admin.php?page=' . $this -> sections -> welcome . '&slideshow_method=hidemessage&message=upgradetopro') . '"><i class="fa fa-times"></i> ' . __('Hide this message', $this -> plugin_name) . '</a>';
276
  $dismissable = admin_url('admin.php?page=' . $this -> sections -> welcome . '&slideshow_method=hidemessage&message=upgradetopro');
277
  $this -> render_msg($message, $dismissable, false);
278
 
@@ -416,10 +496,10 @@ if (!class_exists('Gallery')) {
416
  $slideshowtype = "products";
417
  $content = $this -> render('gallery', array('slides' => $slides, 'unique' => 'products' . $productstype . $productsnumber, 'products' => true, 'options' => $s, 'frompost' => false), false, 'default');
418
  } else {
419
- $error = __('No products are available', $this -> plugin_name);
420
  }
421
  } else {
422
- $error = sprintf(__('You need the %sShopping Cart plugin%s to display products slides.', $this -> plugin_name), '<a href="http://tribulant.com/plugins/view/10/wordpress-shopping-cart-plugin" target="_blank">', '</a>');
423
  }
424
  // Featured images
425
  } elseif (!empty($featured)) {
@@ -444,7 +524,7 @@ if (!class_exists('Gallery')) {
444
  $slideshowtype = "featured";
445
  $content = $this -> render('gallery', array('slides' => $slides, 'unique' => 'featured' . $featuredtype . $featurednumber, 'featured' => true, 'options' => $s, 'frompost' => false), false, 'default');
446
  } else {
447
- $error = sprintf(__('No posts with featured images are available. Ensure your theme includes %s support.', $this -> plugin_name), '<code>add_theme_support("post-thumbnails");</code>');
448
  }
449
  // Slides of a gallery
450
  } elseif (!empty($gallery_id)) {
@@ -464,7 +544,7 @@ if (!class_exists('Gallery')) {
464
 
465
  $slidesquery = "SELECT * FROM " . $this -> Slide() -> table . " LEFT JOIN " . $this -> GallerySlides() -> table .
466
  " ON " . $this -> Slide() -> table . ".id = " . $this -> GallerySlides() -> table . ".slide_id WHERE " .
467
- $this -> GallerySlides() -> table . ".gallery_id = '" . $gallery_id . "' " . $orderbystring;
468
 
469
  $query_hash = md5($slidesquery);
470
  if ($oc_slides = wp_cache_get($query_hash, 'slideshowgallery')) {
@@ -485,7 +565,7 @@ if (!class_exists('Gallery')) {
485
  $slideshowtype = "gallery";
486
  $content = $this -> render('gallery', array('slides' => $slides, 'unique' => 'gallery' . $gallery_id . rand(1, 999), 'options' => $s, 'frompost' => false), false, 'default');
487
  } else {
488
- $error = __('No slides are available in this gallery', $this -> plugin_name);
489
  }
490
  // All slides
491
  } elseif (!empty($custom) || empty($post_id)) {
@@ -495,12 +575,22 @@ if (!class_exists('Gallery')) {
495
 
496
  $slides = $this -> Slide() -> find_all(null, null, $orderby);
497
 
498
- if (!empty($exclude)) {
499
- $exclude = array_map('trim', explode(',', $exclude));
500
-
501
- foreach ($slides as $slide_key => $slide) {
502
- if (in_array($slide -> id, $exclude)) {
503
- unset($slides[$slide_key]);
 
 
 
 
 
 
 
 
 
 
504
  }
505
  }
506
  }
@@ -511,7 +601,7 @@ if (!class_exists('Gallery')) {
511
  if (!empty($slides)) {
512
  $content = $this -> render('gallery', array('slides' => $slides, 'unique' => "custom" . rand(1, 999), 'options' => $s, 'frompost' => false), false, 'default');
513
  } else {
514
- $error = __('No slides are available', $this -> plugin_name);
515
  }
516
  // Images of a post/page
517
  } else {
@@ -553,10 +643,10 @@ if (!class_exists('Gallery')) {
553
  $slideshowtype = "post";
554
  $content = $this -> render('gallery', array('slides' => $slides, 'unique' => $pid, 'options' => $s, 'frompost' => true), false, 'default');
555
  } else {
556
- $error = __('No attachments on this post/page', $this -> plugin_name);
557
  }
558
  } else {
559
- $error = __('No post/page ID was specified', $this -> plugin_name);
560
  }
561
  }
562
 
@@ -649,25 +739,24 @@ if (!class_exists('Gallery')) {
649
  if (!empty($id)) {
650
  if ($this -> Slide() -> delete($id)) {
651
  $msg_type = 'message';
652
- $message = __('Slide has been removed', $this -> plugin_name);
653
  } else {
654
  $msg_type = 'error';
655
- $message = __('Slide cannot be removed', $this -> plugin_name);
656
  }
657
  } else {
658
  $msg_type = 'error';
659
- $message = __('No slide was specified', $this -> plugin_name);
660
  }
661
 
662
  $this -> redirect($this -> referer, $msg_type, $message);
663
  break;
664
  case 'save' :
665
- if (!empty($_POST)) {
666
-
667
- check_admin_referer('slideshow-slides-save_' . $_POST['Slide']['id']);
668
-
669
  if ($this -> Slide() -> save($_POST, true)) {
670
- $message = __('Slide has been saved', $this -> plugin_name);
671
 
672
  if (!empty($_POST['continueediting'])) {
673
  $this -> redirect(admin_url('admin.php?page=' . $this -> sections -> slides . '&method=save&id=' . $this -> Slide() -> insertid . '&continueediting=1'), 'message', $message);
@@ -675,7 +764,7 @@ if (!class_exists('Gallery')) {
675
  $this -> redirect($this -> url, "message", $message);
676
  }
677
  } else {
678
- $this -> render_err(__('Slide could not be saved', $this -> plugin_name));
679
  $this -> render('slides' . DS . 'save', false, true, 'admin');
680
  }
681
  } else {
@@ -685,10 +774,9 @@ if (!class_exists('Gallery')) {
685
  }
686
  break;
687
  case 'save-multiple' :
688
- if (!empty($_POST)) {
689
-
690
- check_admin_referer($this -> sections -> slides . '-save-multiple');
691
-
692
  $errors = array();
693
 
694
  if (!empty($_POST['Slide']['slides'])) {
@@ -697,14 +785,16 @@ if (!class_exists('Gallery')) {
697
 
698
  foreach ($slides as $attachment_id => $slide) {
699
  $slide_data = array(
700
- 'title' => $slide['title'],
701
- 'description' => $slide['description'],
702
- 'image' => basename($slide['url']),
703
- 'attachment_id' => $attachment_id,
704
- 'type' => 'media',
705
- 'image_url' => $slide['url'],
706
- 'media_file' => $slide['url'],
707
- 'galleries' => $galleries,
 
 
708
  );
709
 
710
  if (!$this -> Slide() -> save($slide_data)) {
@@ -713,68 +803,16 @@ if (!class_exists('Gallery')) {
713
  }
714
 
715
  if (empty($errors)) {
716
- $message = __('Slides have been saved', $this -> plugin_name);
717
  $this -> redirect(admin_url('admin.php?page=' . $this -> sections -> slides), 'message', $message);
718
  }
719
  } else {
720
- $errors[] = __('No slides were selected', $this -> plugin_name);
721
  }
722
  }
723
 
724
  $this -> render('slides' . DS . 'save-multiple', array('errors' => $errors), true, 'admin');
725
  break;
726
- case 'mass' :
727
-
728
- check_admin_referer($this -> sections -> slides . '-bulkaction');
729
-
730
- if (!empty($_POST['action'])) {
731
- if (!empty($_POST['Slide']['checklist'])) {
732
- switch ($_POST['action']) {
733
- case 'remgalleries' :
734
- foreach ($_POST['Slide']['checklist'] as $slide_id) {
735
- $this -> GallerySlides() -> delete_all(array('slide_id' => $slide_id));
736
- }
737
-
738
- $message = __('Selected slides removed from all galleries', $this -> plugin_name);
739
- $this -> redirect($this -> url, 'message', $message);
740
- break;
741
- case 'setgalleries' :
742
- foreach ($_POST['Slide']['checklist'] as $slide_id) {
743
- $this -> GallerySlides() -> delete_all(array('slide_id' => $slide_id));
744
- }
745
- case 'addgalleries' :
746
- if (!empty($_POST['galleries'])) {
747
- foreach ($_POST['Slide']['checklist'] as $slide_id) {
748
- foreach ($_POST['galleries'] as $gallery_id) {
749
- $this -> GallerySlides() -> save(array(
750
- 'slide_id' => $slide_id,
751
- 'gallery_id' => $gallery_id,
752
- ));
753
- }
754
- }
755
-
756
- $message = __('Slides added to selected galleries', $this -> plugin_name);
757
- $this -> redirect($this -> url, 'message', $message);
758
- }
759
- break;
760
- case 'delete' :
761
- foreach ($_POST['Slide']['checklist'] as $slide_id) {
762
- $this -> Slide() -> delete($slide_id);
763
- }
764
-
765
- $message = __('Selected slides have been removed', $this -> plugin_name);
766
- $this -> redirect($this -> url, 'message', $message);
767
- break;
768
- }
769
- } else {
770
- $message = __('No slides were selected', $this -> plugin_name);
771
- $this -> redirect($this -> url, "error", $message);
772
- }
773
- } else {
774
- $message = __('No action was specified', $this -> plugin_name);
775
- $this -> redirect($this -> url, "error", $message);
776
- }
777
- break;
778
  case 'order' :
779
  $gallery_id = esc_html($_GET['gallery_id']);
780
  if (!empty($gallery_id)) {
@@ -804,12 +842,7 @@ if (!class_exists('Gallery')) {
804
  }
805
  break;
806
  default :
807
- $perpage = (isset($_COOKIE[$this -> pre . 'slidesperpage'])) ? $_COOKIE[$this -> pre . 'slidesperpage'] : 25;
808
- $orderfield = (empty($_GET['orderby'])) ? 'modified' : esc_html($_GET['orderby']);
809
- $orderdirection = (empty($_GET['order'])) ? 'DESC' : strtoupper(esc_html($_GET['order']));
810
- $order = array($orderfield, $orderdirection);
811
- $data = $this -> paginate('Slide', false, false, false, false, $perpage, $order);
812
- $this -> render('slides' . DS . 'index', array('list_table' => $list_table, 'slides' => $data[$this -> Slide() -> model], 'paginate' => $data['Paginate']), true, 'admin');
813
  break;
814
  }
815
  }
@@ -819,12 +852,11 @@ if (!class_exists('Gallery')) {
819
  $method = esc_html($_GET['method']);
820
  switch ($method) {
821
  case 'save' :
822
- if (!empty($_POST)) {
823
-
824
- check_admin_referer('slideshow-galleries-save_' . $_POST['Gallery']['id']);
825
-
826
  if ($this -> Gallery() -> save($_POST, true)) {
827
- $message = __('Gallery has been saved', $this -> plugin_name);
828
 
829
  if (!empty($_POST['continueediting'])) {
830
  $this -> redirect(admin_url('admin.php?page=' . $this -> sections -> galleries . '&method=save&id=' . $this -> Gallery() -> insertid . '&continueediting=1'), 'message', $message);
@@ -869,50 +901,20 @@ if (!class_exists('Gallery')) {
869
  if (!empty($id)) {
870
  if ($this -> Gallery() -> delete(esc_html($_GET['id']))) {
871
  $msg_type = 'message';
872
- $message = __('Gallery has been removed', $this -> plugin_name);
873
  } else {
874
  $msg_type = 'error';
875
- $message = __('Gallery cannot be removed', $this -> plugin_name);
876
  }
877
  } else {
878
  $msg_type = 'error';
879
- $message = __('No gallery was specified', $this -> plugin_name);
880
  }
881
 
882
  $this -> redirect($this -> referer, $msg_type, $message);
883
  break;
884
- case 'mass' :
885
-
886
- check_admin_referer($this -> sections -> galleries . '-bulkaction');
887
-
888
- if (!empty($_POST['action'])) {
889
- if (!empty($_POST['Gallery']['checklist'])) {
890
- switch ($_POST['action']) {
891
- case 'delete' :
892
- foreach ($_POST['Gallery']['checklist'] as $gallery_id) {
893
- $this -> Gallery() -> delete($gallery_id);
894
- }
895
-
896
- $message = __('Selected galleries have been removed', $this -> plugin_name);
897
- $this -> redirect($this -> url, 'message', $message);
898
- break;
899
- }
900
- } else {
901
- $message = __('No slides were selected', $this -> plugin_name);
902
- $this -> redirect($this -> url, "error", $message);
903
- }
904
- } else {
905
- $message = __('No action was specified', $this -> plugin_name);
906
- $this -> redirect($this -> url, "error", $message);
907
- }
908
- break;
909
  default :
910
- $perpage = (isset($_COOKIE[$this -> pre . 'galleriesperpage'])) ? $_COOKIE[$this -> pre . 'galleriesperpage'] : 10;
911
- $orderfield = (empty($_GET['orderby'])) ? 'modified' : esc_html($_GET['orderby']);
912
- $orderdirection = (empty($_GET['order'])) ? 'DESC' : strtoupper(esc_html($_GET['order']));
913
- $order = array($orderfield, $orderdirection);
914
- $data = $this -> paginate('Gallery', false, false, false, false, $perpage, $order);
915
- $this -> render('galleries' . DS . 'index', array('galleries' => $data[$this -> Gallery() -> model], 'paginate' => $data['Paginate']), true, 'admin');
916
  break;
917
  }
918
  }
@@ -939,7 +941,7 @@ if (!class_exists('Gallery')) {
939
  }
940
  }
941
 
942
- $this -> redirect($this -> referer, 'message', __('Database tables have been checked and optimized', $this -> plugin_name));
943
  break;
944
  case 'reset' :
945
  global $wpdb;
@@ -948,11 +950,11 @@ if (!class_exists('Gallery')) {
948
  if ($wpdb -> query($query)) {
949
  $this -> initialize_options();
950
 
951
- $message = __('All configuration settings have been reset to their defaults', $this -> plugin_name);
952
  $msg_type = 'message';
953
  $this -> render_msg($message);
954
  } else {
955
- $message = __('Configuration settings could not be reset', $this -> plugin_name);
956
  $msg_type = 'error';
957
  $this -> render_err($message);
958
  }
@@ -960,10 +962,9 @@ if (!class_exists('Gallery')) {
960
  $this -> redirect($this -> url, $msg_type, $message);
961
  break;
962
  default :
963
- if (!empty($_POST)) {
964
-
965
  check_admin_referer($this -> sections -> settings);
966
-
967
  delete_option('tridebugging');
968
  $this -> delete_option('infohideonmobile');
969
  $this -> delete_option('autoheight');
@@ -1048,7 +1049,7 @@ if (!class_exists('Gallery')) {
1048
  $this -> delete_option('thumbhideonmobile');
1049
  }
1050
 
1051
- $message = __('Configuration has been saved', $this -> plugin_name);
1052
  $this -> render_msg($message);
1053
  }
1054
 
@@ -1092,7 +1093,12 @@ if (!class_exists('Gallery')) {
1092
  }
1093
  }
1094
 
 
 
 
 
1095
  //initialize a Gallery object
 
1096
  $Gallery = new SlideshowGallery();
1097
  register_activation_hook(plugin_basename(__FILE__), array($Gallery, 'initialize_options'));
1098
  register_activation_hook(plugin_basename(__FILE__), array($Gallery, 'activation_hook'));
2
 
3
  /*
4
  Plugin Name: Slideshow Gallery
5
+ Plugin URI: https://tribulant.com/plugins/view/13/wordpress-slideshow-gallery
6
  Author: Tribulant Software
7
+ Author URI: https://tribulant.com
8
  Description: Feature content in a JavaScript powered slideshow gallery showcase on your WordPress website. The slideshow is flexible and all aspects can easily be configured. Embedding or hardcoding the slideshow gallery is a breeze. To embed into a post/page, simply insert <code>[tribulant_slideshow]</code> into its content with an optional <code>post_id</code> parameter. To hardcode into any PHP file of your WordPress theme, simply use <code>&lt;?php if (function_exists('slideshow')) { slideshow($output = true, $post_id = false, $gallery_id = false, $params = array()); } ?&gt;</code>.
9
+ Version: 1.6.8
10
  License: GNU General Public License v2 or later
11
+ License URI: https://www.gnu.org/licenses/gpl-2.0.html
12
  Tags: slideshow gallery, slideshow, gallery, slider, jquery, bfithumb, galleries, photos, images
13
  Text Domain: slideshow-gallery
14
  Domain Path: /languages
26
  require_once(dirname(__FILE__) . DS . 'vendors' . DS . 'otf_regen_thumbs.php');
27
  }
28
 
29
+ if (!class_exists('SlideshowGallery')) {
30
  class SlideshowGallery extends GalleryPlugin {
31
 
32
  function __construct() {
99
  $this_plugin = plugin_basename(__FILE__);
100
 
101
  if (!empty($plugin_file) && $plugin_file == $this_plugin) {
102
+ $actions[] = '<a href="" onclick="jQuery.colorbox({href:ajaxurl + \'?action=slideshow_serialkey\'}); return false;" id="slideshow_submitseriallink">' . __('Serial Key', 'slideshow-gallery') . '</a>';
103
+ $actions[] = '<a href="' . admin_url('admin.php?page=' . $this -> sections -> settings) . '">' . __('Settings', 'slideshow-gallery') . '</a>';
104
  }
105
 
106
  return $actions;
107
  }
108
 
109
  function init() {
 
 
110
  }
111
 
112
  function init_textdomain() {
176
  }
177
 
178
  function admin_menu() {
179
+ $update_icon = ($this -> has_update()) ? ' <span class="update-plugins count-1"><span class="update-count">1</span></span>' : '';
180
  $this -> check_roles();
181
+ add_menu_page(__('Slideshow', 'slideshow-gallery'), __('Slideshow', 'slideshow-gallery') . $update_icon, 'slideshow_slides', $this -> sections -> slides, array($this, 'admin_slides'), false, "26.113");
182
+ $this -> menus['slideshow-slides'] = add_submenu_page($this -> sections -> slides, __('Manage Slides', 'slideshow-gallery'), __('Manage Slides', 'slideshow-gallery'), 'slideshow_slides', $this -> sections -> slides, array($this, 'admin_slides'));
183
+ $this -> menus['slideshow-galleries'] = add_submenu_page($this -> sections -> slides, __('Manage Galleries', 'slideshow-gallery'), __('Manage Galleries', 'slideshow-gallery'), 'slideshow_galleries', $this -> sections -> galleries, array($this, 'admin_galleries'));
184
+ $this -> menus['slideshow-settings'] = add_submenu_page($this -> sections -> slides, __('Configuration', 'slideshow-gallery'), __('Configuration', 'slideshow-gallery'), 'slideshow_settings', $this -> sections -> settings, array($this, 'admin_settings'));
185
 
186
  if (!$this -> ci_serial_valid()) {
187
+ $this -> menus['slideshow-submitserial'] = add_submenu_page($this -> sections -> slides, __('Submit Serial Key', 'slideshow-gallery'), __('Submit Serial Key', 'slideshow-gallery'), 'slideshow_submitserial', $this -> sections -> submitserial, array($this, 'admin_submitserial'));
188
  }
189
 
190
+ add_action("load-" . $this -> menus['slideshow-slides'], array($this, 'screen_options_slides'));
191
+ add_action("load-" . $this -> menus['slideshow-galleries'], array($this, 'screen_options_galleries'));
192
+
193
  do_action('slideshow_admin_menu', $this -> menus);
194
 
195
  add_action('admin_head-' . $this -> menus['slideshow-settings'], array($this, 'admin_head_gallery_settings'));
198
  remove_submenu_page('index.php', $this -> sections -> about);
199
  }
200
 
201
+ function set_screen_option($status = null, $option = null, $value = null) {
202
+ return $value;
203
+ }
204
+
205
+ function removable_query_args($removable_query_args = array()) {
206
+
207
+ $removable_query_args[] = 'Galleryupdated';
208
+ $removable_query_args[] = 'Gallerymessage';
209
+
210
+ return $removable_query_args;
211
+ }
212
+
213
+ function screen_options_slides() {
214
+ $screen = get_current_screen();
215
+
216
+ // get out of here if we are not on our settings page
217
+ if (!is_object($screen) || $screen -> id != $this -> menus['slideshow-slides']) {
218
+ return;
219
+ }
220
+
221
+ $args = array(
222
+ 'label' => __('Slides per page', 'slideshow-gallery'),
223
+ 'default' => 15,
224
+ 'option' => 'slideshow_slides_perpage'
225
+ );
226
+
227
+ add_screen_option('per_page', $args);
228
+
229
+ require_once $this -> plugin_base() . DS . 'includes' . DS . 'class.slide-list-table.php';
230
+ $Slide_List_Table = new Slide_List_Table;
231
+ }
232
+
233
+ function screen_options_galleries() {
234
+ $screen = get_current_screen();
235
+
236
+ // get out of here if we are not on our settings page
237
+ if (!is_object($screen) || $screen -> id != $this -> menus['slideshow-galleries']) {
238
+ return;
239
+ }
240
+
241
+ $args = array(
242
+ 'label' => __('Galleries per page', 'slideshow-gallery'),
243
+ 'default' => 15,
244
+ 'option' => 'slideshow_galleries_perpage'
245
+ );
246
+
247
+ add_screen_option('per_page', $args);
248
+
249
+ require_once $this -> plugin_base() . DS . 'includes' . DS . 'class.gallery-list-table.php';
250
+ $Gallery_List_Table = new Gallery_List_Table;
251
+ }
252
+
253
+ function default_hidden_columns($hidden = null, $screen = null) {
254
+ if ($current_screen = get_current_screen()) {
255
+ if ($current_screen -> id == $screen -> id) {
256
+ switch ($screen -> id) {
257
+ case $this -> menus['slideshow-slides'] :
258
+ $hidden = array(
259
+ 'id',
260
+ 'link',
261
+ 'expiry',
262
+ 'order',
263
+ );
264
+ break;
265
+ case $this -> menus['slideshow-galleries'] :
266
+ $hidden = array(
267
+ 'id',
268
+ );
269
+ break;
270
+ }
271
+ }
272
+ }
273
+
274
+ return $hidden;
275
+ }
276
+
277
  function slideshow_gallery_about() {
278
  $this -> render('about', false, true, 'admin');
279
  }
283
  }
284
 
285
  function admin_head_gallery_settings() {
286
+ add_meta_box('submitdiv', __('Save Settings', 'slideshow-gallery'), array($this -> Metabox, "settings_submit"), $this -> menus['slideshow-settings'], 'side', 'core');
287
+ add_meta_box('pluginsdiv', __('Recommended Plugin', 'slideshow-gallery'), array($this -> Metabox, "settings_plugins"), $this -> menus['slideshow-settings'], 'side', 'core');
288
+ add_meta_box('aboutdiv', __('About This Plugin', 'slideshow-gallery') . $this -> Html -> help(__('More about this plugin and the creators of it', 'slideshow-gallery')), array($this -> Metabox, "settings_about"), $this -> menus['slideshow-settings'], 'side', 'core');
289
+ add_meta_box('generaldiv', __('General Settings', 'slideshow-gallery') . $this -> Html -> help(__('General configuration settings for the inner workings and some default behaviours', 'slideshow-gallery')), array($this -> Metabox, "settings_general"), $this -> menus['slideshow-settings'], 'normal', 'core');
290
+ add_meta_box('postsdiv', __('Posts/Pages Settings', 'slideshow-gallery'), array($this -> Metabox, "settings_postspages"), $this -> menus['slideshow-settings'], 'normal', 'core');
291
+ add_meta_box('linksimagesdiv', __('Links &amp; Images Overlay', 'slideshow-gallery') . $this -> Html -> help(__('Configure the way that slides with links are opened', 'slideshow-gallery')), array($this -> Metabox, "settings_linksimages"), $this -> menus['slideshow-settings'], 'normal', 'core');
292
+ add_meta_box('stylesdiv', __('Appearance &amp; Styles', 'slideshow-gallery') . $this -> Html -> help(__('Change the way the slideshows look so that it suits your needs', 'slideshow-gallery')), array($this -> Metabox, "settings_styles"), $this -> menus['slideshow-settings'], 'normal', 'core');
293
+ add_meta_box('techdiv', __('Technical Settings', 'slideshow-gallery'), array($this -> Metabox, "settings_tech"), $this -> menus['slideshow-settings'], 'normal', 'core');
294
+ add_meta_box('wprelateddiv', __('WordPress Related', 'slideshow-gallery') . $this -> Html -> help(__('Settings specifically related to WordPress', 'slideshow-gallery')), array($this -> Metabox, "settings_wprelated"), $this -> menus['slideshow-settings'], 'normal', 'core');
295
 
296
  do_action('do_meta_boxes', $this -> menus['slideshow-settings'], 'normal');
297
  do_action('do_meta_boxes', $this -> menus['slideshow-settings'], 'side');
301
  $success = false;
302
 
303
  if (!empty($_POST)) {
304
+ check_admin_referer($this -> sections -> submitserial);
305
+
306
+ if (empty($_REQUEST['serial'])) { $errors[] = __('Please fill in a serial key.', 'slideshow-gallery'); }
307
  else {
308
  $this -> update_option('serialkey', $_REQUEST['serial']); //update the DB option
309
  $this -> delete_all_cache('all');
310
 
311
+ if (!$this -> ci_serial_valid()) { $errors[] = __('Serial key is invalid, please try again.', 'slideshow-gallery'); }
312
  else {
313
  delete_transient($this -> pre . 'update_info');
314
  $success = true;
333
 
334
  $showmessage_ratereview = $this -> get_option('showmessage_ratereview');
335
  if (!empty($showmessage_ratereview)) {
336
+ $message = sprintf(__('You have been using the %s for %s days or more. Please consider to %s it or say it %s on %s.', 'slideshow-gallery'),
337
  '<a href="https://wordpress.org/plugins/slideshow-gallery/" target="_blank">Tribulant Slideshow Gallery plugin</a>',
338
  $showmessage_ratereview,
339
  '<a class="button" href="https://wordpress.org/support/view/plugin-reviews/slideshow-gallery?rate=5#postform" target="_blank"><i class="fa fa-star"></i> Rate</a>',
350
  $hidemessage_upgradetopro = $this -> get_option('hidemessage_upgradetopro');
351
 
352
  if (empty($hidemessage_upgradetopro)) {
353
+ $message = sprintf(__('You are using Slideshow Gallery LITE. Take your slideshows to the next level with %s. Already purchased? %s.', 'slideshow-gallery'), '<a href="' . admin_url('admin.php?page=' . $this -> sections -> lite_upgrade) . '">Slideshow Gallery PRO</a>', '<a href="https://tribulant.com/docs/wordpress-slideshow-gallery/1758" target="_blank">See instructions to install PRO</a>');
354
+ $message .= ' <a class="button button-primary" href="' . admin_url('admin.php?page=' . $this -> sections -> lite_upgrade) . '"><i class="fa fa-check"></i> ' . __('Upgrade to PRO', 'slideshow-gallery') . '</a>';
355
+ $message .= ' <a class="button button-secondary" href="' . admin_url('admin.php?page=' . $this -> sections -> welcome . '&slideshow_method=hidemessage&message=upgradetopro') . '"><i class="fa fa-times"></i> ' . __('Hide this message', 'slideshow-gallery') . '</a>';
356
  $dismissable = admin_url('admin.php?page=' . $this -> sections -> welcome . '&slideshow_method=hidemessage&message=upgradetopro');
357
  $this -> render_msg($message, $dismissable, false);
358
 
496
  $slideshowtype = "products";
497
  $content = $this -> render('gallery', array('slides' => $slides, 'unique' => 'products' . $productstype . $productsnumber, 'products' => true, 'options' => $s, 'frompost' => false), false, 'default');
498
  } else {
499
+ $error = __('No products are available', 'slideshow-gallery');
500
  }
501
  } else {
502
+ $error = sprintf(__('You need the %sShopping Cart plugin%s to display products slides.', 'slideshow-gallery'), '<a href="https://tribulant.com/plugins/view/10/wordpress-shopping-cart-plugin" target="_blank">', '</a>');
503
  }
504
  // Featured images
505
  } elseif (!empty($featured)) {
524
  $slideshowtype = "featured";
525
  $content = $this -> render('gallery', array('slides' => $slides, 'unique' => 'featured' . $featuredtype . $featurednumber, 'featured' => true, 'options' => $s, 'frompost' => false), false, 'default');
526
  } else {
527
+ $error = sprintf(__('No posts with featured images are available. Ensure your theme includes %s support.', 'slideshow-gallery'), '<code>add_theme_support("post-thumbnails");</code>');
528
  }
529
  // Slides of a gallery
530
  } elseif (!empty($gallery_id)) {
544
 
545
  $slidesquery = "SELECT * FROM " . $this -> Slide() -> table . " LEFT JOIN " . $this -> GallerySlides() -> table .
546
  " ON " . $this -> Slide() -> table . ".id = " . $this -> GallerySlides() -> table . ".slide_id WHERE " .
547
+ $this -> GallerySlides() -> table . ".gallery_id = '" . $gallery_id . "' AND (" . $this -> Slide() -> table . ".expiry = NULL OR " . $this -> Slide() -> table . ".expiry > CURDATE() OR " . $this -> Slide() -> table . ".expiry = '0000-00-00') " . $orderbystring;
548
 
549
  $query_hash = md5($slidesquery);
550
  if ($oc_slides = wp_cache_get($query_hash, 'slideshowgallery')) {
565
  $slideshowtype = "gallery";
566
  $content = $this -> render('gallery', array('slides' => $slides, 'unique' => 'gallery' . $gallery_id . rand(1, 999), 'options' => $s, 'frompost' => false), false, 'default');
567
  } else {
568
+ $error = __('No slides are available in this gallery', 'slideshow-gallery');
569
  }
570
  // All slides
571
  } elseif (!empty($custom) || empty($post_id)) {
575
 
576
  $slides = $this -> Slide() -> find_all(null, null, $orderby);
577
 
578
+ if (!empty($slides)) {
579
+ foreach ($slides as $slide_key => $slide) {
580
+
581
+ // Check exclude
582
+ if (!empty($exclude)) {
583
+ $exclude = array_map('trim', explode(',', $exclude));
584
+ if (in_array($slide -> id, $exclude)) {
585
+ unset($slides[$slide_key]);
586
+ }
587
+ }
588
+
589
+ // Check slide expiration
590
+ if (!empty($slide -> expiry)) {
591
+ if (strtotime($slide -> expiry) <= time()) {
592
+ unset($slides[$slide_key]);
593
+ }
594
  }
595
  }
596
  }
601
  if (!empty($slides)) {
602
  $content = $this -> render('gallery', array('slides' => $slides, 'unique' => "custom" . rand(1, 999), 'options' => $s, 'frompost' => false), false, 'default');
603
  } else {
604
+ $error = __('No slides are available', 'slideshow-gallery');
605
  }
606
  // Images of a post/page
607
  } else {
643
  $slideshowtype = "post";
644
  $content = $this -> render('gallery', array('slides' => $slides, 'unique' => $pid, 'options' => $s, 'frompost' => true), false, 'default');
645
  } else {
646
+ $error = __('No attachments on this post/page', 'slideshow-gallery');
647
  }
648
  } else {
649
+ $error = __('No post/page ID was specified', 'slideshow-gallery');
650
  }
651
  }
652
 
739
  if (!empty($id)) {
740
  if ($this -> Slide() -> delete($id)) {
741
  $msg_type = 'message';
742
+ $message = __('Slide has been removed', 'slideshow-gallery');
743
  } else {
744
  $msg_type = 'error';
745
+ $message = __('Slide cannot be removed', 'slideshow-gallery');
746
  }
747
  } else {
748
  $msg_type = 'error';
749
+ $message = __('No slide was specified', 'slideshow-gallery');
750
  }
751
 
752
  $this -> redirect($this -> referer, $msg_type, $message);
753
  break;
754
  case 'save' :
755
+ if (!empty($_POST)) {
756
+ check_admin_referer($this -> sections -> slides . '_save');
757
+
 
758
  if ($this -> Slide() -> save($_POST, true)) {
759
+ $message = __('Slide has been saved', 'slideshow-gallery');
760
 
761
  if (!empty($_POST['continueediting'])) {
762
  $this -> redirect(admin_url('admin.php?page=' . $this -> sections -> slides . '&method=save&id=' . $this -> Slide() -> insertid . '&continueediting=1'), 'message', $message);
764
  $this -> redirect($this -> url, "message", $message);
765
  }
766
  } else {
767
+ $this -> render_err(__('Slide could not be saved', 'slideshow-gallery'));
768
  $this -> render('slides' . DS . 'save', false, true, 'admin');
769
  }
770
  } else {
774
  }
775
  break;
776
  case 'save-multiple' :
777
+ if (!empty($_POST)) {
778
+ check_admin_referer($this -> sections -> slides . '_save-multiple');
779
+
 
780
  $errors = array();
781
 
782
  if (!empty($_POST['Slide']['slides'])) {
785
 
786
  foreach ($slides as $attachment_id => $slide) {
787
  $slide_data = array(
788
+ 'Slide' => array(
789
+ 'title' => $slide['title'],
790
+ 'description' => $slide['description'],
791
+ 'image' => basename($slide['url']),
792
+ 'attachment_id' => $attachment_id,
793
+ 'type' => 'media',
794
+ 'image_url' => $slide['url'],
795
+ 'media_file' => $slide['url'],
796
+ 'galleries' => $galleries,
797
+ )
798
  );
799
 
800
  if (!$this -> Slide() -> save($slide_data)) {
803
  }
804
 
805
  if (empty($errors)) {
806
+ $message = __('Slides have been saved', 'slideshow-gallery');
807
  $this -> redirect(admin_url('admin.php?page=' . $this -> sections -> slides), 'message', $message);
808
  }
809
  } else {
810
+ $errors[] = __('No slides were selected', 'slideshow-gallery');
811
  }
812
  }
813
 
814
  $this -> render('slides' . DS . 'save-multiple', array('errors' => $errors), true, 'admin');
815
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
816
  case 'order' :
817
  $gallery_id = esc_html($_GET['gallery_id']);
818
  if (!empty($gallery_id)) {
842
  }
843
  break;
844
  default :
845
+ $this -> render('slides' . DS . 'index', false, true, 'admin');
 
 
 
 
 
846
  break;
847
  }
848
  }
852
  $method = esc_html($_GET['method']);
853
  switch ($method) {
854
  case 'save' :
855
+ if (!empty($_POST)) {
856
+ check_admin_referer($this -> sections -> galleries . '_save');
857
+
 
858
  if ($this -> Gallery() -> save($_POST, true)) {
859
+ $message = __('Gallery has been saved', 'slideshow-gallery');
860
 
861
  if (!empty($_POST['continueediting'])) {
862
  $this -> redirect(admin_url('admin.php?page=' . $this -> sections -> galleries . '&method=save&id=' . $this -> Gallery() -> insertid . '&continueediting=1'), 'message', $message);
901
  if (!empty($id)) {
902
  if ($this -> Gallery() -> delete(esc_html($_GET['id']))) {
903
  $msg_type = 'message';
904
+ $message = __('Gallery has been removed', 'slideshow-gallery');
905
  } else {
906
  $msg_type = 'error';
907
+ $message = __('Gallery cannot be removed', 'slideshow-gallery');
908
  }
909
  } else {
910
  $msg_type = 'error';
911
+ $message = __('No gallery was specified', 'slideshow-gallery');
912
  }
913
 
914
  $this -> redirect($this -> referer, $msg_type, $message);
915
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
916
  default :
917
+ $this -> render('galleries' . DS . 'index', false, true, 'admin');
 
 
 
 
 
918
  break;
919
  }
920
  }
941
  }
942
  }
943
 
944
+ $this -> redirect($this -> referer, 'message', __('Database tables have been checked and optimized', 'slideshow-gallery'));
945
  break;
946
  case 'reset' :
947
  global $wpdb;
950
  if ($wpdb -> query($query)) {
951
  $this -> initialize_options();
952
 
953
+ $message = __('All configuration settings have been reset to their defaults', 'slideshow-gallery');
954
  $msg_type = 'message';
955
  $this -> render_msg($message);
956
  } else {
957
+ $message = __('Configuration settings could not be reset', 'slideshow-gallery');
958
  $msg_type = 'error';
959
  $this -> render_err($message);
960
  }
962
  $this -> redirect($this -> url, $msg_type, $message);
963
  break;
964
  default :
965
+ if (!empty($_POST)) {
 
966
  check_admin_referer($this -> sections -> settings);
967
+
968
  delete_option('tridebugging');
969
  $this -> delete_option('infohideonmobile');
970
  $this -> delete_option('autoheight');
1049
  $this -> delete_option('thumbhideonmobile');
1050
  }
1051
 
1052
+ $message = __('Configuration has been saved', 'slideshow-gallery');
1053
  $this -> render_msg($message);
1054
  }
1055
 
1093
  }
1094
  }
1095
 
1096
+ function SG($param = null) {
1097
+ return new SlideshowGallery($param);
1098
+ }
1099
+
1100
  //initialize a Gallery object
1101
+ global $Gallery;
1102
  $Gallery = new SlideshowGallery();
1103
  register_activation_hook(plugin_basename(__FILE__), array($Gallery, 'initialize_options'));
1104
  register_activation_hook(plugin_basename(__FILE__), array($Gallery, 'activation_hook'));
vendors/BFI_Thumb.php CHANGED
@@ -15,7 +15,7 @@
15
  * GNU General Public License for more details.
16
  *
17
  * You should have received a copy of the GNU General Public License
18
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
19
  */
20
 
21
  /** Uses WP's Image Editor Class to resize and filter images
@@ -142,7 +142,7 @@ class BFI_Image_Editor_Imagick_1_3 extends WP_Image_Editor_Imagick {
142
  $opacity /= 100;
143
 
144
  try {
145
- // From: http://stackoverflow.com/questions/3538851/php-imagick-setimageopacity-destroys-transparency-and-does-nothing
146
  // preserves transparency
147
  //$this->image->setImageOpacity($opacity);
148
  return $this->image->evaluateImage(Imagick::EVALUATE_MULTIPLY, $opacity, Imagick::CHANNEL_ALPHA);
@@ -257,7 +257,7 @@ class BFI_Image_Editor_GD_1_3 extends WP_Image_Editor_GD {
257
  return new WP_Error( 'image_opacity_error', __('Image opacity change failed.', 'default'), $this->file );
258
  }
259
 
260
- // from: http://php.net/manual/en/function.imagefilter.php
261
  // params: image resource id, opacity (eg. 0.0-1.0)
262
  protected function _opacity($image, $opacity) {
263
  if (!function_exists('imagealphablending') ||
15
  * GNU General Public License for more details.
16
  *
17
  * You should have received a copy of the GNU General Public License
18
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
19
  */
20
 
21
  /** Uses WP's Image Editor Class to resize and filter images
142
  $opacity /= 100;
143
 
144
  try {
145
+ // From: https://stackoverflow.com/questions/3538851/php-imagick-setimageopacity-destroys-transparency-and-does-nothing
146
  // preserves transparency
147
  //$this->image->setImageOpacity($opacity);
148
  return $this->image->evaluateImage(Imagick::EVALUATE_MULTIPLY, $opacity, Imagick::CHANNEL_ALPHA);
257
  return new WP_Error( 'image_opacity_error', __('Image opacity change failed.', 'default'), $this->file );
258
  }
259
 
260
+ // from: https://php.net/manual/en/function.imagefilter.php
261
  // params: image resource id, opacity (eg. 0.0-1.0)
262
  protected function _opacity($image, $opacity) {
263
  if (!function_exists('imagealphablending') ||
vendors/class.paginate.php DELETED
@@ -1,247 +0,0 @@
1
- <?php
2
-
3
- if (!defined('ABSPATH')) exit; // Exit if accessed directly
4
-
5
- class GalleryPaginate extends GalleryPlugin {
6
-
7
- /**
8
- * DB table name to paginate on
9
- *
10
- */
11
- var $table = '';
12
-
13
- /**
14
- * Fields for SELECT query
15
- * Only these fields will be fetched.
16
- * Use asterix for all available fields
17
- *
18
- */
19
- var $fields = '*';
20
-
21
- /**
22
- * Current page
23
- *
24
- */
25
- var $page = 1;
26
-
27
- /**
28
- * Records to show per page
29
- *
30
- */
31
- var $per_page = 10;
32
-
33
- /**
34
- * WHERE conditions
35
- * This should be an array
36
- *
37
- */
38
- var $where = '';
39
-
40
- /**
41
- * ORDER condition
42
- *
43
- */
44
- var $order = array('modified', "DESC");
45
-
46
- var $plugin_url = '';
47
- var $sub = '';
48
- var $parent = '';
49
-
50
- var $allcount = 0;
51
- var $allRecords = array();
52
-
53
- var $pagination = '';
54
-
55
- function __construct($table = null, $fields = null, $sub = null, $parent = null) {
56
- $this -> sub = $sub;
57
- $this -> parentd = $parent;
58
-
59
- if (!empty($table)) {
60
- $this -> table = $table;
61
- }
62
-
63
- if (!empty($fields)) {
64
- $this -> fields = $fields;
65
- }
66
- }
67
-
68
- function start_paging($page = null) {
69
- global $wpdb;
70
-
71
- $page = (empty($page)) ? 1 : $page;
72
-
73
- if (!empty($page)) {
74
- $this -> page = $page;
75
- }
76
-
77
- if (!empty($this -> fields)) {
78
- if (is_array($this -> fields)) {
79
- $this -> fields = implode(", ", $this -> fields);
80
- }
81
- }
82
-
83
- $query = "SELECT " . $this -> fields . " FROM `" . $this -> table . "`";
84
- $countquery = "SELECT COUNT(*) FROM `" . $this -> table . "`";
85
-
86
- switch ($this -> table) {
87
- case $this -> GallerySlides() -> table :
88
- $query .= " LEFT JOIN " . $this -> Slide() -> table . " ON " . $this -> GallerySlides() -> table . ".slide_id = " . $this -> Slide() -> table . ".id";
89
- break;
90
- }
91
-
92
- //check if some conditions where passed.
93
- if (!empty($this -> where)) {
94
- //append the "WHERE" command to the query
95
- $query .= " WHERE";
96
- $countquery .= " WHERE";
97
- $c = 1;
98
-
99
- foreach ($this -> where as $key => $val) {
100
- if (!empty($val) && is_array($val)) {
101
- $k = 1;
102
-
103
- foreach ($val as $vkey => $vval) {
104
- if (preg_match("/LIKE/si", $val)) {
105
- $query .= " `" . $key . "` " . $vval . "";
106
- $countquery .= " `" . $key . "` " . $vval . "";
107
- } elseif (preg_match("/SE (.*)/si", $vval, $vmatches)) {
108
- if (!empty($vmatches[1])) {
109
- $query .= " `" . $key . "` <= " . $vmatches[1] . "";
110
- $countquery .= " `" . $key . "` <= " . $vmatches[1] . "";;
111
- }
112
- } elseif (preg_match("/LE (.*)/si", $vval, $vmatches)) {
113
- if (!empty($vmatches[1])) {
114
- $query .= " `" . $key . "` >= " . $vmatches[1] . "";
115
- $countquery .= " `" . $key . "` >= " . $vmatches[1] . "";
116
- }
117
- } else {
118
- $query .= " `" . $key . "` = '" . $vval . "'";
119
- $countquery .= " `" . $key . "` = '" . $vval . "'";
120
- }
121
-
122
- if ($k < count($val)) {
123
- $query .= " AND";
124
- $countquery .= " AND";
125
- }
126
-
127
- $k++;
128
- $vmatches = false;
129
- }
130
- } else {
131
- if (preg_match("/LIKE/si", $val)) {
132
- $query .= " `" . $key . "` " . $val . "";
133
- $countquery .= " `" . $key . "` " . $val . "";
134
- } elseif (preg_match("/SE (.*)/si", $val, $vmatches)) {
135
- if (!empty($vmatches[1])) {
136
- $query .= " `" . $key . "` <= " . $vmatches[1] . "";
137
- $countquery .= " `" . $key . "` <= " . $vmatches[1] . "";
138
- }
139
- } elseif (preg_match("/LE (.*)/si", $val, $vmatches)) {
140
- if (!empty($vmatches[1])) {
141
- $query .= " `" . $key . "` >= " . $vmatches[1] . "";
142
- $countquery .= " `" . $key . "` >= " . $vmatches[1] . "";
143
- }
144
- } else {
145
- $query .= " `" . $key . "` = '" . $val . "'";
146
- $countquery .= " `" . $key . "` = '" . $val . "'";
147
- }
148
-
149
- if ($c < count($this -> where)) {
150
- $query .= " AND";
151
- $countquery .= " AND";
152
- }
153
-
154
- $c++;
155
- $vmatches = false;
156
- }
157
- }
158
- }
159
-
160
- $r = 1;
161
-
162
- $this -> doberecords();
163
- list($osortby, $osort) = $this -> order;
164
-
165
- $query .= " ORDER BY " . $this -> table . "." . $osortby . " " . $osort . " LIMIT " . $this -> begRecord . " , " . $this -> per_page . ";";
166
- //echo $query;
167
-
168
- $query_hash = md5($query);
169
- if ($oc_records = wp_cache_get($query_hash, 'slideshowgallery')) {
170
- $records = $oc_records;
171
- } else {
172
- $records = $wpdb -> get_results($query);
173
- wp_cache_set($query_hash, $records, 'slideshowgallery', 0);
174
- }
175
-
176
- $records_count = count($records);
177
- $allRecordsCount = $this -> allcount = $wpdb -> get_var($countquery);
178
- $totalpagescount = ceil($this -> allcount / $this -> per_page);
179
-
180
- $pageparam = (!empty($this -> sub) && $this -> sub == "N") ? '' : 'page=' . $this -> pre . $this -> sub . '&amp;';
181
- $pageparam = '';
182
- $search = (empty($this -> searchterm)) ? '' : '&amp;' . $this -> pre . 'searchterm=' . urlencode($this -> searchterm);
183
-
184
- if (empty($this -> url_page)) {
185
- $this -> url_page = $this -> sub;
186
- }
187
-
188
- list($ofield, $odir) = $this -> order;
189
-
190
- if (count($records) < $allRecordsCount) {
191
-
192
- $p = 1;
193
- $k = 1;
194
- $n = $this -> page;
195
- $search = (empty($this -> searchterm)) ? '' : '&' . $this -> pre . 'searchterm=' . urlencode($this -> searchterm);
196
- $orderby = (empty($ofield)) ? '' : '&orderby=' . $ofield;
197
- $order = (empty($odir)) ? '' : '&order=' . strtolower($odir);
198
- $this -> pagination .= '<span class="displaying-num">' . sprintf(__('%s items', $this -> plugin_name), $this -> allcount) . '</span>';
199
- $this -> pagination .= '<span class="pagination-links">';
200
- $this -> pagination .= '<a href="?page=' . $this -> url_page . '&amp;' . $this -> pre . 'page=1' . $search . $orderby . $order . $this -> after . '" class="first-page' . (($this -> page == 1) ? ' disabled" onclick="return false;' : '') . '">&laquo;</a>';
201
- $this -> pagination .= '<a class="prev-page' . (($this -> page == 1) ? ' disabled" onclick="return false;' : '') . '" href="?page=' . $this -> url_page . '&amp;' . $this -> pre . 'page=' . ($this -> page - 1) . $search . $orderby . $order . $this -> after . '" title="' . __('Previous Page', $this -> plugin_name) . '">&#8249;</a>';
202
- $this -> pagination .= '<span class="paging-input">';
203
- $this -> pagination .= '<input class="slideshow-paged-input current-page" type="text" name="paged" id="paged-input" value="' . $this -> page . '" size="1"> ';
204
- $this -> pagination .= __('of', $this -> plugin_name);
205
- $this -> pagination .= ' <span class="total-pages">' . $totalpagescount . '</span>';
206
- $this -> pagination .= '</span>';
207
- $this -> pagination .= '<a class="next-page' . (($this -> page == $totalpagescount) ? ' disabled" onclick="return false;' : '') . '" href="?page=' . $this -> url_page . '&amp;' . $this -> pre . 'page=' . ($this -> page + 1) . $search . $orderby . $order . $this -> after . '" title="' . __('Next Page', $this -> plugin_name) . '">&#8250;</a>';
208
- $this -> pagination .= '<a href="?page=' . $this -> url_page . '&amp;' . $this -> pre . 'page=' . $totalpagescount . $search . $orderby . $order . $this -> after . '" class="last-page' . (($this -> page == $totalpagescount) ? ' disabled" onclick="return false;' : '') . '">&raquo;</a>';
209
- $this -> pagination .= '</span>';
210
-
211
- ob_start();
212
-
213
- ?>
214
-
215
- <script type="text/javascript">
216
- jQuery(document).ready(function() {
217
- jQuery('.slideshow-paged-input').keypress(function(e) {
218
- code = (e.keyCode ? e.keyCode : e.which);
219
- if (code == 13) {
220
- window.location = '?page=<?php echo $this -> url_page; ?>&<?php echo $this -> pre; ?>page=' + jQuery(this).val() + '<?php echo $search . $orderby . $order . $this -> after; ?>';
221
- e.preventDefault();
222
- }
223
- });
224
- });
225
- </script>
226
-
227
- <?php
228
-
229
- $script = ob_get_clean();
230
- $this -> pagination .= $script;
231
- }
232
-
233
- return $records;
234
- }
235
-
236
- function doberecords() {
237
- if ($this -> page > 1) {
238
- $this -> begRecord = (($this -> page * $this -> per_page) - ($this -> per_page));
239
- } else {
240
- $this -> begRecord = 0;
241
- }
242
-
243
- $this -> endRecord = $this -> begRecord + $this -> per_page;
244
- }
245
- }
246
-
247
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendors/class.slides-listtable.php DELETED
@@ -1,516 +0,0 @@
1
- <?php
2
-
3
- /*************************** LOAD THE BASE CLASS *******************************
4
- *******************************************************************************
5
- * The WP_List_Table class isn't automatically available to plugins, so we need
6
- * to check if it's available and load it if necessary. In this tutorial, we are
7
- * going to use the WP_List_Table class directly from WordPress core.
8
- *
9
- * IMPORTANT:
10
- * Please note that the WP_List_Table class technically isn't an official API,
11
- * and it could change at some point in the distant future. Should that happen,
12
- * I will update this plugin with the most current techniques for your reference
13
- * immediately.
14
- *
15
- * If you are really worried about future compatibility, you can make a copy of
16
- * the WP_List_Table class (file path is shown just below) to use and distribute
17
- * with your plugins. If you do that, just remember to change the name of the
18
- * class to avoid conflicts with core.
19
- *
20
- * Since I will be keeping this tutorial up-to-date for the foreseeable future,
21
- * I am going to work with the copy of the class provided in WordPress core.
22
- */
23
- if(!class_exists('WP_List_Table')){
24
- require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
25
- }
26
-
27
-
28
-
29
-
30
- /************************** CREATE A PACKAGE CLASS *****************************
31
- *******************************************************************************
32
- * Create a new list table package that extends the core WP_List_Table class.
33
- * WP_List_Table contains most of the framework for generating the table, but we
34
- * need to define and override some methods so that our data can be displayed
35
- * exactly the way we need it to be.
36
- *
37
- * To display this example on a page, you will first need to instantiate the class,
38
- * then call $yourInstance->prepare_items() to handle any data manipulation, then
39
- * finally call $yourInstance->display() to render the table to the page.
40
- *
41
- * Our theme for this list table is going to be movies.
42
- */
43
-
44
- if (!class_exists('Slideshow_List_table')) {
45
- class Slideshow_List_Table extends WP_List_Table {
46
-
47
- var $per_page;
48
- var $total_items;
49
-
50
- /** ************************************************************************
51
- * Normally we would be querying data from a database and manipulating that
52
- * for use in your list table. For this example, we're going to simplify it
53
- * slightly and create a pre-built array. Think of this as the data that might
54
- * be returned by $wpdb->query()
55
- *
56
- * In a real-world scenario, you would make your own custom query inside
57
- * this class' prepare_items() method.
58
- *
59
- * @var array
60
- **************************************************************************/
61
- var $data = array(
62
- array(
63
- 'ID' => 1,
64
- 'title' => '300',
65
- 'rating' => 'R',
66
- 'director' => 'Zach Snyder'
67
- ),
68
- array(
69
- 'ID' => 2,
70
- 'title' => 'Eyes Wide Shut',
71
- 'rating' => 'R',
72
- 'director' => 'Stanley Kubrick'
73
- ),
74
- array(
75
- 'ID' => 3,
76
- 'title' => 'Moulin Rouge!',
77
- 'rating' => 'PG-13',
78
- 'director' => 'Baz Luhrman'
79
- ),
80
- array(
81
- 'ID' => 4,
82
- 'title' => 'Snow White',
83
- 'rating' => 'G',
84
- 'director' => 'Walt Disney'
85
- ),
86
- array(
87
- 'ID' => 5,
88
- 'title' => 'Super 8',
89
- 'rating' => 'PG-13',
90
- 'director' => 'JJ Abrams'
91
- ),
92
- array(
93
- 'ID' => 6,
94
- 'title' => 'The Fountain',
95
- 'rating' => 'PG-13',
96
- 'director' => 'Darren Aronofsky'
97
- ),
98
- array(
99
- 'ID' => 7,
100
- 'title' => 'Watchmen',
101
- 'rating' => 'R',
102
- 'director' => 'Zach Snyder'
103
- ),
104
- array(
105
- 'ID' => 8,
106
- 'title' => '2001',
107
- 'rating' => 'G',
108
- 'director' => 'Stanley Kubrick'
109
- ),
110
- );
111
-
112
-
113
- /** ************************************************************************
114
- * REQUIRED. Set up a constructor that references the parent constructor. We
115
- * use the parent reference to set some default configs.
116
- ***************************************************************************/
117
- function __construct(){
118
- global $status, $page;
119
-
120
- //Set parent defaults
121
- parent::__construct( array(
122
- 'singular' => 'slide', //singular name of the listed records
123
- 'plural' => 'slides', //plural name of the listed records
124
- 'ajax' => true //does this table support ajax?
125
- ) );
126
-
127
- }
128
-
129
-
130
- /** ************************************************************************
131
- * Recommended. This method is called when the parent class can't find a method
132
- * specifically build for a given column. Generally, it's recommended to include
133
- * one method for each column you want to render, keeping your package class
134
- * neat and organized. For example, if the class needs to process a column
135
- * named 'title', it would first see if a method named $this->column_title()
136
- * exists - if it does, that method will be used. If it doesn't, this one will
137
- * be used. Generally, you should try to use custom column methods as much as
138
- * possible.
139
- *
140
- * Since we have defined a column_title() method later on, this method doesn't
141
- * need to concern itself with any column with a name of 'title'. Instead, it
142
- * needs to handle everything else.
143
- *
144
- * For more detailed insight into how columns are handled, take a look at
145
- * WP_List_Table::single_row_columns()
146
- *
147
- * @param array $item A singular item (one full row's worth of data)
148
- * @param array $column_name The name/slug of the column to be processed
149
- * @return string Text or HTML to be placed inside the column <td>
150
- **************************************************************************/
151
- function column_default($item, $column_name){
152
- switch($column_name){
153
- case 'id' :
154
- case 'title' :
155
- case 'image' :
156
- case 'galleries' :
157
- case 'link' :
158
- case 'order' :
159
- case 'date' :
160
- return __($item -> {$column_name});
161
- default:
162
- return print_r($item,true); //Show the whole array for troubleshooting purposes
163
- }
164
- }
165
-
166
-
167
- /** ************************************************************************
168
- * Recommended. This is a custom column method and is responsible for what
169
- * is rendered in any column with a name/slug of 'title'. Every time the class
170
- * needs to render a column, it first looks for a method named
171
- * column_{$column_title} - if it exists, that method is run. If it doesn't
172
- * exist, column_default() is called instead.
173
- *
174
- * This example also illustrates how to implement rollover actions. Actions
175
- * should be an associative array formatted as 'slug'=>'link html' - and you
176
- * will need to generate the URLs yourself. You could even ensure the links
177
- *
178
- *
179
- * @see WP_List_Table::::single_row_columns()
180
- * @param array $item A singular item (one full row's worth of data)
181
- * @return string Text to be placed inside the column <td> (movie title only)
182
- **************************************************************************/
183
- function column_title($item){
184
-
185
- //Build row actions
186
- $actions = array(
187
- 'edit' => sprintf('<a href="?page=%s&method=%s&id=%s">Edit</a>',$_REQUEST['page'],'save',$item -> id),
188
- 'delete' => sprintf('<a href="?page=%s&method=%s&id=%s" onclick="if (!confirm(\'' . __('Are you sure you want to permanently remove this slide?', 'slideshow-gallery') . '\')) { return false; }">Delete</a>',$_REQUEST['page'],'delete',$item -> id),
189
- );
190
-
191
- //Return the title contents
192
- return sprintf('<a href="' . admin_url('admin.php?page=' . $this -> screen -> parent_base . '&method=save&id=' . $item -> id) . '" class="row-title">%1$s</a> <span style="color:silver">(id:%2$s)</span>%3$s',
193
- /*$1%s*/ __($item -> title),
194
- /*$2%s*/ $item -> id,
195
- /*$3%s*/ $this->row_actions($actions)
196
- );
197
- }
198
-
199
-
200
- /** ************************************************************************
201
- * REQUIRED if displaying checkboxes or using bulk actions! The 'cb' column
202
- * is given special treatment when columns are processed. It ALWAYS needs to
203
- * have it's own method.
204
- *
205
- * @see WP_List_Table::::single_row_columns()
206
- * @param array $item A singular item (one full row's worth of data)
207
- * @return string Text to be placed inside the column <td> (movie title only)
208
- **************************************************************************/
209
- function column_cb($item){
210
- return sprintf(
211
- '<input type="checkbox" name="%1$s[]" value="%2$s" />',
212
- /*$1%s*/ $this->_args['singular'], //Let's simply repurpose the table's singular label ("movie")
213
- /*$2%s*/ $item -> id //The value of the checkbox should be the record's id
214
- );
215
- }
216
-
217
-
218
- /** ************************************************************************
219
- * REQUIRED! This method dictates the table's columns and titles. This should
220
- * return an array where the key is the column slug (and class) and the value
221
- * is the column's title text. If you need a checkbox for bulk actions, refer
222
- * to the $columns array below.
223
- *
224
- * The 'cb' column is treated differently than the rest. If including a checkbox
225
- * column in your table you must create a column_cb() method. If you don't need
226
- * bulk actions or checkboxes, simply leave the 'cb' entry out of your array.
227
- *
228
- * @see WP_List_Table::::single_row_columns()
229
- * @return array An associative array containing column information: 'slugs'=>'Visible Titles'
230
- **************************************************************************/
231
- function get_columns(){
232
- $columns = array(
233
- 'cb' => '<input type="checkbox" />', //Render a checkbox instead of text
234
- //'id' => __('ID', 'slideshow-gallery'),
235
- 'title' => __('Title', 'slideshow-gallery'),
236
- 'image' => __('Image', 'slideshow-gallery'),
237
- 'galleries' => __('Galleries', 'slideshow-gallery'),
238
- 'link' => __('Link', 'slideshow-gallery'),
239
- 'order' => __('Order', 'slideshow-gallery'),
240
- 'date' => __('Date', 'slideshow-gallery'),
241
- );
242
- return $columns;
243
- }
244
-
245
-
246
- /** ************************************************************************
247
- * Optional. If you want one or more columns to be sortable (ASC/DESC toggle),
248
- * you will need to register it here. This should return an array where the
249
- * key is the column that needs to be sortable, and the value is db column to
250
- * sort by. Often, the key and value will be the same, but this is not always
251
- * the case (as the value is a column name from the database, not the list table).
252
- *
253
- * This method merely defines which columns should be sortable and makes them
254
- * clickable - it does not handle the actual sorting. You still need to detect
255
- * the ORDERBY and ORDER querystring variables within prepare_items() and sort
256
- * your data accordingly (usually by modifying your query).
257
- *
258
- * @return array An associative array containing all the columns that should be sortable: 'slugs'=>array('data_values',bool)
259
- **************************************************************************/
260
- function get_sortable_columns() {
261
- $sortable_columns = array(
262
- 'title' => array('title', false), //true means it's already sorted
263
- 'rating' => array('rating', false),
264
- 'director' => array('director', false)
265
- );
266
- return $sortable_columns;
267
- }
268
-
269
- /**
270
- * Gets the name of the default primary column.
271
- *
272
- * @since 4.3.0
273
- * @access protected
274
- *
275
- * @return string Name of the default primary column, in this case, 'title'.
276
- */
277
- function get_default_primary_column_name() {
278
- return 'title';
279
- }
280
-
281
- /** ************************************************************************
282
- * Optional. If you need to include bulk actions in your list table, this is
283
- * the place to define them. Bulk actions are an associative array in the format
284
- * 'slug'=>'Visible Title'
285
- *
286
- * If this method returns an empty value, no bulk action will be rendered. If
287
- * you specify any bulk actions, the bulk actions box will be rendered with
288
- * the table automatically on display().
289
- *
290
- * Also note that list tables are not automatically wrapped in <form> elements,
291
- * so you will need to create those manually in order for bulk actions to function.
292
- *
293
- * @return array An associative array containing all the bulk actions: 'slugs'=>'Visible Titles'
294
- **************************************************************************/
295
- function get_bulk_actions() {
296
- $actions = array(
297
- 'delete' => 'Delete'
298
- );
299
- return $actions;
300
- }
301
-
302
-
303
- /** ************************************************************************
304
- * Optional. You can handle your bulk actions anywhere or anyhow you prefer.
305
- * For this example package, we will handle it in the class to keep things
306
- * clean and organized.
307
- *
308
- * @see $this->prepare_items()
309
- **************************************************************************/
310
- function process_bulk_action() {
311
-
312
- //Detect when a bulk action is being triggered...
313
- if( 'delete'===$this->current_action() ) {
314
- wp_die('Items deleted (or they would be if we had items to delete)!');
315
- }
316
-
317
- }
318
-
319
-
320
- /** ************************************************************************
321
- * REQUIRED! This is where you prepare your data for display. This method will
322
- * usually be used to query the database, sort and filter the data, and generally
323
- * get it ready to be displayed. At a minimum, we should set $this->items and
324
- * $this->set_pagination_args(), although the following properties and methods
325
- * are frequently interacted with here...
326
- *
327
- * @global WPDB $wpdb
328
- * @uses $this->_column_headers
329
- * @uses $this->items
330
- * @uses $this->get_columns()
331
- * @uses $this->get_sortable_columns()
332
- * @uses $this->get_pagenum()
333
- * @uses $this->set_pagination_args()
334
- **************************************************************************/
335
- function prepare_items() {
336
- global $wpdb; //This is used only if making any database queries
337
-
338
- /**
339
- * First, lets decide how many records per page to show
340
- */
341
- $per_page = $this -> per_page;
342
-
343
-
344
- /**
345
- * REQUIRED. Now we need to define our column headers. This includes a complete
346
- * array of columns to be displayed (slugs & titles), a list of columns
347
- * to keep hidden, and a list of columns that are sortable. Each of these
348
- * can be defined in another method (as we've done here) before being
349
- * used to build the value for our _column_headers property.
350
- */
351
- $columns = $this->get_columns();
352
- $hidden = array();
353
- $sortable = $this->get_sortable_columns();
354
-
355
-
356
- /**
357
- * REQUIRED. Finally, we build an array to be used by the class for column
358
- * headers. The $this->_column_headers property takes an array which contains
359
- * 3 other arrays. One for all columns, one for hidden columns, and one
360
- * for sortable columns.
361
- */
362
- $primary = $this -> get_primary_column_name();
363
- $this->_column_headers = array($columns, $hidden, $sortable, $primary);
364
-
365
-
366
- /**
367
- * Optional. You can handle your bulk actions however you see fit. In this
368
- * case, we'll handle them within our package just to keep things clean.
369
- */
370
- $this->process_bulk_action();
371
-
372
- /**
373
- * Instead of querying a database, we're going to fetch the example data
374
- * property we created for use in this plugin. This makes this example
375
- * package slightly different than one you might build on your own. In
376
- * this example, we'll be using array manipulation to sort and paginate
377
- * our data. In a real-world implementation, you will probably want to
378
- * use sort and pagination data to build a custom query instead, as you'll
379
- * be able to use your precisely-queried data immediately.
380
- */
381
- $data = $this -> data;
382
-
383
- //echo '<pre>' . print_r($data, true) . '</pre>';
384
-
385
-
386
- /**
387
- * This checks for sorting input and sorts the data in our array accordingly.
388
- *
389
- * In a real-world situation involving a database, you would probably want
390
- * to handle sorting by passing the 'orderby' and 'order' values directly
391
- * to a custom query. The returned data will be pre-sorted, and this array
392
- * sorting technique would be unnecessary.
393
- */
394
- function usort_reorder($a,$b){
395
- $orderby = (!empty($_REQUEST['orderby'])) ? $_REQUEST['orderby'] : 'title'; //If no sort, default to title
396
- $order = (!empty($_REQUEST['order'])) ? $_REQUEST['order'] : 'asc'; //If no order, default to asc
397
- $result = strcmp($a[$orderby], $b[$orderby]); //Determine sort order
398
- return ($order==='asc') ? $result : -$result; //Send final sort direction to usort
399
- }
400
- //usort($data, 'usort_reorder');
401
-
402
-
403
- /***********************************************************************
404
- * ---------------------------------------------------------------------
405
- * vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
406
- *
407
- * In a real-world situation, this is where you would place your query.
408
- *
409
- * For information on making queries in WordPress, see this Codex entry:
410
- * http://codex.wordpress.org/Class_Reference/wpdb
411
- *
412
- * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
413
- * ---------------------------------------------------------------------
414
- **********************************************************************/
415
-
416
-
417
- /**
418
- * REQUIRED for pagination. Let's figure out what page the user is currently
419
- * looking at. We'll need this later, so you should always include it in
420
- * your own package classes.
421
- */
422
- $current_page = $this->get_pagenum();
423
-
424
- /**
425
- * REQUIRED for pagination. Let's check how many items are in our data array.
426
- * In real-world use, this would be the total number of items in your database,
427
- * without filtering. We'll need this later, so you should always include it
428
- * in your own package classes.
429
- */
430
- //$total_items = count($data);
431
-
432
-
433
- /**
434
- * The WP_List_Table class does not handle pagination for us, so we need
435
- * to ensure that the data is trimmed to only the current page. We can use
436
- * array_slice() to
437
- */
438
- //$data = array_slice($data,(($current_page-1)*$per_page),$per_page);
439
-
440
-
441
-
442
- /**
443
- * REQUIRED. Now we can add our *sorted* data to the items property, where
444
- * it can be used by the rest of the class.
445
- */
446
- $this->items = $data;
447
-
448
- /**
449
- * REQUIRED. We also have to register our pagination options & calculations.
450
- */
451
- $this -> set_pagination_args( array(
452
- 'total_items' => $this -> total_items, //WE have to calculate the total number of items
453
- 'per_page' => $this -> per_page, //WE have to determine how many items to show on a page
454
- 'total_pages' => ceil($this -> total_items / $this -> per_page) //WE have to calculate the total number of pages
455
- ) );
456
- }
457
-
458
-
459
- }
460
- }
461
-
462
-
463
-
464
-
465
- /** ************************ REGISTER THE TEST PAGE ****************************
466
- *******************************************************************************
467
- * Now we just need to define an admin page. For this example, we'll add a top-level
468
- * menu item to the bottom of the admin menus.
469
- */
470
- function slideshow_add_menu_items(){
471
- add_menu_page('Example Plugin List Table', 'List Table Example', 'activate_plugins', 'slideshow_list_test', 'slideshow_render_list_page');
472
- } add_action('admin_menu', 'slideshow_add_menu_items');
473
-
474
-
475
-
476
-
477
-
478
- /** *************************** RENDER TEST PAGE ********************************
479
- *******************************************************************************
480
- * This function renders the admin page and the example list table. Although it's
481
- * possible to call prepare_items() and display() from the constructor, there
482
- * are often times where you may need to include logic here between those steps,
483
- * so we've instead called those methods explicitly. It keeps things flexible, and
484
- * it's the way the list tables are used in the WordPress core.
485
- */
486
- function slideshow_render_list_page(){
487
-
488
- //Create an instance of our package class...
489
- $testListTable = new slideshow_Example_List_Table();
490
- //Fetch, prepare, sort, and filter our data...
491
- $testListTable->prepare_items();
492
-
493
- ?>
494
- <div class="wrap">
495
-
496
- <div id="icon-users" class="icon32"><br/></div>
497
- <h2>List Table Test</h2>
498
-
499
- <div style="background:#ECECEC;border:1px solid #CCC;padding:0 10px;margin-top:5px;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;">
500
- <p>This page demonstrates the use of the <tt><a href="http://codex.wordpress.org/Class_Reference/WP_List_Table" target="_blank" style="text-decoration:none;">WP_List_Table</a></tt> class in plugins.</p>
501
- <p>For a detailed explanation of using the <tt><a href="http://codex.wordpress.org/Class_Reference/WP_List_Table" target="_blank" style="text-decoration:none;">WP_List_Table</a></tt>
502
- class in your own plugins, you can view this file <a href="<?php echo admin_url( 'plugin-editor.php?plugin='.plugin_basename(__FILE__) ); ?>" style="text-decoration:none;">in the Plugin Editor</a> or simply open <tt style="color:gray;"><?php echo __FILE__ ?></tt> in the PHP editor of your choice.</p>
503
- <p>Additional class details are available on the <a href="http://codex.wordpress.org/Class_Reference/WP_List_Table" target="_blank" style="text-decoration:none;">WordPress Codex</a>.</p>
504
- </div>
505
-
506
- <!-- Forms are NOT created automatically, so you need to wrap the table in one to use features like bulk actions -->
507
- <form id="movies-filter" method="get">
508
- <!-- For plugins, we also need to ensure that the form posts back to our current page -->
509
- <input type="hidden" name="page" value="<?php echo $_REQUEST['page'] ?>" />
510
- <!-- Now we can render the completed list table -->
511
- <?php $testListTable->display() ?>
512
- </form>
513
-
514
- </div>
515
- <?php
516
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendors/class.update.php CHANGED
@@ -20,8 +20,8 @@ if (!class_exists('Galleryupdate')) {
20
  $raw_response = wp_remote_request($request_url, $options);
21
 
22
  if (is_wp_error($raw_response) || 200 != $raw_response['response']['code']) {
23
- $text = __('Something went wrong!', $this -> plugin_name);
24
- $text .= __('Please try again or <a href="http://tribulant.com/support/" target="_blank">contact us</a>.', $this -> plugin_name);
25
  return $text;
26
  } else {
27
  $changelog = $raw_response['body'];
20
  $raw_response = wp_remote_request($request_url, $options);
21
 
22
  if (is_wp_error($raw_response) || 200 != $raw_response['response']['code']) {
23
+ $text = __('Something went wrong!', 'slideshow-gallery');
24
+ $text .= __('Please try again or <a href="https://tribulant.com/support/" target="_blank">contact us</a>.', 'slideshow-gallery');
25
  return $text;
26
  } else {
27
  $changelog = $raw_response['body'];
vendors/otf_regen_thumbs.php CHANGED
@@ -7,7 +7,7 @@
7
  *
8
  * @author Benjamin Intal - Gambit Technologies Inc
9
  * @see https://wordpress.stackexchange.com/questions/53344/how-to-generate-thumbnails-when-needed-only/124790#124790
10
- * @see http://codex.wordpress.org/Function_Reference/get_intermediate_image_sizes
11
  */
12
  if ( ! function_exists( 'gambit_otf_regen_thumbs_media_downsize' ) ) {
13
 
7
  *
8
  * @author Benjamin Intal - Gambit Technologies Inc
9
  * @see https://wordpress.stackexchange.com/questions/53344/how-to-generate-thumbnails-when-needed-only/124790#124790
10
+ * @see https://codex.wordpress.org/Function_Reference/get_intermediate_image_sizes
11
  */
12
  if ( ! function_exists( 'gambit_otf_regen_thumbs_media_downsize' ) ) {
13
 
views/admin/about.php CHANGED
@@ -47,7 +47,7 @@ $minor_features = array(
47
 
48
  ?>
49
 
50
- <div class="wrap slideshow-gallery about-wrap">
51
  <h1><?php echo sprintf( 'Welcome to Slideshow Gallery %s', $this -> version); ?></h1>
52
  <div class="about-text">
53
  <?php echo sprintf('Thank you for installing! Tribulant Slideshow Gallery %s is more powerful, reliable and versatile than before. It includes many features and improvements to make email marketing easier and more efficient for you.', $this -> version); ?>
47
 
48
  ?>
49
 
50
+ <div class="wrap slideshow-gallery about-wrap slideshow">
51
  <h1><?php echo sprintf( 'Welcome to Slideshow Gallery %s', $this -> version); ?></h1>
52
  <div class="about-text">
53
  <?php echo sprintf('Thank you for installing! Tribulant Slideshow Gallery %s is more powerful, reliable and versatile than before. It includes many features and improvements to make email marketing easier and more efficient for you.', $this -> version); ?>
views/admin/err-top.php CHANGED
@@ -8,7 +8,7 @@ if (!defined('ABSPATH')) exit; // Exit if accessed directly
8
  <div id="message" class="slideshow notice error">
9
  <p><i class="fa fa-times"></i> <?php echo $message; ?></p>
10
  <?php if (!empty($dismissable)) : ?>
11
- <a href="<?php echo $dismissable; ?>" class="notice-dismiss"><span class="screen-reader-text"><?php _e('Dismiss this notice.', $this -> plugin_name); ?></span></a>
12
  <?php endif; ?>
13
  </div>
14
  <?php endif; ?>
8
  <div id="message" class="slideshow notice error">
9
  <p><i class="fa fa-times"></i> <?php echo $message; ?></p>
10
  <?php if (!empty($dismissable)) : ?>
11
+ <a href="<?php echo $dismissable; ?>" class="notice-dismiss"><span class="screen-reader-text"><?php _e('Dismiss this notice.', 'slideshow-gallery'); ?></span></a>
12
  <?php endif; ?>
13
  </div>
14
  <?php endif; ?>
views/admin/galleries/hardcode.php CHANGED
@@ -4,9 +4,14 @@ if (!defined('ABSPATH')) exit; // Exit if accessed directly
4
 
5
  ?>
6
 
7
- <div class="wrap <?php echo $this -> pre; ?>">
8
- <h1><?php echo sprintf(__('Hardcode Gallery: %s', $this -> plugin_name), __($gallery -> title)); ?></h1>
9
- <div style="float:none;" class="subsubsub"><?php echo $this -> Html -> link(__('&larr; All Galleries', $this -> plugin_name), $this -> url, array('title' => __('All Galleries', $this -> plugin_name))); ?></div>
10
- <p><?php _e('This PHP code can be used inside your WordPress theme to display slides inside this gallery.', $this -> plugin_name); ?></p>
 
 
 
 
 
11
  <textarea onmouseup="jQuery(this).unbind('onmouseup'); return false;" onfocus="jQuery(this).select();" cols="100%" rows="4"><?php echo htmlentities('<?php if (function_exists(\'slideshow\')) { slideshow(true, "' . $gallery -> id . '", false, array()); } ?>'); ?></textarea>
12
  </div>
4
 
5
  ?>
6
 
7
+ <div class="wrap <?php echo $this -> pre; ?> slideshow">
8
+ <h1><?php echo sprintf(__('Embed Gallery: %s', 'slideshow-gallery'), __($gallery -> title)); ?></h1>
9
+ <div style="float:none;" class="subsubsub"><?php echo $this -> Html -> link(__('&larr; All Galleries', 'slideshow-gallery'), $this -> url, array('title' => __('All Galleries', 'slideshow-gallery'))); ?></div>
10
+
11
+ <h2><?php _e('Shortcode in Post/Page', 'slideshow-gallery'); ?></h2>
12
+ <code>[tribulant_slideshow gallery_id=<?php echo $gallery -> id; ?>]</code>
13
+
14
+ <h2><?php _e('PHP Code in Theme', 'slideshow-gallery'); ?></h2>
15
+ <p><?php _e('This PHP code can be used inside your WordPress theme to display slides inside this gallery.', 'slideshow-gallery'); ?></p>
16
  <textarea onmouseup="jQuery(this).unbind('onmouseup'); return false;" onfocus="jQuery(this).select();" cols="100%" rows="4"><?php echo htmlentities('<?php if (function_exists(\'slideshow\')) { slideshow(true, "' . $gallery -> id . '", false, array()); } ?>'); ?></textarea>
17
  </div>
views/admin/galleries/index.php CHANGED
@@ -2,155 +2,27 @@
2
 
3
  if (!defined('ABSPATH')) exit; // Exit if accessed directly
4
 
 
 
 
 
5
  ?>
6
 
7
- <div class="wrap <?php echo $this -> pre; ?> slideshow">
8
- <h1><?php _e('Manage Galleries', $this -> plugin_name); ?> <?php echo $this -> Html -> link(__('Add New', $this -> plugin_name), $this -> url . '&amp;method=save', array('class' => "add-new-h2")); ?></h1>
9
-
10
- <?php if (!empty($galleries)) : ?>
11
- <form id="posts-filter" action="<?php echo $this -> url; ?>" method="post">
12
- <ul class="subsubsub">
13
- <li><?php echo $paginate -> allcount; ?> <?php _e('galleries', $this -> plugin_name); ?></li>
14
- </ul>
15
- </form>
16
- <?php endif; ?>
17
 
18
- <form onsubmit="if (!confirm('<?php _e('Are you sure you wish to execute this action on the selected galleries?', $this -> plugin_name); ?>')) { return false; }" action="<?php echo $this -> url; ?>&amp;method=mass" method="post">
19
-
20
- <?php wp_nonce_field($this -> sections -> galleries . '-bulkaction'); ?>
21
-
22
- <div class="tablenav top">
23
- <div class="alignleft actions">
24
- <select name="action" class="action">
25
- <option value=""><?php _e('- Bulk Actions -', $this -> plugin_name); ?></option>
26
- <option value="delete"><?php _e('Delete', $this -> plugin_name); ?></option>
27
- </select>
28
- <input type="submit" class="button" value="<?php _e('Apply', $this -> plugin_name); ?>" name="execute" />
29
- </div>
30
- <?php $this -> render('paginate', array('paginate' => $paginate), true, 'admin'); ?>
31
- </div>
32
-
33
- <?php
34
-
35
- $orderby = (empty($_GET['orderby'])) ? 'modified' : esc_html($_GET['orderby']);
36
- $order = (empty($_GET['order'])) ? 'desc' : strtolower(esc_html($_GET['order']));
37
- $otherorder = ($order == "desc") ? 'asc' : 'desc';
38
- $colspan = 6;
39
-
40
- ?>
41
-
42
- <table class="widefat">
43
- <thead>
44
- <tr>
45
- <td class="check-column"><input type="checkbox" name="checkboxall" id="checkboxall" value="checkboxall" /></td>
46
- <th class="column-id <?php echo ($orderby == "id") ? 'sorted ' . $order : 'sortable desc'; ?>">
47
- <a href="<?php echo add_query_arg(array('orderby' => "id", 'order' => (($orderby == "id") ? $otherorder : "asc"))); ?>">
48
- <span><?php _e('ID', $this -> plugin_name); ?></span>
49
- <span class="sorting-indicator"></span>
50
- </a>
51
- </th>
52
- <th class="column-title <?php echo ($orderby == "title") ? 'sorted ' . $order : 'sortable desc'; ?>">
53
- <a href="<?php echo add_query_arg(array('orderby' => "title", 'order' => (($orderby == "title") ? $otherorder : "asc"))); ?>">
54
- <span><?php _e('Title', $this -> plugin_name); ?></span>
55
- <span class="sorting-indicator"></span>
56
- </a>
57
- </th>
58
- <th><?php _e('Slides', $this -> plugin_name); ?></th>
59
- <th><?php _e('Shortcode', $this -> plugin_name); ?></th>
60
- <th class="column-modified <?php echo ($orderby == "modified") ? 'sorted ' . $order : 'sortable desc'; ?>">
61
- <a href="<?php echo add_query_arg(array('orderby' => "modified", 'order' => (($orderby == "modified") ? $otherorder : "asc"))); ?>">
62
- <span><?php _e('Date', $this -> plugin_name); ?></span>
63
- <span class="sorting-indicator"></span>
64
- </a>
65
- </th>
66
- </tr>
67
- </thead>
68
- <tfoot>
69
- <tr>
70
- <td class="check-column"><input type="checkbox" name="checkboxall" id="checkboxall" value="checkboxall" /></td>
71
- <th class="column-id <?php echo ($orderby == "id") ? 'sorted ' . $order : 'sortable desc'; ?>">
72
- <a href="<?php echo add_query_arg(array('orderby' => "id", 'order' => (($orderby == "id") ? $otherorder : "asc"))); ?>">
73
- <span><?php _e('ID', $this -> plugin_name); ?></span>
74
- <span class="sorting-indicator"></span>
75
- </a>
76
- </th>
77
- <th class="column-title <?php echo ($orderby == "title") ? 'sorted ' . $order : 'sortable desc'; ?>">
78
- <a href="<?php echo add_query_arg(array('orderby' => "title", 'order' => (($orderby == "title") ? $otherorder : "asc"))); ?>">
79
- <span><?php _e('Title', $this -> plugin_name); ?></span>
80
- <span class="sorting-indicator"></span>
81
- </a>
82
- </th>
83
- <th><?php _e('Slides', $this -> plugin_name); ?></th>
84
- <th><?php _e('Shortcode', $this -> plugin_name); ?></th>
85
- <th class="column-modified <?php echo ($orderby == "modified") ? 'sorted ' . $order : 'sortable desc'; ?>">
86
- <a href="<?php echo add_query_arg(array('orderby' => "modified", 'order' => (($orderby == "modified") ? $otherorder : "asc"))); ?>">
87
- <span><?php _e('Date', $this -> plugin_name); ?></span>
88
- <span class="sorting-indicator"></span>
89
- </a>
90
- </th>
91
- </tr>
92
- </tfoot>
93
- <tbody>
94
- <?php if (!empty($galleries)) : ?>
95
- <?php foreach ($galleries as $gallery) : ?>
96
- <tr class="<?php echo $class = (empty($class)) ? 'alternate' : ''; ?>">
97
- <th class="check-column"><input type="checkbox" name="Gallery[checklist][]" value="<?php echo $gallery -> id; ?>" id="checklist<?php echo $gallery -> id; ?>" /></th>
98
- <td><?php echo $gallery -> id; ?></td>
99
- <td>
100
- <a class="row-title" href="<?php echo $this -> url; ?>&amp;method=save&amp;id=<?php echo $gallery -> id; ?>" title=""><?php echo __($gallery -> title); ?></a>
101
- <div class="row-actions">
102
- <span class="view"><?php echo $this -> Html -> link(__('View', $this -> plugin_name), "?page=" . $this -> sections -> galleries . "&amp;method=view&amp;id=" . $gallery -> id); ?> |</span>
103
- <span class="edit"><?php echo $this -> Html -> link(__('Edit', $this -> plugin_name), "?page=" . $this -> sections -> galleries . "&amp;method=save&amp;id=" . $gallery -> id); ?> |</span>
104
- <span class="edit"><?php echo $this -> Html -> link(__('Hardcode', $this -> plugin_name), '?page=' . $this -> sections -> galleries . "&amp;method=hardcode&amp;id=" . $gallery -> id); ?> |</span>
105
- <span class="edit"><?php echo $this -> Html -> link(__('Order Slides', $this -> plugin_name), '?page=' . $this -> sections -> slides . '&amp;method=order&amp;gallery_id=' . $gallery -> id); ?> |</span>
106
- <span class="delete"><?php echo $this -> Html -> link(__('Delete', $this -> plugin_name), "?page=" . $this -> sections -> galleries . "&amp;method=delete&amp;id=" . $gallery -> id, array('class' => "submitdelete", 'onclick' => "if (!confirm('" . __('Are you sure you want to permanently remove this slide?', $this -> plugin_name) . "')) { return false; }")); ?></span>
107
- </div>
108
- </td>
109
- <td>
110
- <a href="?page=<?php echo $this -> sections -> galleries; ?>&amp;method=view&amp;id=<?php echo $gallery -> id; ?>"><?php echo $gallery -> slidescount; ?></a>
111
- </td>
112
- <td>
113
- <code>[tribulant_slideshow gallery_id="<?php echo $gallery -> id; ?>"]</code>
114
- </td>
115
- <td><abbr title="<?php echo $gallery -> modified; ?>"><?php echo date(get_option('date_format'), strtotime($gallery -> modified)); ?></abbr></td>
116
- </tr>
117
- <?php endforeach; ?>
118
- <?php else : ?>
119
- <tr class="no-items">
120
- <td class="colspanchange" colspan="<?php echo $colspan; ?>">
121
- <?php echo sprintf(__('No galleries available, %s', $this -> plugin_name), '<a href="' . admin_url('admin.php?page=' . $this -> sections -> galleries . '&method=save') . '">' . __('add one', $this -> plugin_name) . '</a>'); ?>
122
- </td>
123
- </tr>
124
- <?php endif; ?>
125
- </tbody>
126
- </table>
127
-
128
- <div class="tablenav bottom">
129
- <div class="alignleft">
130
- <?php if (empty($_GET['showall'])) : ?>
131
- <select class="widefat" style="width:auto;" name="perpage" onchange="change_perpage(this.value);">
132
- <option value=""><?php _e('- Per Page -', $this -> plugin_name); ?></option>
133
- <?php $p = 5; ?>
134
- <?php while ($p < 100) : ?>
135
- <option <?php echo (!empty($_COOKIE[$this -> pre . 'galleriesperpage']) && $_COOKIE[$this -> pre . 'galleriesperpage'] == $p) ? 'selected="selected"' : ''; ?> value="<?php echo $p; ?>"><?php echo $p; ?> <?php _e('per page', $this -> plugin_name); ?></option>
136
- <?php $p += 5; ?>
137
- <?php endwhile; ?>
138
- <?php if (isset($_COOKIE[$this -> pre . 'galleriesperpage'])) : ?>
139
- <option selected="selected" value="<?php echo $_COOKIE[$this -> pre . 'galleriesperpage']; ?>"><?php echo $_COOKIE[$this -> pre . 'galleriesperpage']; ?></option>
140
- <?php endif; ?>
141
- </select>
142
- <?php endif; ?>
143
-
144
- <script type="text/javascript">
145
- function change_perpage(perpage) {
146
- if (perpage != "") {
147
- document.cookie = "<?php echo $this -> pre; ?>galleriesperpage=" + perpage + "; expires=<?php echo $this -> Html -> gen_date($this -> get_option('cookieformat'), strtotime("+30 days")); ?> UTC; path=/";
148
- window.location = "<?php echo preg_replace("/\&?" . $this -> pre . "page\=(.*)?/si", "", $_SERVER['REQUEST_URI']); ?>";
149
- }
150
- }
151
- </script>
152
- </div>
153
- <?php $this -> render('paginate', array('paginate' => $paginate), true, 'admin'); ?>
154
- </div>
155
  </form>
156
- </div>
 
 
 
 
 
 
 
 
2
 
3
  if (!defined('ABSPATH')) exit; // Exit if accessed directly
4
 
5
+ require_once $this -> plugin_base() . DS . 'includes' . DS . 'class.gallery-list-table.php';
6
+ $Gallery_List_table = new Gallery_List_Table();
7
+ $Gallery_List_table -> prepare_items();
8
+
9
  ?>
10
 
11
+ <div class="wrap slideshow-gallery slideshow">
12
+ <h1><?php _e('Manage Galleries', 'slideshow-gallery'); ?>
13
+ <?php echo $this -> Html -> link(__('Add New', 'slideshow-gallery'), $this -> url . '&amp;method=save', array('class' => "add-new-h2")); ?></h1>
 
 
 
 
 
 
 
14
 
15
+ <form id="slideshow-galleries-form" action="<?php echo admin_url('admin.php?page=' . $this -> sections -> galleries); ?>" method="get">
16
+ <input type="hidden" name="page" value="<?php echo $this -> sections -> galleries; ?>" />
17
+ <?php $Gallery_List_table -> search_box(__('Search Galleries', 'slideshow-gallery'), 'search'); ?>
18
+ <?php $Gallery_List_table -> display(); ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  </form>
20
+ </div>
21
+
22
+ <script type="text/javascript">
23
+ jQuery('#doaction').on('click', function(event) {
24
+ if (!confirm('Are you sure you want to apply this bulk action?')) {
25
+ return false;
26
+ }
27
+ });
28
+ </script>
views/admin/galleries/save.php CHANGED
@@ -5,20 +5,20 @@ $languages = $this -> language_getlanguages();
5
 
6
  ?>
7
 
8
- <div class="wrap <?php echo $this -> pre; ?> slideshow-gallery">
9
- <h1><?php _e('Save a Gallery', $this -> plugin_name); ?></h1>
10
 
11
  <form action="<?php echo $this -> url; ?>&amp;method=save" method="post">
12
 
13
- <?php wp_nonce_field('slideshow-galleries-save_' . $this -> Gallery() -> data -> id); ?>
14
 
15
  <input type="hidden" name="Gallery[id]" value="<?php echo $this -> Gallery() -> data -> id; ?>" />
16
 
17
  <table class="form-table">
18
  <tbody>
19
  <tr>
20
- <th><label for="Gallery_title"><?php _e('Title', $this -> plugin_name); ?></label>
21
- <?php echo $this -> Html -> help(__('Give this gallery a title/name for your own reference.', $this -> plugin_name)); ?></th>
22
  <td>
23
  <?php if ($this -> language_do()) : ?>
24
  <?php $titles = $this -> language_split($this -> Gallery() -> data -> title); ?>
@@ -43,7 +43,7 @@ $languages = $this -> language_getlanguages();
43
  <?php else : ?>
44
  <input type="text" class="widefat" name="Gallery[title]" value="<?php echo esc_attr(stripslashes($this -> Gallery() -> data -> title)); ?>" id="Gallery_title" />
45
  <?php endif; ?>
46
- <span class="howto"><?php _e('Title of this gallery for identification purposes.', $this -> plugin_name); ?></span>
47
  <?php echo (!empty($this -> Gallery() -> errors['title'])) ? '<span class="slideshow_error">' . $this -> Gallery() -> errors['title'] . '</span>' : ''; ?>
48
  </td>
49
  </tr>
@@ -52,10 +52,10 @@ $languages = $this -> language_getlanguages();
52
 
53
  <p class="submit">
54
  <button type="submit" class="button-primary" value="1" name="submit">
55
- <i class="fa fa-check fa-fw"></i> <?php _e('Save Gallery', $this -> plugin_name); ?>
56
  </button>
57
  <div class="slideshow_continueediting">
58
- <label><input <?php echo (!empty($_REQUEST['continueediting'])) ? 'checked="checked"' : ''; ?> type="checkbox" name="continueediting" value="1" id="continueediting" /> <?php _e('Continue editing', $this -> plugin_name); ?></label>
59
  </div>
60
  </p>
61
  </form>
5
 
6
  ?>
7
 
8
+ <div class="wrap <?php echo $this -> pre; ?> slideshow-gallery slideshow">
9
+ <h1><?php _e('Save a Gallery', 'slideshow-gallery'); ?></h1>
10
 
11
  <form action="<?php echo $this -> url; ?>&amp;method=save" method="post">
12
 
13
+ <?php wp_nonce_field($this -> sections -> galleries . '_save'); ?>
14
 
15
  <input type="hidden" name="Gallery[id]" value="<?php echo $this -> Gallery() -> data -> id; ?>" />
16
 
17
  <table class="form-table">
18
  <tbody>
19
  <tr>
20
+ <th><label for="Gallery_title"><?php _e('Title', 'slideshow-gallery'); ?></label>
21
+ <?php echo $this -> Html -> help(__('Give this gallery a title/name for your own reference.', 'slideshow-gallery')); ?></th>
22
  <td>
23
  <?php if ($this -> language_do()) : ?>
24
  <?php $titles = $this -> language_split($this -> Gallery() -> data -> title); ?>
43
  <?php else : ?>
44
  <input type="text" class="widefat" name="Gallery[title]" value="<?php echo esc_attr(stripslashes($this -> Gallery() -> data -> title)); ?>" id="Gallery_title" />
45
  <?php endif; ?>
46
+ <span class="howto"><?php _e('Title of this gallery for identification purposes.', 'slideshow-gallery'); ?></span>
47
  <?php echo (!empty($this -> Gallery() -> errors['title'])) ? '<span class="slideshow_error">' . $this -> Gallery() -> errors['title'] . '</span>' : ''; ?>
48
  </td>
49
  </tr>
52
 
53
  <p class="submit">
54
  <button type="submit" class="button-primary" value="1" name="submit">
55
+ <i class="fa fa-check fa-fw"></i> <?php _e('Save Gallery', 'slideshow-gallery'); ?>
56
  </button>
57
  <div class="slideshow_continueediting">
58
+ <label><input <?php echo (!empty($_REQUEST['continueediting'])) ? 'checked="checked"' : ''; ?> type="checkbox" name="continueediting" value="1" id="continueediting" /> <?php _e('Continue editing', 'slideshow-gallery'); ?></label>
59
  </div>
60
  </p>
61
  </form>
views/admin/galleries/view.php CHANGED
@@ -2,24 +2,41 @@
2
 
3
  if (!defined('ABSPATH')) exit; // Exit if accessed directly
4
 
 
 
 
 
 
5
  ?>
6
 
7
  <div class="wrap <?php echo $this -> pre; ?> slideshow">
8
- <h1><?php echo sprintf(__('View Gallery: %s', $this -> plugin_name), __($gallery -> title)); ?></h1>
9
 
10
- <div style="float:none;" class="subsubsub"><?php echo $this -> Html -> link(__('&larr; All Galleries', $this -> plugin_name), $this -> url, array('title' => __('All Galleries', $this -> plugin_name))); ?></div>
11
 
12
  <div class="tablenav top">
13
  <div class="alignleft">
14
- <a href="?page=<?php echo $this -> sections -> galleries; ?>&amp;method=save&amp;id=<?php echo $gallery -> id; ?>" class="button"><i class="fa fa-pencil"></i> <?php _e('Edit Gallery', $this -> plugin_name); ?></a>
15
  </div>
16
  <div class="alignleft">
17
- <a href="?page=<?php echo $this -> sections -> galleries; ?>&amp;method=hardcode&amp;id=<?php echo $gallery -> id; ?>" class="button"><i class="fa fa-code"></i> <?php _e('Hardcode', $this -> plugin_name); ?></a>
18
  </div>
19
  <div class="alignleft">
20
- <a onclick="if (!confirm('<?php _e('Are you sure you want to delete this gallery?', $this -> plugin_name); ?>')) { return false; }" href="?page=<?php echo $this -> sections -> galleries; ?>&amp;method=delete&amp;id=<?php echo $gallery -> id; ?>" class="button button-highlighted"><i class="fa fa-times"></i> <?php _e('Delete Gallery', $this -> plugin_name); ?></a>
21
  </div>
22
  </div>
23
 
24
- <?php $this -> render('slides' . DS . 'loop', array('gallery' => $gallery, 'slides' => $slides, 'paginate' => $paginate), true, 'admin'); ?>
25
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
  if (!defined('ABSPATH')) exit; // Exit if accessed directly
4
 
5
+ require_once $this -> plugin_base() . DS . 'includes' . DS . 'class.slide-list-table.php';
6
+ $args = array('screen' => $this -> menus['slideshow-slides']);
7
+ $Slide_List_table = new Slide_List_Table($args);
8
+ $Slide_List_table -> prepare_items();
9
+
10
  ?>
11
 
12
  <div class="wrap <?php echo $this -> pre; ?> slideshow">
13
+ <h1><?php echo sprintf(__('View Gallery: %s', 'slideshow-gallery'), __($gallery -> title)); ?></h1>
14
 
15
+ <div style="float:none;" class="subsubsub"><?php echo $this -> Html -> link(__('&larr; All Galleries', 'slideshow-gallery'), $this -> url, array('title' => __('All Galleries', 'slideshow-gallery'))); ?></div>
16
 
17
  <div class="tablenav top">
18
  <div class="alignleft">
19
+ <a href="?page=<?php echo $this -> sections -> galleries; ?>&amp;method=save&amp;id=<?php echo $gallery -> id; ?>" class="button"><i class="fa fa-pencil"></i> <?php _e('Edit Gallery', 'slideshow-gallery'); ?></a>
20
  </div>
21
  <div class="alignleft">
22
+ <a href="?page=<?php echo $this -> sections -> galleries; ?>&amp;method=hardcode&amp;id=<?php echo $gallery -> id; ?>" class="button"><i class="fa fa-code"></i> <?php _e('Embed', 'slideshow-gallery'); ?></a>
23
  </div>
24
  <div class="alignleft">
25
+ <a onclick="if (!confirm('<?php _e('Are you sure you want to delete this gallery?', 'slideshow-gallery'); ?>')) { return false; }" href="?page=<?php echo $this -> sections -> galleries; ?>&amp;method=delete&amp;id=<?php echo $gallery -> id; ?>" class="button button-highlighted"><i class="fa fa-times"></i> <?php _e('Delete Gallery', 'slideshow-gallery'); ?></a>
26
  </div>
27
  </div>
28
 
29
+ <form id="slideshow-slides-form" action="<?php echo admin_url('admin.php?page=' . $this -> sections -> slides); ?>" method="get">
30
+ <input type="hidden" name="page" value="<?php echo $this -> sections -> slides; ?>" />
31
+ <?php $Slide_List_table -> search_box(__('Search Slides', 'slideshow-gallery'), 'search'); ?>
32
+ <?php $Slide_List_table -> display(); ?>
33
+ </form>
34
+ </div>
35
+
36
+ <script type="text/javascript">
37
+ jQuery('#doaction').on('click', function(event) {
38
+ if (!confirm('Are you sure you want to apply this bulk action?')) {
39
+ return false;
40
+ }
41
+ });
42
+ </script>
views/admin/head.php CHANGED
@@ -7,7 +7,7 @@ $page = esc_html($_GET['page']);
7
  ?>
8
 
9
  <script type="text/javascript">
10
- var GalleryAjax = "<?php echo $this -> url(); ?>/<?php echo $this -> plugin_name; ?>-ajax.php";
11
  var slideshowajax = "<?php echo admin_url('admin-ajax.php'); ?>";
12
 
13
  jQuery(document).ready(function() {
@@ -21,6 +21,14 @@ jQuery(document).ready(function() {
21
  }
22
  <?php endif; ?>
23
 
 
 
 
 
 
 
 
 
24
  if (jQuery.isFunction(jQuery.fn.tooltip)) {
25
  jQuery(".galleryhelp a").tooltip({
26
  tooltipClass: 'slideshow-ui-tooltip',
7
  ?>
8
 
9
  <script type="text/javascript">
10
+ var GalleryAjax = "<?php echo $this -> url(); ?>/<?php echo 'slideshow-gallery'; ?>-ajax.php";
11
  var slideshowajax = "<?php echo admin_url('admin-ajax.php'); ?>";
12
 
13
  jQuery(document).ready(function() {
21
  }
22
  <?php endif; ?>
23
 
24
+ // Color Pickers
25
+ if (jQuery.isFunction(jQuery.fn.wpColorPicker)) {
26
+ jQuery('.color-picker').each(function() {
27
+ jQuery(this).wpColorPicker();
28
+ });
29
+ }
30
+
31
+ // Tooltips
32
  if (jQuery.isFunction(jQuery.fn.tooltip)) {
33
  jQuery(".galleryhelp a").tooltip({
34
  tooltipClass: 'slideshow-ui-tooltip',
views/admin/lite-upgrade.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  <?php
4
 
5
- $plugin_link = "http://tribulant.com/plugins/view/13/wordpress-slideshow-gallery";
6
 
7
  ?>
8
 
@@ -10,7 +10,7 @@ $plugin_link = "http://tribulant.com/plugins/view/13/wordpress-slideshow-gallery
10
  <h1>Upgrade to Slideshow Gallery PRO</h1>
11
 
12
  <div class="about-text">
13
- <?php echo sprintf('You are using the Slideshow Gallery LITE. Take your slideshows to the next level with %s. It gives you extra features to make your slideshows even better!', '<a href="' . $plugin_link . '" target="_blank">' . __('Slideshow Gallery PRO', $this -> plugin_name) . '</a>'); ?>
14
  </div>
15
 
16
  <div class="slideshow-badge">
@@ -42,19 +42,19 @@ $plugin_link = "http://tribulant.com/plugins/view/13/wordpress-slideshow-gallery
42
  <h4>Upgrade to PRO</h4>
43
  <p>Upgrading to Slideshow Gallery PRO is quick and easy by clicking the button below:</p>
44
  <p><a href="<?php echo $plugin_link; ?>" class="button button-primary button-hero" target="_blank"><i class="fa fa-mouse-pointer"></i> Buy PRO Now (only $19.99)</a></p>
45
- <p><?php _e('Once you have purchased a serial key, simply submit it to activate Slideshow Gallery PRO:', $this -> plugin_name); ?></p>
46
- <p><a class="button button-secondary button-large" href="<?php echo admin_url('admin.php?page=' . $this -> sections -> submitserial); ?>" onclick="jQuery.colorbox({href:ajaxurl + '?action=slideshow_serialkey'}); return false;"><i class="fa fa-key"></i> <?php _e('Submit Serial', $this -> plugin_name); ?></a></p>
47
  </div>
48
  </div>
49
  </div>
50
 
51
  <div class="changelog slideshow-changelog">
52
  <h3>About Tribulant Software</h3>
53
- <p><a href="http://tribulant.com" target="_blank"><img src="<?php echo $this -> url(); ?>/images/logo.png" alt="tribulant" /></a></p>
54
  <p>At Tribulant Software, we strive to provide the best WordPress plugins on the market.<br/>
55
  We are a full-time business developing, promoting and supporting WordPress plugins to the community.</p>
56
  <p>
57
- <a class="button button-primary button-large" target="_blank" href="http://tribulant.com">Visit Our Site</a>
58
  </p>
59
 
60
  <h3>Find Us On Social Networks</h3>
2
 
3
  <?php
4
 
5
+ $plugin_link = "https://tribulant.com/plugins/view/13/wordpress-slideshow-gallery";
6
 
7
  ?>
8
 
10
  <h1>Upgrade to Slideshow Gallery PRO</h1>
11
 
12
  <div class="about-text">
13
+ <?php echo sprintf('You are using the Slideshow Gallery LITE. Take your slideshows to the next level with %s. It gives you extra features to make your slideshows even better!', '<a href="' . $plugin_link . '" target="_blank">' . __('Slideshow Gallery PRO', 'slideshow-gallery') . '</a>'); ?>
14
  </div>
15
 
16
  <div class="slideshow-badge">
42
  <h4>Upgrade to PRO</h4>
43
  <p>Upgrading to Slideshow Gallery PRO is quick and easy by clicking the button below:</p>
44
  <p><a href="<?php echo $plugin_link; ?>" class="button button-primary button-hero" target="_blank"><i class="fa fa-mouse-pointer"></i> Buy PRO Now (only $19.99)</a></p>
45
+ <p><?php _e('Once you have purchased a serial key, simply submit it to activate Slideshow Gallery PRO:', 'slideshow-gallery'); ?></p>
46
+ <p><a class="button button-secondary button-large" href="<?php echo admin_url('admin.php?page=' . $this -> sections -> submitserial); ?>" onclick="jQuery.colorbox({href:ajaxurl + '?action=slideshow_serialkey'}); return false;"><i class="fa fa-key"></i> <?php _e('Submit Serial', 'slideshow-gallery'); ?></a></p>
47
  </div>
48
  </div>
49
  </div>
50
 
51
  <div class="changelog slideshow-changelog">
52
  <h3>About Tribulant Software</h3>
53
+ <p><a href="https://tribulant.com" target="_blank"><img src="<?php echo $this -> url(); ?>/images/logo.png" alt="tribulant" /></a></p>
54
  <p>At Tribulant Software, we strive to provide the best WordPress plugins on the market.<br/>
55
  We are a full-time business developing, promoting and supporting WordPress plugins to the community.</p>
56
  <p>
57
+ <a class="button button-primary button-large" target="_blank" href="https://tribulant.com">Visit Our Site</a>
58
  </p>
59
 
60
  <h3>Find Us On Social Networks</h3>
views/admin/metaboxes/settings-about.php CHANGED
@@ -8,19 +8,19 @@ if (!defined('ABSPATH')) exit; // Exit if accessed directly
8
  <div id="minor-publishing">
9
  <div id="misc-publishing-actions">
10
  <div class="misc-pub-section">
11
- <a href="http://wordpress.org/extend/plugins/slideshow-gallery/" target="_blank"><?php _e('Vote/rate on WordPress.org, please!', $this -> plugin_name); ?></a>
12
  </div>
13
  <div class="misc-pub-section">
14
- <a href="http://docs.tribulant.com/wordpress-slideshow-gallery/1758" target="_blank"><?php _e('Online Documentation', $this -> plugin_name); ?></a>
15
  </div>
16
  <div class="misc-pub-section">
17
- <a href="https://www.facebook.com/tribulantsoftware" target="_blank"><?php _e('Find Us on Facebook', $this -> plugin_name); ?></a>
18
  </div>
19
  <div class="misc-pub-section">
20
- <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=YGCRFTX84K9AS" target="_blank"><?php _e('Make a Donation, please', $this -> plugin_name); ?></a>
21
  </div>
22
  <div class="misc-pub-section misc-pub-section-last">
23
- <a href="http://tribulant.com" target="_blank" style="color:red;"><?php _e('More Amazing Plugins!!!', $this -> plugin_name); ?></a>
24
  </div>
25
  </div>
26
  </div>
8
  <div id="minor-publishing">
9
  <div id="misc-publishing-actions">
10
  <div class="misc-pub-section">
11
+ <a href="https://wordpress.org/extend/plugins/slideshow-gallery/" target="_blank"><?php _e('Vote/rate on WordPress.org, please!', 'slideshow-gallery'); ?></a>
12
  </div>
13
  <div class="misc-pub-section">
14
+ <a href="https://docs.tribulant.com/wordpress-slideshow-gallery/1758" target="_blank"><?php _e('Online Documentation', 'slideshow-gallery'); ?></a>
15
  </div>
16
  <div class="misc-pub-section">
17
+ <a href="https://www.facebook.com/tribulantsoftware" target="_blank"><?php _e('Find Us on Facebook', 'slideshow-gallery'); ?></a>
18
  </div>
19
  <div class="misc-pub-section">
20
+ <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=YGCRFTX84K9AS" target="_blank"><?php _e('Make a Donation, please', 'slideshow-gallery'); ?></a>
21
  </div>
22
  <div class="misc-pub-section misc-pub-section-last">
23
+ <a href="https://tribulant.com" target="_blank" style="color:red;"><?php _e('More Amazing Plugins!!!', 'slideshow-gallery'); ?></a>
24
  </div>
25
  </div>
26
  </div>
views/admin/metaboxes/settings-general.php CHANGED
@@ -22,12 +22,12 @@ $infoonhover = $this -> get_option('infoonhover');
22
  $thumbhideonmobile = $this -> get_option ('thumbhideonmobile');
23
  ?>
24
 
25
- <h3><?php _e('Slide Effects', $this -> plugin_name); ?></h3>
26
 
27
  <table class="form-table">
28
  <tbody>
29
  <tr>
30
- <th><label for="effect_fade"><?php _e('Effect', $this -> plugin_name); ?></label></th>
31
  <td>
32
  <?php
33
 
@@ -54,7 +54,7 @@ $thumbhideonmobile = $this -> get_option ('thumbhideonmobile');
54
  <option <?php echo (!$this -> ci_serial_valid() && $eff != "slide") ? 'disabled="disabled"' : ''; ?> <?php echo (!empty($effect) && $effect == $eff) ? 'selected="selected"' : ''; ?> value="<?php echo esc_attr(stripslashes($eff)); ?>"><?php echo ucfirst($eff); ?></option>
55
  <?php endforeach; ?>
56
  </select>
57
- <span class="howto"><?php _e('Choose the type of effect/transition you want for slides', $this -> plugin_name); ?></span>
58
 
59
  <script type="text/javascript">
60
  jQuery('#effect').on('change', function() {
@@ -79,10 +79,10 @@ $thumbhideonmobile = $this -> get_option ('thumbhideonmobile');
79
  <table class="form-table">
80
  <tbody>
81
  <tr>
82
- <th><label for="slide_direction_lr"><?php _e('Slide Direction', $this -> plugin_name); ?></label></th>
83
  <td>
84
- <label><input <?php echo (!empty($slide_direction) && $slide_direction == "lr") ? 'checked="checked"' : ''; ?> type="radio" name="slide_direction" value="lr" id="slide_direction_lr" /> <?php _e('Left/Right', $this -> plugin_name); ?></label>
85
- <label><input <?php echo (!empty($slide_direction) && $slide_direction == "tb") ? 'checked="checked"' : ''; ?> type="radio" name="slide_direction" value="tb" id="slide_direction_tb" /> <?php _e('Top/Bottom', $this -> plugin_name); ?></label>
86
  </td>
87
  </tr>
88
  </tbody>
@@ -92,8 +92,8 @@ $thumbhideonmobile = $this -> get_option ('thumbhideonmobile');
92
  <table class="form-table">
93
  <tbody>
94
  <tr>
95
- <th><label for="easing"><?php _e('Easing', $this -> plugin_name); ?></label>
96
- <?php echo $this -> Html -> help(sprintf(__('Choose the type of easing effect. See the %s available.', $this -> plugin_name), '<a href="http://api.jqueryui.com/easings/" target="_blank">' . __('list of easings', $this -> plugin_name) . '</a>')); ?></th>
97
  <td>
98
  <select name="easing" id="easing">
99
  <option value="swing">swing</option>
@@ -136,23 +136,23 @@ $thumbhideonmobile = $this -> get_option ('thumbhideonmobile');
136
  });
137
  </script>
138
 
139
- <span class="howto"><?php _e('Choose the desired easing effect', $this -> plugin_name); ?></span>
140
  </td>
141
  </tr>
142
  </tbody>
143
  </table>
144
 
145
- <h3><?php _e('Sliding Behaviour', $this -> plugin_name); ?></h3>
146
 
147
  <table class="form-table">
148
  <tbody>
149
  <tr>
150
- <th><label for="autoslideY"><?php _e('Auto Slide', $this -> plugin_name); ?></label>
151
- <?php echo $this -> Html -> help(__('Turn this on so that the slideshow can automatically slide through the slides.<br/><br/><strong>Override per slideshow:</strong> Using parameter <code>auto</code> with value <code>true</code> or <code>false</code> eg. <code>[tribulant_slideshow auto="false"]</code>.', $this -> plugin_name)); ?></th>
152
  <td>
153
- <label><input onclick="jQuery('#autoslide_div').show();" <?php echo ($this -> get_option('autoslide') == "Y") ? 'checked="checked"' : ''; ?> type="radio" name="autoslide" value="Y" id="autoslideY" /> <?php _e('Yes', $this -> plugin_name); ?></label>
154
- <label><input onclick="jQuery('#autoslide_div').hide();" <?php echo ($this -> get_option('autoslide') == "N") ? 'checked="checked"' : ''; ?> type="radio" name="autoslide" value="N" id="autoslideN" /> <?php _e('No', $this -> plugin_name); ?></label>
155
- <span class="howto"><?php _e('Should image slides automatically slide?', $this -> plugin_name); ?></span>
156
  </td>
157
  </tr>
158
  </tbody>
@@ -162,17 +162,17 @@ $thumbhideonmobile = $this -> get_option ('thumbhideonmobile');
162
  <table class="form-table">
163
  <tbody>
164
  <tr>
165
- <th><label for="alwaysauto_true"><?php _e('Always Auto', $this -> plugin_name); ?></label>
166
- <?php echo $this -> Html -> help(__('With the "Auto Slide" setting turned on above, the slideshow will automatically go through the slides but it will stop automatically navigating once the user started navigating. You can override this behaviour and force automatic navigation by turning this on.', $this -> plugin_name)); ?></th>
167
  <td>
168
- <label><input <?php echo ($this -> get_option('alwaysauto') == "true") ? 'checked="checked"' : ''; ?> type="radio" name="alwaysauto" value="true" id="alwaysauto_true" /> <?php _e('Yes', $this -> plugin_name); ?></label>
169
- <label><input <?php echo ($this -> get_option('alwaysauto') == "false") ? 'checked="checked"' : ''; ?> type="radio" name="alwaysauto" value="false" id="alwaysauto_false" /> <?php _e('No', $this -> plugin_name); ?></label>
170
- <span class="howto"><?php _e('Should the slideshow always continue auto sliding, even after navigation by the user?', $this -> plugin_name); ?></span>
171
  </td>
172
  </tr>
173
  <tr>
174
- <th><label for="autospeed"><?php _e('Auto Speed', $this -> plugin_name); ?></label>
175
- <?php echo $this -> Html -> help(__('Set the speed at which auto sliding will occur, meaning the interval between auto sliding. The default is 10 which is recommended but you can specify a smaller number for quicker sliding or a larger number for slower sliding.', $this -> plugin_name)); ?></th>
176
  <td>
177
  <input type="hidden" style="width:45px;" name="autospeed" value="<?php echo $autospeed; ?>" id="autospeed" />
178
  <div id="autospeed_slider"></div>
@@ -190,7 +190,7 @@ $thumbhideonmobile = $this -> get_option ('thumbhideonmobile');
190
  });
191
  });
192
  </script>
193
- <span class="howto"><?php _e('Speed for auto sliding. Lower number for shorter interval between images.', $this -> plugin_name); ?> <small><?php _e('(Default/Recommended: 10)', $this -> plugin_name); ?></small></span>
194
  </td>
195
  </tr>
196
  </tbody>
@@ -200,8 +200,8 @@ $thumbhideonmobile = $this -> get_option ('thumbhideonmobile');
200
  <table class="form-table">
201
  <tbody>
202
  <tr>
203
- <th><label for="fadespeed"><?php _e('Transition Speed', $this -> plugin_name); ?></label>
204
- <?php echo $this -> Html -> help(__('Choose the speed at which images fade in and out. The default is 20 and a number between 1 and 50 is recommended. Use a low number for quick fading and a higher number for slower fading.', $this -> plugin_name)); ?></th>
205
  <td>
206
  <input style="width:45px;" type="hidden" name="fadespeed" value="<?php echo $fadespeed; ?>" id="fadespeed" />
207
  <div id="fadespeed_slider"></div>
@@ -219,22 +219,22 @@ $thumbhideonmobile = $this -> get_option ('thumbhideonmobile');
219
  });
220
  });
221
  </script>
222
- <span class="howto"><?php _e('Speed for fading of images. Lower number for quicker fading of images.', $this -> plugin_name); ?> <small><?php _e('(Default: 10, Recommended: 1-20)', $this -> plugin_name); ?><br/></small></span>
223
  </td>
224
  </tr>
225
  </tbody>
226
  </table>
227
 
228
- <h3><?php _e('Navigation (Previous/Next)', $this -> plugin_name); ?></h3>
229
  <table class="form-table">
230
  <tbody>
231
  <tr>
232
- <th><label for="shownav_Y"><?php _e('Show Image Navigation', $this -> plugin_name); ?></label>
233
- <?php echo $this -> Html -> help(__('Turn this on to show the Next and Previous arrows on either sides of the slideshow for the user to navigate through slides. Once turned on, you can set the opacity of these navigation arrows below.', $this -> plugin_name)); ?></th>
234
  <td>
235
- <label><input <?php echo ($this -> get_option('shownav') == "Y") ? 'checked="checked"' : ''; ?> onclick="jQuery('#shownavdiv').show();" type="radio" name="shownav" value="Y" id="shownav_Y" /> <?php _e('Yes', $this -> plugin_name); ?></label>
236
- <label><input <?php echo ($this -> get_option('shownav') == "N") ? 'checked="checked"' : ''; ?> onclick="jQuery('#shownavdiv').hide();" type="radio" name="shownav" value="N" id="shownav_N" /> <?php _e('No', $this -> plugin_name); ?></label>
237
- <span class="howto"><?php _e('Show next/previous buttons on the image for navigation purposes?', $this -> plugin_name); ?></span>
238
  </td>
239
  </tr>
240
  </tbody>
@@ -244,8 +244,8 @@ $thumbhideonmobile = $this -> get_option ('thumbhideonmobile');
244
  <table class="form-table">
245
  <tbody>
246
  <tr>
247
- <th><label for="navopacity"><?php _e('Navigation Default Opacity', $this -> plugin_name); ?></label>
248
- <?php echo $this -> Html -> help(__('The default state opacity of the left/right navigation arrows. This is a percentage value and you can specify anything between 0% and 100% as needed.', $this -> plugin_name)); ?></th>
249
  <td>
250
  <input type="hidden" name="navopacity" value="<?php echo $navopacity; ?>" id="navopacity" style="width:45px;" />
251
  <div id="navopacity_slider"></div>
@@ -264,12 +264,12 @@ $thumbhideonmobile = $this -> get_option ('thumbhideonmobile');
264
  });
265
  </script>
266
 
267
- <span class="howto"><?php _e('Opacity of the next/previous buttons by default.', $this -> plugin_name); ?></span>
268
  </td>
269
  </tr>
270
  <tr>
271
- <th><label for="navhover"><?php _e('Navigation Hover Opacity', $this -> plugin_name); ?></label>
272
- <?php echo $this -> Html -> help(__('The hover state opacity of the left/right navigation arrows. This is the opacity when the user hovers with the mouse cursor over the arrow image. Percentage value between 0% and 100%', $this -> plugin_name)); ?></th>
273
  <td>
274
  <input type="hidden" name="navhover" value="<?php echo $navhover; ?>" id="navhover" style="width:45px;" />
275
  <div id="navhover_slider"></div>
@@ -287,24 +287,24 @@ $thumbhideonmobile = $this -> get_option ('thumbhideonmobile');
287
  });
288
  });
289
  </script>
290
- <span class="howto"><?php _e('Opacity of the next/previous buttons when they are hovered.', $this -> plugin_name); ?></span>
291
  </td>
292
  </tr>
293
  </tbody>
294
  </table>
295
  </div>
296
 
297
- <h3><?php _e('Information Bar', $this -> plugin_name); ?></h3>
298
 
299
  <table class="form-table">
300
  <tbody>
301
  <tr>
302
- <th><label for="informationY"><?php _e('Show Information', $this -> plugin_name); ?></label>
303
- <?php echo $this -> Html -> help(__('Should the information bar be shown on slides? Turn this on to show a bar on each slide with the title and description of the slide.', $this -> plugin_name)); ?></th>
304
  <td>
305
- <label><input onclick="jQuery('#information_div').show();" <?php echo ($this -> get_option('information') == "Y") ? 'checked="checked"' : ''; ?> type="radio" name="information" value="Y" id="informationY" /> <?php _e('Yes', $this -> plugin_name); ?></label>
306
- <label><input onclick="jQuery('#information_div').hide();" <?php echo ($this -> get_option('information') == "N") ? 'checked="checked"' : ''; ?> type="radio" name="information" value="N" id="informationN" /> <?php _e('No', $this -> plugin_name); ?></label>
307
- <span class="howto"><?php _e('Should the information bar be shown on slides?', $this -> plugin_name); ?></span>
308
  </td>
309
  </tr>
310
  </tbody>
@@ -314,20 +314,20 @@ $thumbhideonmobile = $this -> get_option ('thumbhideonmobile');
314
  <table class="form-table">
315
  <tbody>
316
  <tr>
317
- <th><label for="infopositionbottom"><?php _e('Information Bar Position', $this -> plugin_name); ?></label>
318
- <?php echo $this -> Html -> help(__('With the Information Bar turned on with the setting above, you can now specify the position of the information bar. Either above or below the slideshow is available.', $this -> plugin_name)); ?></th>
319
  <td>
320
- <label><input <?php echo ($this -> get_option('infoposition') == "top") ? 'checked="checked"' : ''; ?> type="radio" name="infoposition" value="top" id="infopositiontop" /> <?php _e('Top', $this -> plugin_name); ?></label>
321
- <label><input <?php echo ($this -> get_option('infoposition') == "bottom") ? 'checked="checked"' : ''; ?> type="radio" name="infoposition" value="bottom" id="infopositionbottom" /> <?php _e('Bottom', $this -> plugin_name); ?></label>
322
- <span class="howto"><?php _e('Choose your preferred position of the information bar relative to the slideshow.', $this -> plugin_name); ?></span>
323
  </td>
324
  </tr>
325
  <tr>
326
- <th><label for="infoonhover"><?php _e('Show Only On Hover', $this -> plugin_name); ?></label>
327
- <?php echo $this -> Html -> help(__('Checking this option will only show the information bar on hover', $this -> plugin_name)); ?></th>
328
  <td>
329
- <label><input onclick="if (jQuery(this).is(':checked')) { jQuery('#infoonhover_div').hide(); } else { jQuery('#infoonhover_div').show(); }" <?php echo (!empty($infoonhover)) ? 'checked="checked"' : ''; ?> type="checkbox" name="infoonhover" value="1" id="infoonhover" /> <?php _e('Yes, only show the info bar on hover', $this -> plugin_name); ?></label>
330
- <span class="howto"><?php _e('Tick/check this to only show the information bar on hover.', $this -> plugin_name); ?></span>
331
  </td>
332
  </tr>
333
  </tbody>
@@ -337,18 +337,18 @@ $thumbhideonmobile = $this -> get_option ('thumbhideonmobile');
337
  <table class="form-table">
338
  <tbody>
339
  <tr>
340
- <th><label for="infodelay"><?php _e('Information Delay', $this -> plugin_name); ?></label></th>
341
  <td>
342
- <label><input <?php echo (!$this -> ci_serial_valid()) ? 'disabled="disabled"' : ''; ?> class="widefat" style="width:65px;" type="text" name="infodelay" value="<?php echo esc_attr(stripslashes($infodelay)); ?>" id="infodelay" /> <?php _e('seconds', $this -> plugin_name); ?></label>
343
- <span class="howto"><?php _e('Delay the information bar in seconds or leave empty/zero for immediate display.', $this -> plugin_name); ?></span>
344
  </td>
345
  </tr>
346
  <tr>
347
- <th><label for="infofade"><?php _e('Fade Information Bar', $this -> plugin_name); ?></label>
348
- <?php echo $this -> Html -> help(__('Fade the information bar after a few seconds.', $this -> plugin_name)); ?></th>
349
  <td>
350
- <label><input <?php echo (!empty($infofade)) ? 'checked="checked"' : ''; ?> onclick="if (jQuery(this).is(':checked')) { jQuery('#informationfade_div').show(); } else { jQuery('#informationfade_div').hide(); }"type="checkbox" name="infofade" value="1" id="infofade" /> <?php _e('Yes, fade the information bar', $this -> plugin_name); ?></label>
351
- <span class="howto"><?php _e('Do you want the information bar to fade?', $this -> plugin_name); ?></span>
352
  </td>
353
  </tr>
354
  </tbody>
@@ -358,10 +358,10 @@ $thumbhideonmobile = $this -> get_option ('thumbhideonmobile');
358
  <table class="form-table">
359
  <tbody>
360
  <tr>
361
- <th><label for="infofadedelay"><?php _e('Fade Delay', $this -> plugin_name); ?></label></th>
362
  <td>
363
- <label><input class="widefat" style="width:65px;" type="text" name="infofadedelay" value="<?php echo esc_attr(stripslashes($infofadedelay)); ?>" id="infofadedelay" /> <?php _e('seconds', $this -> plugin_name); ?></label>
364
- <span class="howto"><?php _e('Enter time in seconds for the information bar to fade.', $this -> plugin_name); ?></span>
365
  </td>
366
  </tr>
367
  </tbody>
@@ -372,8 +372,8 @@ $thumbhideonmobile = $this -> get_option ('thumbhideonmobile');
372
  <table class="form-table">
373
  <tbody>
374
  <tr>
375
- <th><label for="infospeed"><?php _e('Information Speed', $this -> plugin_name); ?></label>
376
- <?php echo $this -> Html -> help(__('Specify the speed at which the information bar will slide up and down as the slide is shown and hidden.', $this -> plugin_name)); ?></th>
377
  <td>
378
  <input type="hidden" style="width:45px;" name="infospeed" value="<?php echo $infospeed; ?>" id="infospeed" />
379
  <div id="infospeed_slider"></div>
@@ -391,32 +391,32 @@ $thumbhideonmobile = $this -> get_option ('thumbhideonmobile');
391
  });
392
  });
393
  </script>
394
- <span class="howto"><?php _e('Speed at which the information bar will slide in and out.', $this -> plugin_name); ?></span>
395
  </td>
396
  </tr>
397
  <tr>
398
- <th><label for="infohideonmobile"><?php _e('Hide On Mobiles', $this -> plugin_name); ?></label>
399
- <?php echo $this -> Html -> help(__('With a responsive layout turned on, the slideshow will respond in width on mobile devices and the information bar tends to overlap the entire slide since it increases in height as it reduces in width. You can tick/check this setting to hide the information bar on mobile devices so that the slides remain fully visible.', $this -> plugin_name)); ?></th>
400
  <td>
401
- <label><input <?php echo (!$this -> ci_serial_valid()) ? 'disabled="disabled"' : ''; ?> <?php echo (!empty($infohideonmobile) && $this -> ci_serial_valid()) ? 'checked="checked"' : ''; ?> type="checkbox" name="infohideonmobile" value="1" id="infohideonmobile" /> <?php _e('Yes, hide the information bar on mobiles', $this -> plugin_name); ?></label>
402
- <span class="howto"><?php _e('Tick/check this to hide the information bar on mobiles', $this -> plugin_name); ?></span>
403
  </td>
404
  </tr>
405
  </tbody>
406
  </table>
407
  </div>
408
 
409
- <h3><?php _e('Thumbnails Bar/Slider', $this -> plugin_name); ?></h3>
410
 
411
  <table class="form-table">
412
  <tbody>
413
  <tr>
414
- <th><label for="thumbnailsN"><?php _e('Show Thumbnails', $this -> plugin_name); ?></label>
415
- <?php echo $this -> Html -> help(__('Would you like to show a thumbnail bar/slider above/below the slideshow with the thumbnails of all the slides in the slideshow for easier navigation?', $this -> plugin_name)); ?></th>
416
  <td>
417
- <label><input onclick="jQuery('#thumbnails_div').show();" <?php echo ($this -> get_option('thumbnails') == "Y") ? 'checked="checked"' : ''; ?> type="radio" name="thumbnails" value="Y" id="thumbnailsY" /> <?php _e('Yes', $this -> plugin_name); ?></label>
418
- <label><input onclick="jQuery('#thumbnails_div').hide();" <?php echo ($this -> get_option('thumbnails') == "N") ? 'checked="checked"' : ''; ?> type="radio" name="thumbnails" value="N" id="thumbnailsN" /> <?php _e('No', $this -> plugin_name); ?></label>
419
- <span class="howto"><?php _e('Should the thumbnails bar be shown for slides?', $this -> plugin_name); ?></span>
420
  </td>
421
  </tr>
422
  </tbody>
@@ -426,29 +426,29 @@ $thumbhideonmobile = $this -> get_option ('thumbhideonmobile');
426
  <table class="form-table">
427
  <tbody>
428
  <tr>
429
- <th><label for="thubmpositionbottom"><?php _e('Thumbnails Position', $this -> plugin_name); ?></label>
430
- <?php echo $this -> Html -> help(__('With the thumbnails turned on with the setting above, you can now specify the position of the thumbnail bar/slider. Either above or below the slideshow is available.', $this -> plugin_name)); ?></th>
431
  <td>
432
- <label><input <?php echo ($this -> get_option('thumbposition') == "top") ? 'checked="checked"' : ''; ?> type="radio" name="thumbposition" value="top" id="thumbpositiontop" /> <?php _e('Top', $this -> plugin_name); ?></label>
433
- <label><input <?php echo ($this -> get_option('thumbposition') == "bottom") ? 'checked="checked"' : ''; ?> type="radio" name="thumbposition" value="bottom" id="thumbpositionbottom" /> <?php _e('Bottom', $this -> plugin_name); ?></label>
434
- <span class="howto"><?php _e('Choose your preferred position of the thumbnails bar relative to the slideshow images.', $this -> plugin_name); ?></span>
435
  </td>
436
  </tr>
437
  <tr>
438
- <th><label for="thumbheight"><?php _e('Thumbnail Dimensions', $this -> plugin_name); ?></label>
439
- <?php echo $this -> Html -> help(__('Specify the width and height (dimensions) of the thumbnails in the thumbnail bar/slider which will show above/below the slideshow.', $this -> plugin_name)); ?></th>
440
  <td>
441
  <input class="widefat" style="width:45px;" type="text" name="thumbwidth" value="<?php echo esc_attr(stripslashes($this -> get_option('thumbwidth'))); ?>" id="thumbwidth" />
442
- <?php _e('x <!-- by -->', $this -> plugin_name); ?>
443
  <input class="widefat" style="width:45px;" type="text" name="thumbheight" value="<?php echo esc_attr(stripslashes($this -> get_option('thumbheight'))); ?>" id="thumbheight" />
444
- <?php _e('px <!-- pixels -->', $this -> plugin_name); ?>
445
- <span class="howto"><?php _e('Width and height of the thumbnails for the slides.', $this -> plugin_name); ?><br/>
446
- <?php _e('You may leave the height empty (not the width) to crop proportionally.', $this -> plugin_name); ?></span>
447
  </td>
448
  </tr>
449
  <tr>
450
- <th><label for="thumbopacity"><?php _e('Thumbnail Opacity', $this -> plugin_name); ?></label>
451
- <?php echo $this -> Html -> help(__('The opacity of the default state of thumbnails in the thumbnails bar/slider. The active thumbnail of the currently showing slide will be 100% opacity, always.', $this -> plugin_name)); ?></th>
452
  <td>
453
  <input style="width:45px;" type="hidden" name="thumbopacity" value="<?php echo $thumbopacity; ?>" id="thumbopacity" />
454
  <div id="thumbopacity_slider"></div>
@@ -466,12 +466,12 @@ $thumbhideonmobile = $this -> get_option ('thumbhideonmobile');
466
  });
467
  });
468
  </script>
469
- <span class="howto"><?php _e('Default opacity of thumbnails when they are not hovered.', $this -> plugin_name); ?></span>
470
  </td>
471
  </tr>
472
  <tr>
473
- <th><label for="thumbscrollspeed"><?php _e('Thumbnails Scroll Speed', $this -> plugin_name); ?></label>
474
- <?php echo $this -> Html -> help(__('At which speed should the thumbnails bar/slider scroll when the left/right arrows are hovered by the user?', $this -> plugin_name)); ?></th>
475
  <td>
476
  <input type="hidden" class="widefat" style="width:45px;" name="thumbscrollspeed" value="<?php echo $thumbscrollspeed; ?>" id="thumbscrollspeed" />
477
  <div id="thumbscrollspeed_slider"></div>
@@ -489,23 +489,23 @@ $thumbhideonmobile = $this -> get_option ('thumbhideonmobile');
489
  });
490
  });
491
  </script>
492
- <span class="howto"><?php _e('Speed at which the thumbnails will scroll.', $this -> plugin_name); ?> <small><?php _e('(Default:5, Recommended: 1-20)', $this -> plugin_name); ?></small></span>
493
  </td>
494
  </tr>
495
  <tr>
496
- <th><label for="thumbspacing"><?php _e('Thumbnail Spacing', $this -> plugin_name); ?></label>
497
- <?php echo $this -> Html -> help(__('This is a simple margin setting to specify the space between the thumbnails in the thumbnails bar/slider above/below the slideshow.', $this -> plugin_name)); ?></th>
498
  <td>
499
- <input type="text" style="width:45px;" name="thumbspacing" value="<?php echo $this -> get_option('thumbspacing'); ?>" id="thumbspacing" /> <?php _e('px', $this -> plugin_name); ?>
500
- <span class="howto"><?php _e('Horizontal margin/spacing in pixels between thumbnail images.', $this -> plugin_name); ?></span>
501
  </td>
502
  </tr>
503
  <tr>
504
- <th><label for="thumbhideonmobile"><?php _e('Hide On Mobile', $this -> plugin_name); ?></label>
505
- <?php echo $this -> Html -> help(__('With a responsive layout turned on, the slideshow will respond in width on mobile devices. You can tick/check this setting to hide the thumbnail bar.', $this -> plugin_name)); ?></th>
506
  <td>
507
- <label><input <?php echo (!$this -> ci_serial_valid()) ? 'disabled="disabled"' : ''; ?> <?php echo (!empty($thumbhideonmobile) && $this -> ci_serial_valid()) ? 'checked="checked"' : ''; ?> type="checkbox" name="thumbhideonmobile" value="1" id="thumbhideonmobile" /> <?php _e('Yes, hide the thumbnail bar on mobiles', $this -> plugin_name); ?></label>
508
- <span class="howto"><?php _e('Tick/check this to hide the thumbnail bar on mobiles', $this -> plugin_name); ?></span>
509
  </td>
510
  </tr>
511
  </tbody>
22
  $thumbhideonmobile = $this -> get_option ('thumbhideonmobile');
23
  ?>
24
 
25
+ <h3><?php _e('Slide Effects', 'slideshow-gallery'); ?></h3>
26
 
27
  <table class="form-table">
28
  <tbody>
29
  <tr>
30
+ <th><label for="effect_fade"><?php _e('Effect', 'slideshow-gallery'); ?></label></th>
31
  <td>
32
  <?php
33
 
54
  <option <?php echo (!$this -> ci_serial_valid() && $eff != "slide") ? 'disabled="disabled"' : ''; ?> <?php echo (!empty($effect) && $effect == $eff) ? 'selected="selected"' : ''; ?> value="<?php echo esc_attr(stripslashes($eff)); ?>"><?php echo ucfirst($eff); ?></option>
55
  <?php endforeach; ?>
56
  </select>
57
+ <span class="howto"><?php _e('Choose the type of effect/transition you want for slides', 'slideshow-gallery'); ?></span>
58
 
59
  <script type="text/javascript">
60
  jQuery('#effect').on('change', function() {
79
  <table class="form-table">
80
  <tbody>
81
  <tr>
82
+ <th><label for="slide_direction_lr"><?php _e('Slide Direction', 'slideshow-gallery'); ?></label></th>
83
  <td>
84
+ <label><input <?php echo (!empty($slide_direction) && $slide_direction == "lr") ? 'checked="checked"' : ''; ?> type="radio" name="slide_direction" value="lr" id="slide_direction_lr" /> <?php _e('Left/Right', 'slideshow-gallery'); ?></label>
85
+ <label><input <?php echo (!empty($slide_direction) && $slide_direction == "tb") ? 'checked="checked"' : ''; ?> type="radio" name="slide_direction" value="tb" id="slide_direction_tb" /> <?php _e('Top/Bottom', 'slideshow-gallery'); ?></label>
86
  </td>
87
  </tr>
88
  </tbody>
92
  <table class="form-table">
93
  <tbody>
94
  <tr>
95
+ <th><label for="easing"><?php _e('Easing', 'slideshow-gallery'); ?></label>
96
+ <?php echo $this -> Html -> help(sprintf(__('Choose the type of easing effect. See the %s available.', 'slideshow-gallery'), '<a href="https://api.jqueryui.com/easings/" target="_blank">' . __('list of easings', 'slideshow-gallery') . '</a>')); ?></th>
97
  <td>
98
  <select name="easing" id="easing">
99
  <option value="swing">swing</option>
136
  });
137
  </script>
138
 
139
+ <span class="howto"><?php _e('Choose the desired easing effect', 'slideshow-gallery'); ?></span>
140
  </td>
141
  </tr>
142
  </tbody>
143
  </table>
144
 
145
+ <h3><?php _e('Sliding Behaviour', 'slideshow-gallery'); ?></h3>
146
 
147
  <table class="form-table">
148
  <tbody>
149
  <tr>
150
+ <th><label for="autoslideY"><?php _e('Auto Slide', 'slideshow-gallery'); ?></label>
151
+ <?php echo $this -> Html -> help(__('Turn this on so that the slideshow can automatically slide through the slides.<br/><br/><strong>Override per slideshow:</strong> Using parameter <code>auto</code> with value <code>true</code> or <code>false</code> eg. <code>[tribulant_slideshow auto="false"]</code>.', 'slideshow-gallery')); ?></th>
152
  <td>
153
+ <label><input onclick="jQuery('#autoslide_div').show();" <?php echo ($this -> get_option('autoslide') == "Y") ? 'checked="checked"' : ''; ?> type="radio" name="autoslide" value="Y" id="autoslideY" /> <?php _e('Yes', 'slideshow-gallery'); ?></label>
154
+ <label><input onclick="jQuery('#autoslide_div').hide();" <?php echo ($this -> get_option('autoslide') == "N") ? 'checked="checked"' : ''; ?> type="radio" name="autoslide" value="N" id="autoslideN" /> <?php _e('No', 'slideshow-gallery'); ?></label>
155
+ <span class="howto"><?php _e('Should image slides automatically slide?', 'slideshow-gallery'); ?></span>
156
  </td>
157
  </tr>
158
  </tbody>
162
  <table class="form-table">
163
  <tbody>
164
  <tr>
165
+ <th><label for="alwaysauto_true"><?php _e('Always Auto', 'slideshow-gallery'); ?></label>
166
+ <?php echo $this -> Html -> help(__('With the "Auto Slide" setting turned on above, the slideshow will automatically go through the slides but it will stop automatically navigating once the user started navigating. You can override this behaviour and force automatic navigation by turning this on.', 'slideshow-gallery')); ?></th>
167
  <td>
168
+ <label><input <?php echo ($this -> get_option('alwaysauto') == "true") ? 'checked="checked"' : ''; ?> type="radio" name="alwaysauto" value="true" id="alwaysauto_true" /> <?php _e('Yes', 'slideshow-gallery'); ?></label>
169
+ <label><input <?php echo ($this -> get_option('alwaysauto') == "false") ? 'checked="checked"' : ''; ?> type="radio" name="alwaysauto" value="false" id="alwaysauto_false" /> <?php _e('No', 'slideshow-gallery'); ?></label>
170
+ <span class="howto"><?php _e('Should the slideshow always continue auto sliding, even after navigation by the user?', 'slideshow-gallery'); ?></span>
171
  </td>
172
  </tr>
173
  <tr>
174
+ <th><label for="autospeed"><?php _e('Auto Speed', 'slideshow-gallery'); ?></label>
175
+ <?php echo $this -> Html -> help(__('Set the speed at which auto sliding will occur, meaning the interval between auto sliding. The default is 10 which is recommended but you can specify a smaller number for quicker sliding or a larger number for slower sliding.', 'slideshow-gallery')); ?></th>
176
  <td>
177
  <input type="hidden" style="width:45px;" name="autospeed" value="<?php echo $autospeed; ?>" id="autospeed" />
178
  <div id="autospeed_slider"></div>
190
  });
191
  });
192
  </script>
193
+ <span class="howto"><?php _e('Speed for auto sliding. Lower number for shorter interval between images.', 'slideshow-gallery'); ?> <small><?php _e('(Default/Recommended: 10)', 'slideshow-gallery'); ?></small></span>
194
  </td>
195
  </tr>
196
  </tbody>
200
  <table class="form-table">
201
  <tbody>
202
  <tr>
203
+ <th><label for="fadespeed"><?php _e('Transition Speed', 'slideshow-gallery'); ?></label>
204
+ <?php echo $this -> Html -> help(__('Choose the speed at which images fade in and out. The default is 20 and a number between 1 and 50 is recommended. Use a low number for quick fading and a higher number for slower fading.', 'slideshow-gallery')); ?></th>
205
  <td>
206
  <input style="width:45px;" type="hidden" name="fadespeed" value="<?php echo $fadespeed; ?>" id="fadespeed" />
207
  <div id="fadespeed_slider"></div>
219
  });
220
  });
221
  </script>
222
+ <span class="howto"><?php _e('Speed for fading of images. Lower number for quicker fading of images.', 'slideshow-gallery'); ?> <small><?php _e('(Default: 10, Recommended: 1-20)', 'slideshow-gallery'); ?><br/></small></span>
223
  </td>
224
  </tr>
225
  </tbody>
226
  </table>
227
 
228
+ <h3><?php _e('Navigation (Previous/Next)', 'slideshow-gallery'); ?></h3>
229
  <table class="form-table">
230
  <tbody>
231
  <tr>
232
+ <th><label for="shownav_Y"><?php _e('Show Image Navigation', 'slideshow-gallery'); ?></label>
233
+ <?php echo $this -> Html -> help(__('Turn this on to show the Next and Previous arrows on either sides of the slideshow for the user to navigate through slides. Once turned on, you can set the opacity of these navigation arrows below.', 'slideshow-gallery')); ?></th>
234
  <td>
235
+ <label><input <?php echo ($this -> get_option('shownav') == "Y") ? 'checked="checked"' : ''; ?> onclick="jQuery('#shownavdiv').show();" type="radio" name="shownav" value="Y" id="shownav_Y" /> <?php _e('Yes', 'slideshow-gallery'); ?></label>
236
+ <label><input <?php echo ($this -> get_option('shownav') == "N") ? 'checked="checked"' : ''; ?> onclick="jQuery('#shownavdiv').hide();" type="radio" name="shownav" value="N" id="shownav_N" /> <?php _e('No', 'slideshow-gallery'); ?></label>
237
+ <span class="howto"><?php _e('Show next/previous buttons on the image for navigation purposes?', 'slideshow-gallery'); ?></span>
238
  </td>
239
  </tr>
240
  </tbody>
244
  <table class="form-table">
245
  <tbody>
246
  <tr>
247
+ <th><label for="navopacity"><?php _e('Navigation Default Opacity', 'slideshow-gallery'); ?></label>
248
+ <?php echo $this -> Html -> help(__('The default state opacity of the left/right navigation arrows. This is a percentage value and you can specify anything between 0% and 100% as needed.', 'slideshow-gallery')); ?></th>
249
  <td>
250
  <input type="hidden" name="navopacity" value="<?php echo $navopacity; ?>" id="navopacity" style="width:45px;" />
251
  <div id="navopacity_slider"></div>
264
  });
265
  </script>
266
 
267
+ <span class="howto"><?php _e('Opacity of the next/previous buttons by default.', 'slideshow-gallery'); ?></span>
268
  </td>
269
  </tr>
270
  <tr>
271
+ <th><label for="navhover"><?php _e('Navigation Hover Opacity', 'slideshow-gallery'); ?></label>
272
+ <?php echo $this -> Html -> help(__('The hover state opacity of the left/right navigation arrows. This is the opacity when the user hovers with the mouse cursor over the arrow image. Percentage value between 0% and 100%', 'slideshow-gallery')); ?></th>
273
  <td>
274
  <input type="hidden" name="navhover" value="<?php echo $navhover; ?>" id="navhover" style="width:45px;" />
275
  <div id="navhover_slider"></div>
287
  });
288
  });
289
  </script>
290
+ <span class="howto"><?php _e('Opacity of the next/previous buttons when they are hovered.', 'slideshow-gallery'); ?></span>
291
  </td>
292
  </tr>
293
  </tbody>
294
  </table>
295
  </div>
296
 
297
+ <h3><?php _e('Information Bar', 'slideshow-gallery'); ?></h3>
298
 
299
  <table class="form-table">
300
  <tbody>
301
  <tr>
302
+ <th><label for="informationY"><?php _e('Show Information', 'slideshow-gallery'); ?></label>
303
+ <?php echo $this -> Html -> help(__('Should the information bar be shown on slides? Turn this on to show a bar on each slide with the title and description of the slide.', 'slideshow-gallery')); ?></th>
304
  <td>
305
+ <label><input onclick="jQuery('#information_div').show();" <?php echo ($this -> get_option('information') == "Y") ? 'checked="checked"' : ''; ?> type="radio" name="information" value="Y" id="informationY" /> <?php _e('Yes', 'slideshow-gallery'); ?></label>
306
+ <label><input onclick="jQuery('#information_div').hide();" <?php echo ($this -> get_option('information') == "N") ? 'checked="checked"' : ''; ?> type="radio" name="information" value="N" id="informationN" /> <?php _e('No', 'slideshow-gallery'); ?></label>
307
+ <span class="howto"><?php _e('Should the information bar be shown on slides?', 'slideshow-gallery'); ?></span>
308
  </td>
309
  </tr>
310
  </tbody>
314
  <table class="form-table">
315
  <tbody>
316
  <tr>
317
+ <th><label for="infopositionbottom"><?php _e('Information Bar Position', 'slideshow-gallery'); ?></label>
318
+ <?php echo $this -> Html -> help(__('With the Information Bar turned on with the setting above, you can now specify the position of the information bar. Either above or below the slideshow is available.', 'slideshow-gallery')); ?></th>
319
  <td>
320
+ <label><input <?php echo ($this -> get_option('infoposition') == "top") ? 'checked="checked"' : ''; ?> type="radio" name="infoposition" value="top" id="infopositiontop" /> <?php _e('Top', 'slideshow-gallery'); ?></label>
321
+ <label><input <?php echo ($this -> get_option('infoposition') == "bottom") ? 'checked="checked"' : ''; ?> type="radio" name="infoposition" value="bottom" id="infopositionbottom" /> <?php _e('Bottom', 'slideshow-gallery'); ?></label>
322
+ <span class="howto"><?php _e('Choose your preferred position of the information bar relative to the slideshow.', 'slideshow-gallery'); ?></span>
323
  </td>
324
  </tr>
325
  <tr>
326
+ <th><label for="infoonhover"><?php _e('Show Only On Hover', 'slideshow-gallery'); ?></label>
327
+ <?php echo $this -> Html -> help(__('Checking this option will only show the information bar on hover', 'slideshow-gallery')); ?></th>
328
  <td>
329
+ <label><input onclick="if (jQuery(this).is(':checked')) { jQuery('#infoonhover_div').hide(); } else { jQuery('#infoonhover_div').show(); }" <?php echo (!empty($infoonhover)) ? 'checked="checked"' : ''; ?> type="checkbox" name="infoonhover" value="1" id="infoonhover" /> <?php _e('Yes, only show the info bar on hover', 'slideshow-gallery'); ?></label>
330
+ <span class="howto"><?php _e('Tick/check this to only show the information bar on hover.', 'slideshow-gallery'); ?></span>
331
  </td>
332
  </tr>
333
  </tbody>
337
  <table class="form-table">
338
  <tbody>
339
  <tr>
340
+ <th><label for="infodelay"><?php _e('Information Delay', 'slideshow-gallery'); ?></label></th>
341
  <td>
342
+ <label><input <?php echo (!$this -> ci_serial_valid()) ? 'disabled="disabled"' : ''; ?> class="widefat" style="width:65px;" type="text" name="infodelay" value="<?php echo esc_attr(stripslashes($infodelay)); ?>" id="infodelay" /> <?php _e('seconds', 'slideshow-gallery'); ?></label>
343
+ <span class="howto"><?php _e('Delay the information bar in seconds or leave empty/zero for immediate display.', 'slideshow-gallery'); ?></span>
344
  </td>
345
  </tr>
346
  <tr>
347
+ <th><label for="infofade"><?php _e('Fade Information Bar', 'slideshow-gallery'); ?></label>
348
+ <?php echo $this -> Html -> help(__('Fade the information bar after a few seconds.', 'slideshow-gallery')); ?></th>
349
  <td>
350
+ <label><input <?php echo (!empty($infofade)) ? 'checked="checked"' : ''; ?> onclick="if (jQuery(this).is(':checked')) { jQuery('#informationfade_div').show(); } else { jQuery('#informationfade_div').hide(); }"type="checkbox" name="infofade" value="1" id="infofade" /> <?php _e('Yes, fade the information bar', 'slideshow-gallery'); ?></label>
351
+ <span class="howto"><?php _e('Do you want the information bar to fade?', 'slideshow-gallery'); ?></span>
352
  </td>
353
  </tr>
354
  </tbody>
358
  <table class="form-table">
359
  <tbody>
360
  <tr>
361
+ <th><label for="infofadedelay"><?php _e('Fade Delay', 'slideshow-gallery'); ?></label></th>
362
  <td>
363
+ <label><input class="widefat" style="width:65px;" type="text" name="infofadedelay" value="<?php echo esc_attr(stripslashes($infofadedelay)); ?>" id="infofadedelay" /> <?php _e('seconds', 'slideshow-gallery'); ?></label>
364
+ <span class="howto"><?php _e('Enter time in seconds for the information bar to fade.', 'slideshow-gallery'); ?></span>
365
  </td>
366
  </tr>
367
  </tbody>
372
  <table class="form-table">
373
  <tbody>
374
  <tr>
375
+ <th><label for="infospeed"><?php _e('Information Speed', 'slideshow-gallery'); ?></label>
376
+ <?php echo $this -> Html -> help(__('Specify the speed at which the information bar will slide up and down as the slide is shown and hidden.', 'slideshow-gallery')); ?></th>
377
  <td>
378
  <input type="hidden" style="width:45px;" name="infospeed" value="<?php echo $infospeed; ?>" id="infospeed" />
379
  <div id="infospeed_slider"></div>
391
  });
392
  });
393
  </script>
394
+ <span class="howto"><?php _e('Speed at which the information bar will slide in and out.', 'slideshow-gallery'); ?></span>
395
  </td>
396
  </tr>
397
  <tr>
398
+ <th><label for="infohideonmobile"><?php _e('Hide On Mobiles', 'slideshow-gallery'); ?></label>
399
+ <?php echo $this -> Html -> help(__('With a responsive layout turned on, the slideshow will respond in width on mobile devices and the information bar tends to overlap the entire slide since it increases in height as it reduces in width. You can tick/check this setting to hide the information bar on mobile devices so that the slides remain fully visible.', 'slideshow-gallery')); ?></th>
400
  <td>
401
+ <label><input <?php echo (!$this -> ci_serial_valid()) ? 'disabled="disabled"' : ''; ?> <?php echo (!empty($infohideonmobile) && $this -> ci_serial_valid()) ? 'checked="checked"' : ''; ?> type="checkbox" name="infohideonmobile" value="1" id="infohideonmobile" /> <?php _e('Yes, hide the information bar on mobiles', 'slideshow-gallery'); ?></label>
402
+ <span class="howto"><?php _e('Tick/check this to hide the information bar on mobiles', 'slideshow-gallery'); ?></span>
403
  </td>
404
  </tr>
405
  </tbody>
406
  </table>
407
  </div>
408
 
409
+ <h3><?php _e('Thumbnails Bar/Slider', 'slideshow-gallery'); ?></h3>
410
 
411
  <table class="form-table">
412
  <tbody>
413
  <tr>
414
+ <th><label for="thumbnailsN"><?php _e('Show Thumbnails', 'slideshow-gallery'); ?></label>
415
+ <?php echo $this -> Html -> help(__('Would you like to show a thumbnail bar/slider above/below the slideshow with the thumbnails of all the slides in the slideshow for easier navigation?', 'slideshow-gallery')); ?></th>
416
  <td>
417
+ <label><input onclick="jQuery('#thumbnails_div').show();" <?php echo ($this -> get_option('thumbnails') == "Y") ? 'checked="checked"' : ''; ?> type="radio" name="thumbnails" value="Y" id="thumbnailsY" /> <?php _e('Yes', 'slideshow-gallery'); ?></label>
418
+ <label><input onclick="jQuery('#thumbnails_div').hide();" <?php echo ($this -> get_option('thumbnails') == "N") ? 'checked="checked"' : ''; ?> type="radio" name="thumbnails" value="N" id="thumbnailsN" /> <?php _e('No', 'slideshow-gallery'); ?></label>
419
+ <span class="howto"><?php _e('Should the thumbnails bar be shown for slides?', 'slideshow-gallery'); ?></span>
420
  </td>
421
  </tr>
422
  </tbody>
426
  <table class="form-table">
427
  <tbody>
428
  <tr>
429
+ <th><label for="thubmpositionbottom"><?php _e('Thumbnails Position', 'slideshow-gallery'); ?></label>
430
+ <?php echo $this -> Html -> help(__('With the thumbnails turned on with the setting above, you can now specify the position of the thumbnail bar/slider. Either above or below the slideshow is available.', 'slideshow-gallery')); ?></th>
431
  <td>
432
+ <label><input <?php echo ($this -> get_option('thumbposition') == "top") ? 'checked="checked"' : ''; ?> type="radio" name="thumbposition" value="top" id="thumbpositiontop" /> <?php _e('Top', 'slideshow-gallery'); ?></label>
433
+ <label><input <?php echo ($this -> get_option('thumbposition') == "bottom") ? 'checked="checked"' : ''; ?> type="radio" name="thumbposition" value="bottom" id="thumbpositionbottom" /> <?php _e('Bottom', 'slideshow-gallery'); ?></label>
434
+ <span class="howto"><?php _e('Choose your preferred position of the thumbnails bar relative to the slideshow images.', 'slideshow-gallery'); ?></span>
435
  </td>
436
  </tr>
437
  <tr>
438
+ <th><label for="thumbheight"><?php _e('Thumbnail Dimensions', 'slideshow-gallery'); ?></label>
439
+ <?php echo $this -> Html -> help(__('Specify the width and height (dimensions) of the thumbnails in the thumbnail bar/slider which will show above/below the slideshow.', 'slideshow-gallery')); ?></th>
440
  <td>
441
  <input class="widefat" style="width:45px;" type="text" name="thumbwidth" value="<?php echo esc_attr(stripslashes($this -> get_option('thumbwidth'))); ?>" id="thumbwidth" />
442
+ <?php _e('x <!-- by -->', 'slideshow-gallery'); ?>
443
  <input class="widefat" style="width:45px;" type="text" name="thumbheight" value="<?php echo esc_attr(stripslashes($this -> get_option('thumbheight'))); ?>" id="thumbheight" />
444
+ <?php _e('px <!-- pixels -->', 'slideshow-gallery'); ?>
445
+ <span class="howto"><?php _e('Width and height of the thumbnails for the slides.', 'slideshow-gallery'); ?><br/>
446
+ <?php _e('You may leave the height empty (not the width) to crop proportionally.', 'slideshow-gallery'); ?></span>
447
  </td>
448
  </tr>
449
  <tr>
450
+ <th><label for="thumbopacity"><?php _e('Thumbnail Opacity', 'slideshow-gallery'); ?></label>
451
+ <?php echo $this -> Html -> help(__('The opacity of the default state of thumbnails in the thumbnails bar/slider. The active thumbnail of the currently showing slide will be 100% opacity, always.', 'slideshow-gallery')); ?></th>
452
  <td>
453
  <input style="width:45px;" type="hidden" name="thumbopacity" value="<?php echo $thumbopacity; ?>" id="thumbopacity" />
454
  <div id="thumbopacity_slider"></div>
466
  });
467
  });
468
  </script>
469
+ <span class="howto"><?php _e('Default opacity of thumbnails when they are not hovered.', 'slideshow-gallery'); ?></span>
470
  </td>
471
  </tr>
472
  <tr>
473
+ <th><label for="thumbscrollspeed"><?php _e('Thumbnails Scroll Speed', 'slideshow-gallery'); ?></label>
474
+ <?php echo $this -> Html -> help(__('At which speed should the thumbnails bar/slider scroll when the left/right arrows are hovered by the user?', 'slideshow-gallery')); ?></th>
475
  <td>
476
  <input type="hidden" class="widefat" style="width:45px;" name="thumbscrollspeed" value="<?php echo $thumbscrollspeed; ?>" id="thumbscrollspeed" />
477
  <div id="thumbscrollspeed_slider"></div>
489
  });
490
  });
491
  </script>
492
+ <span class="howto"><?php _e('Speed at which the thumbnails will scroll.', 'slideshow-gallery'); ?> <small><?php _e('(Default:5, Recommended: 1-20)', 'slideshow-gallery'); ?></small></span>
493
  </td>
494
  </tr>
495
  <tr>
496
+ <th><label for="thumbspacing"><?php _e('Thumbnail Spacing', 'slideshow-gallery'); ?></label>
497
+ <?php echo $this -> Html -> help(__('This is a simple margin setting to specify the space between the thumbnails in the thumbnails bar/slider above/below the slideshow.', 'slideshow-gallery')); ?></th>
498
  <td>
499
+ <input type="text" style="width:45px;" name="thumbspacing" value="<?php echo $this -> get_option('thumbspacing'); ?>" id="thumbspacing" /> <?php _e('px', 'slideshow-gallery'); ?>
500
+ <span class="howto"><?php _e('Horizontal margin/spacing in pixels between thumbnail images.', 'slideshow-gallery'); ?></span>
501
  </td>
502
  </tr>
503
  <tr>
504
+ <th><label for="thumbhideonmobile"><?php _e('Hide On Mobile', 'slideshow-gallery'); ?></label>
505
+ <?php echo $this -> Html -> help(__('With a responsive layout turned on, the slideshow will respond in width on mobile devices. You can tick/check this setting to hide the thumbnail bar.', 'slideshow-gallery')); ?></th>
506
  <td>
507
+ <label><input <?php echo (!$this -> ci_serial_valid()) ? 'disabled="disabled"' : ''; ?> <?php echo (!empty($thumbhideonmobile) && $this -> ci_serial_valid()) ? 'checked="checked"' : ''; ?> type="checkbox" name="thumbhideonmobile" value="1" id="thumbhideonmobile" /> <?php _e('Yes, hide the thumbnail bar on mobiles', 'slideshow-gallery'); ?></label>
508
+ <span class="howto"><?php _e('Tick/check this to hide the thumbnail bar on mobiles', 'slideshow-gallery'); ?></span>
509
  </td>
510
  </tr>
511
  </tbody>
views/admin/metaboxes/settings-linksimages.php CHANGED
@@ -7,12 +7,12 @@ if (!defined('ABSPATH')) exit; // Exit if accessed directly
7
  <table class="form-table">
8
  <tbody>
9
  <tr>
10
- <th><label for="imagesthickbox_N"><?php _e('Open Images in Overlay', $this -> plugin_name); ?></label>
11
- <?php echo $this -> Html -> help(__('Turn this on to display the link of a slide in an enlargement overlay. It only works if the link on the slide is a link to a jpg, png, gif or bmp image though. For normal links to pages, the overlay will not be used at all.', $this -> plugin_name)); ?></th>
12
  <td>
13
- <label><input <?php echo (!$this -> ci_serial_valid()) ? 'disabled="disabled"' : ''; ?> <?php echo ($this -> get_option('imagesthickbox') == "Y" && $this -> ci_serial_valid()) ? 'checked="checked"' : ''; ?> type="radio" name="imagesthickbox" value="Y" id="imagesthickbox_Y" /> <?php _e('Yes', $this -> plugin_name); ?></label>
14
- <label><input <?php echo ($this -> get_option('imagesthickbox') == "N" || !$this -> ci_serial_valid()) ? 'checked="checked"' : ''; ?> type="radio" name="imagesthickbox" value="N" id="imagesthickbox_N" /> <?php _e('No', $this -> plugin_name); ?></label>
15
- <span class="howto"><?php _e('turning this on (Yes) will open image URLs (.jpg, .png, .gif, .bmp) in a Thickbox image overlay', $this -> plugin_name); ?></span>
16
  </td>
17
  </tr>
18
  </tbody>
7
  <table class="form-table">
8
  <tbody>
9
  <tr>
10
+ <th><label for="imagesthickbox_N"><?php _e('Open Images in Overlay', 'slideshow-gallery'); ?></label>
11
+ <?php echo $this -> Html -> help(__('Turn this on to display the link of a slide in an enlargement overlay. It only works if the link on the slide is a link to a jpg, png, gif or bmp image though. For normal links to pages, the overlay will not be used at all.', 'slideshow-gallery')); ?></th>
12
  <td>
13
+ <label><input <?php echo (!$this -> ci_serial_valid()) ? 'disabled="disabled"' : ''; ?> <?php echo ($this -> get_option('imagesthickbox') == "Y" && $this -> ci_serial_valid()) ? 'checked="checked"' : ''; ?> type="radio" name="imagesthickbox" value="Y" id="imagesthickbox_Y" /> <?php _e('Yes', 'slideshow-gallery'); ?></label>
14
+ <label><input <?php echo ($this -> get_option('imagesthickbox') == "N" || !$this -> ci_serial_valid()) ? 'checked="checked"' : ''; ?> type="radio" name="imagesthickbox" value="N" id="imagesthickbox_N" /> <?php _e('No', 'slideshow-gallery'); ?></label>
15
+ <span class="howto"><?php _e('turning this on (Yes) will open image URLs (.jpg, .png, .gif, .bmp) in a Thickbox image overlay', 'slideshow-gallery'); ?></span>
16
  </td>
17
  </tr>
18
  </tbody>
views/admin/metaboxes/settings-plugins.php CHANGED
@@ -13,7 +13,16 @@ if (!defined('ABSPATH')) exit; // Exit if accessed directly
13
  Get the WordPress Newsletter plugin today. It is a FREE plugin which can be installed by clicking the button below.
14
  </p>
15
  <p>
16
- <a class="thickbox button button-primary button-large" href="<?php echo wp_nonce_url(admin_url('plugin-install.php?tab=plugin-information&plugin=newsletters-lite&TB_iframe=true&width=640&height=591')); ?>"><i class="fa fa-check fa-fw"></i> <?php _e('Install Now', $this -> plugin_name); ?></a>
17
- <a class="button button-secondary button-large" href="https://wordpress.org/plugins/newsletters-lite/" target="_blank"><i class="fa fa-info-circle"></i> <?php _e('More Info', $this -> plugin_name); ?></a>
 
 
 
 
 
 
 
 
 
18
  </p>
19
  </div>
13
  Get the WordPress Newsletter plugin today. It is a FREE plugin which can be installed by clicking the button below.
14
  </p>
15
  <p>
16
+ <div class="plugin-install-newsletters">
17
+ <?php $installed = ($this -> is_plugin_active('wp-mailinglist/wp-mailinglist.php', true) || $this -> is_plugin_active('newsletters-lite/wp-mailinglist.php', true)); ?>
18
+ <button <?php echo (!empty($installed)) ? 'disabled="disabled"' : ''; ?> type="button" class="install-now button button-primary button-large" href="<?php echo wp_nonce_url(admin_url('plugin-install.php?tab=plugin-information&plugin=newsletters-lite&TB_iframe=true&width=640&height=591')); ?>">
19
+ <?php if (!empty($installed)) : ?>
20
+ <i class="fa fa-check fa-fw"></i> <?php _e('Installed', 'slideshow-gallery'); ?>
21
+ <?php else : ?>
22
+ <i class="fa fa-check fa-fw"></i> <?php _e('Install Now', 'slideshow-gallery'); ?>
23
+ <?php endif; ?>
24
+ </button>
25
+ <a class="button button-secondary button-large" href="https://wordpress.org/plugins/newsletters-lite/" target="_blank"><i class="fa fa-info-circle"></i> <?php _e('More Info', 'slideshow-gallery'); ?></a>
26
+ </div>
27
  </p>
28
  </div>
views/admin/metaboxes/settings-postspages.php CHANGED
@@ -18,9 +18,9 @@ $excerpt_length = $this -> get_option('excerpt_length');
18
  <table class="form-table">
19
  <tbody>
20
  <tr>
21
- <th><label for="excerptsettings"><?php _e('Override Excerpt Settings', $this -> plugin_name); ?></label></th>
22
  <td>
23
- <label><input <?php echo (!$this -> ci_serial_valid()) ? 'disabled="disabled"' : ''; ?> <?php echo (!empty($excerptsettings)) ? 'checked="checked"' : ''; ?> onclick="if (jQuery(this).is(':checked')) { jQuery('#excerptsettings_div').show(); } else { jQuery('#excerptsettings_div').hide(); }" type="checkbox" name="excerptsettings" value="1" id="excerptsettings" /> <?php _e('Yes, override the post/page excerpt settings', $this -> plugin_name); ?></label>
24
  </td>
25
  </tr>
26
  </tbody>
@@ -30,7 +30,7 @@ $excerpt_length = $this -> get_option('excerpt_length');
30
  <table class="form-table">
31
  <tbody>
32
  <tr>
33
- <th><label for="excerpt_readmore"><?php _e('Read More Text', $this -> plugin_name); ?></label></th>
34
  <td>
35
  <?php if ($this -> language_do()) : ?>
36
  <?php $readmores = $this -> language_split($excerpt_readmore); ?>
@@ -58,7 +58,7 @@ $excerpt_length = $this -> get_option('excerpt_length');
58
  </td>
59
  </tr>
60
  <tr>
61
- <th><label for="excerpt_length"><?php _e('Excerpt Length', $this -> plugin_name); ?></label></th>
62
  <td>
63
  <input type="text" class="widefat" style="width:65px;" name="excerpt_length" value="<?php echo esc_attr(stripslashes($excerpt_length)); ?>" id="excerpt_length" />
64
  </td>
18
  <table class="form-table">
19
  <tbody>
20
  <tr>
21
+ <th><label for="excerptsettings"><?php _e('Override Excerpt Settings', 'slideshow-gallery'); ?></label></th>
22
  <td>
23
+ <label><input <?php echo (!$this -> ci_serial_valid()) ? 'disabled="disabled"' : ''; ?> <?php echo (!empty($excerptsettings)) ? 'checked="checked"' : ''; ?> onclick="if (jQuery(this).is(':checked')) { jQuery('#excerptsettings_div').show(); } else { jQuery('#excerptsettings_div').hide(); }" type="checkbox" name="excerptsettings" value="1" id="excerptsettings" /> <?php _e('Yes, override the post/page excerpt settings', 'slideshow-gallery'); ?></label>
24
  </td>
25
  </tr>
26
  </tbody>
30
  <table class="form-table">
31
  <tbody>
32
  <tr>
33
+ <th><label for="excerpt_readmore"><?php _e('Read More Text', 'slideshow-gallery'); ?></label></th>
34
  <td>
35
  <?php if ($this -> language_do()) : ?>
36
  <?php $readmores = $this -> language_split($excerpt_readmore); ?>
58
  </td>
59
  </tr>
60
  <tr>
61
+ <th><label for="excerpt_length"><?php _e('Excerpt Length', 'slideshow-gallery'); ?></label></th>
62
  <td>
63
  <input type="text" class="widefat" style="width:65px;" name="excerpt_length" value="<?php echo esc_attr(stripslashes($excerpt_length)); ?>" id="excerpt_length" />
64
  </td>
views/admin/metaboxes/settings-styles.php CHANGED
@@ -15,30 +15,30 @@ $resizeimagescrop = $this -> get_option('resizeimagescrop');
15
  <tbody>
16
  <?php if ($this -> has_child_theme_folder()) : ?>
17
  <tr>
18
- <th><?php _e('Child Theme Folder', $this -> plugin_name); ?></th>
19
  <td>
20
  <?php
21
 
22
  $theme_folder = basename(get_stylesheet_directory());
23
 
24
  ?>
25
- <?php echo sprintf(__('Yes, there is a %s folder inside WordPress theme folder %s', $this -> plugin_name), '<code>slideshow</code>', '<code>' . $theme_folder . '</code>'); ?>
26
  </td>
27
  </tr>
28
  <?php endif; ?>
29
  <tr>
30
- <th><label for="layout_responsive"><?php _e('Layout', $this -> plugin_name); ?></label>
31
- <?php echo $this -> Html -> help(__('Choose responsive if you have a responsive theme and you want the slideshow to resize width/height in a responsive manner on different devices.<br/><br/><strong>Override per slideshow:</strong> Using parameter <code>layout</code> with value <code>responsive</code> or <code>specific</code> eg. <code>[tribulant_slideshow layout="specific"]</code>.', $this -> plugin_name)); ?></th>
32
  <td>
33
- <label><input onclick="jQuery('#layout_specific_div').hide(); jQuery('#layout_responsive_div').show();" <?php echo ($styles['layout'] == "responsive") ? 'checked="checked"' : ''; ?> <?php echo (!$this -> ci_serial_valid()) ? 'disabled="disabled"' : ''; ?> type="radio" name="styles[layout]" value="responsive" id="layout_responsive" /> <?php _e('Responsive', $this -> plugin_name); ?></label>
34
- <label><input onclick="jQuery('#layout_specific_div').show(); jQuery('#layout_responsive_div').hide();" <?php echo (empty($styles['layout']) || $styles['layout'] == "specific" || !$this -> ci_serial_valid()) ? 'checked="checked"' : ''; ?> type="radio" name="styles[layout]" value="specific" id="layout_specific" /> <?php _e('Fixed', $this -> plugin_name); ?></label>
35
- <span class="howto"><?php _e('Choose whether you want a responsive or fixed/specific layout for the slideshow.', $this -> plugin_name); ?></span>
36
  </td>
37
  </tr>
38
  <tr>
39
- <th><label for="autoheight"><?php _e('Auto Height', $this -> plugin_name); ?></label></th>
40
  <td>
41
- <label><input onclick="if (jQuery(this).is(':checked')) { jQuery('#autoheight_div').show(); jQuery('#styles_height').attr('disabled', 'disabled'); } else { jQuery('#autoheight_div').hide(); jQuery('#styles_height').removeAttr('disabled'); }" <?php echo (!empty($autoheight)) ? 'checked="checked"' : ''; ?> type="checkbox" name="autoheight" value="1" id="autoheight" /> <?php _e('Yes, automatically adjust the slideshow height for each slide', $this -> plugin_name); ?></label>
42
  </td>
43
  </tr>
44
  </tbody>
@@ -48,10 +48,10 @@ $resizeimagescrop = $this -> get_option('resizeimagescrop');
48
  <table class="form-table">
49
  <tbody>
50
  <tr>
51
- <th><label for="autoheight_max"><?php _e('Maximum Auto Height', $this -> plugin_name); ?></label></th>
52
  <td>
53
- <label><input type="text" class="widefat" style="width:65px;" name="autoheight_max" value="<?php echo esc_attr(stripslashes($autoheight_max)); ?>" id="autoheight_max" /> <?php _e('pixels', $this -> plugin_name); ?></label>
54
- <span class="howto"><?php _e('Set the maximum height that auto height may go or leave empty/zero for no maximum', $this -> plugin_name); ?></span>
55
  </td>
56
  </tr>
57
  </tbody>
@@ -62,15 +62,15 @@ $resizeimagescrop = $this -> get_option('resizeimagescrop');
62
  <table class="form-table">
63
  <tbody>
64
  <tr>
65
- <th><label for="resheight"><?php _e('Responsive Height', $this -> plugin_name); ?></label>
66
- <?php echo $this -> Html -> help(__('The responsive height can be either a fixed height in pixel or a percentage height. The percentage height is a percentage of the width of the slideshow.<br/><br/><strong>Override per slideshow:</strong> Using parameters <code>resheight</code> value a value and <code>resheighttype</code> with <code>px</code> for pixels or <code>%</code> for percentage eg. <code>[tribulant_slideshow resheight="300" resheighttype="px"]</code>.', $this -> plugin_name)); ?></th>
67
  <td>
68
  <input class="widefat" style="width:45px;" type="text" name="styles[resheight]" value="<?php echo esc_attr(stripslashes($styles['resheight'])); ?>" id="resheight" />
69
  <select name="styles[resheighttype]">
70
- <option <?php echo ($styles['resheighttype'] == "%") ? 'selected="selected"' : ''; ?> value="%"><?php _e('&#37;', $this -> plugin_name); ?></option>
71
- <option <?php echo ($styles['resheighttype'] == "px") ? 'selected="selected"' : ''; ?> value="px"><?php _e('px', $this -> plugin_name); ?></option>
72
  </select>
73
- <span class="howto"><?php _e('Choose a responsive height for your slideshow, either a pixel or percentage height.', $this -> plugin_name); ?></span>
74
  </td>
75
  </tr>
76
  </tbody>
@@ -80,12 +80,12 @@ $resizeimagescrop = $this -> get_option('resizeimagescrop');
80
  <table class="form-table">
81
  <tbody>
82
  <tr>
83
- <th><label for="styles.resizeimages"><?php _e('Resize Images', $this -> plugin_name); ?></label>
84
- <?php echo $this -> Html -> help(__('Should images be automatically resized? If you specify No, the images will be used in the slideshow as you originally upload them. If you specify Yes, the images will be cropped/resized to fit the slideshow better which is the recommended setting.', $this -> plugin_name)); ?></th>
85
  <td>
86
- <label><input onclick="jQuery('#resizeimages_div').show();" <?php echo (empty($styles['resizeimages']) || $styles['resizeimages'] == "Y") ? 'checked="checked"' : ''; ?> type="radio" name="styles[resizeimages]" value="Y" id="styles.resizeimages_Y" /> <?php _e('Yes', $this -> plugin_name); ?></label>
87
- <label><input onclick="jQuery('#resizeimages_div').hide();" <?php echo ($styles['resizeimages'] == "N") ? 'checked="checked"' : ''; ?> type="radio" name="styles[resizeimages]" value="N" id="styles.resizeimages_N" /> <?php _e('No', $this -> plugin_name); ?></label>
88
- <span class="howto"><?php _e('Should images be resized proportionally to fit the width of the slideshow area?', $this -> plugin_name); ?></span>
89
  </td>
90
  </tr>
91
  </tbody>
@@ -95,11 +95,11 @@ $resizeimagescrop = $this -> get_option('resizeimagescrop');
95
  <table class="form-table">
96
  <tbody>
97
  <tr>
98
- <th><label for="resizeimagescrop_Y"><?php _e('Crop', $this -> plugin_name); ?></label></th>
99
  <td>
100
- <label><input <?php echo (!empty($resizeimagescrop) && $resizeimagescrop == "Y") ? 'checked="checked"' : ''; ?> type="radio" name="resizeimagescrop" value="Y" id="resizeimagescrop_Y" /> <?php _e('Yes', $this -> plugin_name); ?></label>
101
- <label><input <?php echo (!empty($resizeimagescrop) && $resizeimagescrop == "N") ? 'checked="checked"' : ''; ?> type="radio" name="resizeimagescrop" value="N" id="resizeimagescrop_N" /> <?php _e('No', $this -> plugin_name); ?></label>
102
- <span class="howto"><?php _e('Should images be cropped?', $this -> plugin_name); ?></span>
103
  </td>
104
  </tr>
105
  </tbody>
@@ -110,19 +110,19 @@ $resizeimagescrop = $this -> get_option('resizeimagescrop');
110
  <table class="form-table">
111
  <tbody>
112
  <tr>
113
- <th><label for="styles.width"><?php _e('Gallery Width', $this -> plugin_name); ?></label>
114
- <?php echo $this -> Html -> help(__('The width of the slideshow in pixels.', $this -> plugin_name)); ?></th>
115
  <td>
116
- <input style="width:45px;" id="styles.width" type="text" name="styles[width]" value="<?php echo $styles['width']; ?>" /> <?php _e('px', $this -> plugin_name); ?>
117
- <span class="howto"><?php _e('Width of the slideshow gallery', $this -> plugin_name); ?></span>
118
  </td>
119
  </tr>
120
  <tr>
121
- <th><label for="styles_height"><?php _e('Gallery Height', $this -> plugin_name); ?></label>
122
- <?php echo $this -> Html -> help(__('The height of the slideshow in pixels.', $this -> plugin_name)); ?></th>
123
  <td>
124
- <input <?php echo (!empty($autoheight)) ? 'disabled="disabled"' : ''; ?> style="width:45px;" id="styles_height" type="text" name="styles[height]" value="<?php echo esc_attr(stripslashes($styles['height'])); ?>" /> <?php _e('px', $this -> plugin_name); ?>
125
- <span class="howto"><?php _e('Height of the slideshow gallery', $this -> plugin_name); ?></span>
126
  </td>
127
  </tr>
128
  </tbody>
@@ -132,183 +132,76 @@ $resizeimagescrop = $this -> get_option('resizeimagescrop');
132
  <table class="form-table">
133
  <tbody>
134
  <tr>
135
- <th><label for="styles.border"><?php _e('Slideshow Border', $this -> plugin_name); ?></label>
136
- <?php echo $this -> Html -> help(__('This is a CSS style for the border around the entire slideshow. You can use a value such as "1px #FFFFFF solid" to display a 1 pixel, white, solid border or even a value such as "none" for no border at all.', $this -> plugin_name)); ?></th>
137
  <td>
138
  <input type="text" name="styles[border]" value="<?php echo $styles['border']; ?>" id="styles.border" style="width:145px;" />
139
- <span class="howto"><?php echo sprintf(__('Border style/color for the entire slideshow wrapper eg. %s', $this -> plugin_name), "1px #000000 solid"); ?>
140
  </td>
141
  </tr>
142
  <tr>
143
- <th><label for="stylesbackground"><?php _e('Slideshow Background', $this -> plugin_name); ?></label>
144
- <?php echo $this -> Html -> help(__('The background which will display behind the entire slideshow. It is behind the slides, thumbnails, etc.', $this -> plugin_name)); ?></th>
145
  <td>
146
  <fieldset>
147
- <legend class="screen-reader-text"><span><?php _e('Slideshow Background', $this -> plugin_name); ?></span></legend>
148
  <div class="wp-picker-container">
149
  <a tabindex="0" id="stylesbackgroundbutton" class="wp-color-result" style="background-color:<?php echo $styles['background']; ?>;" title="Select Color"></a>
150
  <span class="wp-picker-input-wrap">
151
- <input type="text" name="styles[background]" id="stylesbackground" value="<?php echo $styles['background']; ?>" class="wp-color-picker" style="display: none;" />
152
  </span>
153
  </div>
154
- </fieldset>
155
-
156
- <script type="text/javascript">
157
- jQuery(document).ready(function() {
158
- jQuery('#stylesbackground').iris({
159
- hide: true,
160
- change: function(event, ui) {
161
- jQuery('#stylesbackgroundbutton').css('background-color', ui.color.toString());
162
- }
163
- });
164
-
165
- jQuery('#stylesbackground').click(function(event) {
166
- event.stopPropagation();
167
- });
168
-
169
- jQuery('#stylesbackgroundbutton').click(function(event) {
170
- jQuery(this).attr('title', "Current Color");
171
- jQuery('#stylesbackground').iris('toggle').toggle();
172
- event.stopPropagation();
173
- });
174
-
175
- jQuery('html').click(function() {
176
- jQuery('#stylesbackground').iris('hide').hide();
177
- jQuery('#stylesbackgroundbutton').attr('title', "Select Color");
178
- });
179
- });
180
- </script>
181
-
182
- <span class="howto"><?php echo sprintf(__('Background color (hexidecimal) of the entire slideshow wrapper eg. %s', $this -> plugin_name), "#FFFFFF"); ?></span>
183
  </td>
184
  </tr>
185
  <tr>
186
- <th><label for="styles.infobackground"><?php _e('Information Background', $this -> plugin_name); ?></label>
187
- <?php echo $this -> Html -> help(__('The background of the information bar which shows the title and description of each slide. It is automatically half transparent so that it is not obtrusive to the slide image below it though.', $this -> plugin_name)); ?></th>
188
  <td>
189
  <fieldset>
190
- <legend class="screen-reader-text"><span><?php _e('Information Background', $this -> plugin_name); ?></span></legend>
191
  <div class="wp-picker-container">
192
  <a tabindex="0" id="stylesinfobackgroundbutton" class="wp-color-result" style="background-color:<?php echo $styles['infobackground']; ?>;" title="Select Color"></a>
193
  <span class="wp-picker-input-wrap">
194
- <input type="text" name="styles[infobackground]" id="stylesinfobackground" value="<?php echo $styles['infobackground']; ?>" class="wp-color-picker" style="display: none;" />
195
  </span>
196
  </div>
197
- </fieldset>
198
-
199
- <script type="text/javascript">
200
- jQuery(document).ready(function() {
201
- jQuery('#stylesinfobackground').iris({
202
- hide: true,
203
- change: function(event, ui) {
204
- jQuery('#stylesinfobackgroundbutton').css('background-color', ui.color.toString());
205
- }
206
- });
207
-
208
- jQuery('#stylesinfobackground').click(function(event) {
209
- event.stopPropagation();
210
- });
211
-
212
- jQuery('#stylesinfobackgroundbutton').click(function(event) {
213
- jQuery(this).attr('title', "Current Color");
214
- jQuery('#stylesinfobackground').iris('toggle').toggle();
215
- event.stopPropagation();
216
- });
217
-
218
- jQuery('html').click(function() {
219
- jQuery('#stylesinfobackground').iris('hide').hide();
220
- jQuery('#stylesinfobackgroundbutton').attr('title', "Select Color");
221
- });
222
- });
223
- </script>
224
-
225
- <span class="howto"><?php echo sprintf(__('Background color (hexidecimal) of the information bar eg. %s', $this -> plugin_name), "#000000"); ?></span>
226
  </td>
227
  </tr>
228
  <tr>
229
- <th><label for="styles.infocolor"><?php _e('Information Text Color', $this -> plugin_name); ?></label>
230
- <?php echo $this -> Html -> help(__('This is the color of the text of the title and description of each slide which shows in the information bar.', $this -> plugin_name)); ?></th>
231
  <td>
232
  <fieldset>
233
- <legend class="screen-reader-text"><span><?php _e('Information Text Color', $this -> plugin_name); ?></span></legend>
234
  <div class="wp-picker-container">
235
  <a tabindex="0" id="stylesinfocolorbutton" class="wp-color-result" style="background-color:<?php echo $styles['infocolor']; ?>;" title="Select Color"></a>
236
  <span class="wp-picker-input-wrap">
237
- <input type="text" name="styles[infocolor]" id="stylesinfocolor" value="<?php echo $styles['infocolor']; ?>" class="wp-color-picker" style="display: none;" />
238
  </span>
239
  </div>
240
  </fieldset>
241
 
242
- <script type="text/javascript">
243
- jQuery(document).ready(function() {
244
- jQuery('#stylesinfocolor').iris({
245
- hide: true,
246
- change: function(event, ui) {
247
- jQuery('#stylesinfocolorbutton').css('background-color', ui.color.toString());
248
- }
249
- });
250
-
251
- jQuery('#stylesinfocolor').click(function(event) {
252
- event.stopPropagation();
253
- });
254
-
255
- jQuery('#stylesinfocolorbutton').click(function(event) {
256
- jQuery(this).attr('title', "Current Color");
257
- jQuery('#stylesinfocolor').iris('toggle').toggle();
258
- event.stopPropagation();
259
- });
260
-
261
- jQuery('html').click(function() {
262
- jQuery('#stylesinfocolor').iris('hide').hide();
263
- jQuery('#stylesinfocolorbutton').attr('title', "Select Color");
264
- });
265
- });
266
- </script>
267
-
268
- <span class="howto"><?php echo sprintf(__('Text color (hexidecimal) of the information bar content eg. %s', $this -> plugin_name), "#FFFFFF"); ?></span>
269
  </td>
270
  </tr>
271
  <tr>
272
- <th><label for="thumbactive"><?php _e('Thumbnail Active Border', $this -> plugin_name); ?></label>
273
- <?php echo $this -> Html -> help(__('This is the color of the border which displays on the active thumbnail of the slide currently displaying in the slideshow.', $this -> plugin_name)); ?></th>
274
  <td>
275
  <fieldset>
276
- <legend class="screen-reader-text"><span><?php _e('Thumbnail Active Border', $this -> plugin_name); ?></span></legend>
277
  <div class="wp-picker-container">
278
  <a tabindex="0" id="stylesthumbactivebutton" class="wp-color-result" style="background-color:<?php echo $styles['thumbactive']; ?>;" title="Select Color"></a>
279
  <span class="wp-picker-input-wrap">
280
- <input type="text" name="styles[thumbactive]" id="stylesthumbactive" value="<?php echo $styles['thumbactive']; ?>" class="wp-color-picker" style="display: none;" />
281
  </span>
282
  </div>
283
- </fieldset>
284
-
285
- <script type="text/javascript">
286
- jQuery(document).ready(function() {
287
- jQuery('#stylesthumbactive').iris({
288
- hide: true,
289
- change: function(event, ui) {
290
- jQuery('#stylesthumbactivebutton').css('background-color', ui.color.toString());
291
- }
292
- });
293
-
294
- jQuery('#stylesthumbactive').click(function(event) {
295
- event.stopPropagation();
296
- });
297
-
298
- jQuery('#stylesthumbactivebutton').click(function(event) {
299
- jQuery(this).attr('title', "Current Color");
300
- jQuery('#stylesthumbactive').iris('toggle').toggle();
301
- event.stopPropagation();
302
- });
303
-
304
- jQuery('html').click(function() {
305
- jQuery('#stylesthumbactive').iris('hide').hide();
306
- jQuery('#stylesthumbactivebutton').attr('title', "Select Color");
307
- });
308
- });
309
- </script>
310
-
311
- <span class="howto"><?php echo sprintf(__('Border color (hexidecimal) for the active image thumbnail eg. %s', $this -> plugin_name), "#FFFFFF"); ?></span>
312
  </td>
313
  </tr>
314
  </tbody>
15
  <tbody>
16
  <?php if ($this -> has_child_theme_folder()) : ?>
17
  <tr>
18
+ <th><?php _e('Child Theme Folder', 'slideshow-gallery'); ?></th>
19
  <td>
20
  <?php
21
 
22
  $theme_folder = basename(get_stylesheet_directory());
23
 
24
  ?>
25
+ <?php echo sprintf(__('Yes, there is a %s folder inside WordPress theme folder %s', 'slideshow-gallery'), '<code>slideshow</code>', '<code>' . $theme_folder . '</code>'); ?>
26
  </td>
27
  </tr>
28
  <?php endif; ?>
29
  <tr>
30
+ <th><label for="layout_responsive"><?php _e('Layout', 'slideshow-gallery'); ?></label>
31
+ <?php echo $this -> Html -> help(__('Choose responsive if you have a responsive theme and you want the slideshow to resize width/height in a responsive manner on different devices.<br/><br/><strong>Override per slideshow:</strong> Using parameter <code>layout</code> with value <code>responsive</code> or <code>specific</code> eg. <code>[tribulant_slideshow layout="specific"]</code>.', 'slideshow-gallery')); ?></th>
32
  <td>
33
+ <label><input onclick="jQuery('#layout_specific_div').hide(); jQuery('#layout_responsive_div').show();" <?php echo ($styles['layout'] == "responsive") ? 'checked="checked"' : ''; ?> <?php echo (!$this -> ci_serial_valid()) ? 'disabled="disabled"' : ''; ?> type="radio" name="styles[layout]" value="responsive" id="layout_responsive" /> <?php _e('Responsive', 'slideshow-gallery'); ?></label>
34
+ <label><input onclick="jQuery('#layout_specific_div').show(); jQuery('#layout_responsive_div').hide();" <?php echo (empty($styles['layout']) || $styles['layout'] == "specific" || !$this -> ci_serial_valid()) ? 'checked="checked"' : ''; ?> type="radio" name="styles[layout]" value="specific" id="layout_specific" /> <?php _e('Fixed', 'slideshow-gallery'); ?></label>
35
+ <span class="howto"><?php _e('Choose whether you want a responsive or fixed/specific layout for the slideshow.', 'slideshow-gallery'); ?></span>
36
  </td>
37
  </tr>
38
  <tr>
39
+ <th><label for="autoheight"><?php _e('Auto Height', 'slideshow-gallery'); ?></label></th>
40
  <td>
41
+ <label><input onclick="if (jQuery(this).is(':checked')) { jQuery('#autoheight_div').show(); jQuery('#styles_height').attr('disabled', 'disabled'); } else { jQuery('#autoheight_div').hide(); jQuery('#styles_height').removeAttr('disabled'); }" <?php echo (!empty($autoheight)) ? 'checked="checked"' : ''; ?> type="checkbox" name="autoheight" value="1" id="autoheight" /> <?php _e('Yes, automatically adjust the slideshow height for each slide', 'slideshow-gallery'); ?></label>
42
  </td>
43
  </tr>
44
  </tbody>
48
  <table class="form-table">
49
  <tbody>
50
  <tr>
51
+ <th><label for="autoheight_max"><?php _e('Maximum Auto Height', 'slideshow-gallery'); ?></label></th>
52
  <td>
53
+ <label><input type="text" class="widefat" style="width:65px;" name="autoheight_max" value="<?php echo esc_attr(stripslashes($autoheight_max)); ?>" id="autoheight_max" /> <?php _e('pixels', 'slideshow-gallery'); ?></label>
54
+ <span class="howto"><?php _e('Set the maximum height that auto height may go or leave empty/zero for no maximum', 'slideshow-gallery'); ?></span>
55
  </td>
56
  </tr>
57
  </tbody>
62
  <table class="form-table">
63
  <tbody>
64
  <tr>
65
+ <th><label for="resheight"><?php _e('Responsive Height', 'slideshow-gallery'); ?></label>
66
+ <?php echo $this -> Html -> help(__('The responsive height can be either a fixed height in pixel or a percentage height. The percentage height is a percentage of the width of the slideshow.<br/><br/><strong>Override per slideshow:</strong> Using parameters <code>resheight</code> value a value and <code>resheighttype</code> with <code>px</code> for pixels or <code>%</code> for percentage eg. <code>[tribulant_slideshow resheight="300" resheighttype="px"]</code>.', 'slideshow-gallery')); ?></th>
67
  <td>
68
  <input class="widefat" style="width:45px;" type="text" name="styles[resheight]" value="<?php echo esc_attr(stripslashes($styles['resheight'])); ?>" id="resheight" />
69
  <select name="styles[resheighttype]">
70
+ <option <?php echo ($styles['resheighttype'] == "%") ? 'selected="selected"' : ''; ?> value="%"><?php _e('&#37;', 'slideshow-gallery'); ?></option>
71
+ <option <?php echo ($styles['resheighttype'] == "px") ? 'selected="selected"' : ''; ?> value="px"><?php _e('px', 'slideshow-gallery'); ?></option>
72
  </select>
73
+ <span class="howto"><?php _e('Choose a responsive height for your slideshow, either a pixel or percentage height.', 'slideshow-gallery'); ?></span>
74
  </td>
75
  </tr>
76
  </tbody>
80
  <table class="form-table">
81
  <tbody>
82
  <tr>
83
+ <th><label for="styles.resizeimages"><?php _e('Resize Images', 'slideshow-gallery'); ?></label>
84
+ <?php echo $this -> Html -> help(__('Should images be automatically resized? If you specify No, the images will be used in the slideshow as you originally upload them. If you specify Yes, the images will be cropped/resized to fit the slideshow better which is the recommended setting.', 'slideshow-gallery')); ?></th>
85
  <td>
86
+ <label><input onclick="jQuery('#resizeimages_div').show();" <?php echo (empty($styles['resizeimages']) || $styles['resizeimages'] == "Y") ? 'checked="checked"' : ''; ?> type="radio" name="styles[resizeimages]" value="Y" id="styles.resizeimages_Y" /> <?php _e('Yes', 'slideshow-gallery'); ?></label>
87
+ <label><input onclick="jQuery('#resizeimages_div').hide();" <?php echo ($styles['resizeimages'] == "N") ? 'checked="checked"' : ''; ?> type="radio" name="styles[resizeimages]" value="N" id="styles.resizeimages_N" /> <?php _e('No', 'slideshow-gallery'); ?></label>
88
+ <span class="howto"><?php _e('Should images be resized proportionally to fit the width of the slideshow area?', 'slideshow-gallery'); ?></span>
89
  </td>
90
  </tr>
91
  </tbody>
95
  <table class="form-table">
96
  <tbody>
97
  <tr>
98
+ <th><label for="resizeimagescrop_Y"><?php _e('Crop', 'slideshow-gallery'); ?></label></th>
99
  <td>
100
+ <label><input <?php echo (!empty($resizeimagescrop) && $resizeimagescrop == "Y") ? 'checked="checked"' : ''; ?> type="radio" name="resizeimagescrop" value="Y" id="resizeimagescrop_Y" /> <?php _e('Yes', 'slideshow-gallery'); ?></label>
101
+ <label><input <?php echo (!empty($resizeimagescrop) && $resizeimagescrop == "N") ? 'checked="checked"' : ''; ?> type="radio" name="resizeimagescrop" value="N" id="resizeimagescrop_N" /> <?php _e('No', 'slideshow-gallery'); ?></label>
102
+ <span class="howto"><?php _e('Should images be cropped?', 'slideshow-gallery'); ?></span>
103
  </td>
104
  </tr>
105
  </tbody>
110
  <table class="form-table">
111
  <tbody>
112
  <tr>
113
+ <th><label for="styles.width"><?php _e('Gallery Width', 'slideshow-gallery'); ?></label>
114
+ <?php echo $this -> Html -> help(__('The width of the slideshow in pixels.', 'slideshow-gallery')); ?></th>
115
  <td>
116
+ <input style="width:45px;" id="styles.width" type="text" name="styles[width]" value="<?php echo $styles['width']; ?>" /> <?php _e('px', 'slideshow-gallery'); ?>
117
+ <span class="howto"><?php _e('Width of the slideshow gallery', 'slideshow-gallery'); ?></span>
118
  </td>
119
  </tr>
120
  <tr>
121
+ <th><label for="styles_height"><?php _e('Gallery Height', 'slideshow-gallery'); ?></label>
122
+ <?php echo $this -> Html -> help(__('The height of the slideshow in pixels.', 'slideshow-gallery')); ?></th>
123
  <td>
124
+ <input <?php echo (!empty($autoheight)) ? 'disabled="disabled"' : ''; ?> style="width:45px;" id="styles_height" type="text" name="styles[height]" value="<?php echo esc_attr(stripslashes($styles['height'])); ?>" /> <?php _e('px', 'slideshow-gallery'); ?>
125
+ <span class="howto"><?php _e('Height of the slideshow gallery', 'slideshow-gallery'); ?></span>
126
  </td>
127
  </tr>
128
  </tbody>
132
  <table class="form-table">
133
  <tbody>
134
  <tr>
135
+ <th><label for="styles.border"><?php _e('Slideshow Border', 'slideshow-gallery'); ?></label>
136
+ <?php echo $this -> Html -> help(__('This is a CSS style for the border around the entire slideshow. You can use a value such as "1px #FFFFFF solid" to display a 1 pixel, white, solid border or even a value such as "none" for no border at all.', 'slideshow-gallery')); ?></th>
137
  <td>
138
  <input type="text" name="styles[border]" value="<?php echo $styles['border']; ?>" id="styles.border" style="width:145px;" />
139
+ <span class="howto"><?php echo sprintf(__('Border style/color for the entire slideshow wrapper eg. %s', 'slideshow-gallery'), "1px #000000 solid"); ?>
140
  </td>
141
  </tr>
142
  <tr>
143
+ <th><label for="stylesbackground"><?php _e('Slideshow Background', 'slideshow-gallery'); ?></label>
144
+ <?php echo $this -> Html -> help(__('The background which will display behind the entire slideshow. It is behind the slides, thumbnails, etc.', 'slideshow-gallery')); ?></th>
145
  <td>
146
  <fieldset>
147
+ <legend class="screen-reader-text"><span><?php _e('Slideshow Background', 'slideshow-gallery'); ?></span></legend>
148
  <div class="wp-picker-container">
149
  <a tabindex="0" id="stylesbackgroundbutton" class="wp-color-result" style="background-color:<?php echo $styles['background']; ?>;" title="Select Color"></a>
150
  <span class="wp-picker-input-wrap">
151
+ <input type="text" name="styles[background]" id="stylesbackground" value="<?php echo $styles['background']; ?>" class="color-picker" style="display: none;" />
152
  </span>
153
  </div>
154
+ </fieldset>
155
+ <span class="howto"><?php echo sprintf(__('Background color (hexidecimal) of the entire slideshow wrapper eg. %s', 'slideshow-gallery'), "#FFFFFF"); ?></span>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
156
  </td>
157
  </tr>
158
  <tr>
159
+ <th><label for="styles.infobackground"><?php _e('Information Background', 'slideshow-gallery'); ?></label>
160
+ <?php echo $this -> Html -> help(__('The background of the information bar which shows the title and description of each slide. It is automatically half transparent so that it is not obtrusive to the slide image below it though.', 'slideshow-gallery')); ?></th>
161
  <td>
162
  <fieldset>
163
+ <legend class="screen-reader-text"><span><?php _e('Information Background', 'slideshow-gallery'); ?></span></legend>
164
  <div class="wp-picker-container">
165
  <a tabindex="0" id="stylesinfobackgroundbutton" class="wp-color-result" style="background-color:<?php echo $styles['infobackground']; ?>;" title="Select Color"></a>
166
  <span class="wp-picker-input-wrap">
167
+ <input type="text" name="styles[infobackground]" id="stylesinfobackground" value="<?php echo $styles['infobackground']; ?>" class="color-picker" style="display: none;" />
168
  </span>
169
  </div>
170
+ </fieldset>
171
+ <span class="howto"><?php echo sprintf(__('Background color (hexidecimal) of the information bar eg. %s', 'slideshow-gallery'), "#000000"); ?></span>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
172
  </td>
173
  </tr>
174
  <tr>
175
+ <th><label for="styles.infocolor"><?php _e('Information Text Color', 'slideshow-gallery'); ?></label>
176
+ <?php echo $this -> Html -> help(__('This is the color of the text of the title and description of each slide which shows in the information bar.', 'slideshow-gallery')); ?></th>
177
  <td>
178
  <fieldset>
179
+ <legend class="screen-reader-text"><span><?php _e('Information Text Color', 'slideshow-gallery'); ?></span></legend>
180
  <div class="wp-picker-container">
181
  <a tabindex="0" id="stylesinfocolorbutton" class="wp-color-result" style="background-color:<?php echo $styles['infocolor']; ?>;" title="Select Color"></a>
182
  <span class="wp-picker-input-wrap">
183
+ <input type="text" name="styles[infocolor]" id="stylesinfocolor" value="<?php echo $styles['infocolor']; ?>" class="color-picker" style="display: none;" />
184
  </span>
185
  </div>
186
  </fieldset>
187
 
188
+ <span class="howto"><?php echo sprintf(__('Text color (hexidecimal) of the information bar content eg. %s', 'slideshow-gallery'), "#FFFFFF"); ?></span>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
189
  </td>
190
  </tr>
191
  <tr>
192
+ <th><label for="thumbactive"><?php _e('Thumbnail Active Border', 'slideshow-gallery'); ?></label>
193
+ <?php echo $this -> Html -> help(__('This is the color of the border which displays on the active thumbnail of the slide currently displaying in the slideshow.', 'slideshow-gallery')); ?></th>
194
  <td>
195
  <fieldset>
196
+ <legend class="screen-reader-text"><span><?php _e('Thumbnail Active Border', 'slideshow-gallery'); ?></span></legend>
197
  <div class="wp-picker-container">
198
  <a tabindex="0" id="stylesthumbactivebutton" class="wp-color-result" style="background-color:<?php echo $styles['thumbactive']; ?>;" title="Select Color"></a>
199
  <span class="wp-picker-input-wrap">
200
+ <input type="text" name="styles[thumbactive]" id="stylesthumbactive" value="<?php echo $styles['thumbactive']; ?>" class="color-picker" style="display: none;" />
201
  </span>
202
  </div>
203
+ </fieldset>
204
+ <span class="howto"><?php echo sprintf(__('Border color (hexidecimal) for the active image thumbnail eg. %s', 'slideshow-gallery'), "#FFFFFF"); ?></span>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
205
  </td>
206
  </tr>
207
  </tbody>
views/admin/metaboxes/settings-submit.php CHANGED
@@ -12,20 +12,20 @@ $debugging = get_option('tridebugging');
12
  <div id="minor-publishing">
13
  <div id="misc-publishing-actions">
14
  <div class="misc-pub-section">
15
- <a href="<?php echo admin_url('admin.php?page=' . $this -> sections -> settings . '&method=checkdb'); ?>"><?php _e('Check/optimize database tables', $this -> plugin_name); ?></a>
16
  </div>
17
  <div class="misc-pub-section">
18
- <a href="<?php echo $this -> url; ?>&amp;method=reset" title="<?php _e('Reset all configuration settings to their default values', $this -> plugin_name); ?>" onclick="if (!confirm('<?php _e('Are you sure you wish to reset all configuration settings?', $this -> plugin_name); ?>')) { return false; }"><?php _e('Reset to Defaults', $this -> plugin_name); ?></a>
19
  </div>
20
  <div class="misc-pub-section misc-pub-section-last">
21
- <label><input <?php echo (!empty($debugging) && $debugging == 1) ? 'checked="checked"' : ''; ?> type="checkbox" name="debugging" value="1" id="debugging" /> <?php _e('Turn on debugging', $this -> plugin_name); ?></label>
22
  </div>
23
  </div>
24
  </div>
25
  <div id="major-publishing-actions">
26
  <div id="publishing-action">
27
  <button class="button-primary button button-large" type="submit" name="save" value="1">
28
- <i class="fa fa-check fa-fw"></i> <?php _e('Save Configuration', $this -> plugin_name); ?>
29
  </button>
30
  </div>
31
  <br class="clear" />
12
  <div id="minor-publishing">
13
  <div id="misc-publishing-actions">
14
  <div class="misc-pub-section">
15
+ <a href="<?php echo admin_url('admin.php?page=' . $this -> sections -> settings . '&method=checkdb'); ?>"><?php _e('Check/optimize database tables', 'slideshow-gallery'); ?></a>
16
  </div>
17
  <div class="misc-pub-section">
18
+ <a href="<?php echo $this -> url; ?>&amp;method=reset" title="<?php _e('Reset all configuration settings to their default values', 'slideshow-gallery'); ?>" onclick="if (!confirm('<?php _e('Are you sure you wish to reset all configuration settings?', 'slideshow-gallery'); ?>')) { return false; }"><?php _e('Reset to Defaults', 'slideshow-gallery'); ?></a>
19
  </div>
20
  <div class="misc-pub-section misc-pub-section-last">
21
+ <label><input <?php echo (!empty($debugging) && $debugging == 1) ? 'checked="checked"' : ''; ?> type="checkbox" name="debugging" value="1" id="debugging" /> <?php _e('Turn on debugging', 'slideshow-gallery'); ?></label>
22
  </div>
23
  </div>
24
  </div>
25
  <div id="major-publishing-actions">
26
  <div id="publishing-action">
27
  <button class="button-primary button button-large" type="submit" name="save" value="1">
28
+ <i class="fa fa-check fa-fw"></i> <?php _e('Save Configuration', 'slideshow-gallery'); ?>
29
  </button>
30
  </div>
31
  <br class="clear" />
views/admin/metaboxes/settings-tech.php CHANGED
@@ -11,10 +11,10 @@ $jsoutput = $this -> get_option('jsoutput');
11
  <table class="form-table">
12
  <tbody>
13
  <tr>
14
- <th><label for="jsoutput_perslideshow"><?php _e('Javascript Output', $this -> plugin_name); ?></label></th>
15
  <td>
16
- <label><input <?php echo (empty($jsoutput) || (!empty($jsoutput) && $jsoutput == "perslideshow")) ? 'checked="checked"' : ''; ?> type="radio" name="jsoutput" value="perslideshow" id="jsoutput_perslideshow" /> <?php _e('Per Slideshow', $this -> plugin_name); ?></label>
17
- <label><input <?php echo (!empty($jsoutput) && $jsoutput == "footerglobal") ? 'checked="checked"' : ''; ?> type="radio" name="jsoutput" value="footerglobal" id="jsoutput_footerglobal" /> <?php _e('All in Footer', $this -> plugin_name); ?></label>
18
  </td>
19
  </tr>
20
  </tbody>
11
  <table class="form-table">
12
  <tbody>
13
  <tr>
14
+ <th><label for="jsoutput_perslideshow"><?php _e('Javascript Output', 'slideshow-gallery'); ?></label></th>
15
  <td>
16
+ <label><input <?php echo (empty($jsoutput) || (!empty($jsoutput) && $jsoutput == "perslideshow")) ? 'checked="checked"' : ''; ?> type="radio" name="jsoutput" value="perslideshow" id="jsoutput_perslideshow" /> <?php _e('Per Slideshow', 'slideshow-gallery'); ?></label>
17
+ <label><input <?php echo (!empty($jsoutput) && $jsoutput == "footerglobal") ? 'checked="checked"' : ''; ?> type="radio" name="jsoutput" value="footerglobal" id="jsoutput_footerglobal" /> <?php _e('All in Footer', 'slideshow-gallery'); ?></label>
18
  </td>
19
  </tr>
20
  </tbody>
views/admin/metaboxes/settings-wprelated.php CHANGED
@@ -12,11 +12,11 @@ $locale = get_locale();
12
  <table class="form-table">
13
  <tbody>
14
  <tr>
15
- <th><label for="language_external"><?php _e('Language External', $this -> plugin_name); ?></label>
16
- <?php echo $this -> Html -> help(sprintf(__('By default, the plugin loads language file from %s. By turning this on, you can host your language file outside the plugin and place it inside %s. Name the language file %s', $this -> plugin_name), '<code>wp-content/plugins/' . $this -> plugin_name . '/languages/</code>', '<code>wp-content/languages/' . $this -> plugin_name . '/</code>', '<code>' . $this -> plugin_name . '-' . $locale . '.mo</code>')); ?></th>
17
  <td>
18
- <label><input <?php echo (!empty($language_external)) ? 'checked="checked"' : ''; ?> type="checkbox" name="language_external" value="1" id="language_external" /> <?php _e('Yes, load external language file', $this -> plugin_name); ?></label>
19
- <span class="howto"><?php echo sprintf(__('Turn this on to load language file from %s named %s', $this -> plugin_name), '<code>wp-content/languages/' . $this -> plugin_name . '/</code>', '<code>' . $this -> plugin_name . '-' . $locale . '.mo</code>'); ?></span>
20
  </td>
21
  </tr>
22
  </tbody>
12
  <table class="form-table">
13
  <tbody>
14
  <tr>
15
+ <th><label for="language_external"><?php _e('Language External', 'slideshow-gallery'); ?></label>
16
+ <?php echo $this -> Html -> help(sprintf(__('By default, the plugin loads language file from %s. By turning this on, you can host your language file outside the plugin and place it inside %s. Name the language file %s', 'slideshow-gallery'), '<code>wp-content/plugins/' . $this -> plugin_name . '/languages/</code>', '<code>wp-content/languages/' . $this -> plugin_name . '/</code>', '<code>' . $this -> plugin_name . '-' . $locale . '.mo</code>')); ?></th>
17
  <td>
18
+ <label><input <?php echo (!empty($language_external)) ? 'checked="checked"' : ''; ?> type="checkbox" name="language_external" value="1" id="language_external" /> <?php _e('Yes, load external language file', 'slideshow-gallery'); ?></label>
19
+ <span class="howto"><?php echo sprintf(__('Turn this on to load language file from %s named %s', 'slideshow-gallery'), '<code>wp-content/languages/' . $this -> plugin_name . '/</code>', '<code>' . $this -> plugin_name . '-' . $locale . '.mo</code>'); ?></span>
20
  </td>
21
  </tr>
22
  </tbody>
views/admin/msg-top.php CHANGED
@@ -8,7 +8,7 @@ if (!defined('ABSPATH')) exit; // Exit if accessed directly
8
  <div id="message" class="slideshow updated notice">
9
  <p><i class="fa fa-check"></i> <?php echo $message; ?></p>
10
  <?php if (!empty($dismissable)) : ?>
11
- <a href="<?php echo $dismissable; ?>" class="notice-dismiss"><span class="screen-reader-text"><?php _e('Dismiss this notice.', $this -> plugin_name); ?></span></a>
12
  <?php endif; ?>
13
  </div>
14
  <?php endif; ?>
8
  <div id="message" class="slideshow updated notice">
9
  <p><i class="fa fa-check"></i> <?php echo $message; ?></p>
10
  <?php if (!empty($dismissable)) : ?>
11
+ <a href="<?php echo $dismissable; ?>" class="notice-dismiss"><span class="screen-reader-text"><?php _e('Dismiss this notice.', 'slideshow-gallery'); ?></span></a>
12
  <?php endif; ?>
13
  </div>
14
  <?php endif; ?>
views/admin/paginate.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
-
3
- if (!defined('ABSPATH')) exit; // Exit if accessed directly
4
-
5
- ?>
6
-
7
- <?php if (!empty($paginate -> pagination)) : ?>
8
- <div class="tablenav-pages">
9
- <?php echo $paginate -> pagination; ?>
10
- </div>
11
- <?php endif; ?>
 
 
 
 
 
 
 
 
 
 
 
views/admin/settings-submitserial.php CHANGED
@@ -1,18 +1,19 @@
1
  <div class="wrap slideshow">
2
- <h1><?php _e('Submit Serial Key', $this -> plugin_name); ?></h1>
3
 
4
  <p>
5
- <?php _e('Please submit a serial key in the form below.', $this -> plugin_name); ?><br/>
6
- <?php echo sprintf(__('You can obtain the serial key from your %s.', $this -> plugin_name), '<a href="http://tribulant.com/downloads/" target="_blank">' . __('downloads section', $this -> plugin_name) . '</a>'); ?><br/>
7
  </p>
8
 
9
  <?php $this -> render('error', array('errors' => $errors), true, 'admin'); ?>
10
 
11
  <form action="?page=<?php echo $this -> sections -> submitserial; ?>" method="post">
 
12
  <table class="form-table">
13
  <tbody>
14
  <tr>
15
- <th><label for="serial"><?php _e('Serial Key', $this -> plugin_name); ?></label></th>
16
  <td>
17
  <input style="width:320px;" class="widefat" type="text" name="serial" value="<?php echo esc_attr(stripslashes($_POST['serial'])); ?>" id="serial" />
18
  </td>
@@ -22,7 +23,7 @@
22
 
23
  <p class="submit">
24
  <button type="submit" class="button button-primary" name="submit" value="1">
25
- <i class="fa fa-check fa-fw"></i> <?php _e('Submit Serial Key', $this -> plugin_name); ?>
26
  </button>
27
  </p>
28
  </form>
1
  <div class="wrap slideshow">
2
+ <h1><?php _e('Submit Serial Key', 'slideshow-gallery'); ?></h1>
3
 
4
  <p>
5
+ <?php _e('Please submit a serial key in the form below.', 'slideshow-gallery'); ?><br/>
6
+ <?php echo sprintf(__('You can obtain the serial key from your %s.', 'slideshow-gallery'), '<a href="https://tribulant.com/downloads/" target="_blank">' . __('downloads section', 'slideshow-gallery') . '</a>'); ?><br/>
7
  </p>
8
 
9
  <?php $this -> render('error', array('errors' => $errors), true, 'admin'); ?>
10
 
11
  <form action="?page=<?php echo $this -> sections -> submitserial; ?>" method="post">
12
+ <?php wp_nonce_field($this -> sections -> submitserial); ?>
13
  <table class="form-table">
14
  <tbody>
15
  <tr>
16
+ <th><label for="serial"><?php _e('Serial Key', 'slideshow-gallery'); ?></label></th>
17
  <td>
18
  <input style="width:320px;" class="widefat" type="text" name="serial" value="<?php echo esc_attr(stripslashes($_POST['serial'])); ?>" id="serial" />
19
  </td>
23
 
24
  <p class="submit">
25
  <button type="submit" class="button button-primary" name="submit" value="1">
26
+ <i class="fa fa-check fa-fw"></i> <?php _e('Submit Serial Key', 'slideshow-gallery'); ?>
27
  </button>
28
  </p>
29
  </form>
views/admin/settings.php CHANGED
@@ -11,10 +11,9 @@ wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false);
11
  ?>
12
 
13
  <div class="wrap slideshow <?php echo $this -> pre; ?>">
14
- <h1><?php _e('Configuration Settings', $this -> plugin_name); ?></h1>
15
 
16
  <form action="<?php echo $this -> url; ?>" name="post" id="post" method="post">
17
-
18
  <?php wp_nonce_field($this -> sections -> settings); ?>
19
 
20
  <div id="poststuff" class="metabox-holder has-right-sidebar">
@@ -29,4 +28,34 @@ wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false);
29
  </div>
30
  </div>
31
  </form>
32
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  ?>
12
 
13
  <div class="wrap slideshow <?php echo $this -> pre; ?>">
14
+ <h1><?php _e('Configuration Settings', 'slideshow-gallery'); ?></h1>
15
 
16
  <form action="<?php echo $this -> url; ?>" name="post" id="post" method="post">
 
17
  <?php wp_nonce_field($this -> sections -> settings); ?>
18
 
19
  <div id="poststuff" class="metabox-holder has-right-sidebar">
28
  </div>
29
  </div>
30
  </form>
31
+ </div>
32
+
33
+ <script type="text/javascript">
34
+ (function($) {
35
+ $document = $(document);
36
+ $plugininstall = $('.plugin-install-newsletters');
37
+
38
+ $plugininstall.on('click', '.install-now', function() {
39
+ tb_show('<?php _e('Install Newsletter Plugin', 'slideshow-gallery'); ?>', $(this).attr('href'), false);
40
+ return false;
41
+ });
42
+
43
+ $plugininstall.on('click', '.activate-now', function() {
44
+ window.location = $(this).attr('href');
45
+ });
46
+
47
+ $document.on('wp-plugin-installing', function(event, args) {
48
+ $plugininstall.find('.install-now').html('<i class="fa fa-refresh fa-spin fa-fw"></i> <?php echo __('Installing', 'slideshow-gallery'); ?>').prop('disabled', true);
49
+ });
50
+
51
+ $document.on('wp-plugin-install-success', function(event, response) {
52
+ $plugininstall.find('.install-now').html('<i class="fa fa-check fa-fw"></i> <?php _e('Activate', 'slideshow-gallery'); ?>').attr('href', response.activateUrl).prop('disabled', false);
53
+ $plugininstall.find('.install-now').removeClass('install-now').addClass('activate-now')
54
+ });
55
+
56
+ $document.on('wp-plugin-install-error', function(event, response) {
57
+ alert('<?php _e('An error occurred, please try again.', 'slideshow-gallery'); ?>');
58
+ $plugininstall.find('.install-now').html('<i class="fa fa-check fa-fw"></i> <?php echo __('Install Now', 'slideshow-gallery'); ?>').prop('disabled', false);
59
+ });
60
+ })(jQuery);
61
+ </script>
views/admin/slides/index.php CHANGED
@@ -2,20 +2,41 @@
2
 
3
  if (!defined('ABSPATH')) exit; // Exit if accessed directly
4
 
 
 
 
 
5
  ?>
6
 
7
- <div class="wrap <?php echo $this -> pre; ?> slideshow">
8
- <h1><?php _e('Manage Slides', $this -> plugin_name); ?>
9
- <?php echo $this -> Html -> link(__('Add New', $this -> plugin_name), $this -> url . '&amp;method=save', array('class' => "add-new-h2")); ?>
10
- <?php echo $this -> Html -> link(__('Add Multiple', $this -> plugin_name), $this -> url . '&amp;method=save-multiple', array('class' => "add-new-h2")); ?></h1>
 
 
 
 
 
 
 
11
 
12
- <?php if (!empty($slides)) : ?>
13
- <form id="posts-filter" action="<?php echo $this -> url; ?>" method="post">
14
- <ul class="subsubsub">
15
- <li><?php echo $paginate -> allcount; ?> <?php _e('slides', $this -> plugin_name); ?></li>
16
- </ul>
17
- </form>
18
- <?php endif; ?>
 
 
 
 
 
 
19
 
20
- <?php $this -> render('slides' . DS . 'loop', array('list_table' => $list_table, 'slides' => $slides, 'paginate' => $paginate), true, 'admin'); ?>
21
- </div>
 
 
 
 
2
 
3
  if (!defined('ABSPATH')) exit; // Exit if accessed directly
4
 
5
+ require_once $this -> plugin_base() . DS . 'includes' . DS . 'class.slide-list-table.php';
6
+ $Slide_List_table = new Slide_List_Table();
7
+ $Slide_List_table -> prepare_items();
8
+
9
  ?>
10
 
11
+ <div class="wrap slideshow-gallery slideshow">
12
+ <h1><?php _e('Manage Slides', 'slideshow-gallery'); ?>
13
+ <?php echo $this -> Html -> link(__('Add New', 'slideshow-gallery'), $this -> url . '&amp;method=save', array('class' => "add-new-h2")); ?>
14
+ <?php echo $this -> Html -> link(__('Add Multiple', 'slideshow-gallery'), $this -> url . '&amp;method=save-multiple', array('class' => "add-new-h2")); ?></h1>
15
+
16
+ <form id="slideshow-slides-form" action="<?php echo admin_url('admin.php?page=' . $this -> sections -> slides); ?>" method="get">
17
+ <input type="hidden" name="page" value="<?php echo $this -> sections -> slides; ?>" />
18
+ <?php $Slide_List_table -> search_box(__('Search Slides', 'slideshow-gallery'), 'search'); ?>
19
+ <?php $Slide_List_table -> display(); ?>
20
+ </form>
21
+ </div>
22
 
23
+ <script type="text/javascript">
24
+ jQuery('#bulk-action-selector-top').on('change', function(event) {
25
+ var action = jQuery(this).val();
26
+ switch (action) {
27
+ case 'addgalleries' :
28
+ case 'setgalleries' :
29
+ jQuery('#action_galleries_div').show();
30
+ break;
31
+ case 'remgalleries' :
32
+ jQuery('#action_galleries_div').hide();
33
+ break;
34
+ }
35
+ });
36
 
37
+ jQuery('#doaction').on('click', function(event) {
38
+ if (!confirm('Are you sure you want to apply this bulk action?')) {
39
+ return false;
40
+ }
41
+ });
42
+ </script>
views/admin/slides/loop.php DELETED
@@ -1,236 +0,0 @@
1
- <?php
2
-
3
- if (!defined('ABSPATH')) exit; // Exit if accessed directly
4
-
5
- ?>
6
-
7
- <form onsubmit="if (!confirm('<?php _e('Are you sure you wish to execute this action on the selected slides?', $this -> plugin_name); ?>')) { return false; }" action="<?php echo $this -> url; ?>&amp;method=mass" method="post">
8
-
9
- <?php
10
-
11
- //$list_table -> display();
12
-
13
- ?>
14
-
15
- <?php wp_nonce_field($this -> sections -> slides . '-bulkaction'); ?>
16
-
17
- <div class="tablenav top">
18
- <div class="alignleft">
19
- <?php if (!empty($_GET['page']) && $_GET['page'] == $this -> sections -> galleries) : ?>
20
- <a href="?page=<?php echo $this -> sections -> slides; ?>&amp;method=order&amp;gallery_id=<?php echo $gallery -> id; ?>" class="button"><i class="fa fa-sort"></i> <?php _e('Order Slides', $this -> plugin_name); ?></a>
21
- <?php else : ?>
22
- <a href="<?php echo $this -> url; ?>&amp;method=order" class="button"><i class="fa fa-sort"></i> <?php _e('Order Slides', $this -> plugin_name); ?></a>
23
- <?php endif; ?>
24
- </div>
25
- <div class="alignleft actions">
26
- <select name="action" class="action" onchange="change_action(this.value);">
27
- <option value=""><?php _e('- Bulk Actions -', $this -> plugin_name); ?></option>
28
- <option value="delete"><?php _e('Delete', $this -> plugin_name); ?></option>
29
- <optgroup label="<?php _e('Galleries', $this -> plugin_name); ?>">
30
- <option value="addgalleries"><?php _e('Add Galleries...', $this -> plugin_name); ?></option>
31
- <option value="setgalleries"><?php _e('Set Galleries...', $this -> plugin_name); ?></option>
32
- <option value="remgalleries"><?php _e('Remove All Galleries', $this -> plugin_name); ?></option>
33
- </optgroup>
34
- </select>
35
- <input type="submit" class="button" value="<?php _e('Apply', $this -> plugin_name); ?>" name="execute" />
36
- </div>
37
- <?php $this -> render('paginate', array('paginate' => $paginate), true, 'admin'); ?>
38
- </div>
39
-
40
- <div id="action_galleries_div" style="display:none;">
41
- <?php if ($galleries = $this -> Gallery() -> select()) : ?>
42
- <div><label style="font-weight:bold"><input onclick="jqCheckAll(this, false, 'galleries');" type="checkbox" name="checkboxall" value="1" /> <?php _e('Select all', $this -> plugin_name); ?></label></div>
43
- <?php foreach ($galleries as $gallery_id => $gallery_name) : ?>
44
- <div><label><input type="checkbox" name="galleries[]" value="<?php echo $gallery_id; ?>" /> <?php _e($gallery_name); ?></label></div>
45
- <?php endforeach; ?>
46
- <?php else : ?>
47
- <p class="slideshow_error"><?php _e('No galleries are available', $this -> plugin_name); ?></p>
48
- <?php endif; ?>
49
- </div>
50
-
51
- <script type="text/javascript">
52
- function change_action(action) {
53
- switch (action) {
54
- case 'addgalleries' :
55
- case 'setgalleries' :
56
- jQuery('#action_galleries_div').show();
57
- break;
58
- default :
59
- jQuery('#action_galleries_div').hide();
60
- break;
61
- }
62
- }
63
- </script>
64
-
65
- <?php
66
-
67
- $orderby = (empty($_GET['orderby'])) ? 'modified' : esc_html($_GET['orderby']);
68
- $order = (empty($_GET['order'])) ? 'desc' : strtolower(esc_html($_GET['order']));
69
- $otherorder = ($order == "desc") ? 'asc' : 'desc';
70
- $colspan = 8;
71
-
72
- ?>
73
-
74
- <table class="widefat">
75
- <thead>
76
- <tr>
77
- <td class="check-column"><input type="checkbox" name="checkboxall" id="checkboxall" value="checkboxall" /></td>
78
- <th class="column-id <?php echo ($orderby == "id") ? 'sorted ' . $order : 'sortable desc'; ?>">
79
- <a href="<?php echo add_query_arg(array('orderby' => "id", 'order' => (($orderby == "id") ? $otherorder : "asc"))); ?>">
80
- <span><?php _e('ID', $this -> plugin_name); ?></span>
81
- <span class="sorting-indicator"></span>
82
- </a>
83
- </th>
84
- <th class="column-image <?php echo ($orderby == "image") ? 'sorted ' . $order : 'sortable desc'; ?>">
85
- <a href="<?php echo add_query_arg(array('orderby' => "image", 'order' => (($orderby == "image") ? $otherorder : "asc"))); ?>">
86
- <span><?php _e('Image', $this -> plugin_name); ?></span>
87
- <span class="sorting-indicator"></span>
88
- </a>
89
- </th>
90
- <th class="column-title <?php echo ($orderby == "title") ? 'sorted ' . $order : 'sortable desc'; ?>">
91
- <a href="<?php echo add_query_arg(array('orderby' => "title", 'order' => (($orderby == "title") ? $otherorder : "asc"))); ?>">
92
- <span><?php _e('Title', $this -> plugin_name); ?></span>
93
- <span class="sorting-indicator"></span>
94
- </a>
95
- </th>
96
- <th><?php _e('Galleries', $this -> plugin_name); ?></th>
97
- <th class="column-uselink <?php echo ($orderby == "uselink") ? 'sorted ' . $order : 'sortable desc'; ?>">
98
- <a href="<?php echo add_query_arg(array('orderby' => "uselink", 'order' => (($orderby == "uselink") ? $otherorder : "asc"))); ?>">
99
- <span><?php _e('Link', $this -> plugin_name); ?></span>
100
- <span class="sorting-indicator"></span>
101
- </a>
102
- </th>
103
- <th class="column-modified <?php echo ($orderby == "modified") ? 'sorted ' . $order : 'sortable desc'; ?>">
104
- <a href="<?php echo add_query_arg(array('orderby' => "modified", 'order' => (($orderby == "modified") ? $otherorder : "asc"))); ?>">
105
- <span><?php _e('Date', $this -> plugin_name); ?></span>
106
- <span class="sorting-indicator"></span>
107
- </a>
108
- </th>
109
- <th class="column-order <?php echo ($orderby == "order") ? 'sorted ' . $order : 'sortable desc'; ?>">
110
- <a href="<?php echo add_query_arg(array('orderby' => "order", 'order' => (($orderby == "order") ? $otherorder : "asc"))); ?>">
111
- <span><?php _e('Order', $this -> plugin_name); ?></span>
112
- <span class="sorting-indicator"></span>
113
- </a>
114
- </th>
115
- </tr>
116
- </thead>
117
- <tfoot>
118
- <tr>
119
- <td class="check-column"><input type="checkbox" name="checkboxall" id="checkboxall" value="checkboxall" /></td>
120
- <th class="column-id <?php echo ($orderby == "id") ? 'sorted ' . $order : 'sortable desc'; ?>">
121
- <a href="<?php echo add_query_arg(array('orderby' => "id", 'order' => (($orderby == "id") ? $otherorder : "asc"))); ?>">
122
- <span><?php _e('ID', $this -> plugin_name); ?></span>
123
- <span class="sorting-indicator"></span>
124
- </a>
125
- </th>
126
- <th class="column-image <?php echo ($orderby == "image") ? 'sorted ' . $order : 'sortable desc'; ?>">
127
- <a href="<?php echo add_query_arg(array('orderby' => "image", 'order' => (($orderby == "image") ? $otherorder : "asc"))); ?>">
128
- <span><?php _e('Image', $this -> plugin_name); ?></span>
129
- <span class="sorting-indicator"></span>
130
- </a>
131
- </th>
132
- <th class="column-title <?php echo ($orderby == "title") ? 'sorted ' . $order : 'sortable desc'; ?>">
133
- <a href="<?php echo add_query_arg(array('orderby' => "title", 'order' => (($orderby == "title") ? $otherorder : "asc"))); ?>">
134
- <span><?php _e('Title', $this -> plugin_name); ?></span>
135
- <span class="sorting-indicator"></span>
136
- </a>
137
- </th>
138
- <th><?php _e('Galleries', $this -> plugin_name); ?></th>
139
- <th class="column-uselink <?php echo ($orderby == "uselink") ? 'sorted ' . $order : 'sortable desc'; ?>">
140
- <a href="<?php echo add_query_arg(array('orderby' => "uselink", 'order' => (($orderby == "uselink") ? $otherorder : "asc"))); ?>">
141
- <span><?php _e('Link', $this -> plugin_name); ?></span>
142
- <span class="sorting-indicator"></span>
143
- </a>
144
- </th>
145
- <th class="column-modified <?php echo ($orderby == "modified") ? 'sorted ' . $order : 'sortable desc'; ?>">
146
- <a href="<?php echo add_query_arg(array('orderby' => "modified", 'order' => (($orderby == "modified") ? $otherorder : "asc"))); ?>">
147
- <span><?php _e('Date', $this -> plugin_name); ?></span>
148
- <span class="sorting-indicator"></span>
149
- </a>
150
- </th>
151
- <th class="column-order <?php echo ($orderby == "order") ? 'sorted ' . $order : 'sortable desc'; ?>">
152
- <a href="<?php echo add_query_arg(array('orderby' => "order", 'order' => (($orderby == "order") ? $otherorder : "asc"))); ?>">
153
- <span><?php _e('Order', $this -> plugin_name); ?></span>
154
- <span class="sorting-indicator"></span>
155
- </a>
156
- </th>
157
- </tr>
158
- </tfoot>
159
- <tbody>
160
- <?php if (!empty($slides)) : ?>
161
- <?php foreach ($slides as $slide) : ?>
162
- <tr class="<?php echo $class = (empty($class)) ? 'alternate' : ''; ?>">
163
- <th class="check-column"><input type="checkbox" name="Slide[checklist][]" value="<?php echo $slide -> id; ?>" id="checklist<?php echo $slide -> id; ?>" /></th>
164
- <td><label for="checklist<?php echo $slide -> id; ?>"><?php echo $slide -> id; ?></label></td>
165
- <td style="width:75px;">
166
- <a href="<?php echo $slide -> image_path; ?>" title="<?php echo __($slide -> title); ?>" class="colorbox" rel="slides"><img style="width:50px; height:50px;" class="img-rounded" src="<?php echo $this -> Html -> otf_image_src($slide, 50, 50, 100); ?>" alt="<?php echo $this -> Html -> sanitize(__($slide -> title)); ?>" /></a>
167
- </td>
168
- <td>
169
- <a class="row-title" href="<?php echo $this -> url; ?>&amp;method=save&amp;id=<?php echo $slide -> id; ?>" title=""><?php echo __($slide -> title); ?></a>
170
- <div class="row-actions">
171
- <span class="edit"><?php echo $this -> Html -> link(__('Edit', $this -> plugin_name), "?page=" . $this -> sections -> slides . "&amp;method=save&amp;id=" . $slide -> id); ?> |</span>
172
- <span class="delete"><?php echo $this -> Html -> link(__('Delete', $this -> plugin_name), "?page=" . $this -> sections -> slides . "&amp;method=delete&amp;id=" . $slide -> id, array('class' => "submitdelete", 'onclick' => "if (!confirm('" . __('Are you sure you want to permanently remove this slide?', $this -> plugin_name) . "')) { return false; }")); ?></span>
173
- </div>
174
- </td>
175
- <td>
176
- <?php if (!empty($slide -> gallery)) : ?>
177
- <?php $g = 1; ?>
178
- <?php foreach ($slide -> gallery as $gallery) : ?>
179
- <a href="?page=<?php echo $this -> sections -> galleries; ?>&amp;method=view&amp;id=<?php echo $gallery -> id; ?>" title="<?php echo esc_attr(__($gallery -> title)); ?>"><?php echo __($gallery -> title); ?></a>
180
- <?php if ($g < count($slide -> gallery)) : ?>, <?php endif; ?>
181
- <?php $g++; ?>
182
- <?php endforeach; ?>
183
- <?php else : ?>
184
- <?php _e('None', $this -> plugin_name); ?>
185
- <?php endif; ?>
186
- </td>
187
- <td>
188
- <?php if (!empty($slide -> uselink) && $slide -> uselink == "Y") : ?>
189
- <span class="slideshow_success"><i class="fa fa-check"></i></span>
190
- <small>(<a href="<?php echo __($slide -> link); ?>" title="" target="_blank"><?php _e('Open', $this -> plugin_name); ?></a>)</small>
191
- <?php else : ?>
192
- <span class="slideshow_error"><i class="fa fa-times"></i></span>
193
- <?php endif; ?>
194
- </td>
195
- <td><abbr title="<?php echo $slide -> modified; ?>"><?php echo date(get_option('date_format'), strtotime($slide -> modified)); ?></abbr></td>
196
- <td><?php echo ((int) $slide -> order + 1); ?></td>
197
- </tr>
198
- <?php endforeach; ?>
199
- <?php else : ?>
200
- <tr class="no-items">
201
- <td class="colspanchange" colspan="<?php echo $colspan; ?>">
202
- <?php echo sprintf(__('No slides available, %s or %s', $this -> plugin_name), '<a href="' . admin_url('admin.php?page=' . $this -> sections -> slides . '&method=save') . '">' . __('add one', $this -> plugin_name) . '</a>', '<a href="' . admin_url('admin.php?page=' . $this -> sections -> slides . '&method=save-multiple') . '">' . __('add multiple', $this -> plugin_name) . '</a>'); ?>
203
- </td>
204
- </tr>
205
- <?php endif; ?>
206
- </tbody>
207
- </table>
208
-
209
- <div class="tablenav bottom">
210
- <div class="alignleft">
211
- <?php if (empty($_GET['showall'])) : ?>
212
- <select class="widefat" style="width:auto;" name="perpage" onchange="change_perpage(this.value);">
213
- <option value=""><?php _e('- Per Page -', $this -> plugin_name); ?></option>
214
- <?php $p = 5; ?>
215
- <?php while ($p < 100) : ?>
216
- <option <?php echo (!empty($_COOKIE[$this -> pre . 'slidesperpage']) && $_COOKIE[$this -> pre . 'slidesperpage'] == $p) ? 'selected="selected"' : ''; ?> value="<?php echo $p; ?>"><?php echo $p; ?> <?php _e('per page', $this -> plugin_name); ?></option>
217
- <?php $p += 5; ?>
218
- <?php endwhile; ?>
219
- <?php if (isset($_COOKIE[$this -> pre . 'slidesperpage'])) : ?>
220
- <option selected="selected" value="<?php echo $_COOKIE[$this -> pre . 'slidesperpage']; ?>"><?php echo $_COOKIE[$this -> pre . 'slidesperpage']; ?></option>
221
- <?php endif; ?>
222
- </select>
223
- <?php endif; ?>
224
-
225
- <script type="text/javascript">
226
- function change_perpage(perpage) {
227
- if (perpage != "") {
228
- document.cookie = "<?php echo $this -> pre; ?>slidesperpage=" + perpage + "; expires=<?php echo $this -> Html -> gen_date($this -> get_option('cookieformat'), strtotime("+30 days")); ?> UTC; path=/";
229
- window.location = "<?php echo preg_replace("/\&?" . $this -> pre . "page\=(.*)?/si", "", $_SERVER['REQUEST_URI']); ?>";
230
- }
231
- }
232
- </script>
233
- </div>
234
- <?php $this -> render('paginate', array('paginate' => $paginate), true, 'admin'); ?>
235
- </div>
236
- </form>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
views/admin/slides/order-gallery.php CHANGED
@@ -4,14 +4,14 @@ if (!defined('ABSPATH')) exit; // Exit if accessed directly
4
 
5
  ?>
6
 
7
- <div class="wrap">
8
- <h1><?php _e('Order Slides', $this -> plugin_name); ?><?php echo (!empty($gallery)) ? ': ' . __($gallery -> title) : ''; ?></h1>
9
 
10
  <div style="float:none;" class="subsubsub">
11
- <a href="<?php echo $this -> url; ?>"><?php _e('&larr; Manage All Slides', $this -> plugin_name); ?></a>
12
  </div>
13
 
14
- <p class="howto"><?php echo sprintf(__('This page lets you order all slides shown with %s.', $this -> plugin_name), '<code>[tribulant_slideshow gallery_id=' . $gallery -> id . ']</code>'); ?></p>
15
 
16
  <?php if (!empty($slides)) : ?>
17
  <div id="slidemessage" class="updated fade" style="display:none; width:31%;"><!-- message will go here --></div>
@@ -61,6 +61,6 @@ if (!defined('ABSPATH')) exit; // Exit if accessed directly
61
  });
62
  </script>
63
  <?php else : ?>
64
- <p class="slideshow_error"><?php _e('No slides found', $this -> plugin_name); ?></p>
65
  <?php endif; ?>
66
  </div>
4
 
5
  ?>
6
 
7
+ <div class="wrap slideshow">
8
+ <h1><?php _e('Order Slides', 'slideshow-gallery'); ?><?php echo (!empty($gallery)) ? ': ' . __($gallery -> title) : ''; ?></h1>
9
 
10
  <div style="float:none;" class="subsubsub">
11
+ <a href="<?php echo $this -> url; ?>"><?php _e('&larr; Manage All Slides', 'slideshow-gallery'); ?></a>
12
  </div>
13
 
14
+ <p class="howto"><?php echo sprintf(__('This page lets you order all slides shown with %s.', 'slideshow-gallery'), '<code>[tribulant_slideshow gallery_id=' . $gallery -> id . ']</code>'); ?></p>
15
 
16
  <?php if (!empty($slides)) : ?>
17
  <div id="slidemessage" class="updated fade" style="display:none; width:31%;"><!-- message will go here --></div>
61
  });
62
  </script>
63
  <?php else : ?>
64
+ <p class="slideshow_error"><?php _e('No slides found', 'slideshow-gallery'); ?></p>
65
  <?php endif; ?>
66
  </div>
views/admin/slides/order.php CHANGED
@@ -4,15 +4,15 @@ if (!defined('ABSPATH')) exit; // Exit if accessed directly
4
 
5
  ?>
6
 
7
- <div class="wrap">
8
- <h1><?php _e('Order Slides', $this -> plugin_name); ?><?php echo (!empty($gallery)) ? ': ' . __($gallery -> title) : ''; ?></h1>
9
 
10
  <div style="float:none;" class="subsubsub">
11
- <a href="<?php echo $this -> url; ?>"><?php _e('&larr; Manage All Slides', $this -> plugin_name); ?></a>
12
  </div>
13
 
14
- <p class="howto"><?php echo sprintf(__('This page lets you order all slides shown with %s.', $this -> plugin_name), '<code>[tribulant_slideshow]</code>'); ?><br/>
15
- <?php echo __('To order slides per gallery, go to Slideshow > Manage Galleries and order for that specific gallery.', $this -> plugin_name); ?></p>
16
 
17
  <?php if (!empty($slides)) : ?>
18
  <div id="slidemessage" class="updated fade" style="display:none; width:31%;"><!-- message will go here --></div>
@@ -62,6 +62,6 @@ if (!defined('ABSPATH')) exit; // Exit if accessed directly
62
  });
63
  </script>
64
  <?php else : ?>
65
- <p class="slideshow_error"><?php _e('No slides found', $this -> plugin_name); ?></p>
66
  <?php endif; ?>
67
  </div>
4
 
5
  ?>
6
 
7
+ <div class="wrap slideshow">
8
+ <h1><?php _e('Order Slides', 'slideshow-gallery'); ?><?php echo (!empty($gallery)) ? ': ' . __($gallery -> title) : ''; ?></h1>
9
 
10
  <div style="float:none;" class="subsubsub">
11
+ <a href="<?php echo $this -> url; ?>"><?php _e('&larr; Manage All Slides', 'slideshow-gallery'); ?></a>
12
  </div>
13
 
14
+ <p class="howto"><?php echo sprintf(__('This page lets you order all slides shown with %s.', 'slideshow-gallery'), '<code>[tribulant_slideshow]</code>'); ?><br/>
15
+ <?php echo __('To order slides per gallery, go to Slideshow > Manage Galleries and order for that specific gallery.', 'slideshow-gallery'); ?></p>
16
 
17
  <?php if (!empty($slides)) : ?>
18
  <div id="slidemessage" class="updated fade" style="display:none; width:31%;"><!-- message will go here --></div>
62
  });
63
  </script>
64
  <?php else : ?>
65
+ <p class="slideshow_error"><?php _e('No slides found', 'slideshow-gallery'); ?></p>
66
  <?php endif; ?>
67
  </div>
views/admin/slides/save-multiple.php CHANGED
@@ -5,7 +5,7 @@ if (!defined('ABSPATH')) exit; // Exit if accessed directly
5
  ?>
6
 
7
  <div class="wrap <?php echo $this -> pre; ?> slideshow">
8
- <h1><?php _e('Save Multiple Slides', $this -> plugin_name); ?></h1>
9
 
10
  <?php if (!empty($errors)) : ?>
11
  <div class="slideshow_error">
@@ -18,18 +18,17 @@ if (!defined('ABSPATH')) exit; // Exit if accessed directly
18
  <?php endif; ?>
19
 
20
  <form action="" method="post">
21
-
22
- <?php wp_nonce_field($this -> sections -> slides . '-save-multiple'); ?>
23
 
24
  <table class="form-table">
25
  <tbody>
26
  <tr>
27
- <th><label for="Slide_mediaupload"><?php _e('Choose Images', $this -> plugin_name); ?></label></th>
28
  <td>
29
  <button class="button button-secondary" type="button" name="Slide_mediaupload" value="1" id="Slide_mediaupload">
30
- <i class="fa fa-image fa-fw"></i> <?php _e('Choose Images', $this -> plugin_name); ?>
31
  </button>
32
- <span class="howto"><?php _e('Upload/choose images from the media gallery. Ctrl/Shift + Click to choose multiple.', $this -> plugin_name); ?></span>
33
 
34
  <div id="Slide_mediaslides" style="display:<?php echo (!empty($_POST['Slide']['slides'])) ? 'block' : 'none'; ?>;">
35
  <!-- Slides go here -->
@@ -42,13 +41,13 @@ if (!defined('ABSPATH')) exit; // Exit if accessed directly
42
  <a href="" class="colorbox" onclick="jQuery.colorbox({href:'<?php echo esc_attr($slide['url']); ?>'}); return false;"><img style="width:100px;" class="img-rounded" src="<?php echo esc_attr($slide['url']); ?>" />
43
  </th>
44
  <td>
45
- <label><?php _e('Title:', $this -> plugin_name); ?> <input class="widefat" type="text" value="<?php echo esc_attr(stripslashes($slide['title'])); ?>" name="Slide[slides][<?php echo esc_attr(stripslashes($slide['attachment_id'])); ?>][title]" /></label>
46
- <label><?php _e('Description:', $this -> plugin_name); ?> <textarea class="widefat" rows="3" cols="100%" name="Slide[slides][<?php echo esc_attr(stripslashes($slide['attachment_id'])); ?>][description]"><?php echo esc_attr(stripslashes($slide['description'])); ?></textarea></label>
47
  <input class="widefat" readonly="readonly" type="text" value="<?php echo esc_attr(stripslashes($slide['url'])); ?>" name="Slide[slides][<?php echo esc_attr(stripslashes($slide['attachment_id'])); ?>][url]" />
48
  <input type="hidden" value="<?php echo esc_attr(stripslashes($slide['attachment_id'])); ?>" name="Slide[slides][<?php echo esc_attr(stripslashes($slide['attachment_id'])); ?>][attachment_id]" />
49
  </td>
50
  <td style="vertical-align:bottom;">
51
- <input onclick="if (confirm('<?php echo __('Are you sure you want to remove this slide?', $this -> plugin_name); ?>')) { jQuery('#Slide_mediaupload_row_<?php echo esc_attr(stripslashes($slide['attachment_id'])); ?>').remove(); } return false;" class="button button-secondary button-small" type="button" name="remove" value="<?php echo __('Remove', $this -> plugin_name); ?>" id="remove<?php echo esc_attr(stripslashes($slide['attachment_id'])); ?>" />
52
  </td>
53
  </tr>
54
  <?php endforeach; ?>
@@ -59,17 +58,17 @@ if (!defined('ABSPATH')) exit; // Exit if accessed directly
59
  </td>
60
  </tr>
61
  <tr>
62
- <th><label for=""><?php _e('Galleries', $this -> plugin_name); ?></label></th>
63
  <td>
64
  <?php if ($galleries = $this -> Gallery() -> select()) : ?>
65
- <label style="font-weight:bold"><input onclick="jqCheckAll(this,'','Slide[galleries]');" type="checkbox" name="checkboxall" value="checkboxall" id="checkboxall" /> <?php _e('Select All', $this -> plugin_name); ?></label><br/>
66
  <?php foreach ($galleries as $gallery_id => $gallery_title) : ?>
67
  <label><input <?php echo (!empty($_POST['Slide']['galleries']) && in_array($gallery_id, $_POST['Slide']['galleries'])) ? 'checked="checked"' : ''; ?> type="checkbox" name="Slide[galleries][]" value="<?php echo $gallery_id; ?>" id="Slide_galleries_<?php echo $gallery_id; ?>" /> <?php echo __($gallery_title); ?></label><br/>
68
  <?php endforeach; ?>
69
  <?php else : ?>
70
- <span class="error"><?php _e('No galleries are available.', $this -> plugin_name); ?></span>
71
  <?php endif; ?>
72
- <span class="howto"><?php _e('Choose the galleries to add these slides to.', $this -> plugin_name); ?></span>
73
  </td>
74
  </tr>
75
  </tbody>
@@ -77,7 +76,7 @@ if (!defined('ABSPATH')) exit; // Exit if accessed directly
77
 
78
  <p class="submit">
79
  <button type="submit" name="save" value="1" class="button button-primary">
80
- <i class="fa fa-check fa-fw"></i> <?php _e('Save Multiple Slides', $this -> plugin_name); ?>
81
  </button>
82
  </p>
83
  </form>
@@ -98,9 +97,9 @@ jQuery(document).ready(function() {
98
 
99
  // Create the media frame.
100
  file_frame = wp.media.frames.file_frame = wp.media({
101
- title: '<?php _e('Upload Slides', $this -> plugin_name); ?>',
102
  button: {
103
- text: '<?php _e('Select Images as Slides', $this -> plugin_name); ?>',
104
  },
105
  multiple: true // Set to true to allow multiple files to be selected
106
  });
@@ -122,12 +121,12 @@ jQuery(document).ready(function() {
122
  var attachment_html = '<tr id="Slide_mediaupload_row_' + attachment.id + '">';
123
  attachment_html += '<th style="width:100px; vertical-align:top;"><a href="" class="colorbox" onclick="jQuery.colorbox({href:\'' + attachment.url + '\'}); return false;"><img style="width:100px;" class="img-rounded" src="' + thumbnail_url + '" /></th>';
124
  attachment_html += '<td>';
125
- attachment_html += '<label><?php _e('Title:', $this -> plugin_name); ?> <input class="widefat" type="text" value="' + attachment.title + '" name="Slide[slides][' + attachment.id + '][title]" /></label>';
126
- attachment_html += '<label><?php _e('Description:', $this -> plugin_name); ?> <textarea class="widefat" rows="3" cols="100%" name="Slide[slides][' + attachment.id + '][description]"></textarea></label>';
127
  attachment_html += '<input class="widefat" readonly="readonly" type="text" value="' + attachment.url + '" name="Slide[slides][' + attachment.id + '][url]" />';
128
  attachment_html += '<input type="hidden" value="' + attachment.id + '" name="Slide[slides][' + attachment.id + '][attachment_id]" />';
129
  attachment_html += '</td>';
130
- attachment_html += '<td style="vertical-align:bottom;"><input onclick="if (confirm(\'<?php echo __('Are you sure you want to remove this slide?', $this -> plugin_name); ?>\')) { jQuery(\'#Slide_mediaupload_row_' + attachment.id + '\').remove(); } return false;" class="button button-secondary button-small" type="button" name="remove" value="<?php echo __('Remove', $this -> plugin_name); ?>" id="remove' + attachment.id + '" /></td>';
131
  attachment_html += '</tr>';
132
 
133
  jQuery('#Slide_mediaslides').show();
5
  ?>
6
 
7
  <div class="wrap <?php echo $this -> pre; ?> slideshow">
8
+ <h1><?php _e('Save Multiple Slides', 'slideshow-gallery'); ?></h1>
9
 
10
  <?php if (!empty($errors)) : ?>
11
  <div class="slideshow_error">
18
  <?php endif; ?>
19
 
20
  <form action="" method="post">
21
+ <?php wp_nonce_field($this -> sections -> slides . '_save-multiple'); ?>
 
22
 
23
  <table class="form-table">
24
  <tbody>
25
  <tr>
26
+ <th><label for="Slide_mediaupload"><?php _e('Choose Images', 'slideshow-gallery'); ?></label></th>
27
  <td>
28
  <button class="button button-secondary" type="button" name="Slide_mediaupload" value="1" id="Slide_mediaupload">
29
+ <i class="fa fa-image fa-fw"></i> <?php _e('Choose Images', 'slideshow-gallery'); ?>
30
  </button>
31
+ <span class="howto"><?php _e('Upload/choose images from the media gallery. Ctrl/Shift + Click to choose multiple.', 'slideshow-gallery'); ?></span>
32
 
33
  <div id="Slide_mediaslides" style="display:<?php echo (!empty($_POST['Slide']['slides'])) ? 'block' : 'none'; ?>;">
34
  <!-- Slides go here -->
41
  <a href="" class="colorbox" onclick="jQuery.colorbox({href:'<?php echo esc_attr($slide['url']); ?>'}); return false;"><img style="width:100px;" class="img-rounded" src="<?php echo esc_attr($slide['url']); ?>" />
42
  </th>
43
  <td>
44
+ <label><?php _e('Title:', 'slideshow-gallery'); ?> <input class="widefat" type="text" value="<?php echo esc_attr(stripslashes($slide['title'])); ?>" name="Slide[slides][<?php echo esc_attr(stripslashes($slide['attachment_id'])); ?>][title]" /></label>
45
+ <label><?php _e('Description:', 'slideshow-gallery'); ?> <textarea class="widefat" rows="3" cols="100%" name="Slide[slides][<?php echo esc_attr(stripslashes($slide['attachment_id'])); ?>][description]"><?php echo esc_attr(stripslashes($slide['description'])); ?></textarea></label>
46
  <input class="widefat" readonly="readonly" type="text" value="<?php echo esc_attr(stripslashes($slide['url'])); ?>" name="Slide[slides][<?php echo esc_attr(stripslashes($slide['attachment_id'])); ?>][url]" />
47
  <input type="hidden" value="<?php echo esc_attr(stripslashes($slide['attachment_id'])); ?>" name="Slide[slides][<?php echo esc_attr(stripslashes($slide['attachment_id'])); ?>][attachment_id]" />
48
  </td>
49
  <td style="vertical-align:bottom;">
50
+ <input onclick="if (confirm('<?php echo __('Are you sure you want to remove this slide?', 'slideshow-gallery'); ?>')) { jQuery('#Slide_mediaupload_row_<?php echo esc_attr(stripslashes($slide['attachment_id'])); ?>').remove(); } return false;" class="button button-secondary button-small" type="button" name="remove" value="<?php echo __('Remove', 'slideshow-gallery'); ?>" id="remove<?php echo esc_attr(stripslashes($slide['attachment_id'])); ?>" />
51
  </td>
52
  </tr>
53
  <?php endforeach; ?>
58
  </td>
59
  </tr>
60
  <tr>
61
+ <th><label for=""><?php _e('Galleries', 'slideshow-gallery'); ?></label></th>
62
  <td>
63
  <?php if ($galleries = $this -> Gallery() -> select()) : ?>
64
+ <label style="font-weight:bold"><input onclick="jqCheckAll(this,'','Slide[galleries]');" type="checkbox" name="checkboxall" value="checkboxall" id="checkboxall" /> <?php _e('Select All', 'slideshow-gallery'); ?></label><br/>
65
  <?php foreach ($galleries as $gallery_id => $gallery_title) : ?>
66
  <label><input <?php echo (!empty($_POST['Slide']['galleries']) && in_array($gallery_id, $_POST['Slide']['galleries'])) ? 'checked="checked"' : ''; ?> type="checkbox" name="Slide[galleries][]" value="<?php echo $gallery_id; ?>" id="Slide_galleries_<?php echo $gallery_id; ?>" /> <?php echo __($gallery_title); ?></label><br/>
67
  <?php endforeach; ?>
68
  <?php else : ?>
69
+ <span class="error"><?php _e('No galleries are available.', 'slideshow-gallery'); ?></span>
70
  <?php endif; ?>
71
+ <span class="howto"><?php _e('Choose the galleries to add these slides to.', 'slideshow-gallery'); ?></span>
72
  </td>
73
  </tr>
74
  </tbody>
76
 
77
  <p class="submit">
78
  <button type="submit" name="save" value="1" class="button button-primary">
79
+ <i class="fa fa-check fa-fw"></i> <?php _e('Save Multiple Slides', 'slideshow-gallery'); ?>
80
  </button>
81
  </p>
82
  </form>
97
 
98
  // Create the media frame.
99
  file_frame = wp.media.frames.file_frame = wp.media({
100
+ title: '<?php _e('Upload Slides', 'slideshow-gallery'); ?>',
101
  button: {
102
+ text: '<?php _e('Select Images as Slides', 'slideshow-gallery'); ?>',
103
  },
104
  multiple: true // Set to true to allow multiple files to be selected
105
  });
121
  var attachment_html = '<tr id="Slide_mediaupload_row_' + attachment.id + '">';
122
  attachment_html += '<th style="width:100px; vertical-align:top;"><a href="" class="colorbox" onclick="jQuery.colorbox({href:\'' + attachment.url + '\'}); return false;"><img style="width:100px;" class="img-rounded" src="' + thumbnail_url + '" /></th>';
123
  attachment_html += '<td>';
124
+ attachment_html += '<label><?php _e('Title:', 'slideshow-gallery'); ?> <input class="widefat" type="text" value="' + attachment.title + '" name="Slide[slides][' + attachment.id + '][title]" /></label>';
125
+ attachment_html += '<label><?php _e('Description:', 'slideshow-gallery'); ?> <textarea class="widefat" rows="3" cols="100%" name="Slide[slides][' + attachment.id + '][description]"></textarea></label>';
126
  attachment_html += '<input class="widefat" readonly="readonly" type="text" value="' + attachment.url + '" name="Slide[slides][' + attachment.id + '][url]" />';
127
  attachment_html += '<input type="hidden" value="' + attachment.id + '" name="Slide[slides][' + attachment.id + '][attachment_id]" />';
128
  attachment_html += '</td>';
129
+ attachment_html += '<td style="vertical-align:bottom;"><input onclick="if (confirm(\'<?php echo __('Are you sure you want to remove this slide?', 'slideshow-gallery'); ?>\')) { jQuery(\'#Slide_mediaupload_row_' + attachment.id + '\').remove(); } return false;" class="button button-secondary button-small" type="button" name="remove" value="<?php echo __('Remove', 'slideshow-gallery'); ?>" id="remove' + attachment.id + '" /></td>';
130
  attachment_html += '</tr>';
131
 
132
  jQuery('#Slide_mediaslides').show();
views/admin/slides/save.php CHANGED
@@ -10,14 +10,15 @@ if ($this -> language_do()) {
10
  $languages = $this -> language_getlanguages();
11
  }
12
 
 
 
13
  ?>
14
 
15
  <div class="wrap <?php echo $this -> pre; ?> slideshow-gallery slideshow">
16
- <h1><?php _e('Save a Slide', $this -> plugin_name); ?></h1>
17
 
18
  <form action="<?php echo $this -> url; ?>&amp;method=save" method="post" enctype="multipart/form-data">
19
-
20
- <?php wp_nonce_field('slideshow-slides-save_' . $this -> Slide() -> data -> id); ?>
21
 
22
  <input type="hidden" name="Slide[id]" value="<?php echo $this -> Slide() -> data -> id; ?>" />
23
  <input type="hidden" name="Slide[order]" value="<?php echo $this -> Slide() -> data -> order; ?>" />
@@ -25,8 +26,8 @@ if ($this -> language_do()) {
25
  <table class="form-table">
26
  <tbody>
27
  <tr>
28
- <th><label for="Slide.title"><?php _e('Title', $this -> plugin_name); ?></label>
29
- <?php echo $this -> Html -> help(__('This title is for your reference in management and it will also be used to display the title of the slide in the information bar if you have that turned on.', $this -> plugin_name)); ?></th>
30
  <td>
31
  <?php if ($this -> language_do()) : ?>
32
  <?php $titles = $this -> language_split($this -> Slide() -> data -> title); ?>
@@ -51,13 +52,13 @@ if ($this -> language_do()) {
51
  <?php else : ?>
52
  <input class="widefat" type="text" name="Slide[title]" value="<?php echo esc_attr(stripslashes($this -> Slide() -> data -> title)); ?>" id="Slide.title" />
53
  <?php endif; ?>
54
- <span class="howto"><?php _e('Title/name of your slide as it will be displayed to your users.', $this -> plugin_name); ?></span>
55
  <?php echo (!empty($this -> Slide() -> errors['title'])) ? '<div class="slideshow_error">' . $this -> Slide() -> errors['title'] . '</div>' : ''; ?>
56
  </td>
57
  </tr>
58
  <tr>
59
- <th><label for="Slide.description"><?php _e('Description', $this -> plugin_name); ?></label>
60
- <?php echo $this -> Html -> help(__('The description is specifically used for the information bar if you have that turned on.', $this -> plugin_name)); ?></th>
61
  <td>
62
  <?php if ($this -> language_do()) : ?>
63
  <?php $descriptions = $this -> language_split($this -> Slide() -> data -> description); ?>
@@ -82,19 +83,19 @@ if ($this -> language_do()) {
82
  <?php else : ?>
83
  <textarea class="widefat" rows="5" cols="100%" name="Slide[description]"><?php echo esc_attr($this -> Slide() -> data -> description); ?></textarea>
84
  <?php endif; ?>
85
- <span class="howto"><?php _e('Description of your slide as it will be displayed to your users below the title.', $this -> plugin_name); ?></span>
86
  <?php echo (!empty($this -> Slide() -> errors['description'])) ? '<div class="slideshow_error">' . $this -> Slide() -> errors['description'] . '</div>' : ''; ?>
87
  </td>
88
  </tr>
89
  <tr>
90
- <th><label for="showinfo_both"><?php _e('Show Information?', $this -> plugin_name); ?></label>
91
- <?php echo $this -> Html -> help(__('You can choose to show both title and description, only title, only description or not show the information bar at all. Please note that this setting is only effective when the information bar is turned on in configuration or via a parameter in shortcode or hardcode.', $this -> plugin_name)); ?></th>
92
  <td>
93
- <label><input onclick="jQuery('#showinfo_div').show();" <?php echo ((empty($showinfo)) || (!empty($showinfo) && $showinfo == "both")) ? 'checked="checked"' : ''; ?> type="radio" name="Slide[showinfo]" value="both" id="showinfo_both" /> <?php _e('Both title and description', $this -> plugin_name); ?></label><br/>
94
- <label><input onclick="jQuery('#showinfo_div').show();" <?php echo (!empty($showinfo) && $showinfo == "title") ? 'checked="checked"' : ''; ?> type="radio" name="Slide[showinfo]" value="title" id="showinfo_title" /> <?php _e('Title only', $this -> plugin_name); ?></label><br/>
95
- <label><input onclick="jQuery('#showinfo_div').show();" <?php echo (!empty($showinfo) && $showinfo == "description") ? 'checked="checked"' : ''; ?> type="radio" name="Slide[showinfo]" value="description" id="showinfo_description" /> <?php _e('Description only', $this -> plugin_name); ?></label><br/>
96
- <label><input onclick="jQuery('#showinfo_div').hide();" <?php echo (!empty($showinfo) && $showinfo == "none") ? 'checked="checked"' : ''; ?> type="radio" name="Slide[showinfo]" value="none" id="showinfo_none" /> <?php _e('None, do not show', $this -> plugin_name); ?></label>
97
- <span class="howto"><?php _e('Choose how the information bar will be displayed on this slide.', $this -> plugin_name); ?></span>
98
  </td>
99
  </tr>
100
  </tbody>
@@ -104,11 +105,11 @@ if ($this -> language_do()) {
104
  <table class="form-table">
105
  <tbody>
106
  <tr>
107
- <th><label for="iopacity"><?php _e('Info Opacity', $this -> plugin_name); ?></label>
108
- <?php echo $this -> Html -> help(__('The opacity of the information bar from 0 to 100 where 0 is transparent and 100 is opague.', $this -> plugin_name)); ?></th>
109
  <td>
110
  <input type="text" id="iopacity" class="widefat" style="width:45px;" name="Slide[iopacity]" value="<?php echo empty($this -> Slide() -> data -> iopacity) ? '' : esc_attr(stripslashes($this -> Slide() -> data -> iopacity)); ?>" />
111
- <span class="howto"><?php _e('A value between 0 and 100. Leave empty for default.', $this -> plugin_name); ?></span>
112
  </td>
113
  </tr>
114
  </tbody>
@@ -118,29 +119,29 @@ if ($this -> language_do()) {
118
  <table class="form-table">
119
  <tbody>
120
  <tr>
121
- <th><label for="checkboxall"><?php _e('Galleries', $this -> plugin_name); ?></label>
122
- <?php echo $this -> Html -> help(__('You can organize/assign a slide to multiple galleries as needed. It is easy to display a slideshow with the slides of a specific gallery then.', $this -> plugin_name)); ?></th>
123
  <td>
124
  <?php if ($galleries = $this -> Gallery() -> select()) : ?>
125
- <label style="font-weight:bold"><input onclick="jqCheckAll(this,'','Slide[galleries]');" type="checkbox" name="checkboxall" value="checkboxall" id="checkboxall" /> <?php _e('Select All', $this -> plugin_name); ?></label><br/>
126
  <?php foreach ($galleries as $gallery_id => $gallery_title) : ?>
127
  <label><input <?php echo (!empty($this -> Slide() -> data -> galleries) && in_array($gallery_id, $this -> Slide() -> data -> galleries)) ? 'checked="checked"' : ''; ?> type="checkbox" name="Slide[galleries][]" value="<?php echo $gallery_id; ?>" id="Slide_galleries_<?php echo $gallery_id; ?>" /> <?php echo __($gallery_title); ?></label><br/>
128
  <?php endforeach; ?>
129
  <?php else : ?>
130
- <span class="error"><?php _e('No galleries are available.', $this -> plugin_name); ?></span>
131
  <?php endif; ?>
132
- <span class="howto"><?php _e('Assign this slide to one or more galleries.', $this -> plugin_name); ?></span>
133
  </td>
134
  </tr>
135
  <tr>
136
- <th><label for="Slide.type.media"><?php _e('Image Type', $this -> plugin_name); ?></label>
137
- <?php echo $this -> Html -> help(__('Do you want to specify a URL to your image or upload the image file manually? Specifying a URL will still copy the image file remotely from the location to your server so uploading is recommended to prevent any restrictions or errors.', $this -> plugin_name)); ?></th>
138
  <td>
139
- <label><input onclick="jQuery('#typediv_media').show(); jQuery('#typediv_file').hide(); jQuery('#typediv_url').hide();" <?php echo (empty($this -> Slide() -> data -> type) || $this -> Slide() -> data -> type == "media") ? 'checked="checked"' : ''; ?> type="radio" name="Slide[type]" value="media" id="Slide.type.media" /> <?php _e('Media Upload', $this -> plugin_name); ?></label>
140
- <label><input onclick="jQuery('#typediv_file').show(); jQuery('#typediv_media').hide(); jQuery('#typediv_url').hide();" <?php echo ($this -> Slide() -> data -> type == "file") ? 'checked="checked"' : ''; ?> type="radio" name="Slide[type]" value="file" id="Slide.type.file" /> <?php _e('Upload File', $this -> plugin_name); ?></label>
141
- <label><input onclick="jQuery('#typediv_url').show(); jQuery('#typediv_media').hide(); jQuery('#typediv_file').hide();" <?php echo ($this -> Slide() -> data -> type == "url") ? 'checked="checked"' : ''; ?> type="radio" name="Slide[type]" value="url" id="Slide.type.url" /> <?php _e('Specify URL', $this -> plugin_name); ?></label>
142
  <?php echo (!empty($this -> Slide() -> errors['type'])) ? '<div class="slideshow_error">' . $this -> Slide() -> errors['type'] . '</div>' : ''; ?>
143
- <span class="howto"><?php _e('Do you want to upload an image or specify a local/remote image URL?', $this -> plugin_name); ?></span>
144
  </td>
145
  </tr>
146
  </tbody>
@@ -151,7 +152,7 @@ if ($this -> language_do()) {
151
  <table class="form-table">
152
  <tbody>
153
  <tr>
154
- <th><label for="Slide_mediaupload"><?php _e('Choose Image', $this -> plugin_name); ?></label></th>
155
  <td>
156
  <div id="Slide_mediaupload_image">
157
  <!-- image goes here -->
@@ -160,7 +161,7 @@ if ($this -> language_do()) {
160
  <?php endif; ?>
161
  </div>
162
 
163
- <input type="button" name="Slide_mediaupload" value="<?php _e('Choose File', $this -> plugin_name); ?>" id="Slide_mediaupload" class="button button-secondary" />
164
  <input type="text" name="Slide[media_file]" readonly="readonly" style="width:50%;" id="Slide_image_file" value="<?php echo esc_attr(stripslashes($this -> Slide() -> data -> image_url)); ?>" />
165
  <input type="hidden" name="Slide[attachment_id]" value="<?php echo esc_attr(stripslashes($this -> Slide() -> data -> attachment_id)); ?>" id="Slide_attachment_id" />
166
 
@@ -181,9 +182,9 @@ if ($this -> language_do()) {
181
 
182
  // Create the media frame.
183
  file_frame = wp.media.frames.file_frame = wp.media({
184
- title: '<?php _e('Upload a slide', $this -> plugin_name); ?>',
185
  button: {
186
- text: '<?php _e('Select as Slide Image', $this -> plugin_name); ?>',
187
  },
188
  multiple: false // Set to true to allow multiple files to be selected
189
  });
@@ -215,11 +216,11 @@ if ($this -> language_do()) {
215
  <table class="form-table">
216
  <tbody>
217
  <tr>
218
- <th><label for="Slide.image_file"><?php _e('Choose Image', $this -> plugin_name); ?></label>
219
- <?php echo $this -> Html -> help(__('Simply choose an image file from your computer to upload for this slide. Only .jpg, .png and .gif are supported and in rare cases .bmp but please try and prevent using .bmp files.', $this -> plugin_name)); ?></th>
220
  <td>
221
  <input type="file" name="image_file" value="" id="Slide.image_file" />
222
- <span class="howto"><?php _e('Choose your image file from your computer. JPG, PNG, GIF are supported.', $this -> plugin_name); ?></span>
223
  <?php echo (!empty($this -> Slide() -> errors['image_file'])) ? '<div class="slideshow_error">' . $this -> Slide() -> errors['image_file'] . '</div>' : ''; ?>
224
 
225
  <?php
@@ -229,7 +230,7 @@ if ($this -> language_do()) {
229
  ?>
230
 
231
  <input type="hidden" name="Slide[image_oldfile]" value="<?php echo esc_attr(stripslashes($this -> Slide() -> data -> image)); ?>" />
232
- <p><small><?php _e('Current image. Leave the field above blank to keep this image.', $this -> plugin_name); ?></small></p>
233
  <p><a title="<?php echo esc_attr($this -> Slide() -> data -> title); ?>" class="colorbox" href="<?php echo $this -> Slide() -> data -> image_path; ?>"><img src="<?php echo $this -> Html -> otf_image_src($this -> Slide() -> data, 100, 100, 100); ?>" alt="" class="slideshow" /></a></p>
234
 
235
  <?php
@@ -247,11 +248,11 @@ if ($this -> language_do()) {
247
  <table class="form-table">
248
  <tbody>
249
  <tr>
250
- <th><label for="Slide.image_url"><?php _e('Image URL', $this -> plugin_name); ?></label>
251
- <?php echo $this -> Html -> help(__('Specify an absolute URL to an image file to use for this slide. The image will be copied from the location to your server.', $this -> plugin_name)); ?></th>
252
  <td>
253
  <input class="widefat" type="text" name="Slide[image_url]" value="<?php echo esc_attr($this -> Slide() -> data -> image_url); ?>" id="Slide.image_url" />
254
- <span class="howto"><?php _e('Local or remote image location eg. http://domain.com/path/to/image.jpg', $this -> plugin_name); ?></span>
255
  <?php echo (!empty($this -> Slide() -> errors['image_url'])) ? '<div class="slideshow_error">' . $this -> Slide() -> errors['image_url'] . '</div>' : ''; ?>
256
  </td>
257
  </tr>
@@ -262,12 +263,12 @@ if ($this -> language_do()) {
262
  <table class="form-table">
263
  <tbody>
264
  <tr>
265
- <th><label for="Slide_uselink_N"><?php _e('Use Link', $this -> plugin_name); ?></label>
266
- <?php echo $this -> Html -> help(__('Turn this on to specify a link/URL for this slide to link to when it is clicked.', $this -> plugin_name)); ?></th>
267
  <td>
268
- <label><input onclick="jQuery('#Slide_uselink_div').show();" <?php echo ($this -> Slide() -> data -> uselink == "Y") ? 'checked="checked"' : ''; ?> type="radio" name="Slide[uselink]" value="Y" id="Slide_uselink_Y" /> <?php _e('Yes', $this -> plugin_name); ?></label>
269
- <label><input onclick="jQuery('#Slide_uselink_div').hide();" <?php echo (empty($this -> Slide() -> data -> uselink) || $this -> Slide() -> data -> uselink == "N") ? 'checked="checked"' : ''; ?> type="radio" name="Slide[uselink]" value="N" id="Slide_uselink_N" /> <?php _e('No', $this -> plugin_name); ?></label>
270
- <span class="howto"><?php _e('Set this to Yes to link this slide to a link/URL of your choice.', $this -> plugin_name); ?></span>
271
  </td>
272
  </tr>
273
  </tbody>
@@ -277,8 +278,8 @@ if ($this -> language_do()) {
277
  <table class="form-table">
278
  <tbody>
279
  <tr>
280
- <th><label for="Slide.link"><?php _e('Link To', $this -> plugin_name); ?></label>
281
- <?php echo $this -> Html -> help(__('The absolute URL to take the user to when the slide is clicked.', $this -> plugin_name)); ?></th>
282
  <td>
283
  <?php if ($this -> language_do()) : ?>
284
  <?php $links = $this -> language_split($this -> Slide() -> data -> link); ?>
@@ -304,28 +305,55 @@ if ($this -> language_do()) {
304
  <input class="widefat" type="text" name="Slide[link]" value="<?php echo esc_attr($this -> Slide() -> data -> link); ?>" id="Slide.link" />
305
  <?php endif; ?>
306
 
307
- <span class="howto"><?php _e('Link/URL to go to when a user clicks the slide eg. http://www.domain.com/mypage/', $this -> plugin_name); ?></span>
308
  </td>
309
  </tr>
310
  <tr>
311
- <th><label for="Slide_linktarget_self"><?php _e('Link Target', $this -> plugin_name); ?></label>
312
- <?php echo $this -> Html -> help(__('Depending on the purpose of specifying this link, you may want it to open in the same window or in a new window.', $this -> plugin_name)); ?></th>
313
  <td>
314
- <label><input <?php echo (empty($this -> Slide() -> data -> linktarget) || (!empty($this -> Slide() -> data -> linktarget) && $this -> Slide() -> data -> linktarget == "self")) ? 'checked="checked"' : ''; ?> type="radio" name="Slide[linktarget]" value="self" id="Slide_linktarget_self" /> <?php _e('Current Window', $this -> plugin_name); ?></label>
315
- <label><input <?php echo (!empty($this -> Slide() -> data -> linktarget) && $this -> Slide() -> data -> linktarget == "blank") ? 'checked="checked"' : ''; ?> type="radio" name="Slide[linktarget]" value="blank" id="Slide_linktarget_blank" /> <?php _e('New/Blank Window', $this -> plugin_name); ?></label>
316
- <span class="howto"><?php _e('Should this link open in the current window or a new window?', $this -> plugin_name); ?></span>
317
  </td>
318
  </tr>
319
  </tbody>
320
  </table>
321
  </div>
322
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
323
  <p class="submit">
324
  <button class="button-primary" type="submit" name="submit" value="1">
325
- <i class="fa fa-check fa-fw"></i> <?php _e('Save Slide', $this -> plugin_name); ?>
326
  </button>
327
  <div class="slideshow_continueediting">
328
- <label><input <?php echo (!empty($_REQUEST['continueediting'])) ? 'checked="checked"' : ''; ?> type="checkbox" name="continueediting" value="1" id="continueediting" /> <?php _e('Continue editing', $this -> plugin_name); ?></label>
329
  </div>
330
  </p>
331
  </form>
10
  $languages = $this -> language_getlanguages();
11
  }
12
 
13
+ $expiry = $this -> Slide() -> data -> expiry;
14
+
15
  ?>
16
 
17
  <div class="wrap <?php echo $this -> pre; ?> slideshow-gallery slideshow">
18
+ <h1><?php _e('Save a Slide', 'slideshow-gallery'); ?></h1>
19
 
20
  <form action="<?php echo $this -> url; ?>&amp;method=save" method="post" enctype="multipart/form-data">
21
+ <?php wp_nonce_field($this -> sections -> slides . '_save'); ?>
 
22
 
23
  <input type="hidden" name="Slide[id]" value="<?php echo $this -> Slide() -> data -> id; ?>" />
24
  <input type="hidden" name="Slide[order]" value="<?php echo $this -> Slide() -> data -> order; ?>" />
26
  <table class="form-table">
27
  <tbody>
28
  <tr>
29
+ <th><label for="Slide.title"><?php _e('Title', 'slideshow-gallery'); ?></label>
30
+ <?php echo $this -> Html -> help(__('This title is for your reference in management and it will also be used to display the title of the slide in the information bar if you have that turned on.', 'slideshow-gallery')); ?></th>
31
  <td>
32
  <?php if ($this -> language_do()) : ?>
33
  <?php $titles = $this -> language_split($this -> Slide() -> data -> title); ?>
52
  <?php else : ?>
53
  <input class="widefat" type="text" name="Slide[title]" value="<?php echo esc_attr(stripslashes($this -> Slide() -> data -> title)); ?>" id="Slide.title" />
54
  <?php endif; ?>
55
+ <span class="howto"><?php _e('Title/name of your slide as it will be displayed to your users.', 'slideshow-gallery'); ?></span>
56
  <?php echo (!empty($this -> Slide() -> errors['title'])) ? '<div class="slideshow_error">' . $this -> Slide() -> errors['title'] . '</div>' : ''; ?>
57
  </td>
58
  </tr>
59
  <tr>
60
+ <th><label for="Slide.description"><?php _e('Description', 'slideshow-gallery'); ?></label>
61
+ <?php echo $this -> Html -> help(__('The description is specifically used for the information bar if you have that turned on.', 'slideshow-gallery')); ?></th>
62
  <td>
63
  <?php if ($this -> language_do()) : ?>
64
  <?php $descriptions = $this -> language_split($this -> Slide() -> data -> description); ?>
83
  <?php else : ?>
84
  <textarea class="widefat" rows="5" cols="100%" name="Slide[description]"><?php echo esc_attr($this -> Slide() -> data -> description); ?></textarea>
85
  <?php endif; ?>
86
+ <span class="howto"><?php _e('Description of your slide as it will be displayed to your users below the title.', 'slideshow-gallery'); ?></span>
87
  <?php echo (!empty($this -> Slide() -> errors['description'])) ? '<div class="slideshow_error">' . $this -> Slide() -> errors['description'] . '</div>' : ''; ?>
88
  </td>
89
  </tr>
90
  <tr>
91
+ <th><label for="showinfo_both"><?php _e('Show Information?', 'slideshow-gallery'); ?></label>
92
+ <?php echo $this -> Html -> help(__('You can choose to show both title and description, only title, only description or not show the information bar at all. Please note that this setting is only effective when the information bar is turned on in configuration or via a parameter in shortcode or hardcode.', 'slideshow-gallery')); ?></th>
93
  <td>
94
+ <label><input onclick="jQuery('#showinfo_div').show();" <?php echo ((empty($showinfo)) || (!empty($showinfo) && $showinfo == "both")) ? 'checked="checked"' : ''; ?> type="radio" name="Slide[showinfo]" value="both" id="showinfo_both" /> <?php _e('Both title and description', 'slideshow-gallery'); ?></label><br/>
95
+ <label><input onclick="jQuery('#showinfo_div').show();" <?php echo (!empty($showinfo) && $showinfo == "title") ? 'checked="checked"' : ''; ?> type="radio" name="Slide[showinfo]" value="title" id="showinfo_title" /> <?php _e('Title only', 'slideshow-gallery'); ?></label><br/>
96
+ <label><input onclick="jQuery('#showinfo_div').show();" <?php echo (!empty($showinfo) && $showinfo == "description") ? 'checked="checked"' : ''; ?> type="radio" name="Slide[showinfo]" value="description" id="showinfo_description" /> <?php _e('Description only', 'slideshow-gallery'); ?></label><br/>
97
+ <label><input onclick="jQuery('#showinfo_div').hide();" <?php echo (!empty($showinfo) && $showinfo == "none") ? 'checked="checked"' : ''; ?> type="radio" name="Slide[showinfo]" value="none" id="showinfo_none" /> <?php _e('None, do not show', 'slideshow-gallery'); ?></label>
98
+ <span class="howto"><?php _e('Choose how the information bar will be displayed on this slide.', 'slideshow-gallery'); ?></span>
99
  </td>
100
  </tr>
101
  </tbody>
105
  <table class="form-table">
106
  <tbody>
107
  <tr>
108
+ <th><label for="iopacity"><?php _e('Info Opacity', 'slideshow-gallery'); ?></label>
109
+ <?php echo $this -> Html -> help(__('The opacity of the information bar from 0 to 100 where 0 is transparent and 100 is opague.', 'slideshow-gallery')); ?></th>
110
  <td>
111
  <input type="text" id="iopacity" class="widefat" style="width:45px;" name="Slide[iopacity]" value="<?php echo empty($this -> Slide() -> data -> iopacity) ? '' : esc_attr(stripslashes($this -> Slide() -> data -> iopacity)); ?>" />
112
+ <span class="howto"><?php _e('A value between 0 and 100. Leave empty for default.', 'slideshow-gallery'); ?></span>
113
  </td>
114
  </tr>
115
  </tbody>
119
  <table class="form-table">
120
  <tbody>
121
  <tr>
122
+ <th><label for="checkboxall"><?php _e('Galleries', 'slideshow-gallery'); ?></label>
123
+ <?php echo $this -> Html -> help(__('You can organize/assign a slide to multiple galleries as needed. It is easy to display a slideshow with the slides of a specific gallery then.', 'slideshow-gallery')); ?></th>
124
  <td>
125
  <?php if ($galleries = $this -> Gallery() -> select()) : ?>
126
+ <label style="font-weight:bold"><input onclick="jqCheckAll(this,'','Slide[galleries]');" type="checkbox" name="checkboxall" value="checkboxall" id="checkboxall" /> <?php _e('Select All', 'slideshow-gallery'); ?></label><br/>
127
  <?php foreach ($galleries as $gallery_id => $gallery_title) : ?>
128
  <label><input <?php echo (!empty($this -> Slide() -> data -> galleries) && in_array($gallery_id, $this -> Slide() -> data -> galleries)) ? 'checked="checked"' : ''; ?> type="checkbox" name="Slide[galleries][]" value="<?php echo $gallery_id; ?>" id="Slide_galleries_<?php echo $gallery_id; ?>" /> <?php echo __($gallery_title); ?></label><br/>
129
  <?php endforeach; ?>
130
  <?php else : ?>
131
+ <span class="error"><?php _e('No galleries are available.', 'slideshow-gallery'); ?></span>
132
  <?php endif; ?>
133
+ <span class="howto"><?php _e('Assign this slide to one or more galleries.', 'slideshow-gallery'); ?></span>
134
  </td>
135
  </tr>
136
  <tr>
137
+ <th><label for="Slide.type.media"><?php _e('Image Type', 'slideshow-gallery'); ?></label>
138
+ <?php echo $this -> Html -> help(__('Do you want to specify a URL to your image or upload the image file manually? Specifying a URL will still copy the image file remotely from the location to your server so uploading is recommended to prevent any restrictions or errors.', 'slideshow-gallery')); ?></th>
139
  <td>
140
+ <label><input onclick="jQuery('#typediv_media').show(); jQuery('#typediv_file').hide(); jQuery('#typediv_url').hide();" <?php echo (empty($this -> Slide() -> data -> type) || $this -> Slide() -> data -> type == "media") ? 'checked="checked"' : ''; ?> type="radio" name="Slide[type]" value="media" id="Slide.type.media" /> <?php _e('Media Upload', 'slideshow-gallery'); ?></label>
141
+ <label><input onclick="jQuery('#typediv_file').show(); jQuery('#typediv_media').hide(); jQuery('#typediv_url').hide();" <?php echo ($this -> Slide() -> data -> type == "file") ? 'checked="checked"' : ''; ?> type="radio" name="Slide[type]" value="file" id="Slide.type.file" /> <?php _e('Upload File', 'slideshow-gallery'); ?></label>
142
+ <label><input onclick="jQuery('#typediv_url').show(); jQuery('#typediv_media').hide(); jQuery('#typediv_file').hide();" <?php echo ($this -> Slide() -> data -> type == "url") ? 'checked="checked"' : ''; ?> type="radio" name="Slide[type]" value="url" id="Slide.type.url" /> <?php _e('Specify URL', 'slideshow-gallery'); ?></label>
143
  <?php echo (!empty($this -> Slide() -> errors['type'])) ? '<div class="slideshow_error">' . $this -> Slide() -> errors['type'] . '</div>' : ''; ?>
144
+ <span class="howto"><?php _e('Do you want to upload an image or specify a local/remote image URL?', 'slideshow-gallery'); ?></span>
145
  </td>
146
  </tr>
147
  </tbody>
152
  <table class="form-table">
153
  <tbody>
154
  <tr>
155
+ <th><label for="Slide_mediaupload"><?php _e('Choose Image', 'slideshow-gallery'); ?></label></th>
156
  <td>
157
  <div id="Slide_mediaupload_image">
158
  <!-- image goes here -->
161
  <?php endif; ?>
162
  </div>
163
 
164
+ <input type="button" name="Slide_mediaupload" value="<?php _e('Choose File', 'slideshow-gallery'); ?>" id="Slide_mediaupload" class="button button-secondary" />
165
  <input type="text" name="Slide[media_file]" readonly="readonly" style="width:50%;" id="Slide_image_file" value="<?php echo esc_attr(stripslashes($this -> Slide() -> data -> image_url)); ?>" />
166
  <input type="hidden" name="Slide[attachment_id]" value="<?php echo esc_attr(stripslashes($this -> Slide() -> data -> attachment_id)); ?>" id="Slide_attachment_id" />
167
 
182
 
183
  // Create the media frame.
184
  file_frame = wp.media.frames.file_frame = wp.media({
185
+ title: '<?php _e('Upload a slide', 'slideshow-gallery'); ?>',
186
  button: {
187
+ text: '<?php _e('Select as Slide Image', 'slideshow-gallery'); ?>',
188
  },
189
  multiple: false // Set to true to allow multiple files to be selected
190
  });
216
  <table class="form-table">
217
  <tbody>
218
  <tr>
219
+ <th><label for="Slide.image_file"><?php _e('Choose Image', 'slideshow-gallery'); ?></label>
220
+ <?php echo $this -> Html -> help(__('Simply choose an image file from your computer to upload for this slide. Only .jpg, .png and .gif are supported and in rare cases .bmp but please try and prevent using .bmp files.', 'slideshow-gallery')); ?></th>
221
  <td>
222
  <input type="file" name="image_file" value="" id="Slide.image_file" />
223
+ <span class="howto"><?php _e('Choose your image file from your computer. JPG, PNG, GIF are supported.', 'slideshow-gallery'); ?></span>
224
  <?php echo (!empty($this -> Slide() -> errors['image_file'])) ? '<div class="slideshow_error">' . $this -> Slide() -> errors['image_file'] . '</div>' : ''; ?>
225
 
226
  <?php
230
  ?>
231
 
232
  <input type="hidden" name="Slide[image_oldfile]" value="<?php echo esc_attr(stripslashes($this -> Slide() -> data -> image)); ?>" />
233
+ <p><small><?php _e('Current image. Leave the field above blank to keep this image.', 'slideshow-gallery'); ?></small></p>
234
  <p><a title="<?php echo esc_attr($this -> Slide() -> data -> title); ?>" class="colorbox" href="<?php echo $this -> Slide() -> data -> image_path; ?>"><img src="<?php echo $this -> Html -> otf_image_src($this -> Slide() -> data, 100, 100, 100); ?>" alt="" class="slideshow" /></a></p>
235
 
236
  <?php
248
  <table class="form-table">
249
  <tbody>
250
  <tr>
251
+ <th><label for="Slide.image_url"><?php _e('Image URL', 'slideshow-gallery'); ?></label>
252
+ <?php echo $this -> Html -> help(__('Specify an absolute URL to an image file to use for this slide. The image will be copied from the location to your server.', 'slideshow-gallery')); ?></th>
253
  <td>
254
  <input class="widefat" type="text" name="Slide[image_url]" value="<?php echo esc_attr($this -> Slide() -> data -> image_url); ?>" id="Slide.image_url" />
255
+ <span class="howto"><?php _e('Local or remote image location eg. https://domain.com/path/to/image.jpg', 'slideshow-gallery'); ?></span>
256
  <?php echo (!empty($this -> Slide() -> errors['image_url'])) ? '<div class="slideshow_error">' . $this -> Slide() -> errors['image_url'] . '</div>' : ''; ?>
257
  </td>
258
  </tr>
263
  <table class="form-table">
264
  <tbody>
265
  <tr>
266
+ <th><label for="Slide_uselink_N"><?php _e('Use Link', 'slideshow-gallery'); ?></label>
267
+ <?php echo $this -> Html -> help(__('Turn this on to specify a link/URL for this slide to link to when it is clicked.', 'slideshow-gallery')); ?></th>
268
  <td>
269
+ <label><input onclick="jQuery('#Slide_uselink_div').show();" <?php echo ($this -> Slide() -> data -> uselink == "Y") ? 'checked="checked"' : ''; ?> type="radio" name="Slide[uselink]" value="Y" id="Slide_uselink_Y" /> <?php _e('Yes', 'slideshow-gallery'); ?></label>
270
+ <label><input onclick="jQuery('#Slide_uselink_div').hide();" <?php echo (empty($this -> Slide() -> data -> uselink) || $this -> Slide() -> data -> uselink == "N") ? 'checked="checked"' : ''; ?> type="radio" name="Slide[uselink]" value="N" id="Slide_uselink_N" /> <?php _e('No', 'slideshow-gallery'); ?></label>
271
+ <span class="howto"><?php _e('Set this to Yes to link this slide to a link/URL of your choice.', 'slideshow-gallery'); ?></span>
272
  </td>
273
  </tr>
274
  </tbody>
278
  <table class="form-table">
279
  <tbody>
280
  <tr>
281
+ <th><label for="Slide.link"><?php _e('Link To', 'slideshow-gallery'); ?></label>
282
+ <?php echo $this -> Html -> help(__('The absolute URL to take the user to when the slide is clicked.', 'slideshow-gallery')); ?></th>
283
  <td>
284
  <?php if ($this -> language_do()) : ?>
285
  <?php $links = $this -> language_split($this -> Slide() -> data -> link); ?>
305
  <input class="widefat" type="text" name="Slide[link]" value="<?php echo esc_attr($this -> Slide() -> data -> link); ?>" id="Slide.link" />
306
  <?php endif; ?>
307
 
308
+ <span class="howto"><?php _e('Link/URL to go to when a user clicks the slide eg. https://www.domain.com/mypage/', 'slideshow-gallery'); ?></span>
309
  </td>
310
  </tr>
311
  <tr>
312
+ <th><label for="Slide_linktarget_self"><?php _e('Link Target', 'slideshow-gallery'); ?></label>
313
+ <?php echo $this -> Html -> help(__('Depending on the purpose of specifying this link, you may want it to open in the same window or in a new window.', 'slideshow-gallery')); ?></th>
314
  <td>
315
+ <label><input <?php echo (empty($this -> Slide() -> data -> linktarget) || (!empty($this -> Slide() -> data -> linktarget) && $this -> Slide() -> data -> linktarget == "self")) ? 'checked="checked"' : ''; ?> type="radio" name="Slide[linktarget]" value="self" id="Slide_linktarget_self" /> <?php _e('Current Window', 'slideshow-gallery'); ?></label>
316
+ <label><input <?php echo (!empty($this -> Slide() -> data -> linktarget) && $this -> Slide() -> data -> linktarget == "blank") ? 'checked="checked"' : ''; ?> type="radio" name="Slide[linktarget]" value="blank" id="Slide_linktarget_blank" /> <?php _e('New/Blank Window', 'slideshow-gallery'); ?></label>
317
+ <span class="howto"><?php _e('Should this link open in the current window or a new window?', 'slideshow-gallery'); ?></span>
318
  </td>
319
  </tr>
320
  </tbody>
321
  </table>
322
  </div>
323
 
324
+ <table class="form-table">
325
+ <tbody>
326
+ <tr>
327
+ <th><label for="Slide_expiry"><?php _e('Expiry Date', 'slideshow-gallery'); ?></label></th>
328
+ <td>
329
+ <?php $currentdate = date_i18n(get_option('date_format'), strtotime($expiry)); ?>
330
+ <input type="text" name="Slide[expiry]" value="<?php echo (!empty($expiry) && $expiry != "0000-00-00") ? esc_attr(stripslashes($currentdate)) : ''; ?>" id="Slide_expiry" />
331
+ <span class="howto"><small><?php _e('(optional)', 'slideshow-gallery'); ?></small> <?php _e('Set an expiry date for this slide.', 'slideshow-gallery'); ?></span>
332
+
333
+ <script type="text/javascript">
334
+ jQuery(document).ready(function() {
335
+ jQuery('#Slide_expiry').datepicker({
336
+ showButtonPanel:true,
337
+ changeMonth: true,
338
+ changeYear: true,
339
+ dateFormat: "<?php echo esc_js($this -> Html -> dateformat_PHP_to_jQueryUI(get_option('date_format'))); ?>",
340
+ defaultDate: "<?php echo (!empty($expiry) && $expiry != "0000-00-00") ? esc_js($currentdate) : ''; ?>",
341
+ showOn: "both",
342
+ buttonText: "",
343
+ }).next(".ui-datepicker-trigger").addClass("button button-secondary");;
344
+ });
345
+ </script>
346
+ </td>
347
+ </tr>
348
+ </tbody>
349
+ </table>
350
+
351
  <p class="submit">
352
  <button class="button-primary" type="submit" name="submit" value="1">
353
+ <i class="fa fa-check fa-fw"></i> <?php _e('Save Slide', 'slideshow-gallery'); ?>
354
  </button>
355
  <div class="slideshow_continueediting">
356
+ <label><input <?php echo (!empty($_REQUEST['continueediting'])) ? 'checked="checked"' : ''; ?> type="checkbox" name="continueediting" value="1" id="continueediting" /> <?php _e('Continue editing', 'slideshow-gallery'); ?></label>
357
  </div>
358
  </p>
359
  </form>
views/admin/submitserial.php CHANGED
@@ -1,15 +1,15 @@
1
- <h3><?php _e('Slideshow Gallery Serial Key', $this -> plugin_name); ?></h3>
2
 
3
  <?php if (empty($success) || $success == false) : ?>
4
  <?php if (!$this -> ci_serial_valid()) : ?>
5
  <p style="width:400px;">
6
- <?php _e('You are running Slideshow Gallery LITE.', $this -> plugin_name); ?>
7
- <?php echo sprintf(__('To remove limits, you can submit a serial key or %s.'), '<a href="' . admin_url('admin.php?page=' . $this -> sections -> lite_upgrade) . '">' . __('Upgrade to PRO', $this -> plugin_name) . '</a>'); ?>
8
  </p>
9
  <p style="width:400px;">
10
- <?php _e('Please obtain a serial key from the downloads section in your Tribulant Software account.', $this -> plugin_name); ?>
11
- <?php _e('Once in the downloads section, click the KEY icon to request a serial key.', $this -> plugin_name); ?>
12
- <a href="http://tribulant.com/downloads/" title="Tribulant Software Downloads" target="_blank"><?php _e('Downloads Section', $this -> plugin_name); ?></a>
13
  </p>
14
 
15
  <div class="slideshow_error">
@@ -17,25 +17,26 @@
17
  </div>
18
 
19
  <form onsubmit="slideshow_submitserial(this); return false;" action="<?php echo admin_url('admin.php?page=' . $this -> sections -> submitserial); ?>" method="post">
 
20
  <p>
21
  <input type="text" class="widefat" style="width:400px;" name="serialkey" value="<?php echo esc_attr(stripslashes($_POST['serialkey'])); ?>" /><br/>
22
  </p>
23
  <p class="submit">
24
- <input type="button" class="button-secondary" name="close" onclick="jQuery.colorbox.close();" value="<?php _e('Cancel', $this -> plugin_name); ?>" />
25
- <input id="slideshow_submitserial_button" type="submit" class="button-primary" name="submit" value="<?php _e('Submit Serial Key', $this -> plugin_name); ?>" />
26
  <span style="display:none;" id="slideshow_submitserial_loading"><i class="fa fa-refresh fa-spin fa-fw"></i></span>
27
  </p>
28
  </form>
29
  <?php else : ?>
30
- <p><?php _e('Serial Key:', $this -> plugin_name); ?> <strong><?php echo $this -> get_option('serialkey'); ?></strong></p>
31
- <p><?php _e('Your current serial is valid and working.', $this -> plugin_name); ?></p>
32
  <p>
33
- <input type="button" onclick="jQuery.colorbox.close();" name="close" class="button-primary" value="<?php _e('Close', $this -> plugin_name); ?>" />
34
- <input id="slideshow_deleteserial_button" type="button" onclick="if (confirm('<?php _e('Are you sure you want to delete your serial key?', $this -> plugin_name); ?>')) { slideshow_deleteserial(); } return false;" name="delete" class="button-secondary" value="<?php _e('Delete Serial', $this -> plugin_name); ?>" />
35
  <span style="display:none;" id="slideshow_submitserial_loading"><i class="fa fa-refresh fa-spin fa-fw"></i></span>
36
  </p>
37
  <?php endif; ?>
38
  <?php else : ?>
39
- <p><?php _e('The serial key is valid and you can now continue using the Slideshow Gallery plugin. Thank you for your business and support!', $this -> plugin_name); ?></p>
40
- <p><input type="button" onclick="jQuery.colorbox.close(); parent.location = '<?php echo rtrim(get_admin_url(), '/'); ?>/admin.php?page=<?php echo $this -> sections -> slides; ?>';" class="button-primary" name="close" value="<?php _e('Apply Serial and Close Window', $this -> plugin_name); ?>" /></p>
41
  <?php endif; ?>
1
+ <h3><?php _e('Slideshow Gallery Serial Key', 'slideshow-gallery'); ?></h3>
2
 
3
  <?php if (empty($success) || $success == false) : ?>
4
  <?php if (!$this -> ci_serial_valid()) : ?>
5
  <p style="width:400px;">
6
+ <?php _e('You are running Slideshow Gallery LITE.', 'slideshow-gallery'); ?>
7
+ <?php echo sprintf(__('To remove limits, you can submit a serial key or %s.'), '<a href="' . admin_url('admin.php?page=' . $this -> sections -> lite_upgrade) . '">' . __('Upgrade to PRO', 'slideshow-gallery') . '</a>'); ?>
8
  </p>
9
  <p style="width:400px;">
10
+ <?php _e('Please obtain a serial key from the downloads section in your Tribulant Software account.', 'slideshow-gallery'); ?>
11
+ <?php _e('Once in the downloads section, click the KEY icon to request a serial key.', 'slideshow-gallery'); ?>
12
+ <a href="https://tribulant.com/downloads/" title="Tribulant Software Downloads" target="_blank"><?php _e('Downloads Section', 'slideshow-gallery'); ?></a>
13
  </p>
14
 
15
  <div class="slideshow_error">
17
  </div>
18
 
19
  <form onsubmit="slideshow_submitserial(this); return false;" action="<?php echo admin_url('admin.php?page=' . $this -> sections -> submitserial); ?>" method="post">
20
+ <?php wp_nonce_field($this -> sections -> submitserial); ?>
21
  <p>
22
  <input type="text" class="widefat" style="width:400px;" name="serialkey" value="<?php echo esc_attr(stripslashes($_POST['serialkey'])); ?>" /><br/>
23
  </p>
24
  <p class="submit">
25
+ <input type="button" class="button-secondary" name="close" onclick="jQuery.colorbox.close();" value="<?php _e('Cancel', 'slideshow-gallery'); ?>" />
26
+ <input id="slideshow_submitserial_button" type="submit" class="button-primary" name="submit" value="<?php _e('Submit Serial Key', 'slideshow-gallery'); ?>" />
27
  <span style="display:none;" id="slideshow_submitserial_loading"><i class="fa fa-refresh fa-spin fa-fw"></i></span>
28
  </p>
29
  </form>
30
  <?php else : ?>
31
+ <p><?php _e('Serial Key:', 'slideshow-gallery'); ?> <strong><?php echo $this -> get_option('serialkey'); ?></strong></p>
32
+ <p><?php _e('Your current serial is valid and working.', 'slideshow-gallery'); ?></p>
33
  <p>
34
+ <input type="button" onclick="jQuery.colorbox.close();" name="close" class="button-primary" value="<?php _e('Close', 'slideshow-gallery'); ?>" />
35
+ <input id="slideshow_deleteserial_button" type="button" onclick="if (confirm('<?php _e('Are you sure you want to delete your serial key?', 'slideshow-gallery'); ?>')) { slideshow_deleteserial(); } return false;" name="delete" class="button-secondary" value="<?php _e('Delete Serial', 'slideshow-gallery'); ?>" />
36
  <span style="display:none;" id="slideshow_submitserial_loading"><i class="fa fa-refresh fa-spin fa-fw"></i></span>
37
  </p>
38
  <?php endif; ?>
39
  <?php else : ?>
40
+ <p><?php _e('The serial key is valid and you can now continue using the Slideshow Gallery plugin. Thank you for your business and support!', 'slideshow-gallery'); ?></p>
41
+ <p><input type="button" onclick="jQuery.colorbox.close(); parent.location = '<?php echo rtrim(get_admin_url(), '/'); ?>/admin.php?page=<?php echo $this -> sections -> slides; ?>';" class="button-primary" name="close" value="<?php _e('Apply Serial and Close Window', 'slideshow-gallery'); ?>" /></p>
42
  <?php endif; ?>
views/admin/tinymce-dialog.php CHANGED
@@ -19,10 +19,10 @@ $post_types = get_post_types(array('public' => true), 'objects');
19
  ?>
20
 
21
 
22
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
23
- <html xmlns="http://www.w3.org/1999/xhtml">
24
  <head>
25
- <title><?php _e('Insert a Slideshow Gallery', $this -> plugin_name); ?></title>
26
  <script language="javascript" type="text/javascript" src="<?php echo site_url(); ?>/wp-includes/js/tinymce/tiny_mce_popup.js"></script>
27
  <script language="javascript" type="text/javascript" src="<?php echo site_url(); ?>/wp-includes/js/tinymce/utils/mctabs.js"></script>
28
  <script language="javascript" type="text/javascript" src="<?php echo site_url(); ?>/wp-includes/js/tinymce/utils/form_utils.js"></script>
@@ -37,7 +37,7 @@ $post_types = get_post_types(array('public' => true), 'objects');
37
 
38
  if (slideshow_type == "post") {
39
  var post_id = jQuery('#post_id').val();
40
- if (post_id == "") { alert('<?php _e('Please fill in a post ID.', $this -> plugin_name); ?>'); return false; }
41
  var tag = '[tribulant_slideshow post_id="' + post_id + '"';
42
 
43
  if (exclude != "" && exclude != "undefined" && exclude != undefined) {
@@ -51,7 +51,7 @@ $post_types = get_post_types(array('public' => true), 'objects');
51
  tag += ']';
52
  } else if (slideshow_type == "gallery") {
53
  var gallery_id = jQuery('#gallery_id').val();
54
- if (gallery_id == "") { alert('<?php _e('Please select a gallery.', $this -> plugin_name); ?>'); return false; }
55
  var tag = '[tribulant_slideshow gallery_id="' + gallery_id + '"';
56
  if (exclude != "" && exclude != "undefined" && exclude != undefined) { tag += ' exclude="' + exclude + '"'; }
57
  tag += ']';
@@ -105,28 +105,28 @@ $post_types = get_post_types(array('public' => true), 'objects');
105
 
106
  <form onsubmit="insertTag(); return false;" action="#">
107
  <div class="panel_wrapper">
108
- <label style="font-weight:bold; cursor:pointer;"><input onclick="changeType(this.value);" type="radio" name="slideshow_type" value="post" id="type_post" /> <?php _e('Images From a Post', $this -> plugin_name); ?></label><br/>
109
- <label style="font-weight:bold; cursor:pointer;"><input onclick="changeType(this.value);" type="radio" name="slideshow_type" value="gallery" id="type_gallery" /> <?php _e('Slides From a Gallery', $this -> plugin_name); ?></label><br/>
110
- <label style="font-weight:bold; cursor:pointer;"><input onclick="changeType(this.value);" type="radio" name="slideshow_type" value="featured" id="type_gallery" /> <?php _e('Featured Posts', $this -> plugin_name); ?></label><br/>
111
- <label style="font-weight:bold; cursor:pointer;"><input onclick="changeType(this.value);" type="radio" name="slideshow_type" value="custom" id="type_custom" /> <?php _e('All Available Slides', $this -> plugin_name); ?></label><br/>
112
- <label style="font-weight:bold; cursor:pointer;"><input <?php echo (!$checkout_active) ? 'disabled="disabled"' : ''; ?> onclick="changeType(this.value);" type="radio" name="slideshow_type" value="products" id="type_products" /> <?php _e('Products', $this -> plugin_name); ?></label>
113
  <?php if (!$checkout_active) : ?>
114
- <small>(<span class="slideshow_error"><?php echo sprintf(__('Requires the %sShopping Cart plugin%s', $this -> plugin_name), '<a href="http://tribulant.com/plugins/view/10/wordpress-shopping-cart-plugin" target="_blank">', '</a>'); ?></span>)</small>
115
  <?php endif; ?>
116
 
117
  <div id="products_div" style="display:none;">
118
  <p>
119
- <label for="slideshow_products" style="font-weight:bold;"><?php _e('Products Source:', $this -> plugin_name); ?></label><br/>
120
  <select name="slideshow_products" id="slideshow_products">
121
- <option value="latest"><?php _e('Latest Products', $this -> plugin_name); ?></option>
122
- <option value="featured"><?php _e('Featured Products', $this -> plugin_name); ?></option>
123
  </select>
124
- <br/><small><?php _e('Choose the source of the products', $this -> plugin_name); ?></small>
125
  </p>
126
  <p>
127
- <label for="slideshow_productsnumber" style="font-weight:bold;"><?php _e('Number of Products:', $this -> plugin_name); ?></label>
128
  <input type="text" style="width:50px;" class="" name="slideshow_productsnumber" value="10" id="slideshow_productsnumber" />
129
- <br/><small><?php _e('The number of products to display', $this -> plugin_name); ?></small>
130
  </p>
131
  </div>
132
 
@@ -139,17 +139,17 @@ $post_types = get_post_types(array('public' => true), 'objects');
139
  </script>
140
 
141
  <p>
142
- <label for="post_id" style="font-weight:bold;"><?php _e('Post ID:', $this -> plugin_name); ?></label><br/>
143
  <input type="text" class="" name="post_id" value="" id="post_id" /><br/>
144
- <small><?php _e('ID of the post to take images from.', $this -> plugin_name); ?></small>
145
  </p>
146
  </div>
147
 
148
  <div id="gallery_div" style="display:none;">
149
  <p>
150
- <label for="gallery_id" style="font-weight:bold;"><?php _e('Gallery:', $this -> plugin_name); ?></label>
151
  <select name="gallery_id" id="gallery_id">
152
- <option value=""><?php _e('- Select Gallery -', $this -> plugin_name); ?></option>
153
  <?php if (!empty($galleries)) : ?>
154
  <?php foreach ($galleries as $gallery) : ?>
155
  <?php $slidescount = $wpdb -> get_var("SELECT COUNT(`id`) FROM `" . $wpdb -> prefix . "gallery_galleriesslides` WHERE `gallery_id` = '" . $gallery -> id . "'"); ?>
@@ -162,12 +162,12 @@ $post_types = get_post_types(array('public' => true), 'objects');
162
 
163
  <div id="featured_div" style="display:none;">
164
  <p>
165
- <label for="featurednumber"><?php _e('Number of Posts:', $this -> plugin_name); ?></label>
166
  <input type="text" name="featurednumber" id="featurednumber" value="" />
167
  </p>
168
 
169
  <p>
170
- <label for="featuredtype"><?php _e('Post Type:', $this -> plugin_name); ?></label>
171
  <select name="featuredtype" id="featuredtype">
172
  <?php foreach ($post_types as $post_type_key => $post_type) : ?>
173
  <option value="<?php echo $post_type_key; ?>"><?php echo $post_type -> labels -> name; ?></option>
@@ -177,13 +177,13 @@ $post_types = get_post_types(array('public' => true), 'objects');
177
  </div>
178
 
179
  <p>
180
- <label style="font-weight:bold;"><?php _e('Exclude:', $this -> plugin_name); ?></label><br/>
181
  <input type="text" name="exclude" value="" id="exclude" /><br/>
182
- <small><?php _e('Comma separated IDs of attachments/slides to exclude', $this -> plugin_name); ?></small>
183
  </p>
184
  </div>
185
 
186
- <p><?php echo sprintf(__('For more settings/parameters, see the %sSlideshow Gallery plugin%s page.', $this -> plugin_name), '<a href="http://wordpress.org/plugins/slideshow-gallery/" target="_blank">', '</a>'); ?></p>
187
 
188
  <div class="mceActionPanel">
189
  <div style="float: left">
19
  ?>
20
 
21
 
22
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
23
+ <html xmlns="https://www.w3.org/1999/xhtml">
24
  <head>
25
+ <title><?php _e('Insert a Slideshow Gallery', 'slideshow-gallery'); ?></title>
26
  <script language="javascript" type="text/javascript" src="<?php echo site_url(); ?>/wp-includes/js/tinymce/tiny_mce_popup.js"></script>
27
  <script language="javascript" type="text/javascript" src="<?php echo site_url(); ?>/wp-includes/js/tinymce/utils/mctabs.js"></script>
28
  <script language="javascript" type="text/javascript" src="<?php echo site_url(); ?>/wp-includes/js/tinymce/utils/form_utils.js"></script>
37
 
38
  if (slideshow_type == "post") {
39
  var post_id = jQuery('#post_id').val();
40
+ if (post_id == "") { alert('<?php _e('Please fill in a post ID.', 'slideshow-gallery'); ?>'); return false; }
41
  var tag = '[tribulant_slideshow post_id="' + post_id + '"';
42
 
43
  if (exclude != "" && exclude != "undefined" && exclude != undefined) {
51
  tag += ']';
52
  } else if (slideshow_type == "gallery") {
53
  var gallery_id = jQuery('#gallery_id').val();
54
+ if (gallery_id == "") { alert('<?php _e('Please select a gallery.', 'slideshow-gallery'); ?>'); return false; }
55
  var tag = '[tribulant_slideshow gallery_id="' + gallery_id + '"';
56
  if (exclude != "" && exclude != "undefined" && exclude != undefined) { tag += ' exclude="' + exclude + '"'; }
57
  tag += ']';
105
 
106
  <form onsubmit="insertTag(); return false;" action="#">
107
  <div class="panel_wrapper">
108
+ <label style="font-weight:bold; cursor:pointer;"><input onclick="changeType(this.value);" type="radio" name="slideshow_type" value="post" id="type_post" /> <?php _e('Images From a Post', 'slideshow-gallery'); ?></label><br/>
109
+ <label style="font-weight:bold; cursor:pointer;"><input onclick="changeType(this.value);" type="radio" name="slideshow_type" value="gallery" id="type_gallery" /> <?php _e('Slides From a Gallery', 'slideshow-gallery'); ?></label><br/>
110
+ <label style="font-weight:bold; cursor:pointer;"><input onclick="changeType(this.value);" type="radio" name="slideshow_type" value="featured" id="type_gallery" /> <?php _e('Featured Posts', 'slideshow-gallery'); ?></label><br/>
111
+ <label style="font-weight:bold; cursor:pointer;"><input onclick="changeType(this.value);" type="radio" name="slideshow_type" value="custom" id="type_custom" /> <?php _e('All Available Slides', 'slideshow-gallery'); ?></label><br/>
112
+ <label style="font-weight:bold; cursor:pointer;"><input <?php echo (!$checkout_active) ? 'disabled="disabled"' : ''; ?> onclick="changeType(this.value);" type="radio" name="slideshow_type" value="products" id="type_products" /> <?php _e('Products', 'slideshow-gallery'); ?></label>
113
  <?php if (!$checkout_active) : ?>
114
+ <small>(<span class="slideshow_error"><?php echo sprintf(__('Requires the %sShopping Cart plugin%s', 'slideshow-gallery'), '<a href="https://tribulant.com/plugins/view/10/wordpress-shopping-cart-plugin" target="_blank">', '</a>'); ?></span>)</small>
115
  <?php endif; ?>
116
 
117
  <div id="products_div" style="display:none;">
118
  <p>
119
+ <label for="slideshow_products" style="font-weight:bold;"><?php _e('Products Source:', 'slideshow-gallery'); ?></label><br/>
120
  <select name="slideshow_products" id="slideshow_products">
121
+ <option value="latest"><?php _e('Latest Products', 'slideshow-gallery'); ?></option>
122
+ <option value="featured"><?php _e('Featured Products', 'slideshow-gallery'); ?></option>
123
  </select>
124
+ <br/><small><?php _e('Choose the source of the products', 'slideshow-gallery'); ?></small>
125
  </p>
126
  <p>
127
+ <label for="slideshow_productsnumber" style="font-weight:bold;"><?php _e('Number of Products:', 'slideshow-gallery'); ?></label>
128
  <input type="text" style="width:50px;" class="" name="slideshow_productsnumber" value="10" id="slideshow_productsnumber" />
129
+ <br/><small><?php _e('The number of products to display', 'slideshow-gallery'); ?></small>
130
  </p>
131
  </div>
132
 
139
  </script>
140
 
141
  <p>
142
+ <label for="post_id" style="font-weight:bold;"><?php _e('Post ID:', 'slideshow-gallery'); ?></label><br/>
143
  <input type="text" class="" name="post_id" value="" id="post_id" /><br/>
144
+ <small><?php _e('ID of the post to take images from.', 'slideshow-gallery'); ?></small>
145
  </p>
146
  </div>
147
 
148
  <div id="gallery_div" style="display:none;">
149
  <p>
150
+ <label for="gallery_id" style="font-weight:bold;"><?php _e('Gallery:', 'slideshow-gallery'); ?></label>
151
  <select name="gallery_id" id="gallery_id">
152
+ <option value=""><?php _e('- Select Gallery -', 'slideshow-gallery'); ?></option>
153
  <?php if (!empty($galleries)) : ?>
154
  <?php foreach ($galleries as $gallery) : ?>
155
  <?php $slidescount = $wpdb -> get_var("SELECT COUNT(`id`) FROM `" . $wpdb -> prefix . "gallery_galleriesslides` WHERE `gallery_id` = '" . $gallery -> id . "'"); ?>
162
 
163
  <div id="featured_div" style="display:none;">
164
  <p>
165
+ <label for="featurednumber"><?php _e('Number of Posts:', 'slideshow-gallery'); ?></label>
166
  <input type="text" name="featurednumber" id="featurednumber" value="" />
167
  </p>
168
 
169
  <p>
170
+ <label for="featuredtype"><?php _e('Post Type:', 'slideshow-gallery'); ?></label>
171
  <select name="featuredtype" id="featuredtype">
172
  <?php foreach ($post_types as $post_type_key => $post_type) : ?>
173
  <option value="<?php echo $post_type_key; ?>"><?php echo $post_type -> labels -> name; ?></option>
177
  </div>
178
 
179
  <p>
180
+ <label style="font-weight:bold;"><?php _e('Exclude:', 'slideshow-gallery'); ?></label><br/>
181
  <input type="text" name="exclude" value="" id="exclude" /><br/>
182
+ <small><?php _e('Comma separated IDs of attachments/slides to exclude', 'slideshow-gallery'); ?></small>
183
  </p>
184
  </div>
185
 
186
+ <p><?php echo sprintf(__('For more settings/parameters, see the %sSlideshow Gallery plugin%s page.', 'slideshow-gallery'), '<a href="https://wordpress.org/plugins/slideshow-gallery/" target="_blank">', '</a>'); ?></p>
187
 
188
  <div class="mceActionPanel">
189
  <div style="float: left">
views/default/css/fontawesome.css CHANGED
@@ -1,4 +1,4 @@
1
  /*!
2
- * Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome
3
- * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4
  */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.5.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.5.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.5.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.5.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.5.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}
1
  /*!
2
+ * Font Awesome 4.5.0 by @davegandy - https://fontawesome.io - @fontawesome
3
+ * License - https://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4
  */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.5.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.5.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.5.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.5.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.5.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}
views/default/gallery.php CHANGED
@@ -29,7 +29,7 @@ $thumbopacity = $this -> get_option('thumbopacity');
29
  <?php $thumbnail_link = wp_get_attachment_image_src($slide -> ID, array($options['width'], $options['height']), false); ?>
30
  <a href="<?php echo $full_image_url; ?>" id="<?php echo $unique; ?>imglink<?php echo $slide -> ID; ?>" <?php if ($this -> Html -> is_image($full_image_url)) : ?>class="colorboxslideshow<?php echo $unique; ?>" data-rel="slideshowgroup<?php echo $unique; ?>"<?php endif; ?> title="<?php echo __($slide -> post_title); ?>">
31
  <?php if ($options['showthumbs'] == "true") : ?>
32
- <img src="<?php echo $this -> Html -> otf_image_src($slide, $this -> get_option('thumbwidth'), $this -> get_option('thumbheight'), 100); ?>" alt="<?php echo $this -> Html -> sanitize(__($slide -> post_title)); ?>" />
33
  <?php endif; ?>
34
  </a>
35
  </li>
@@ -58,9 +58,9 @@ $thumbopacity = $this -> get_option('thumbopacity');
58
  <?php $thumbnail_link = wp_get_attachment_image_src(get_post_thumbnail_id($slide -> ID), 'thumbnail', false); ?>
59
  <?php if ($options['showthumbs'] == "true") : ?>
60
  <?php if (!empty($slide -> guid)) : ?>
61
- <a href="<?php echo $slide -> guid; ?>" target="_self" title="<?php echo esc_attr(__($slide -> post_title)); ?>"><img src="<?php echo $this -> Html -> otf_image_src($slide, $this -> get_option('thumbwidth'), $this -> get_option('thumbheight'), 100); ?>" alt="<?php echo $this -> Html -> sanitize(__($slide -> post_title)); ?>" /></a>
62
  <?php else : ?>
63
- <a id="<?php echo $unique; ?>imglink<?php echo $slide -> ID; ?>" <?php if ($this -> Html -> is_image($full_image_url)) : ?>class="colorboxslideshow<?php echo $unique; ?>" data-rel="slideshowgroup<?php echo $unique; ?>"<?php endif; ?>><img src="<?php echo $this -> Html -> otf_image_src($slide, $this -> get_option('thumbwidth'), $this -> get_option('thumbheight'), 100); ?>" alt="<?php echo $this -> Html -> sanitize(__($slide -> post_title)); ?>" /></a>
64
  <?php endif; ?>
65
  <?php else : ?>
66
  <a href="<?php echo $slide -> guid; ?>" target="_self" title="<?php echo __($slide -> post_title); ?>"></a>
@@ -69,7 +69,7 @@ $thumbopacity = $this -> get_option('thumbopacity');
69
  <?php wp_reset_postdata(); ?>
70
  <?php endforeach; ?>
71
  <?php elseif ($products) : ?>
72
- <!-- Shopping Cart plugin products http://tribulant.com/plugins/view/10/wordpress-shopping-cart-plugin -->
73
  <?php foreach ($slides as $slide) : ?>
74
  <li>
75
  <h3 style="opacity:70;"><?php echo stripslashes(__($slide -> title)); ?></h3>
@@ -81,9 +81,9 @@ $thumbopacity = $this -> get_option('thumbopacity');
81
  <p><?php echo substr(stripslashes(__($slide -> description)), 0, 255); ?></p>
82
  <?php if ($options['showthumbs'] == "true") : ?>
83
  <?php if (!empty($slide -> post_id)) : ?>
84
- <a href="<?php echo get_permalink($slide -> post_id); ?>" target="_self" title="<?php echo esc_attr(__($slide -> title)); ?>"><img src="<?php echo $this -> Html -> otf_image_src($slide, $this -> get_option('thumbwidth'), $this -> get_option('thumbheight'), 100); ?>" /></a>
85
  <?php else : ?>
86
- <a><img src="<?php echo $this -> Html -> otf_image_src($slide, $this -> get_option('thumbwidth'), $this -> get_option('thumbheight'), 100); ?>" /></a>
87
  <?php endif; ?>
88
  <?php else : ?>
89
  <a href="<?php echo get_permalink($slide -> post_id); ?>" target="_self" title="<?php echo esc_attr(__($slide -> title)); ?>"></a>
@@ -103,11 +103,11 @@ $thumbopacity = $this -> get_option('thumbopacity');
103
  <p><?php echo (!empty($slide -> showinfo) && ($slide -> showinfo == "both" || $slide -> showinfo == "description")) ? __($slide -> description) : ''; ?></p>
104
  <?php if ($options['showthumbs'] == "true") : ?>
105
  <?php if ($slide -> uselink == "Y" && !empty($slide -> link)) : ?>
106
- <a href="<?php echo __($slide -> link); ?>" title="<?php echo esc_attr(__($slide -> title)); ?>" target="_<?php echo $slide -> linktarget; ?>"><img src="<?php echo $this -> Html -> otf_image_src($slide, $this -> get_option('thumbwidth'), $this -> get_option('thumbheight'), 100); ?>" alt="<?php echo $this -> Html -> sanitize(__($slide -> title)); ?>" /></a>
107
  <?php elseif ($options['imagesoverlay'] == "true") : ?>
108
- <a href="<?php echo $slide -> image_path; ?>" id="<?php echo $unique; ?>imglink<?php echo $slide -> id; ?>" <?php if ($this -> Html -> is_image($slide -> image_path)) : ?>class="colorboxslideshow<?php echo $unique; ?>" data-rel="slideshowgroup<?php echo $unique; ?>"<?php endif; ?> target="_<?php echo $slide -> linktarget; ?>" title="<?php echo __($slide -> title); ?>"><img src="<?php echo $this -> Html -> otf_image_src($slide, $this -> get_option('thumbwidth'), $this -> get_option('thumbheight'), 100); ?>" alt="<?php echo $this -> Html -> sanitize(__($slide -> title)); ?>" /></a>
109
  <?php else : ?>
110
- <a><img src="<?php echo $this -> Html -> otf_image_src($slide, $this -> get_option('thumbwidth'), $this -> get_option('thumbheight'), 100); ?>" alt="<?php echo $this -> Html -> sanitize(__($slide -> title)); ?>" /></a>
111
  <?php endif; ?>
112
  <?php else : ?>
113
  <?php if ($slide -> uselink == "Y" && !empty($slide -> link)) : ?>
@@ -126,11 +126,11 @@ $thumbopacity = $this -> get_option('thumbopacity');
126
  <div id="<?php echo $wrapperid; ?>" class="slideshow-wrapper">
127
  <?php if ($options['showthumbs'] == "true" && $options['thumbsposition'] == "top" && count($slides) > 1) : ?>
128
  <div id="thumbnails<?php echo $unique; ?>" class="slideshow-thumbnails thumbstop">
129
- <div class="slideshow-slideleft" id="slideleft<?php echo $unique; ?>" title="<?php _e('Slide Left', $this -> plugin_name); ?>"></div>
130
  <div class="slideshow-slidearea" id="slidearea<?php echo $unique; ?>">
131
  <div class="slideshow-slider" id="slider<?php echo $unique; ?>"></div>
132
  </div>
133
- <div class="slideshow-slideright" id="slideright<?php echo $unique; ?>" title="<?php _e('Slide Right', $this -> plugin_name); ?>"></div>
134
  <br style="clear:both; visibility:hidden; height:1px;" />
135
  </div>
136
  <?php endif; ?>
@@ -139,12 +139,12 @@ $thumbopacity = $this -> get_option('thumbopacity');
139
  <?php $navb = false; $navf = false; ?>
140
  <?php if ($options['shownav'] == "true" && count($slides) > 1) : ?>
141
  <?php $navb = "imgprev"; ?>
142
- <div id="imgprev<?php echo $unique; ?>" class="slideshow-imgprev imgnav" title="<?php _e('Previous Image', $this -> plugin_name); ?>"><?php _e('Previous Image', $this -> plugin_name); ?></div>
143
  <?php endif; ?>
144
  <a id="imglink<?php echo $unique; ?>" class="slideshow-imglink imglink"><!-- link --></a>
145
  <?php if ($options['shownav'] == "true" && count($slides) > 1) : ?>
146
  <?php $navf = "imgnext"; ?>
147
- <div id="imgnext<?php echo $unique; ?>" class="slideshow-imgnext imgnav" title="<?php _e('Next Image', $this -> plugin_name); ?>"><?php _e('Next Image', $this -> plugin_name); ?></div>
148
  <?php endif; ?>
149
  <div id="image<?php echo $unique; ?>" class="slideshow-image"></div>
150
  <div class="slideshow-information info<?php echo $options['infoposition']; ?>" id="information<?php echo $unique; ?>">
@@ -155,11 +155,11 @@ $thumbopacity = $this -> get_option('thumbopacity');
155
 
156
  <?php if ($options['showthumbs'] == "true" && $options['thumbsposition'] == "bottom" && count($slides) > 1) : ?>
157
  <div id="thumbnails<?php echo $unique; ?>" class="slideshow-thumbnails thumbsbot">
158
- <div class="slideshow-slideleft" id="slideleft<?php echo $unique; ?>" title="<?php _e('Slide Left', $this -> plugin_name); ?>"></div>
159
  <div class="slideshow-slidearea" id="slidearea<?php echo $unique; ?>">
160
  <div class="slideshow-slider" id="slider<?php echo $unique; ?>"></div>
161
  </div>
162
- <div class="slideshow-slideright" id="slideright<?php echo $unique; ?>" title="<?php _e('Slide Right', $this -> plugin_name); ?>"></div>
163
  <br style="clear:both; visibility:hidden; height:1px;" />
164
  </div>
165
  <?php endif; ?>
@@ -281,5 +281,5 @@ $thumbopacity = $this -> get_option('thumbopacity');
281
 
282
  ?>
283
  <?php else : ?>
284
- <?php _e('No slides are available.', $this -> plugin_name); ?>
285
  <?php endif; ?>
29
  <?php $thumbnail_link = wp_get_attachment_image_src($slide -> ID, array($options['width'], $options['height']), false); ?>
30
  <a href="<?php echo $full_image_url; ?>" id="<?php echo $unique; ?>imglink<?php echo $slide -> ID; ?>" <?php if ($this -> Html -> is_image($full_image_url)) : ?>class="colorboxslideshow<?php echo $unique; ?>" data-rel="slideshowgroup<?php echo $unique; ?>"<?php endif; ?> title="<?php echo __($slide -> post_title); ?>">
31
  <?php if ($options['showthumbs'] == "true") : ?>
32
+ <img class="skip-lazy" src="<?php echo $this -> Html -> otf_image_src($slide, $this -> get_option('thumbwidth'), $this -> get_option('thumbheight'), 100); ?>" alt="<?php echo $this -> Html -> sanitize(__($slide -> post_title)); ?>" />
33
  <?php endif; ?>
34
  </a>
35
  </li>
58
  <?php $thumbnail_link = wp_get_attachment_image_src(get_post_thumbnail_id($slide -> ID), 'thumbnail', false); ?>
59
  <?php if ($options['showthumbs'] == "true") : ?>
60
  <?php if (!empty($slide -> guid)) : ?>
61
+ <a href="<?php echo $slide -> guid; ?>" target="_self" title="<?php echo esc_attr(__($slide -> post_title)); ?>"><img class="skip-lazy" src="<?php echo $this -> Html -> otf_image_src($slide, $this -> get_option('thumbwidth'), $this -> get_option('thumbheight'), 100); ?>" alt="<?php echo $this -> Html -> sanitize(__($slide -> post_title)); ?>" /></a>
62
  <?php else : ?>
63
+ <a id="<?php echo $unique; ?>imglink<?php echo $slide -> ID; ?>" <?php if ($this -> Html -> is_image($full_image_url)) : ?>class="colorboxslideshow<?php echo $unique; ?>" data-rel="slideshowgroup<?php echo $unique; ?>"<?php endif; ?>><img class="skip-lazy" src="<?php echo $this -> Html -> otf_image_src($slide, $this -> get_option('thumbwidth'), $this -> get_option('thumbheight'), 100); ?>" alt="<?php echo $this -> Html -> sanitize(__($slide -> post_title)); ?>" /></a>
64
  <?php endif; ?>
65
  <?php else : ?>
66
  <a href="<?php echo $slide -> guid; ?>" target="_self" title="<?php echo __($slide -> post_title); ?>"></a>
69
  <?php wp_reset_postdata(); ?>
70
  <?php endforeach; ?>
71
  <?php elseif ($products) : ?>
72
+ <!-- Shopping Cart plugin products https://tribulant.com/plugins/view/10/wordpress-shopping-cart-plugin -->
73
  <?php foreach ($slides as $slide) : ?>
74
  <li>
75
  <h3 style="opacity:70;"><?php echo stripslashes(__($slide -> title)); ?></h3>
81
  <p><?php echo substr(stripslashes(__($slide -> description)), 0, 255); ?></p>
82
  <?php if ($options['showthumbs'] == "true") : ?>
83
  <?php if (!empty($slide -> post_id)) : ?>
84
+ <a href="<?php echo get_permalink($slide -> post_id); ?>" target="_self" title="<?php echo esc_attr(__($slide -> title)); ?>"><img class="skip-lazy" src="<?php echo $this -> Html -> otf_image_src($slide, $this -> get_option('thumbwidth'), $this -> get_option('thumbheight'), 100); ?>" /></a>
85
  <?php else : ?>
86
+ <a><img class="skip-lazy" src="<?php echo $this -> Html -> otf_image_src($slide, $this -> get_option('thumbwidth'), $this -> get_option('thumbheight'), 100); ?>" /></a>
87
  <?php endif; ?>
88
  <?php else : ?>
89
  <a href="<?php echo get_permalink($slide -> post_id); ?>" target="_self" title="<?php echo esc_attr(__($slide -> title)); ?>"></a>
103
  <p><?php echo (!empty($slide -> showinfo) && ($slide -> showinfo == "both" || $slide -> showinfo == "description")) ? __($slide -> description) : ''; ?></p>
104
  <?php if ($options['showthumbs'] == "true") : ?>
105
  <?php if ($slide -> uselink == "Y" && !empty($slide -> link)) : ?>
106
+ <a href="<?php echo __($slide -> link); ?>" title="<?php echo esc_attr(__($slide -> title)); ?>" target="_<?php echo $slide -> linktarget; ?>"><img class="skip-lazy" src="<?php echo $this -> Html -> otf_image_src($slide, $this -> get_option('thumbwidth'), $this -> get_option('thumbheight'), 100); ?>" alt="<?php echo $this -> Html -> sanitize(__($slide -> title)); ?>" /></a>
107
  <?php elseif ($options['imagesoverlay'] == "true") : ?>
108
+ <a href="<?php echo $slide -> image_path; ?>" id="<?php echo $unique; ?>imglink<?php echo $slide -> id; ?>" <?php if ($this -> Html -> is_image($slide -> image_path)) : ?>class="colorboxslideshow<?php echo $unique; ?>" data-rel="slideshowgroup<?php echo $unique; ?>"<?php endif; ?> target="_<?php echo $slide -> linktarget; ?>" title="<?php echo __($slide -> title); ?>"><img class="skip-lazy" src="<?php echo $this -> Html -> otf_image_src($slide, $this -> get_option('thumbwidth'), $this -> get_option('thumbheight'), 100); ?>" alt="<?php echo $this -> Html -> sanitize(__($slide -> title)); ?>" /></a>
109
  <?php else : ?>
110
+ <a><img class="skip-lazy" src="<?php echo $this -> Html -> otf_image_src($slide, $this -> get_option('thumbwidth'), $this -> get_option('thumbheight'), 100); ?>" alt="<?php echo $this -> Html -> sanitize(__($slide -> title)); ?>" /></a>
111
  <?php endif; ?>
112
  <?php else : ?>
113
  <?php if ($slide -> uselink == "Y" && !empty($slide -> link)) : ?>
126
  <div id="<?php echo $wrapperid; ?>" class="slideshow-wrapper">
127
  <?php if ($options['showthumbs'] == "true" && $options['thumbsposition'] == "top" && count($slides) > 1) : ?>
128
  <div id="thumbnails<?php echo $unique; ?>" class="slideshow-thumbnails thumbstop">
129
+ <div class="slideshow-slideleft" id="slideleft<?php echo $unique; ?>" title="<?php _e('Slide Left', 'slideshow-gallery'); ?>"></div>
130
  <div class="slideshow-slidearea" id="slidearea<?php echo $unique; ?>">
131
  <div class="slideshow-slider" id="slider<?php echo $unique; ?>"></div>
132
  </div>
133
+ <div class="slideshow-slideright" id="slideright<?php echo $unique; ?>" title="<?php _e('Slide Right', 'slideshow-gallery'); ?>"></div>
134
  <br style="clear:both; visibility:hidden; height:1px;" />
135
  </div>
136
  <?php endif; ?>
139
  <?php $navb = false; $navf = false; ?>
140
  <?php if ($options['shownav'] == "true" && count($slides) > 1) : ?>
141
  <?php $navb = "imgprev"; ?>
142
+ <div id="imgprev<?php echo $unique; ?>" class="slideshow-imgprev imgnav" title="<?php _e('Previous Image', 'slideshow-gallery'); ?>"><?php _e('Previous Image', 'slideshow-gallery'); ?></div>
143
  <?php endif; ?>
144
  <a id="imglink<?php echo $unique; ?>" class="slideshow-imglink imglink"><!-- link --></a>
145
  <?php if ($options['shownav'] == "true" && count($slides) > 1) : ?>
146
  <?php $navf = "imgnext"; ?>
147
+ <div id="imgnext<?php echo $unique; ?>" class="slideshow-imgnext imgnav" title="<?php _e('Next Image', 'slideshow-gallery'); ?>"><?php _e('Next Image', 'slideshow-gallery'); ?></div>
148
  <?php endif; ?>
149
  <div id="image<?php echo $unique; ?>" class="slideshow-image"></div>
150
  <div class="slideshow-information info<?php echo $options['infoposition']; ?>" id="information<?php echo $unique; ?>">
155
 
156
  <?php if ($options['showthumbs'] == "true" && $options['thumbsposition'] == "bottom" && count($slides) > 1) : ?>
157
  <div id="thumbnails<?php echo $unique; ?>" class="slideshow-thumbnails thumbsbot">
158
+ <div class="slideshow-slideleft" id="slideleft<?php echo $unique; ?>" title="<?php _e('Slide Left', 'slideshow-gallery'); ?>"></div>
159
  <div class="slideshow-slidearea" id="slidearea<?php echo $unique; ?>">
160
  <div class="slideshow-slider" id="slider<?php echo $unique; ?>"></div>
161
  </div>
162
+ <div class="slideshow-slideright" id="slideright<?php echo $unique; ?>" title="<?php _e('Slide Right', 'slideshow-gallery'); ?>"></div>
163
  <br style="clear:both; visibility:hidden; height:1px;" />
164
  </div>
165
  <?php endif; ?>
281
 
282
  ?>
283
  <?php else : ?>
284
+ <?php _e('No slides are available.', 'slideshow-gallery'); ?>
285
  <?php endif; ?>
views/default/js/colorbox.js CHANGED
@@ -1,6 +1,6 @@
1
  /*!
2
  Colorbox 1.6.4
3
  license: MIT
4
- http://www.jacklmoore.com/colorbox
5
  */
6
  (function(t,e,i){function n(i,n,o){var r=e.createElement(i);return n&&(r.id=Z+n),o&&(r.style.cssText=o),t(r)}function o(){return i.innerHeight?i.innerHeight:t(i).height()}function r(e,i){i!==Object(i)&&(i={}),this.cache={},this.el=e,this.value=function(e){var n;return void 0===this.cache[e]&&(n=t(this.el).attr("data-cbox-"+e),void 0!==n?this.cache[e]=n:void 0!==i[e]?this.cache[e]=i[e]:void 0!==X[e]&&(this.cache[e]=X[e])),this.cache[e]},this.get=function(e){var i=this.value(e);return t.isFunction(i)?i.call(this.el,this):i}}function h(t){var e=W.length,i=(A+t)%e;return 0>i?e+i:i}function a(t,e){return Math.round((/%/.test(t)?("x"===e?E.width():o())/100:1)*parseInt(t,10))}function s(t,e){return t.get("photo")||t.get("photoRegex").test(e)}function l(t,e){return t.get("retinaUrl")&&i.devicePixelRatio>1?e.replace(t.get("photoRegex"),t.get("retinaSuffix")):e}function d(t){"contains"in x[0]&&!x[0].contains(t.target)&&t.target!==v[0]&&(t.stopPropagation(),x.focus())}function c(t){c.str!==t&&(x.add(v).removeClass(c.str).addClass(t),c.str=t)}function g(e){A=0,e&&e!==!1&&"nofollow"!==e?(W=t("."+te).filter(function(){var i=t.data(this,Y),n=new r(this,i);return n.get("rel")===e}),A=W.index(_.el),-1===A&&(W=W.add(_.el),A=W.length-1)):W=t(_.el)}function u(i){t(e).trigger(i),ae.triggerHandler(i)}function f(i){var o;if(!G){if(o=t(i).data(Y),_=new r(i,o),g(_.get("rel")),!U){U=$=!0,c(_.get("className")),x.css({visibility:"hidden",display:"block",opacity:""}),I=n(se,"LoadedContent","width:0; height:0; overflow:hidden; visibility:hidden"),b.css({width:"",height:""}).append(I),j=T.height()+k.height()+b.outerHeight(!0)-b.height(),D=C.width()+H.width()+b.outerWidth(!0)-b.width(),N=I.outerHeight(!0),z=I.outerWidth(!0);var h=a(_.get("initialWidth"),"x"),s=a(_.get("initialHeight"),"y"),l=_.get("maxWidth"),f=_.get("maxHeight");_.w=Math.max((l!==!1?Math.min(h,a(l,"x")):h)-z-D,0),_.h=Math.max((f!==!1?Math.min(s,a(f,"y")):s)-N-j,0),I.css({width:"",height:_.h}),J.position(),u(ee),_.get("onOpen"),O.add(F).hide(),x.focus(),_.get("trapFocus")&&e.addEventListener&&(e.addEventListener("focus",d,!0),ae.one(re,function(){e.removeEventListener("focus",d,!0)})),_.get("returnFocus")&&ae.one(re,function(){t(_.el).focus()})}var p=parseFloat(_.get("opacity"));v.css({opacity:p===p?p:"",cursor:_.get("overlayClose")?"pointer":"",visibility:"visible"}).show(),_.get("closeButton")?B.html(_.get("close")).appendTo(b):B.appendTo("<div/>"),w()}}function p(){x||(V=!1,E=t(i),x=n(se).attr({id:Y,"class":t.support.opacity===!1?Z+"IE":"",role:"dialog",tabindex:"-1"}).hide(),v=n(se,"Overlay").hide(),L=t([n(se,"LoadingOverlay")[0],n(se,"LoadingGraphic")[0]]),y=n(se,"Wrapper"),b=n(se,"Content").append(F=n(se,"Title"),R=n(se,"Current"),P=t('<button type="button"/>').attr({id:Z+"Previous"}),K=t('<button type="button"/>').attr({id:Z+"Next"}),S=t('<button type="button"/>').attr({id:Z+"Slideshow"}),L),B=t('<button type="button"/>').attr({id:Z+"Close"}),y.append(n(se).append(n(se,"TopLeft"),T=n(se,"TopCenter"),n(se,"TopRight")),n(se,!1,"clear:left").append(C=n(se,"MiddleLeft"),b,H=n(se,"MiddleRight")),n(se,!1,"clear:left").append(n(se,"BottomLeft"),k=n(se,"BottomCenter"),n(se,"BottomRight"))).find("div div").css({"float":"left"}),M=n(se,!1,"position:absolute; width:9999px; visibility:hidden; display:none; max-width:none;"),O=K.add(P).add(R).add(S)),e.body&&!x.parent().length&&t(e.body).append(v,x.append(y,M))}function m(){function i(t){t.which>1||t.shiftKey||t.altKey||t.metaKey||t.ctrlKey||(t.preventDefault(),f(this))}return x?(V||(V=!0,K.click(function(){J.next()}),P.click(function(){J.prev()}),B.click(function(){J.close()}),v.click(function(){_.get("overlayClose")&&J.close()}),t(e).bind("keydown."+Z,function(t){var e=t.keyCode;U&&_.get("escKey")&&27===e&&(t.preventDefault(),J.close()),U&&_.get("arrowKey")&&W[1]&&!t.altKey&&(37===e?(t.preventDefault(),P.click()):39===e&&(t.preventDefault(),K.click()))}),t.isFunction(t.fn.on)?t(e).on("click."+Z,"."+te,i):t("."+te).live("click."+Z,i)),!0):!1}function w(){var e,o,r,h=J.prep,d=++le;if($=!0,q=!1,u(he),u(ie),_.get("onLoad"),_.h=_.get("height")?a(_.get("height"),"y")-N-j:_.get("innerHeight")&&a(_.get("innerHeight"),"y"),_.w=_.get("width")?a(_.get("width"),"x")-z-D:_.get("innerWidth")&&a(_.get("innerWidth"),"x"),_.mw=_.w,_.mh=_.h,_.get("maxWidth")&&(_.mw=a(_.get("maxWidth"),"x")-z-D,_.mw=_.w&&_.w<_.mw?_.w:_.mw),_.get("maxHeight")&&(_.mh=a(_.get("maxHeight"),"y")-N-j,_.mh=_.h&&_.h<_.mh?_.h:_.mh),e=_.get("href"),Q=setTimeout(function(){L.show()},100),_.get("inline")){var c=t(e).eq(0);r=t("<div>").hide().insertBefore(c),ae.one(he,function(){r.replaceWith(c)}),h(c)}else _.get("iframe")?h(" "):_.get("html")?h(_.get("html")):s(_,e)?(e=l(_,e),q=_.get("createImg"),t(q).addClass(Z+"Photo").bind("error."+Z,function(){h(n(se,"Error").html(_.get("imgError")))}).one("load",function(){d===le&&setTimeout(function(){var e;_.get("retinaImage")&&i.devicePixelRatio>1&&(q.height=q.height/i.devicePixelRatio,q.width=q.width/i.devicePixelRatio),_.get("scalePhotos")&&(o=function(){q.height-=q.height*e,q.width-=q.width*e},_.mw&&q.width>_.mw&&(e=(q.width-_.mw)/q.width,o()),_.mh&&q.height>_.mh&&(e=(q.height-_.mh)/q.height,o())),_.h&&(q.style.marginTop=Math.max(_.mh-q.height,0)/2+"px"),W[1]&&(_.get("loop")||W[A+1])&&(q.style.cursor="pointer",t(q).bind("click."+Z,function(){J.next()})),q.style.width=q.width+"px",q.style.height=q.height+"px",h(q)},1)}),q.src=e):e&&M.load(e,_.get("data"),function(e,i){d===le&&h("error"===i?n(se,"Error").html(_.get("xhrError")):t(this).contents())})}var v,x,y,b,T,C,H,k,W,E,I,M,L,F,R,S,K,P,B,O,_,j,D,N,z,A,q,U,$,G,Q,J,V,X={html:!1,photo:!1,iframe:!1,inline:!1,transition:"elastic",speed:300,fadeOut:300,width:!1,initialWidth:"600",innerWidth:!1,maxWidth:!1,height:!1,initialHeight:"450",innerHeight:!1,maxHeight:!1,scalePhotos:!0,scrolling:!0,opacity:.9,preloading:!0,className:!1,overlayClose:!0,escKey:!0,arrowKey:!0,top:!1,bottom:!1,left:!1,right:!1,fixed:!1,data:void 0,closeButton:!0,fastIframe:!0,open:!1,reposition:!0,loop:!0,slideshow:!1,slideshowAuto:!0,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow",photoRegex:/\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\?).*)?$/i,retinaImage:!1,retinaUrl:!1,retinaSuffix:"@2x.$1",current:"image {current} of {total}",previous:"previous",next:"next",close:"close",xhrError:"This content failed to load.",imgError:"This image failed to load.",returnFocus:!0,trapFocus:!0,onOpen:!1,onLoad:!1,onComplete:!1,onCleanup:!1,onClosed:!1,rel:function(){return this.rel},href:function(){return t(this).attr("href")},title:function(){return this.title},createImg:function(){var e=new Image,i=t(this).data("cbox-img-attrs");return"object"==typeof i&&t.each(i,function(t,i){e[t]=i}),e},createIframe:function(){var i=e.createElement("iframe"),n=t(this).data("cbox-iframe-attrs");return"object"==typeof n&&t.each(n,function(t,e){i[t]=e}),"frameBorder"in i&&(i.frameBorder=0),"allowTransparency"in i&&(i.allowTransparency="true"),i.name=(new Date).getTime(),i.allowFullscreen=!0,i}},Y="colorbox",Z="cbox",te=Z+"Element",ee=Z+"_open",ie=Z+"_load",ne=Z+"_complete",oe=Z+"_cleanup",re=Z+"_closed",he=Z+"_purge",ae=t("<a/>"),se="div",le=0,de={},ce=function(){function t(){clearTimeout(h)}function e(){(_.get("loop")||W[A+1])&&(t(),h=setTimeout(J.next,_.get("slideshowSpeed")))}function i(){S.html(_.get("slideshowStop")).unbind(s).one(s,n),ae.bind(ne,e).bind(ie,t),x.removeClass(a+"off").addClass(a+"on")}function n(){t(),ae.unbind(ne,e).unbind(ie,t),S.html(_.get("slideshowStart")).unbind(s).one(s,function(){J.next(),i()}),x.removeClass(a+"on").addClass(a+"off")}function o(){r=!1,S.hide(),t(),ae.unbind(ne,e).unbind(ie,t),x.removeClass(a+"off "+a+"on")}var r,h,a=Z+"Slideshow_",s="click."+Z;return function(){r?_.get("slideshow")||(ae.unbind(oe,o),o()):_.get("slideshow")&&W[1]&&(r=!0,ae.one(oe,o),_.get("slideshowAuto")?i():n(),S.show())}}();t[Y]||(t(p),J=t.fn[Y]=t[Y]=function(e,i){var n,o=this;return e=e||{},t.isFunction(o)&&(o=t("<a/>"),e.open=!0),o[0]?(p(),m()&&(i&&(e.onComplete=i),o.each(function(){var i=t.data(this,Y)||{};t.data(this,Y,t.extend(i,e))}).addClass(te),n=new r(o[0],e),n.get("open")&&f(o[0])),o):o},J.position=function(e,i){function n(){T[0].style.width=k[0].style.width=b[0].style.width=parseInt(x[0].style.width,10)-D+"px",b[0].style.height=C[0].style.height=H[0].style.height=parseInt(x[0].style.height,10)-j+"px"}var r,h,s,l=0,d=0,c=x.offset();if(E.unbind("resize."+Z),x.css({top:-9e4,left:-9e4}),h=E.scrollTop(),s=E.scrollLeft(),_.get("fixed")?(c.top-=h,c.left-=s,x.css({position:"fixed"})):(l=h,d=s,x.css({position:"absolute"})),d+=_.get("right")!==!1?Math.max(E.width()-_.w-z-D-a(_.get("right"),"x"),0):_.get("left")!==!1?a(_.get("left"),"x"):Math.round(Math.max(E.width()-_.w-z-D,0)/2),l+=_.get("bottom")!==!1?Math.max(o()-_.h-N-j-a(_.get("bottom"),"y"),0):_.get("top")!==!1?a(_.get("top"),"y"):Math.round(Math.max(o()-_.h-N-j,0)/2),x.css({top:c.top,left:c.left,visibility:"visible"}),y[0].style.width=y[0].style.height="9999px",r={width:_.w+z+D,height:_.h+N+j,top:l,left:d},e){var g=0;t.each(r,function(t){return r[t]!==de[t]?(g=e,void 0):void 0}),e=g}de=r,e||x.css(r),x.dequeue().animate(r,{duration:e||0,complete:function(){n(),$=!1,y[0].style.width=_.w+z+D+"px",y[0].style.height=_.h+N+j+"px",_.get("reposition")&&setTimeout(function(){E.bind("resize."+Z,J.position)},1),t.isFunction(i)&&i()},step:n})},J.resize=function(t){var e;U&&(t=t||{},t.width&&(_.w=a(t.width,"x")-z-D),t.innerWidth&&(_.w=a(t.innerWidth,"x")),I.css({width:_.w}),t.height&&(_.h=a(t.height,"y")-N-j),t.innerHeight&&(_.h=a(t.innerHeight,"y")),t.innerHeight||t.height||(e=I.scrollTop(),I.css({height:"auto"}),_.h=I.height()),I.css({height:_.h}),e&&I.scrollTop(e),J.position("none"===_.get("transition")?0:_.get("speed")))},J.prep=function(i){function o(){return _.w=_.w||I.width(),_.w=_.mw&&_.mw<_.w?_.mw:_.w,_.w}function a(){return _.h=_.h||I.height(),_.h=_.mh&&_.mh<_.h?_.mh:_.h,_.h}if(U){var d,g="none"===_.get("transition")?0:_.get("speed");I.remove(),I=n(se,"LoadedContent").append(i),I.hide().appendTo(M.show()).css({width:o(),overflow:_.get("scrolling")?"auto":"hidden"}).css({height:a()}).prependTo(b),M.hide(),t(q).css({"float":"none"}),c(_.get("className")),d=function(){function i(){t.support.opacity===!1&&x[0].style.removeAttribute("filter")}var n,o,a=W.length;U&&(o=function(){clearTimeout(Q),L.hide(),u(ne),_.get("onComplete")},F.html(_.get("title")).show(),I.show(),a>1?("string"==typeof _.get("current")&&R.html(_.get("current").replace("{current}",A+1).replace("{total}",a)).show(),K[_.get("loop")||a-1>A?"show":"hide"]().html(_.get("next")),P[_.get("loop")||A?"show":"hide"]().html(_.get("previous")),ce(),_.get("preloading")&&t.each([h(-1),h(1)],function(){var i,n=W[this],o=new r(n,t.data(n,Y)),h=o.get("href");h&&s(o,h)&&(h=l(o,h),i=e.createElement("img"),i.src=h)})):O.hide(),_.get("iframe")?(n=_.get("createIframe"),_.get("scrolling")||(n.scrolling="no"),t(n).attr({src:_.get("href"),"class":Z+"Iframe"}).one("load",o).appendTo(I),ae.one(he,function(){n.src="//about:blank"}),_.get("fastIframe")&&t(n).trigger("load")):o(),"fade"===_.get("transition")?x.fadeTo(g,1,i):i())},"fade"===_.get("transition")?x.fadeTo(g,0,function(){J.position(0,d)}):J.position(g,d)}},J.next=function(){!$&&W[1]&&(_.get("loop")||W[A+1])&&(A=h(1),f(W[A]))},J.prev=function(){!$&&W[1]&&(_.get("loop")||A)&&(A=h(-1),f(W[A]))},J.close=function(){U&&!G&&(G=!0,U=!1,u(oe),_.get("onCleanup"),E.unbind("."+Z),v.fadeTo(_.get("fadeOut")||0,0),x.stop().fadeTo(_.get("fadeOut")||0,0,function(){x.hide(),v.hide(),u(he),I.remove(),setTimeout(function(){G=!1,u(re),_.get("onClosed")},1)}))},J.remove=function(){x&&(x.stop(),t[Y].close(),x.stop(!1,!0).remove(),v.remove(),G=!1,x=null,t("."+te).removeData(Y).removeClass(te),t(e).unbind("click."+Z).unbind("keydown."+Z))},J.element=function(){return t(_.el)},J.settings=X)})(jQuery,document,window);
1
  /*!
2
  Colorbox 1.6.4
3
  license: MIT
4
+ https://www.jacklmoore.com/colorbox
5
  */
6
  (function(t,e,i){function n(i,n,o){var r=e.createElement(i);return n&&(r.id=Z+n),o&&(r.style.cssText=o),t(r)}function o(){return i.innerHeight?i.innerHeight:t(i).height()}function r(e,i){i!==Object(i)&&(i={}),this.cache={},this.el=e,this.value=function(e){var n;return void 0===this.cache[e]&&(n=t(this.el).attr("data-cbox-"+e),void 0!==n?this.cache[e]=n:void 0!==i[e]?this.cache[e]=i[e]:void 0!==X[e]&&(this.cache[e]=X[e])),this.cache[e]},this.get=function(e){var i=this.value(e);return t.isFunction(i)?i.call(this.el,this):i}}function h(t){var e=W.length,i=(A+t)%e;return 0>i?e+i:i}function a(t,e){return Math.round((/%/.test(t)?("x"===e?E.width():o())/100:1)*parseInt(t,10))}function s(t,e){return t.get("photo")||t.get("photoRegex").test(e)}function l(t,e){return t.get("retinaUrl")&&i.devicePixelRatio>1?e.replace(t.get("photoRegex"),t.get("retinaSuffix")):e}function d(t){"contains"in x[0]&&!x[0].contains(t.target)&&t.target!==v[0]&&(t.stopPropagation(),x.focus())}function c(t){c.str!==t&&(x.add(v).removeClass(c.str).addClass(t),c.str=t)}function g(e){A=0,e&&e!==!1&&"nofollow"!==e?(W=t("."+te).filter(function(){var i=t.data(this,Y),n=new r(this,i);return n.get("rel")===e}),A=W.index(_.el),-1===A&&(W=W.add(_.el),A=W.length-1)):W=t(_.el)}function u(i){t(e).trigger(i),ae.triggerHandler(i)}function f(i){var o;if(!G){if(o=t(i).data(Y),_=new r(i,o),g(_.get("rel")),!U){U=$=!0,c(_.get("className")),x.css({visibility:"hidden",display:"block",opacity:""}),I=n(se,"LoadedContent","width:0; height:0; overflow:hidden; visibility:hidden"),b.css({width:"",height:""}).append(I),j=T.height()+k.height()+b.outerHeight(!0)-b.height(),D=C.width()+H.width()+b.outerWidth(!0)-b.width(),N=I.outerHeight(!0),z=I.outerWidth(!0);var h=a(_.get("initialWidth"),"x"),s=a(_.get("initialHeight"),"y"),l=_.get("maxWidth"),f=_.get("maxHeight");_.w=Math.max((l!==!1?Math.min(h,a(l,"x")):h)-z-D,0),_.h=Math.max((f!==!1?Math.min(s,a(f,"y")):s)-N-j,0),I.css({width:"",height:_.h}),J.position(),u(ee),_.get("onOpen"),O.add(F).hide(),x.focus(),_.get("trapFocus")&&e.addEventListener&&(e.addEventListener("focus",d,!0),ae.one(re,function(){e.removeEventListener("focus",d,!0)})),_.get("returnFocus")&&ae.one(re,function(){t(_.el).focus()})}var p=parseFloat(_.get("opacity"));v.css({opacity:p===p?p:"",cursor:_.get("overlayClose")?"pointer":"",visibility:"visible"}).show(),_.get("closeButton")?B.html(_.get("close")).appendTo(b):B.appendTo("<div/>"),w()}}function p(){x||(V=!1,E=t(i),x=n(se).attr({id:Y,"class":t.support.opacity===!1?Z+"IE":"",role:"dialog",tabindex:"-1"}).hide(),v=n(se,"Overlay").hide(),L=t([n(se,"LoadingOverlay")[0],n(se,"LoadingGraphic")[0]]),y=n(se,"Wrapper"),b=n(se,"Content").append(F=n(se,"Title"),R=n(se,"Current"),P=t('<button type="button"/>').attr({id:Z+"Previous"}),K=t('<button type="button"/>').attr({id:Z+"Next"}),S=t('<button type="button"/>').attr({id:Z+"Slideshow"}),L),B=t('<button type="button"/>').attr({id:Z+"Close"}),y.append(n(se).append(n(se,"TopLeft"),T=n(se,"TopCenter"),n(se,"TopRight")),n(se,!1,"clear:left").append(C=n(se,"MiddleLeft"),b,H=n(se,"MiddleRight")),n(se,!1,"clear:left").append(n(se,"BottomLeft"),k=n(se,"BottomCenter"),n(se,"BottomRight"))).find("div div").css({"float":"left"}),M=n(se,!1,"position:absolute; width:9999px; visibility:hidden; display:none; max-width:none;"),O=K.add(P).add(R).add(S)),e.body&&!x.parent().length&&t(e.body).append(v,x.append(y,M))}function m(){function i(t){t.which>1||t.shiftKey||t.altKey||t.metaKey||t.ctrlKey||(t.preventDefault(),f(this))}return x?(V||(V=!0,K.click(function(){J.next()}),P.click(function(){J.prev()}),B.click(function(){J.close()}),v.click(function(){_.get("overlayClose")&&J.close()}),t(e).bind("keydown."+Z,function(t){var e=t.keyCode;U&&_.get("escKey")&&27===e&&(t.preventDefault(),J.close()),U&&_.get("arrowKey")&&W[1]&&!t.altKey&&(37===e?(t.preventDefault(),P.click()):39===e&&(t.preventDefault(),K.click()))}),t.isFunction(t.fn.on)?t(e).on("click."+Z,"."+te,i):t("."+te).live("click."+Z,i)),!0):!1}function w(){var e,o,r,h=J.prep,d=++le;if($=!0,q=!1,u(he),u(ie),_.get("onLoad"),_.h=_.get("height")?a(_.get("height"),"y")-N-j:_.get("innerHeight")&&a(_.get("innerHeight"),"y"),_.w=_.get("width")?a(_.get("width"),"x")-z-D:_.get("innerWidth")&&a(_.get("innerWidth"),"x"),_.mw=_.w,_.mh=_.h,_.get("maxWidth")&&(_.mw=a(_.get("maxWidth"),"x")-z-D,_.mw=_.w&&_.w<_.mw?_.w:_.mw),_.get("maxHeight")&&(_.mh=a(_.get("maxHeight"),"y")-N-j,_.mh=_.h&&_.h<_.mh?_.h:_.mh),e=_.get("href"),Q=setTimeout(function(){L.show()},100),_.get("inline")){var c=t(e).eq(0);r=t("<div>").hide().insertBefore(c),ae.one(he,function(){r.replaceWith(c)}),h(c)}else _.get("iframe")?h(" "):_.get("html")?h(_.get("html")):s(_,e)?(e=l(_,e),q=_.get("createImg"),t(q).addClass(Z+"Photo").bind("error."+Z,function(){h(n(se,"Error").html(_.get("imgError")))}).one("load",function(){d===le&&setTimeout(function(){var e;_.get("retinaImage")&&i.devicePixelRatio>1&&(q.height=q.height/i.devicePixelRatio,q.width=q.width/i.devicePixelRatio),_.get("scalePhotos")&&(o=function(){q.height-=q.height*e,q.width-=q.width*e},_.mw&&q.width>_.mw&&(e=(q.width-_.mw)/q.width,o()),_.mh&&q.height>_.mh&&(e=(q.height-_.mh)/q.height,o())),_.h&&(q.style.marginTop=Math.max(_.mh-q.height,0)/2+"px"),W[1]&&(_.get("loop")||W[A+1])&&(q.style.cursor="pointer",t(q).bind("click."+Z,function(){J.next()})),q.style.width=q.width+"px",q.style.height=q.height+"px",h(q)},1)}),q.src=e):e&&M.load(e,_.get("data"),function(e,i){d===le&&h("error"===i?n(se,"Error").html(_.get("xhrError")):t(this).contents())})}var v,x,y,b,T,C,H,k,W,E,I,M,L,F,R,S,K,P,B,O,_,j,D,N,z,A,q,U,$,G,Q,J,V,X={html:!1,photo:!1,iframe:!1,inline:!1,transition:"elastic",speed:300,fadeOut:300,width:!1,initialWidth:"600",innerWidth:!1,maxWidth:!1,height:!1,initialHeight:"450",innerHeight:!1,maxHeight:!1,scalePhotos:!0,scrolling:!0,opacity:.9,preloading:!0,className:!1,overlayClose:!0,escKey:!0,arrowKey:!0,top:!1,bottom:!1,left:!1,right:!1,fixed:!1,data:void 0,closeButton:!0,fastIframe:!0,open:!1,reposition:!0,loop:!0,slideshow:!1,slideshowAuto:!0,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow",photoRegex:/\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\?).*)?$/i,retinaImage:!1,retinaUrl:!1,retinaSuffix:"@2x.$1",current:"image {current} of {total}",previous:"previous",next:"next",close:"close",xhrError:"This content failed to load.",imgError:"This image failed to load.",returnFocus:!0,trapFocus:!0,onOpen:!1,onLoad:!1,onComplete:!1,onCleanup:!1,onClosed:!1,rel:function(){return this.rel},href:function(){return t(this).attr("href")},title:function(){return this.title},createImg:function(){var e=new Image,i=t(this).data("cbox-img-attrs");return"object"==typeof i&&t.each(i,function(t,i){e[t]=i}),e},createIframe:function(){var i=e.createElement("iframe"),n=t(this).data("cbox-iframe-attrs");return"object"==typeof n&&t.each(n,function(t,e){i[t]=e}),"frameBorder"in i&&(i.frameBorder=0),"allowTransparency"in i&&(i.allowTransparency="true"),i.name=(new Date).getTime(),i.allowFullscreen=!0,i}},Y="colorbox",Z="cbox",te=Z+"Element",ee=Z+"_open",ie=Z+"_load",ne=Z+"_complete",oe=Z+"_cleanup",re=Z+"_closed",he=Z+"_purge",ae=t("<a/>"),se="div",le=0,de={},ce=function(){function t(){clearTimeout(h)}function e(){(_.get("loop")||W[A+1])&&(t(),h=setTimeout(J.next,_.get("slideshowSpeed")))}function i(){S.html(_.get("slideshowStop")).unbind(s).one(s,n),ae.bind(ne,e).bind(ie,t),x.removeClass(a+"off").addClass(a+"on")}function n(){t(),ae.unbind(ne,e).unbind(ie,t),S.html(_.get("slideshowStart")).unbind(s).one(s,function(){J.next(),i()}),x.removeClass(a+"on").addClass(a+"off")}function o(){r=!1,S.hide(),t(),ae.unbind(ne,e).unbind(ie,t),x.removeClass(a+"off "+a+"on")}var r,h,a=Z+"Slideshow_",s="click."+Z;return function(){r?_.get("slideshow")||(ae.unbind(oe,o),o()):_.get("slideshow")&&W[1]&&(r=!0,ae.one(oe,o),_.get("slideshowAuto")?i():n(),S.show())}}();t[Y]||(t(p),J=t.fn[Y]=t[Y]=function(e,i){var n,o=this;return e=e||{},t.isFunction(o)&&(o=t("<a/>"),e.open=!0),o[0]?(p(),m()&&(i&&(e.onComplete=i),o.each(function(){var i=t.data(this,Y)||{};t.data(this,Y,t.extend(i,e))}).addClass(te),n=new r(o[0],e),n.get("open")&&f(o[0])),o):o},J.position=function(e,i){function n(){T[0].style.width=k[0].style.width=b[0].style.width=parseInt(x[0].style.width,10)-D+"px",b[0].style.height=C[0].style.height=H[0].style.height=parseInt(x[0].style.height,10)-j+"px"}var r,h,s,l=0,d=0,c=x.offset();if(E.unbind("resize."+Z),x.css({top:-9e4,left:-9e4}),h=E.scrollTop(),s=E.scrollLeft(),_.get("fixed")?(c.top-=h,c.left-=s,x.css({position:"fixed"})):(l=h,d=s,x.css({position:"absolute"})),d+=_.get("right")!==!1?Math.max(E.width()-_.w-z-D-a(_.get("right"),"x"),0):_.get("left")!==!1?a(_.get("left"),"x"):Math.round(Math.max(E.width()-_.w-z-D,0)/2),l+=_.get("bottom")!==!1?Math.max(o()-_.h-N-j-a(_.get("bottom"),"y"),0):_.get("top")!==!1?a(_.get("top"),"y"):Math.round(Math.max(o()-_.h-N-j,0)/2),x.css({top:c.top,left:c.left,visibility:"visible"}),y[0].style.width=y[0].style.height="9999px",r={width:_.w+z+D,height:_.h+N+j,top:l,left:d},e){var g=0;t.each(r,function(t){return r[t]!==de[t]?(g=e,void 0):void 0}),e=g}de=r,e||x.css(r),x.dequeue().animate(r,{duration:e||0,complete:function(){n(),$=!1,y[0].style.width=_.w+z+D+"px",y[0].style.height=_.h+N+j+"px",_.get("reposition")&&setTimeout(function(){E.bind("resize."+Z,J.position)},1),t.isFunction(i)&&i()},step:n})},J.resize=function(t){var e;U&&(t=t||{},t.width&&(_.w=a(t.width,"x")-z-D),t.innerWidth&&(_.w=a(t.innerWidth,"x")),I.css({width:_.w}),t.height&&(_.h=a(t.height,"y")-N-j),t.innerHeight&&(_.h=a(t.innerHeight,"y")),t.innerHeight||t.height||(e=I.scrollTop(),I.css({height:"auto"}),_.h=I.height()),I.css({height:_.h}),e&&I.scrollTop(e),J.position("none"===_.get("transition")?0:_.get("speed")))},J.prep=function(i){function o(){return _.w=_.w||I.width(),_.w=_.mw&&_.mw<_.w?_.mw:_.w,_.w}function a(){return _.h=_.h||I.height(),_.h=_.mh&&_.mh<_.h?_.mh:_.h,_.h}if(U){var d,g="none"===_.get("transition")?0:_.get("speed");I.remove(),I=n(se,"LoadedContent").append(i),I.hide().appendTo(M.show()).css({width:o(),overflow:_.get("scrolling")?"auto":"hidden"}).css({height:a()}).prependTo(b),M.hide(),t(q).css({"float":"none"}),c(_.get("className")),d=function(){function i(){t.support.opacity===!1&&x[0].style.removeAttribute("filter")}var n,o,a=W.length;U&&(o=function(){clearTimeout(Q),L.hide(),u(ne),_.get("onComplete")},F.html(_.get("title")).show(),I.show(),a>1?("string"==typeof _.get("current")&&R.html(_.get("current").replace("{current}",A+1).replace("{total}",a)).show(),K[_.get("loop")||a-1>A?"show":"hide"]().html(_.get("next")),P[_.get("loop")||A?"show":"hide"]().html(_.get("previous")),ce(),_.get("preloading")&&t.each([h(-1),h(1)],function(){var i,n=W[this],o=new r(n,t.data(n,Y)),h=o.get("href");h&&s(o,h)&&(h=l(o,h),i=e.createElement("img"),i.src=h)})):O.hide(),_.get("iframe")?(n=_.get("createIframe"),_.get("scrolling")||(n.scrolling="no"),t(n).attr({src:_.get("href"),"class":Z+"Iframe"}).one("load",o).appendTo(I),ae.one(he,function(){n.src="//about:blank"}),_.get("fastIframe")&&t(n).trigger("load")):o(),"fade"===_.get("transition")?x.fadeTo(g,1,i):i())},"fade"===_.get("transition")?x.fadeTo(g,0,function(){J.position(0,d)}):J.position(g,d)}},J.next=function(){!$&&W[1]&&(_.get("loop")||W[A+1])&&(A=h(1),f(W[A]))},J.prev=function(){!$&&W[1]&&(_.get("loop")||A)&&(A=h(-1),f(W[A]))},J.close=function(){U&&!G&&(G=!0,U=!1,u(oe),_.get("onCleanup"),E.unbind("."+Z),v.fadeTo(_.get("fadeOut")||0,0),x.stop().fadeTo(_.get("fadeOut")||0,0,function(){x.hide(),v.hide(),u(he),I.remove(),setTimeout(function(){G=!1,u(re),_.get("onClosed")},1)}))},J.remove=function(){x&&(x.stop(),t[Y].close(),x.stop(!1,!0).remove(),v.remove(),G=!1,x=null,t("."+te).removeData(Y).removeClass(te),t(e).unbind("click."+Z).unbind("keydown."+Z))},J.element=function(){return t(_.el)},J.settings=X)})(jQuery,document,window);
views/default/js/jquery-ui.js CHANGED
@@ -1,5 +1,5 @@
1
  /*! jQuery UI - v1.11.4 - 2015-12-13
2
- * http://jqueryui.com
3
  * Includes: effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js
4
  * Copyright jQuery Foundation and other contributors; Licensed MIT */
5
 
@@ -16,13 +16,13 @@
16
  }(function( $ ) {
17
  /*!
18
  * jQuery UI Effects 1.11.4
19
- * http://jqueryui.com
20
  *
21
  * Copyright jQuery Foundation and other contributors
22
  * Released under the MIT license.
23
- * http://jquery.org/license
24
  *
25
- * http://api.jqueryui.com/category/effects-core/
26
  */
27
 
28
 
@@ -42,7 +42,7 @@ $.effects = {
42
  *
43
  * Copyright 2014 jQuery Foundation and other contributors
44
  * Released under the MIT license.
45
- * http://jquery.org/license
46
  *
47
  * Date: Wed Jan 16 08:47:09 2013 -0600
48
  */
@@ -928,7 +928,7 @@ $.extend( $.effects, {
928
  if ( set[ i ] !== null ) {
929
  val = element.data( dataSpace + set[ i ] );
930
  // support: jQuery 1.6.2
931
- // http://bugs.jquery.com/ticket/9917
932
  // jQuery 1.6.2 incorrectly returns undefined for any falsy value.
933
  // We can't differentiate between "" and 0 here, so we just assume
934
  // empty string since it's likely to be a more common value...
@@ -1255,7 +1255,7 @@ $.fn.extend({
1255
 
1256
  (function() {
1257
 
1258
- // based on easing equations from Robert Penner (http://www.robertpenner.com/easing)
1259
 
1260
  var baseEasings = {};
1261
 
@@ -1307,13 +1307,13 @@ var effect = $.effects;
1307
 
1308
  /*!
1309
  * jQuery UI Effects Blind 1.11.4
1310
- * http://jqueryui.com
1311
  *
1312
  * Copyright jQuery Foundation and other contributors
1313
  * Released under the MIT license.
1314
- * http://jquery.org/license
1315
  *
1316
- * http://api.jqueryui.com/blind-effect/
1317
  */
1318
 
1319
 
@@ -1384,13 +1384,13 @@ var effectBlind = $.effects.effect.blind = function( o, done ) {
1384
 
1385
  /*!
1386
  * jQuery UI Effects Bounce 1.11.4
1387
- * http://jqueryui.com
1388
  *
1389
  * Copyright jQuery Foundation and other contributors
1390
  * Released under the MIT license.
1391
- * http://jquery.org/license
1392
  *
1393
- * http://api.jqueryui.com/bounce-effect/
1394
  */
1395
 
1396
 
@@ -1494,13 +1494,13 @@ var effectBounce = $.effects.effect.bounce = function( o, done ) {
1494
 
1495
  /*!
1496
  * jQuery UI Effects Clip 1.11.4
1497
- * http://jqueryui.com
1498
  *
1499
  * Copyright jQuery Foundation and other contributors
1500
  * Released under the MIT license.
1501
- * http://jquery.org/license
1502
  *
1503
- * http://api.jqueryui.com/clip-effect/
1504
  */
1505
 
1506
 
@@ -1558,13 +1558,13 @@ var effectClip = $.effects.effect.clip = function( o, done ) {
1558
 
1559
  /*!
1560
  * jQuery UI Effects Drop 1.11.4
1561
- * http://jqueryui.com
1562
  *
1563
  * Copyright jQuery Foundation and other contributors
1564
  * Released under the MIT license.
1565
- * http://jquery.org/license
1566
  *
1567
- * http://api.jqueryui.com/drop-effect/
1568
  */
1569
 
1570
 
@@ -1620,13 +1620,13 @@ var effectDrop = $.effects.effect.drop = function( o, done ) {
1620
 
1621
  /*!
1622
  * jQuery UI Effects Explode 1.11.4
1623
- * http://jqueryui.com
1624
  *
1625
  * Copyright jQuery Foundation and other contributors
1626
  * Released under the MIT license.
1627
- * http://jquery.org/license
1628
  *
1629
- * http://api.jqueryui.com/explode-effect/
1630
  */
1631
 
1632
 
@@ -1714,13 +1714,13 @@ var effectExplode = $.effects.effect.explode = function( o, done ) {
1714
 
1715
  /*!
1716
  * jQuery UI Effects Fade 1.11.4
1717
- * http://jqueryui.com
1718
  *
1719
  * Copyright jQuery Foundation and other contributors
1720
  * Released under the MIT license.
1721
- * http://jquery.org/license
1722
  *
1723
- * http://api.jqueryui.com/fade-effect/
1724
  */
1725
 
1726
 
@@ -1741,13 +1741,13 @@ var effectFade = $.effects.effect.fade = function( o, done ) {
1741
 
1742
  /*!
1743
  * jQuery UI Effects Fold 1.11.4
1744
- * http://jqueryui.com
1745
  *
1746
  * Copyright jQuery Foundation and other contributors
1747
  * Released under the MIT license.
1748
- * http://jquery.org/license
1749
  *
1750
- * http://api.jqueryui.com/fold-effect/
1751
  */
1752
 
1753
 
@@ -1814,13 +1814,13 @@ var effectFold = $.effects.effect.fold = function( o, done ) {
1814
 
1815
  /*!
1816
  * jQuery UI Effects Highlight 1.11.4
1817
- * http://jqueryui.com
1818
  *
1819
  * Copyright jQuery Foundation and other contributors
1820
  * Released under the MIT license.
1821
- * http://jquery.org/license
1822
  *
1823
- * http://api.jqueryui.com/highlight-effect/
1824
  */
1825
 
1826
 
@@ -1861,13 +1861,13 @@ var effectHighlight = $.effects.effect.highlight = function( o, done ) {
1861
 
1862
  /*!
1863
  * jQuery UI Effects Size 1.11.4
1864
- * http://jqueryui.com
1865
  *
1866
  * Copyright jQuery Foundation and other contributors
1867
  * Released under the MIT license.
1868
- * http://jquery.org/license
1869
  *
1870
- * http://api.jqueryui.com/size-effect/
1871
  */
1872
 
1873
 
@@ -2081,13 +2081,13 @@ var effectSize = $.effects.effect.size = function( o, done ) {
2081
 
2082
  /*!
2083
  * jQuery UI Effects Scale 1.11.4
2084
- * http://jqueryui.com
2085
  *
2086
  * Copyright jQuery Foundation and other contributors
2087
  * Released under the MIT license.
2088
- * http://jquery.org/license
2089
  *
2090
- * http://api.jqueryui.com/scale-effect/
2091
  */
2092
 
2093
 
@@ -2156,13 +2156,13 @@ var effectScale = $.effects.effect.scale = function( o, done ) {
2156
 
2157
  /*!
2158
  * jQuery UI Effects Puff 1.11.4
2159
- * http://jqueryui.com
2160
  *
2161
  * Copyright jQuery Foundation and other contributors
2162
  * Released under the MIT license.
2163
- * http://jquery.org/license
2164
  *
2165
- * http://api.jqueryui.com/puff-effect/
2166
  */
2167
 
2168
 
@@ -2202,13 +2202,13 @@ var effectPuff = $.effects.effect.puff = function( o, done ) {
2202
 
2203
  /*!
2204
  * jQuery UI Effects Pulsate 1.11.4
2205
- * http://jqueryui.com
2206
  *
2207
  * Copyright jQuery Foundation and other contributors
2208
  * Released under the MIT license.
2209
- * http://jquery.org/license
2210
  *
2211
- * http://api.jqueryui.com/pulsate-effect/
2212
  */
2213
 
2214
 
@@ -2262,13 +2262,13 @@ var effectPulsate = $.effects.effect.pulsate = function( o, done ) {
2262
 
2263
  /*!
2264
  * jQuery UI Effects Shake 1.11.4
2265
- * http://jqueryui.com
2266
  *
2267
  * Copyright jQuery Foundation and other contributors
2268
  * Released under the MIT license.
2269
- * http://jquery.org/license
2270
  *
2271
- * http://api.jqueryui.com/shake-effect/
2272
  */
2273
 
2274
 
@@ -2333,13 +2333,13 @@ var effectShake = $.effects.effect.shake = function( o, done ) {
2333
 
2334
  /*!
2335
  * jQuery UI Effects Slide 1.11.4
2336
- * http://jqueryui.com
2337
  *
2338
  * Copyright jQuery Foundation and other contributors
2339
  * Released under the MIT license.
2340
- * http://jquery.org/license
2341
  *
2342
- * http://api.jqueryui.com/slide-effect/
2343
  */
2344
 
2345
 
@@ -2394,13 +2394,13 @@ var effectSlide = $.effects.effect.slide = function( o, done ) {
2394
 
2395
  /*!
2396
  * jQuery UI Effects Transfer 1.11.4
2397
- * http://jqueryui.com
2398
  *
2399
  * Copyright jQuery Foundation and other contributors
2400
  * Released under the MIT license.
2401
- * http://jquery.org/license
2402
  *
2403
- * http://api.jqueryui.com/transfer-effect/
2404
  */
2405
 
2406
 
1
  /*! jQuery UI - v1.11.4 - 2015-12-13
2
+ * https://jqueryui.com
3
  * Includes: effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js
4
  * Copyright jQuery Foundation and other contributors; Licensed MIT */
5
 
16
  }(function( $ ) {
17
  /*!
18
  * jQuery UI Effects 1.11.4
19
+ * https://jqueryui.com
20
  *
21
  * Copyright jQuery Foundation and other contributors
22
  * Released under the MIT license.
23
+ * https://jquery.org/license
24
  *
25
+ * https://api.jqueryui.com/category/effects-core/
26
  */
27
 
28
 
42
  *
43
  * Copyright 2014 jQuery Foundation and other contributors
44
  * Released under the MIT license.
45
+ * https://jquery.org/license
46
  *
47
  * Date: Wed Jan 16 08:47:09 2013 -0600
48
  */
928
  if ( set[ i ] !== null ) {
929
  val = element.data( dataSpace + set[ i ] );
930
  // support: jQuery 1.6.2
931
+ // https://bugs.jquery.com/ticket/9917
932
  // jQuery 1.6.2 incorrectly returns undefined for any falsy value.
933
  // We can't differentiate between "" and 0 here, so we just assume
934
  // empty string since it's likely to be a more common value...
1255
 
1256
  (function() {
1257
 
1258
+ // based on easing equations from Robert Penner (https://www.robertpenner.com/easing)
1259
 
1260
  var baseEasings = {};
1261
 
1307
 
1308
  /*!
1309
  * jQuery UI Effects Blind 1.11.4
1310
+ * https://jqueryui.com
1311
  *
1312
  * Copyright jQuery Foundation and other contributors
1313
  * Released under the MIT license.
1314
+ * https://jquery.org/license
1315
  *
1316
+ * https://api.jqueryui.com/blind-effect/
1317
  */
1318
 
1319
 
1384
 
1385
  /*!
1386
  * jQuery UI Effects Bounce 1.11.4
1387
+ * https://jqueryui.com
1388
  *
1389
  * Copyright jQuery Foundation and other contributors
1390
  * Released under the MIT license.
1391
+ * https://jquery.org/license
1392
  *
1393
+ * https://api.jqueryui.com/bounce-effect/
1394
  */
1395
 
1396
 
1494
 
1495
  /*!
1496
  * jQuery UI Effects Clip 1.11.4
1497
+ * https://jqueryui.com
1498
  *
1499
  * Copyright jQuery Foundation and other contributors
1500
  * Released under the MIT license.
1501
+ * https://jquery.org/license
1502
  *
1503
+ * https://api.jqueryui.com/clip-effect/
1504
  */
1505
 
1506
 
1558
 
1559
  /*!
1560
  * jQuery UI Effects Drop 1.11.4
1561
+ * https://jqueryui.com
1562
  *
1563
  * Copyright jQuery Foundation and other contributors
1564
  * Released under the MIT license.
1565
+ * https://jquery.org/license
1566
  *
1567
+ * https://api.jqueryui.com/drop-effect/
1568
  */
1569
 
1570
 
1620
 
1621
  /*!
1622
  * jQuery UI Effects Explode 1.11.4
1623
+ * https://jqueryui.com
1624
  *
1625
  * Copyright jQuery Foundation and other contributors
1626
  * Released under the MIT license.
1627
+ * https://jquery.org/license
1628
  *
1629
+ * https://api.jqueryui.com/explode-effect/
1630
  */
1631
 
1632
 
1714
 
1715
  /*!
1716
  * jQuery UI Effects Fade 1.11.4
1717
+ * https://jqueryui.com
1718
  *
1719
  * Copyright jQuery Foundation and other contributors
1720
  * Released under the MIT license.
1721
+ * https://jquery.org/license
1722
  *
1723
+ * https://api.jqueryui.com/fade-effect/
1724
  */
1725
 
1726
 
1741
 
1742
  /*!
1743
  * jQuery UI Effects Fold 1.11.4
1744
+ * https://jqueryui.com
1745
  *
1746
  * Copyright jQuery Foundation and other contributors
1747
  * Released under the MIT license.
1748
+ * https://jquery.org/license
1749
  *
1750
+ * https://api.jqueryui.com/fold-effect/
1751
  */
1752
 
1753
 
1814
 
1815
  /*!
1816
  * jQuery UI Effects Highlight 1.11.4
1817
+ * https://jqueryui.com
1818
  *
1819
  * Copyright jQuery Foundation and other contributors
1820
  * Released under the MIT license.
1821
+ * https://jquery.org/license
1822
  *
1823
+ * https://api.jqueryui.com/highlight-effect/
1824
  */
1825
 
1826
 
1861
 
1862
  /*!
1863
  * jQuery UI Effects Size 1.11.4
1864
+ * https://jqueryui.com
1865
  *
1866
  * Copyright jQuery Foundation and other contributors
1867
  * Released under the MIT license.
1868
+ * https://jquery.org/license
1869
  *
1870
+ * https://api.jqueryui.com/size-effect/
1871
  */
1872
 
1873
 
2081
 
2082
  /*!
2083
  * jQuery UI Effects Scale 1.11.4
2084
+ * https://jqueryui.com
2085
  *
2086
  * Copyright jQuery Foundation and other contributors
2087
  * Released under the MIT license.
2088
+ * https://jquery.org/license
2089
  *
2090
+ * https://api.jqueryui.com/scale-effect/
2091
  */
2092
 
2093
 
2156
 
2157
  /*!
2158
  * jQuery UI Effects Puff 1.11.4
2159
+ * https://jqueryui.com
2160
  *
2161
  * Copyright jQuery Foundation and other contributors
2162
  * Released under the MIT license.
2163
+ * https://jquery.org/license
2164
  *
2165
+ * https://api.jqueryui.com/puff-effect/
2166
  */
2167
 
2168
 
2202
 
2203
  /*!
2204
  * jQuery UI Effects Pulsate 1.11.4
2205
+ * https://jqueryui.com
2206
  *
2207
  * Copyright jQuery Foundation and other contributors
2208
  * Released under the MIT license.
2209
+ * https://jquery.org/license
2210
  *
2211
+ * https://api.jqueryui.com/pulsate-effect/
2212
  */
2213
 
2214
 
2262
 
2263
  /*!
2264
  * jQuery UI Effects Shake 1.11.4
2265
+ * https://jqueryui.com
2266
  *
2267
  * Copyright jQuery Foundation and other contributors
2268
  * Released under the MIT license.
2269
+ * https://jquery.org/license
2270
  *
2271
+ * https://api.jqueryui.com/shake-effect/
2272
  */
2273
 
2274
 
2333
 
2334
  /*!
2335
  * jQuery UI Effects Slide 1.11.4
2336
+ * https://jqueryui.com
2337
  *
2338
  * Copyright jQuery Foundation and other contributors
2339
  * Released under the MIT license.
2340
+ * https://jquery.org/license
2341
  *
2342
+ * https://api.jqueryui.com/slide-effect/
2343
  */
2344
 
2345
 
2394
 
2395
  /*!
2396
  * jQuery UI Effects Transfer 1.11.4
2397
+ * https://jqueryui.com
2398
  *
2399
  * Copyright jQuery Foundation and other contributors
2400
  * Released under the MIT license.
2401
+ * https://jquery.org/license
2402
  *
2403
+ * https://api.jqueryui.com/transfer-effect/
2404
  */
2405
 
2406