From e31c87c4710ed47b4ecc27f103932fe723bdc46c Mon Sep 17 00:00:00 2001
From: city-unit <140349364+city-unit@users.noreply.github.com>
Date: Mon, 21 Aug 2023 00:43:04 -0400
Subject: [PATCH 01/23] Add a way to see images in an image folder safely.
---
server.js | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/server.js b/server.js
index 62721ad6f..f174fdc4d 100644
--- a/server.js
+++ b/server.js
@@ -2679,6 +2679,18 @@ app.post('/uploadimage', jsonParser, async (request, response) => {
}
});
+app.get('/listimgfiles/:folder', (req, res) => {
+ const directoryPath = path.join(__dirname, 'public/user/images/', req.params.folder);
+ console.log(directoryPath);
+ fs.readdir(directoryPath, (err, files) => {
+ if (err) {
+ return res.status(500).send({ error: "Unable to retrieve files" });
+ }
+ const imgFiles = files.filter(file => ['.jpg', '.jpeg', '.png', '.gif'].includes(path.extname(file)));
+ res.send(imgFiles);
+ });
+});
+
app.post('/getgroups', jsonParser, (_, response) => {
const groups = [];
From ba8997beeaea40b689319c2baad608ed0d4079a3 Mon Sep 17 00:00:00 2001
From: city-unit <140349364+city-unit@users.noreply.github.com>
Date: Mon, 21 Aug 2023 00:43:41 -0400
Subject: [PATCH 02/23] Emit an event if nothing happens so we can use other
things here.
---
public/script.js | 2 ++
1 file changed, 2 insertions(+)
diff --git a/public/script.js b/public/script.js
index e2aa3da72..5c7bacb31 100644
--- a/public/script.js
+++ b/public/script.js
@@ -9028,6 +9028,8 @@ $(document).ready(function () {
OF THE CHARACTER'S CHAT FILES.
`
);
break;*/
+ default:
+ eventSource.emit('charManagementDropdown', target);
}
$("#char-management-dropdown").prop('selectedIndex', 0);
});
From bbc476b8399c14312f86e5d616617a006ea1efc7 Mon Sep 17 00:00:00 2001
From: city-unit <140349364+city-unit@users.noreply.github.com>
Date: Mon, 21 Aug 2023 00:44:18 -0400
Subject: [PATCH 03/23] Add gallery libs (can move to libs)
---
public/scripts/extensions/gallery/nanogallery2.min.css | 2 ++
public/scripts/extensions/gallery/nanogallery2.woff.min.css | 1 +
2 files changed, 3 insertions(+)
create mode 100644 public/scripts/extensions/gallery/nanogallery2.min.css
create mode 100644 public/scripts/extensions/gallery/nanogallery2.woff.min.css
diff --git a/public/scripts/extensions/gallery/nanogallery2.min.css b/public/scripts/extensions/gallery/nanogallery2.min.css
new file mode 100644
index 000000000..74e356835
--- /dev/null
+++ b/public/scripts/extensions/gallery/nanogallery2.min.css
@@ -0,0 +1,2 @@
+/* nanogallery2 - v3.0.5 - 2021-02-26 */
+.nGY2{box-sizing:content-box;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;-o-box-sizing:content-box}.nGY2 .ngy2_container{width:100%;min-width:100px;font-size:1em;line-height:normal;padding:0;margin:0 auto;overflow:hidden;visibility:visible;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.nGY2_body_scrollbar{overflow:hidden}@font-face{font-family:ngy2_icon_font;src:url(font/ngy2_icon_font.woff2?64889571) format('woff2'),url(font/ngy2_icon_font.woff?64889571) format('woff');font-weight:400;font-style:normal}.nGY2Icon-star:before{content:'\e801'}.nGY2Icon-search:before{content:'\e800'}.nGY2Icon-star-empty:before{content:'\e802'}.nGY2Icon-video:before{content:'\e803'}.nGY2Icon-videocam:before{content:'\e804'}.nGY2Icon-picture:before{content:'\e805'}.nGY2Icon-camera:before{content:'\e806'}.nGY2Icon-camera-alt:before{content:'\e807'}.nGY2Icon-ok:before{content:'\e808'}.nGY2Icon-help:before{content:'\e80a'}.nGY2Icon-help-circled:before{content:'\e80b'}.nGY2Icon-home:before{content:'\e80e'}.nGY2Icon-link:before{content:'\e80f'}.nGY2Icon-link-ext:before{content:'\e810'}.nGY2Icon-heart:before{content:'\e811'}.nGY2Icon-ngy2_chevron-right:before{content:'\e812'}.nGY2Icon-upload:before{content:'\e814'}.nGY2Icon-reply-all:before{content:'\e815'}.nGY2Icon-export:before{content:'\e816'}.nGY2Icon-chat:before{content:'\e818'}.nGY2Icon-attention:before{content:'\e819'}.nGY2Icon-location:before{content:'\e81a'}.nGY2Icon-trash:before{content:'\e81b'}.nGY2Icon-folder-empty:before{content:'\e81c'}.nGY2Icon-folder-open-empty:before{content:'\e81d'}.nGY2Icon-menu:before{content:'\e81e'}.nGY2Icon-cog:before{content:'\e81f'}.nGY2Icon-cog-alt:before{content:'\e820'}.nGY2Icon-wrench:before{content:'\e821'}.nGY2Icon-lightbulb:before{content:'\e822'}.nGY2Icon-resize-full:before{content:'\e823'}.nGY2Icon-resize-small:before{content:'\e824'}.nGY2Icon-left-open:before{content:'\e827'}.nGY2Icon-right-open:before{content:'\e828'}.nGY2Icon-arrows-cw:before{content:'\e829'}.nGY2Icon-level-up:before{content:'\e82a'}.nGY2Icon-play:before{content:'\e82b'}.nGY2Icon-pause:before{content:'\e82c'}.nGY2Icon-ngy2_chevron-left:before{content:'\e82d'}.nGY2Icon-ellipsis-vert:before{content:'\e82e'}.nGY2Icon-toggle-off:before{content:'\e82f'}.nGY2Icon-toggle-on:before{content:'\e830'}.nGY2Icon-check:before{content:'\e831'}.nGY2Icon-check-empty:before{content:'\e832'}.nGY2Icon-rocket:before{content:'\e833'}.nGY2Icon-filter:before{content:'\e834'}.nGY2Icon-magic:before{content:'\e835'}.nGY2Icon-pinterest-squared:before{content:'\e836'}.nGY2Icon-gplus-squared:before{content:'\e837'}.nGY2Icon-facebook-squared:before{content:'\e838'}.nGY2Icon-basket:before{content:'\e839'}.nGY2Icon-ok-circled:before{content:'\e83a'}.nGY2Icon-user:before{content:'\e83b'}.nGY2Icon-ngy2_chevron_left3:before{content:'\e83c'}.nGY2Icon-ngy2_chevron_right3:before{content:'\e83d'}.nGY2Icon-zoom-out-1:before{content:'\e83e'}.nGY2Icon-ngy2_zoom_out2:before{content:'\e83f'}.nGY2Icon-ngy2_zoom_in2:before{content:'\e840'}.nGY2Icon-ngy2_share2:before{content:'\e841'}.nGY2Icon-ngy2_external2:before{content:'\e842'}.nGY2Icon-ngy2_close2:before{content:'\e843'}.nGY2Icon-ngy2_info2:before{content:'\e844'}.nGY2Icon-ngy2_chevron_up2:before{content:'\e845'}.nGY2Icon-ngy2_download2:before{content:'\e846'}.nGY2Icon-mail-alt:before{content:'\f0e0'}.nGY2Icon-circle-empty:before{content:'\f10c'}.nGY2Icon-tumblr-squared:before{content:'\f174'}.nGY2Icon-twitter-squared:before{content:'\f304'}.nGY2Icon-youtube-play:before{content:'\f16a'}.nGY2Icon-vkontakte:before{content:'\f189'}.nGY2Icon-cw:before{content:'\e809'}.nGY2Icon-ccw:before{content:'\e80c'}[class^=nGY2Icon-]{margin-left:.2em;margin-right:.3em;font-family:ngy2_icon_font;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;text-align:center;font-variant:normal;text-transform:none;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2Navigationbar{margin:5px 0;padding:5px 0;display:none;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2Navigationbar .nGY2NavigationbarItem{margin:5px 2px;padding:8px 10px;white-space:nowrap;cursor:pointer;display:inline-block;vertical-align:middle;text-align:left;visibility:'hidden';box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2Navigationbar .oneItem{margin:0 5px;white-space:nowrap;vertical-align:middle;display:inline-block}.nGY2 .nGY2Gallery{position:relative;text-align:center;margin:0 auto;overflow:hidden;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GallerySub{perspective:900px;text-align:left;position:relative;width:100%;height:100%;overflow:hidden;display:inline-block;z-index:1;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnail,.nGY2 .nGY2GThumbnailStack{display:inline-block;position:absolute;box-sizing:border-box;border:0 solid #000;padding:0;overflow:hidden;cursor:pointer}.nGY2 .nGY2GThumbnail{background-color:#000;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailStack{background-color:#888;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailSub{width:100%;height:100%;display:block;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box;border:0 solid #000;margin:0;padding:0;overflow:hidden}.nGY2 .nGY2GThumbnailSubSelected{-webkit-transform:scale(.9);-ms-transform:scale(.9);transform:scale(.9)}.nGY2 .nGY2GThumbnailImage{position:relative;overflow:hidden;background:#000;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailImg{background:url(data:image/gif;base64,R0lGODlhEAAQAIAAAP///////yH5BAEKAAEALAAAAAAQABAAAAIOjI+py+0Po5y02ouzPgUAOw==) center no-repeat;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;display:block;vertical-align:bottom;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailAnnotationOLD_NO_MORE_USED{background:rgba(34,34,34,.75);opacity:1;text-align:left;left:0;right:0;padding:1px;position:absolute;min-height:18px;overflow:hidden;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailCustomLayer{position:absolute;display:block;top:0;bottom:0;left:0;right:0;overflow:hidden;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailLabel{display:block;background:rgba(34,34,34,.75);left:0;right:0;padding:4px;margin:0;position:absolute;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailAlbumTitle,.nGY2 .nGY2GThumbnailDescription,.nGY2 .nGY2GThumbnailImageTitle{left:0;box-sizing:border-box;padding:0;Text-Shadow:#000 1px 0 0,#000 1px 1px 0,#000 1px -1px 0,#000 -1px 1px 0,#000 -1px 0 0,#000 -1px -1px 0,#000 0 1px 0,#000 0 -1px 0;right:0}.nGY2 .nGY2GThumbnailAlbumTitle,.nGY2 .nGY2GThumbnailImageTitle{color:#fff;margin:5px 1px 1px;white-space:nowrap;overflow:hidden;display:inline-block;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailDescription{clear:both;margin:1px 1px 3px;color:#aaa;white-space:nowrap;font-size:.8em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailIcons{margin:0;position:absolute;display:inline-block;padding:0;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailIconsFullThumbnail{font-size:1.8em;color:#fff;Text-Shadow:#000 1px 0 0,#000 1px 1px 0,#000 1px -1px 0,#000 -1px 1px 0,#000 -1px 0 0,#000 -1px -1px 0,#000 0 1px 0,#000 0 -1px 0;padding:5px;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);display:inline-block;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailIconText,.nGY2 .nGY2GThumbnailIconTextBadge{position:relative;display:inline-block;margin:0;vertical-align:middle}.nGY2 .nGY2GThumbnailIcon{display:inline-block;padding:4px;margin:0;color:#fff;Text-Shadow:#000 1px 0 0,#000 1px 1px 0,#000 1px -1px 0,#000 -1px 1px 0,#000 -1px 0 0,#000 -1px -1px 0,#000 0 1px 0,#000 0 -1px 0;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailIconTextBadge{background-color:#fff;border-radius:6px;-moz-border-radius:6px;-webkit-border-radius:6px;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailIconText{box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailAlbumUp i{position:absolute;top:50%;left:50%;margin:0;-webkit-transform:translateY(-50%) translateX(-50%);-ms-transform:translateY(-50%) translateX(-50%);transform:translateY(-50%) translateX(-50%)}.nGY2 .nGY2GThumbnailAlbumUp{color:#eee;font-size:1.2em;top:0;bottom:0;left:0;right:0;display:table;width:100%;text-align:center;position:absolute;margin:auto;padding:0;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailLoaderDisplayed:after,.nGY2 .nGY2GThumbnailLoaderDisplayed:before{display:block;position:absolute;border-style:solid;margin:auto;top:0;left:0;bottom:0;right:0;content:"";border-radius:50%}.nGY2 .nGY2GThumbnailLoaderDisplayed{visibility:visible;opacity:.8;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;zoom:1;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none;width:40px;height:40px}.nGY2 .nGY2GThumbnailLoaderDisplayed:before{border-width:7px;width:24px;height:24px;animation:nGY2-thumbnail-spinner-rotate-animation 1s linear 0s infinite;border-color:#888 #000 #000 #888}.nGY2 .nGY2GThumbnailLoaderDisplayed:after{border-width:4px;width:16px;height:16px;animation:nGY2-thumbnail-spinner-anti-rotate-animation .8s linear 0s infinite;border-color:#666 #111 #111 #666}@keyframes nGY2-thumbnail-spinner-rotate-animation{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes nGY2-thumbnail-spinner-anti-rotate-animation{0%{transform:rotate(0)}100%{transform:rotate(-360deg)}}.nGY2 .nGY2GalleryBottom{margin:0;padding:0;text-align:center;position:relative;overflow:hidden;white-space:nowrap}.nGY2 .nGY2GalleryMoreButton,.nGY2 .nGY2GalleryMoreButtonAnnotation,.nGY2 .nGY2GalleryPagination,.nGY2 .nGY2GalleryPaginationDot{margin:10px auto 5px;text-align:center;position:relative;white-space:nowrap;overflow:hidden}.nGY2 .nGY2GalleryMoreButton{padding:4px;display:inline-block;cursor:pointer}.nGY2 .nGY2GalleryMoreButtonAnnotation{border:1px solid #fff;padding:8px 20px;display:inline-block}.nGY2 .nGY2GalleryPagination,.nGY2 .nGY2GalleryPaginationDot{padding:4px}.nGY2 .nGY2PaginationNext,.nGY2 .nGY2PaginationPrev,.nGY2 .nGY2paginationItem,.nGY2 .nGY2paginationItemCurrentPage{margin:10px 4px;padding:5px 8px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;background:#111;white-space:nowrap;cursor:pointer;vertical-align:middle;display:inline-block}.nGY2 .nGY2paginationItemCurrentPage{background:#333}.nGY2 .nGY2paginationDot,.nGY2 .nGY2paginationDotCurrentPage{width:16px;height:16px;border:2px solid #fff;background:#444;border-radius:50%;margin:12px 5px;white-space:nowrap;cursor:pointer;vertical-align:middle;display:inline-block;opacity:.5}.nGY2 .nGY2paginationDotCurrentPage{background:#fff;opacity:1}.nGY2 .nGY2paginationRectangle,.nGY2 .nGY2paginationRectangleCurrentPage{width:30px;border:1px solid #fff;height:0;background:#444;margin:5px 1px;white-space:nowrap;cursor:pointer;vertical-align:middle;display:inline-block;opacity:.5}.nGY2 .nGY2paginationRectangleCurrentPage{background:#fff;opacity:1}.nGY2Popup{position:fixed;color:#000;top:0;left:0;bottom:0;right:0;background:rgba(0,0,0,.5)}.nGY2PopupContent,.nGY2PopupContentCenter,.nGY2PopupContentLeft,.nGY2PopupContentRight{position:fixed;text-align:left;top:50%;left:50%;padding:15px 30px;height:auto;width:50%;background:#fff;-webkit-transform:translateX(-50%) translateY(-50%);-moz-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}@media screen and (max-width:992px){.nGY2PopupContent,.nGY2PopupContentCenter,.nGY2PopupContentLeft,.nGY2PopupContentRight{width:95%;padding:5px 10px}}.nGY2 .nGY2Viewer,.nGY2 .nGY2ViewerContainer{top:0;height:100%;width:100%;left:0;position:fixed}.nGY2PopupContentCenter{text-align:center}.nGY2PopupTitle{font-size:1.5em;border-bottom:4px solid #888;padding:0 0 5px;margin-bottom:10px}.nGY2PopupCloseButton{font-size:1.5em;cursor:pointer;text-align:right}.nGY2PopupOneItem{padding:10px;font-size:2em;cursor:pointer;display:inline-block}.nGY2PopupOneItemText{padding:10px;font-size:1.2em;cursor:pointer;display:block}.nGY2PortInfo{padding:3px!important;font-size:14px!important;color:#FF0075!important;text-align:center!important;z-index:0!important;text-transform:lowercase!important;cursor:pointer!important}.nGY2PortInfo a,.nGY2PortInfo a:active,.nGY2PortInfo a:hover,.nGY2PortInfo>a:link,.nGY2PortInfo>a:visited{color:#FF0075!important;text-decoration:none!important}.nGY2 .nGY2ViewerContainer{opacity:0}.nGY2 .nGY2Viewer{display:block;visibility:visible;opacity:1;background-color:rgba(1,1,1,.85);text-align:center;clear:both;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none}.nGY2 .nGY2ViewerLogo{text-align:center;float:left;position:relative;top:50px;left:5px;padding:2px;background:url(nanogallery2_logo.png) center no-repeat;display:block;height:74px;width:147px}.nGY2 .nGY2ViewerContent{min-width:40px;min-height:40px;position:absolute;clear:both;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box;overflow:hidden}.nGY2 .nGY2ViewerMediaPan{transform-origin:50% 50% 0;visibility:visible;opacity:1;position:absolute;display:inline-block;padding:0;top:0;bottom:0;left:0;right:0;margin:auto;zoom:1;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2ViewerMedia,.nGY2 .nGY2ViewerMediaLoaderHidden{visibility:visible;bottom:0;margin:auto;zoom:1;box-sizing:border-box;left:0;right:0}.nGY2 .nGY2ViewerMedia{max-width:none;opacity:1;will-change:transform;transform:translateZ(0);position:absolute;top:0;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none;pointer-events:none;padding:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 iframe.nGY2ViewerMedia,.nGY2 video.nGY2ViewerMedia{pointer-events:auto}.nGY2 .nGY2ViewerMediaLoaderDisplayed{visibility:visible;opacity:1;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;zoom:1;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none;width:50px;height:50px}.nGY2 .nGY2ViewerMediaLoaderDisplayed:before{top:0;bottom:0;left:0;right:0;margin:auto;content:"";display:block;position:absolute;border-width:7px;border-style:solid;border-radius:50%;width:38px;height:38px;animation:nGY2-spinner-rotate-animation 1s linear 0s infinite;border-color:#444 #23CB99 #23CB99 #444}.nGY2 .nGY2ViewerMediaLoaderDisplayed:after{content:"";display:block;position:absolute;border-width:4px;border-style:solid;border-radius:50%;width:24px;height:24px;top:0;bottom:0;left:0;right:0;margin:auto;animation:nGY2-spinner-anti-rotate-animation .85s linear 0s infinite;border-color:#333 #23CB99 #23CB99 #333}@keyframes nGY2-spinner-rotate-animation{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes nGY2-spinner-anti-rotate-animation{0%{transform:rotate(0)}100%{transform:rotate(-360deg)}}.nGY2 .nGY2ViewerMediaLoaderHidden{opacity:0;position:absolute;top:0;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none;background-image:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2ViewerAreaNext>i,.nGY2 .nGY2ViewerAreaPrevious>i{font-weight:700!important;font-size:2em;Text-Shadow:#000 1px 0 0,#000 1px 1px 0,#000 1px -1px 0,#000 -1px 1px 0,#000 -1px 0 0,#000 -1px -1px 0,#000 0 1px 0,#000 0 -1px 0;background:rgba(0,0,0,.2)}.nGY2 .nGY2ViewerContent .imgCurrent{cursor:pointer}.nGY2 .nGY2ViewerAreaPrevious{color:#fff;display:block;position:absolute;top:50%;padding:10px 0 10px 5px;margin-top:-25px;left:0;text-align:left;cursor:pointer;opacity:1;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none;transition:all .2s ease;-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-o-transition:all .2s ease}.nGY2 .nGY2ViewerAreaPrevious>i{margin:0!important}.nGY2 .nGY2ViewerAreaNext{color:#fff;display:block;position:absolute;top:50%;padding:10px 5px 10px 0;margin-top:-25px;right:0;text-align:right;cursor:pointer;opacity:1;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none;transition:all .2s ease;-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-o-transition:all .2s ease}.nGY2 .nGY2ViewerToolsTopLeft,.nGY2 .nGY2ViewerToolsTopRight{top:5px;position:absolute;text-shadow:-1px -1px 0 #444,1px -1px 0 #444,-1px 1px 0 #444,1px 1px 0 #444;opacity:1;cursor:pointer}.nGY2 .nGY2ViewerAreaNext>i{margin:0!important}.nGY2 .toolbarContainer{left:0;right:0;text-align:center;display:inline-block;position:absolute;width:100%}.nGY2 .toolbar{display:inline-block;vertical-align:middle;overflow:hidden;padding:2px 0;margin:1px}.nGY2 .toolbar .label,.nGY2 .toolbar .ngbt,.nGY2 .toolbar .pageCounter{display:table-cell;vertical-align:middle}.nGY2 .toolbarBackground{background:rgba(4,4,4,.7)}.nGY2 .nGY2ViewerToolsTopLeft{color:#ddd;left:5px;transition:all .2s ease;-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-o-transition:all .2s ease}.nGY2 .nGY2ViewerToolsTopRight{color:#ddd;right:5px;transition:all .2s ease;-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-o-transition:all .2s ease}.nGY2 .toolbar .ngbt{font-size:1.2em;cursor:pointer;padding:2px 8px}.nGY2 .ngy2viewerToolAction{opacity:1}.nGY2 .ngy2viewerToolAction:hover{opacity:.8}.nGY2 .toolbar .pageCounter{font-size:1.2em;margin:auto;overflow:hidden}.nGY2 .toolbar .label{padding:3px 10px;border-left:0 solid #000;overflow:hidden;text-align:left;font-size:1em;background-color:initial}.nGY2 .toolbar .label .title{font-size:1.2em;margin:auto;vertical-align:middle;overflow:hidden}.nGY2 .toolbar .label .description{font-size:.9em;display:table-row;vertical-align:middle;overflow:hidden;color:#eee}.nGY2 .nGY2viewerGallery{overflow:hidden;position:fixed;display:none;opacity:0;bottom:5px}.nGY2 .nGY2viewerGallery .nGY2VThumbnailContainer{overflow:hidden;display:inline-block;position:absolute;top:0}.nGY2 .nGY2viewerGallery .nGY2VThumbnail{top:0;padding:0;border:1px solid #888;position:absolute;opacity:1;background-position:center center;background-repeat:no-repeat;background-size:cover;overflow:hidden}.nGY2 .nGY2viewerGallery .activeVThumbnail{border:2px solid #fff}.nGY2ConsoleParent{visibility:hidden;height:0;background:#111;color:#e00;padding:0;margin:2px}.nGY2ConsoleParent p{color:#e00;padding:1px;margin:0}.nGY2 .nanoGalleryLBar,.nGY2 .nanoGalleryLBarOff{position:relative;width:100%;margin:0 0 1px;background-color:#556;height:2px}.nGY2.unselectable{-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;user-select:none}.nGY2 .nanoGalleryLBarOff{visibility:hidden}.nGY2 .nanoGalleryLBar{visibility:visible}.nGY2 .nanoGalleryLBar>div{position:absolute;width:50px;height:2px;top:0;opacity:.7}.nGY2 .nanoGalleryLBar>div:nth-child(1){-webkit-animation:nanoGalleryLBarAnim 2s -.2s infinite cubic-bezier(0,.6,.9,0);-moz-animation:nanoGalleryLBarAnim 2s -.2s infinite cubic-bezier(0,.6,.9,0);-ms-animation:nanoGalleryLBarAnim 2s -.2s infinite cubic-bezier(0,.6,.9,0);-o-animation:nanoGalleryLBarAnim 2s -.2s infinite cubic-bezier(0,.6,.9,0);animation:nanoGalleryLBarAnim 2s -.2s infinite cubic-bezier(0,.6,.9,0);background:#111}.nGY2 .nanoGalleryLBar>div:nth-child(2){-webkit-animation:nanoGalleryLBarAnim 2s -.4s infinite cubic-bezier(0,.6,.9,0);-moz-animation:nanoGalleryLBarAnim 2s -.4s infinite cubic-bezier(0,.6,.9,0);-ms-animation:nanoGalleryLBarAnim 2s -.4s infinite cubic-bezier(0,.6,.9,0);-o-animation:nanoGalleryLBarAnim 2s -.4s infinite cubic-bezier(0,.6,.9,0);animation:nanoGalleryLBarAnim 2s -.4s infinite cubic-bezier(0,.6,.9,0);background:#333}.nGY2 .nanoGalleryLBar>div:nth-child(3){-webkit-animation:nanoGalleryLBarAnim 2s -.6s infinite cubic-bezier(0,.6,.9,0);-moz-animation:nanoGalleryLBarAnim 2s -.6s infinite cubic-bezier(0,.6,.9,0);-ms-animation:nanoGalleryLBarAnim 2s -.6s infinite cubic-bezier(0,.6,.9,0);-o-animation:nanoGalleryLBarAnim 2s -.6s infinite cubic-bezier(0,.6,.9,0);animation:nanoGalleryLBarAnim 2s -.6s infinite cubic-bezier(0,.6,.9,0);background:#ccd}.nGY2 .nanoGalleryLBar>div:nth-child(4){-webkit-animation:nanoGalleryLBarAnim 2s -.8s infinite cubic-bezier(0,.6,.9,0);-moz-animation:nanoGalleryLBarAnim 2s -.8s infinite cubic-bezier(0,.6,.9,0);-ms-animation:nanoGalleryLBarAnim 2s -.8s infinite cubic-bezier(0,.6,.9,0);-o-animation:nanoGalleryLBarAnim 2s -.8s infinite cubic-bezier(0,.6,.9,0);animation:nanoGalleryLBarAnim 2s -.8s infinite cubic-bezier(0,.6,.9,0);background:#777}.nGY2 .nanoGalleryLBar>div:nth-child(5){-webkit-animation:nanoGalleryLBarAnim 2s -1s infinite cubic-bezier(0,.6,.9,0);-moz-animation:nanoGalleryLBarAnim 2s -1s infinite cubic-bezier(0,.6,.9,0);-ms-animation:nanoGalleryLBarAnim 2s -1s infinite cubic-bezier(0,.6,.9,0);-o-animation:nanoGalleryLBarAnim 2s -1s infinite cubic-bezier(0,.6,.9,0);animation:nanoGalleryLBarAnim 2s -1s infinite cubic-bezier(0,.6,.9,0);background:#ddd}@-webkit-keyframes nanoGalleryLBarAnim{0%{left:10%}100%{left:90%}}@-moz-keyframes nanoGalleryLBarAnim{0%{left:10%}100%{left:90%}}@-ms-keyframes nanoGalleryLBarAnim{0%{left:10%}100%{left:90%}}@-o-keyframes nanoGalleryLBarAnim{0%{left:10%}100%{left:90%}}@keyframes nanoGalleryLBarAnim{0%{left:10%}100%{left:90%}}.NGY2ThumbnailLightbox{cursor:pointer}
\ No newline at end of file
diff --git a/public/scripts/extensions/gallery/nanogallery2.woff.min.css b/public/scripts/extensions/gallery/nanogallery2.woff.min.css
new file mode 100644
index 000000000..558be6524
--- /dev/null
+++ b/public/scripts/extensions/gallery/nanogallery2.woff.min.css
@@ -0,0 +1 @@
+.nGY2{box-sizing:content-box;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;-o-box-sizing:content-box}.nGY2 .ngy2_container{width:100%;min-width:100px;font-size:1em;line-height:normal;padding:0;margin:0 auto;overflow:hidden;visibility:visible;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.nGY2_body_scrollbar{overflow:hidden}@font-face{font-family:ngy2_icon_font;src:url(data:application/font-woff2;charset=utf-8;base64,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) format('woff2'),url(data:application/font-woff;charset=utf-8;base64,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) format('woff');font-weight:400;font-style:normal}.nGY2Icon-star:before{content:'\e801'}.nGY2Icon-search:before{content:'\e800'}.nGY2Icon-star-empty:before{content:'\e802'}.nGY2Icon-video:before{content:'\e803'}.nGY2Icon-videocam:before{content:'\e804'}.nGY2Icon-picture:before{content:'\e805'}.nGY2Icon-camera:before{content:'\e806'}.nGY2Icon-camera-alt:before{content:'\e807'}.nGY2Icon-ok:before{content:'\e808'}.nGY2Icon-help:before{content:'\e80a'}.nGY2Icon-help-circled:before{content:'\e80b'}.nGY2Icon-home:before{content:'\e80e'}.nGY2Icon-link:before{content:'\e80f'}.nGY2Icon-link-ext:before{content:'\e810'}.nGY2Icon-heart:before{content:'\e811'}.nGY2Icon-ngy2_chevron-right:before{content:'\e812'}.nGY2Icon-upload:before{content:'\e814'}.nGY2Icon-reply-all:before{content:'\e815'}.nGY2Icon-export:before{content:'\e816'}.nGY2Icon-chat:before{content:'\e818'}.nGY2Icon-attention:before{content:'\e819'}.nGY2Icon-location:before{content:'\e81a'}.nGY2Icon-trash:before{content:'\e81b'}.nGY2Icon-folder-empty:before{content:'\e81c'}.nGY2Icon-folder-open-empty:before{content:'\e81d'}.nGY2Icon-menu:before{content:'\e81e'}.nGY2Icon-cog:before{content:'\e81f'}.nGY2Icon-cog-alt:before{content:'\e820'}.nGY2Icon-wrench:before{content:'\e821'}.nGY2Icon-lightbulb:before{content:'\e822'}.nGY2Icon-resize-full:before{content:'\e823'}.nGY2Icon-resize-small:before{content:'\e824'}.nGY2Icon-left-open:before{content:'\e827'}.nGY2Icon-right-open:before{content:'\e828'}.nGY2Icon-arrows-cw:before{content:'\e829'}.nGY2Icon-level-up:before{content:'\e82a'}.nGY2Icon-play:before{content:'\e82b'}.nGY2Icon-pause:before{content:'\e82c'}.nGY2Icon-ngy2_chevron-left:before{content:'\e82d'}.nGY2Icon-ellipsis-vert:before{content:'\e82e'}.nGY2Icon-toggle-off:before{content:'\e82f'}.nGY2Icon-toggle-on:before{content:'\e830'}.nGY2Icon-check:before{content:'\e831'}.nGY2Icon-check-empty:before{content:'\e832'}.nGY2Icon-rocket:before{content:'\e833'}.nGY2Icon-filter:before{content:'\e834'}.nGY2Icon-magic:before{content:'\e835'}.nGY2Icon-pinterest-squared:before{content:'\e836'}.nGY2Icon-gplus-squared:before{content:'\e837'}.nGY2Icon-facebook-squared:before{content:'\e838'}.nGY2Icon-basket:before{content:'\e839'}.nGY2Icon-ok-circled:before{content:'\e83a'}.nGY2Icon-user:before{content:'\e83b'}.nGY2Icon-ngy2_chevron_left3:before{content:'\e83c'}.nGY2Icon-ngy2_chevron_right3:before{content:'\e83d'}.nGY2Icon-zoom-out-1:before{content:'\e83e'}.nGY2Icon-ngy2_zoom_out2:before{content:'\e83f'}.nGY2Icon-ngy2_zoom_in2:before{content:'\e840'}.nGY2Icon-ngy2_share2:before{content:'\e841'}.nGY2Icon-ngy2_external2:before{content:'\e842'}.nGY2Icon-ngy2_close2:before{content:'\e843'}.nGY2Icon-ngy2_info2:before{content:'\e844'}.nGY2Icon-ngy2_chevron_up2:before{content:'\e845'}.nGY2Icon-ngy2_download2:before{content:'\e846'}.nGY2Icon-mail-alt:before{content:'\f0e0'}.nGY2Icon-circle-empty:before{content:'\f10c'}.nGY2Icon-tumblr-squared:before{content:'\f174'}.nGY2Icon-twitter-squared:before{content:'\f304'}.nGY2Icon-youtube-play:before{content:'\f16a'}.nGY2Icon-vkontakte:before{content:'\f189'}.nGY2Icon-cw:before{content:'\e809'}.nGY2Icon-ccw:before{content:'\e80c'}[class^=nGY2Icon-]{margin-left:.2em;margin-right:.3em;font-family:ngy2_icon_font;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;text-align:center;font-variant:normal;text-transform:none;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2Navigationbar{margin:5px 0;padding:5px 0;display:none;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2Navigationbar .nGY2NavigationbarItem{margin:5px 2px;padding:8px 10px;white-space:nowrap;cursor:pointer;display:inline-block;vertical-align:middle;text-align:left;visibility:'hidden';box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2Navigationbar .oneItem{margin:0 5px;white-space:nowrap;vertical-align:middle;display:inline-block}.nGY2 .nGY2Gallery{position:relative;text-align:center;margin:0 auto;overflow:hidden;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GallerySub{perspective:900px;text-align:left;position:relative;width:100%;height:100%;overflow:hidden;display:inline-block;z-index:1;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnail,.nGY2 .nGY2GThumbnailStack{display:inline-block;position:absolute;box-sizing:border-box;border:0 solid #000;padding:0;overflow:hidden;cursor:pointer}.nGY2 .nGY2GThumbnail{background-color:#000;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailStack{background-color:#888;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailSub{width:100%;height:100%;display:block;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box;border:0 solid #000;margin:0;padding:0;overflow:hidden}.nGY2 .nGY2GThumbnailSubSelected{-webkit-transform:scale(.9);-ms-transform:scale(.9);transform:scale(.9)}.nGY2 .nGY2GThumbnailImage{position:relative;overflow:hidden;background:#000;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailImg{background:url(data:image/gif;base64,R0lGODlhEAAQAIAAAP///////yH5BAEKAAEALAAAAAAQABAAAAIOjI+py+0Po5y02ouzPgUAOw==) center no-repeat;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;display:block;vertical-align:bottom;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailAnnotationOLD_NO_MORE_USED{background:rgba(34,34,34,.75);opacity:1;text-align:left;left:0;right:0;padding:1px;position:absolute;min-height:18px;overflow:hidden;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailCustomLayer{position:absolute;display:block;top:0;bottom:0;left:0;right:0;overflow:hidden;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailLabel{display:block;background:rgba(34,34,34,.75);left:0;right:0;padding:4px;margin:0;position:absolute;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailAlbumTitle,.nGY2 .nGY2GThumbnailDescription,.nGY2 .nGY2GThumbnailImageTitle{left:0;box-sizing:border-box;padding:0;Text-Shadow:#000 1px 0 0,#000 1px 1px 0,#000 1px -1px 0,#000 -1px 1px 0,#000 -1px 0 0,#000 -1px -1px 0,#000 0 1px 0,#000 0 -1px 0;right:0}.nGY2 .nGY2GThumbnailAlbumTitle,.nGY2 .nGY2GThumbnailImageTitle{color:#fff;margin:5px 1px 1px;white-space:nowrap;overflow:hidden;display:inline-block;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailDescription{clear:both;margin:1px 1px 3px;color:#aaa;white-space:nowrap;font-size:.8em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailIcons{margin:0;position:absolute;display:inline-block;padding:0;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailIconsFullThumbnail{font-size:1.8em;color:#fff;Text-Shadow:#000 1px 0 0,#000 1px 1px 0,#000 1px -1px 0,#000 -1px 1px 0,#000 -1px 0 0,#000 -1px -1px 0,#000 0 1px 0,#000 0 -1px 0;padding:5px;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);display:inline-block;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailIconText,.nGY2 .nGY2GThumbnailIconTextBadge{position:relative;display:inline-block;margin:0;vertical-align:middle}.nGY2 .nGY2GThumbnailIcon{display:inline-block;padding:4px;margin:0;color:#fff;Text-Shadow:#000 1px 0 0,#000 1px 1px 0,#000 1px -1px 0,#000 -1px 1px 0,#000 -1px 0 0,#000 -1px -1px 0,#000 0 1px 0,#000 0 -1px 0;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailIconTextBadge{background-color:#fff;border-radius:6px;-moz-border-radius:6px;-webkit-border-radius:6px;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailIconText{box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailAlbumUp i{position:absolute;top:50%;left:50%;margin:0;-webkit-transform:translateY(-50%) translateX(-50%);-ms-transform:translateY(-50%) translateX(-50%);transform:translateY(-50%) translateX(-50%)}.nGY2 .nGY2GThumbnailAlbumUp{color:#eee;font-size:1.2em;top:0;bottom:0;left:0;right:0;display:table;width:100%;text-align:center;position:absolute;margin:auto;padding:0;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2GThumbnailLoaderDisplayed:after,.nGY2 .nGY2GThumbnailLoaderDisplayed:before{display:block;position:absolute;border-style:solid;margin:auto;top:0;left:0;bottom:0;right:0;content:"";border-radius:50%}.nGY2 .nGY2GThumbnailLoaderDisplayed{visibility:visible;opacity:.8;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;zoom:1;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none;width:40px;height:40px}.nGY2 .nGY2GThumbnailLoaderDisplayed:before{border-width:7px;width:24px;height:24px;animation:nGY2-thumbnail-spinner-rotate-animation 1s linear 0s infinite;border-color:#888 #000 #000 #888}.nGY2 .nGY2GThumbnailLoaderDisplayed:after{border-width:4px;width:16px;height:16px;animation:nGY2-thumbnail-spinner-anti-rotate-animation .8s linear 0s infinite;border-color:#666 #111 #111 #666}@keyframes nGY2-thumbnail-spinner-rotate-animation{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes nGY2-thumbnail-spinner-anti-rotate-animation{0%{transform:rotate(0)}100%{transform:rotate(-360deg)}}.nGY2 .nGY2GalleryBottom{margin:0;padding:0;text-align:center;position:relative;overflow:hidden;white-space:nowrap}.nGY2 .nGY2GalleryMoreButton,.nGY2 .nGY2GalleryMoreButtonAnnotation,.nGY2 .nGY2GalleryPagination,.nGY2 .nGY2GalleryPaginationDot{margin:10px auto 5px;text-align:center;position:relative;white-space:nowrap;overflow:hidden}.nGY2 .nGY2GalleryMoreButton{padding:4px;display:inline-block;cursor:pointer}.nGY2 .nGY2GalleryMoreButtonAnnotation{border:1px solid #fff;padding:8px 20px;display:inline-block}.nGY2 .nGY2GalleryPagination,.nGY2 .nGY2GalleryPaginationDot{padding:4px}.nGY2 .nGY2PaginationNext,.nGY2 .nGY2PaginationPrev,.nGY2 .nGY2paginationItem,.nGY2 .nGY2paginationItemCurrentPage{margin:10px 4px;padding:5px 8px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;background:#111;white-space:nowrap;cursor:pointer;vertical-align:middle;display:inline-block}.nGY2 .nGY2paginationItemCurrentPage{background:#333}.nGY2 .nGY2paginationDot,.nGY2 .nGY2paginationDotCurrentPage{width:16px;height:16px;border:2px solid #fff;background:#444;border-radius:50%;margin:12px 5px;white-space:nowrap;cursor:pointer;vertical-align:middle;display:inline-block;opacity:.5}.nGY2 .nGY2paginationDotCurrentPage{background:#fff;opacity:1}.nGY2 .nGY2paginationRectangle,.nGY2 .nGY2paginationRectangleCurrentPage{width:30px;border:1px solid #fff;height:0;background:#444;margin:5px 1px;white-space:nowrap;cursor:pointer;vertical-align:middle;display:inline-block;opacity:.5}.nGY2 .nGY2paginationRectangleCurrentPage{background:#fff;opacity:1}.nGY2Popup{position:fixed;color:#000;top:0;left:0;bottom:0;right:0;background:rgba(0,0,0,.5)}.nGY2PopupContent,.nGY2PopupContentCenter,.nGY2PopupContentLeft,.nGY2PopupContentRight{position:fixed;text-align:left;top:50%;left:50%;padding:15px 30px;height:auto;width:50%;background:#fff;-webkit-transform:translateX(-50%) translateY(-50%);-moz-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}@media screen and (max-width:992px){.nGY2PopupContent,.nGY2PopupContentCenter,.nGY2PopupContentLeft,.nGY2PopupContentRight{width:95%;padding:5px 10px}}.nGY2 .nGY2Viewer,.nGY2 .nGY2ViewerContainer{top:0;height:100%;width:100%;left:0;position:fixed}.nGY2PopupContentCenter{text-align:center}.nGY2PopupTitle{font-size:1.5em;border-bottom:4px solid #888;padding:0 0 5px;margin-bottom:10px}.nGY2PopupCloseButton{font-size:1.5em;cursor:pointer;text-align:right}.nGY2PopupOneItem{padding:10px;font-size:2em;cursor:pointer;display:inline-block}.nGY2PopupOneItemText{padding:10px;font-size:1.2em;cursor:pointer;display:block}.nGY2PortInfo{padding:3px!important;font-size:14px!important;color:#FF0075!important;text-align:center!important;z-index:0!important;text-transform:lowercase!important;cursor:pointer!important}.nGY2PortInfo a,.nGY2PortInfo a:active,.nGY2PortInfo a:hover,.nGY2PortInfo>a:link,.nGY2PortInfo>a:visited{color:#FF0075!important;text-decoration:none!important}.nGY2 .nGY2ViewerContainer{opacity:0}.nGY2 .nGY2Viewer{display:block;visibility:visible;opacity:1;background-color:rgba(1,1,1,.85);text-align:center;clear:both;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none}.nGY2 .nGY2ViewerLogo{text-align:center;float:left;position:relative;top:50px;left:5px;padding:2px;background:url(nanogallery2_logo.png) center no-repeat;display:block;height:74px;width:147px}.nGY2 .nGY2ViewerContent{min-width:40px;min-height:40px;position:absolute;clear:both;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box;overflow:hidden}.nGY2 .nGY2ViewerMediaPan{transform-origin:50% 50% 0;visibility:visible;opacity:1;position:absolute;display:inline-block;padding:0;top:0;bottom:0;left:0;right:0;margin:auto;zoom:1;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2ViewerMedia,.nGY2 .nGY2ViewerMediaLoaderHidden{visibility:visible;bottom:0;margin:auto;zoom:1;box-sizing:border-box;left:0;right:0}.nGY2 .nGY2ViewerMedia{max-width:none;opacity:1;will-change:transform;transform:translateZ(0);position:absolute;top:0;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none;pointer-events:none;padding:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 iframe.nGY2ViewerMedia,.nGY2 video.nGY2ViewerMedia{pointer-events:auto}.nGY2 .nGY2ViewerMediaLoaderDisplayed{visibility:visible;opacity:1;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;zoom:1;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none;width:50px;height:50px}.nGY2 .nGY2ViewerMediaLoaderDisplayed:before{top:0;bottom:0;left:0;right:0;margin:auto;content:"";display:block;position:absolute;border-width:7px;border-style:solid;border-radius:50%;width:38px;height:38px;animation:nGY2-spinner-rotate-animation 1s linear 0s infinite;border-color:#444 #23CB99 #23CB99 #444}.nGY2 .nGY2ViewerMediaLoaderDisplayed:after{content:"";display:block;position:absolute;border-width:4px;border-style:solid;border-radius:50%;width:24px;height:24px;top:0;bottom:0;left:0;right:0;margin:auto;animation:nGY2-spinner-anti-rotate-animation .85s linear 0s infinite;border-color:#333 #23CB99 #23CB99 #333}@keyframes nGY2-spinner-rotate-animation{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes nGY2-spinner-anti-rotate-animation{0%{transform:rotate(0)}100%{transform:rotate(-360deg)}}.nGY2 .nGY2ViewerMediaLoaderHidden{opacity:0;position:absolute;top:0;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none;background-image:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box}.nGY2 .nGY2ViewerAreaNext>i,.nGY2 .nGY2ViewerAreaPrevious>i{font-weight:700!important;font-size:2em;Text-Shadow:#000 1px 0 0,#000 1px 1px 0,#000 1px -1px 0,#000 -1px 1px 0,#000 -1px 0 0,#000 -1px -1px 0,#000 0 1px 0,#000 0 -1px 0;background:rgba(0,0,0,.2)}.nGY2 .nGY2ViewerContent .imgCurrent{cursor:pointer}.nGY2 .nGY2ViewerAreaPrevious{color:#fff;display:block;position:absolute;top:50%;padding:10px 0 10px 5px;margin-top:-25px;left:0;text-align:left;cursor:pointer;opacity:1;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none;transition:all .2s ease;-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-o-transition:all .2s ease}.nGY2 .nGY2ViewerAreaPrevious>i{margin:0!important}.nGY2 .nGY2ViewerAreaNext{color:#fff;display:block;position:absolute;top:50%;padding:10px 5px 10px 0;margin-top:-25px;right:0;text-align:right;cursor:pointer;opacity:1;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none;transition:all .2s ease;-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-o-transition:all .2s ease}.nGY2 .nGY2ViewerToolsTopLeft,.nGY2 .nGY2ViewerToolsTopRight{top:5px;position:absolute;text-shadow:-1px -1px 0 #444,1px -1px 0 #444,-1px 1px 0 #444,1px 1px 0 #444;opacity:1;cursor:pointer}.nGY2 .nGY2ViewerAreaNext>i{margin:0!important}.nGY2 .toolbarContainer{left:0;right:0;text-align:center;display:inline-block;position:absolute;width:100%}.nGY2 .toolbar{display:inline-block;vertical-align:middle;overflow:hidden;padding:2px 0;margin:1px}.nGY2 .toolbar .label,.nGY2 .toolbar .ngbt,.nGY2 .toolbar .pageCounter{display:table-cell;vertical-align:middle}.nGY2 .toolbarBackground{background:rgba(4,4,4,.7)}.nGY2 .nGY2ViewerToolsTopLeft{color:#ddd;left:5px;transition:all .2s ease;-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-o-transition:all .2s ease}.nGY2 .nGY2ViewerToolsTopRight{color:#ddd;right:5px;transition:all .2s ease;-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-o-transition:all .2s ease}.nGY2 .toolbar .ngbt{font-size:1.2em;cursor:pointer;padding:2px 8px}.nGY2 .ngy2viewerToolAction{opacity:1}.nGY2 .ngy2viewerToolAction:hover{opacity:.8}.nGY2 .toolbar .pageCounter{font-size:1.2em;margin:auto;overflow:hidden}.nGY2 .toolbar .label{padding:3px 10px;border-left:0 solid #000;overflow:hidden;text-align:left;font-size:1em;background-color:initial}.nGY2 .toolbar .label .title{font-size:1.2em;margin:auto;vertical-align:middle;overflow:hidden}.nGY2 .toolbar .label .description{font-size:.9em;display:table-row;vertical-align:middle;overflow:hidden;color:#eee}.nGY2 .nGY2viewerGallery{overflow:hidden;position:fixed;display:none;opacity:0;bottom:5px}.nGY2 .nGY2viewerGallery .nGY2VThumbnailContainer{overflow:hidden;display:inline-block;position:absolute;top:0}.nGY2 .nGY2viewerGallery .nGY2VThumbnail{top:0;padding:0;border:1px solid #888;position:absolute;opacity:1;background-position:center center;background-repeat:no-repeat;background-size:cover;overflow:hidden}.nGY2 .nGY2viewerGallery .activeVThumbnail{border:2px solid #fff}.nGY2ConsoleParent{visibility:hidden;height:0;background:#111;color:#e00;padding:0;margin:2px}.nGY2ConsoleParent p{color:#e00;padding:1px;margin:0}.nGY2 .nanoGalleryLBar,.nGY2 .nanoGalleryLBarOff{position:relative;width:100%;margin:0 0 1px;background-color:#556;height:2px}.nGY2.unselectable{-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;user-select:none}.nGY2 .nanoGalleryLBarOff{visibility:hidden}.nGY2 .nanoGalleryLBar{visibility:visible}.nGY2 .nanoGalleryLBar>div{position:absolute;width:50px;height:2px;top:0;opacity:.7}.nGY2 .nanoGalleryLBar>div:nth-child(1){-webkit-animation:nanoGalleryLBarAnim 2s -.2s infinite cubic-bezier(0,.6,.9,0);-moz-animation:nanoGalleryLBarAnim 2s -.2s infinite cubic-bezier(0,.6,.9,0);-ms-animation:nanoGalleryLBarAnim 2s -.2s infinite cubic-bezier(0,.6,.9,0);-o-animation:nanoGalleryLBarAnim 2s -.2s infinite cubic-bezier(0,.6,.9,0);animation:nanoGalleryLBarAnim 2s -.2s infinite cubic-bezier(0,.6,.9,0);background:#111}.nGY2 .nanoGalleryLBar>div:nth-child(2){-webkit-animation:nanoGalleryLBarAnim 2s -.4s infinite cubic-bezier(0,.6,.9,0);-moz-animation:nanoGalleryLBarAnim 2s -.4s infinite cubic-bezier(0,.6,.9,0);-ms-animation:nanoGalleryLBarAnim 2s -.4s infinite cubic-bezier(0,.6,.9,0);-o-animation:nanoGalleryLBarAnim 2s -.4s infinite cubic-bezier(0,.6,.9,0);animation:nanoGalleryLBarAnim 2s -.4s infinite cubic-bezier(0,.6,.9,0);background:#333}.nGY2 .nanoGalleryLBar>div:nth-child(3){-webkit-animation:nanoGalleryLBarAnim 2s -.6s infinite cubic-bezier(0,.6,.9,0);-moz-animation:nanoGalleryLBarAnim 2s -.6s infinite cubic-bezier(0,.6,.9,0);-ms-animation:nanoGalleryLBarAnim 2s -.6s infinite cubic-bezier(0,.6,.9,0);-o-animation:nanoGalleryLBarAnim 2s -.6s infinite cubic-bezier(0,.6,.9,0);animation:nanoGalleryLBarAnim 2s -.6s infinite cubic-bezier(0,.6,.9,0);background:#ccd}.nGY2 .nanoGalleryLBar>div:nth-child(4){-webkit-animation:nanoGalleryLBarAnim 2s -.8s infinite cubic-bezier(0,.6,.9,0);-moz-animation:nanoGalleryLBarAnim 2s -.8s infinite cubic-bezier(0,.6,.9,0);-ms-animation:nanoGalleryLBarAnim 2s -.8s infinite cubic-bezier(0,.6,.9,0);-o-animation:nanoGalleryLBarAnim 2s -.8s infinite cubic-bezier(0,.6,.9,0);animation:nanoGalleryLBarAnim 2s -.8s infinite cubic-bezier(0,.6,.9,0);background:#777}.nGY2 .nanoGalleryLBar>div:nth-child(5){-webkit-animation:nanoGalleryLBarAnim 2s -1s infinite cubic-bezier(0,.6,.9,0);-moz-animation:nanoGalleryLBarAnim 2s -1s infinite cubic-bezier(0,.6,.9,0);-ms-animation:nanoGalleryLBarAnim 2s -1s infinite cubic-bezier(0,.6,.9,0);-o-animation:nanoGalleryLBarAnim 2s -1s infinite cubic-bezier(0,.6,.9,0);animation:nanoGalleryLBarAnim 2s -1s infinite cubic-bezier(0,.6,.9,0);background:#ddd}@-webkit-keyframes nanoGalleryLBarAnim{0%{left:10%}100%{left:90%}}@-moz-keyframes nanoGalleryLBarAnim{0%{left:10%}100%{left:90%}}@-ms-keyframes nanoGalleryLBarAnim{0%{left:10%}100%{left:90%}}@-o-keyframes nanoGalleryLBarAnim{0%{left:10%}100%{left:90%}}@keyframes nanoGalleryLBarAnim{0%{left:10%}100%{left:90%}}.NGY2ThumbnailLightbox{cursor:pointer}
\ No newline at end of file
From 0d7d68d9dc04bed96bb340c29351c1746e79f711 Mon Sep 17 00:00:00 2001
From: city-unit <140349364+city-unit@users.noreply.github.com>
Date: Mon, 21 Aug 2023 00:44:55 -0400
Subject: [PATCH 04/23] Err the actual lib
---
.../gallery/jquery.nanogallery2.min.js | 80 +++++++++++++++++++
1 file changed, 80 insertions(+)
create mode 100644 public/scripts/extensions/gallery/jquery.nanogallery2.min.js
diff --git a/public/scripts/extensions/gallery/jquery.nanogallery2.min.js b/public/scripts/extensions/gallery/jquery.nanogallery2.min.js
new file mode 100644
index 000000000..fb5a9c500
--- /dev/null
+++ b/public/scripts/extensions/gallery/jquery.nanogallery2.min.js
@@ -0,0 +1,80 @@
+/* nanogallery2 - v3.0.5 - 2021-02-26 */
+/*!
+ * @preserve nanogallery2 - javascript photo / video gallery and lightbox
+ * Homepage: http://nanogallery2.nanostudio.org
+ * Sources: https://github.com/nanostudio-org/nanogallery2
+ *
+ * License: GPLv3 and commercial licence
+ *
+ * Requirements:
+ * - jQuery (http://www.jquery.com) - version >= 1.7.1
+ *
+ * Embeded components:
+ * - shifty (https://github.com/jeremyckahn/shifty)
+ * - imagesloaded (https://github.com/desandro/imagesloaded)
+ * - hammer.js (http://hammerjs.github.io/)
+ * - screenfull.js (https://github.com/sindresorhus/screenfull.js)
+ * Tools:
+ * - webfont generated with http://fontello.com - mainly based on Font Awesome Copyright (C) 2012 by Dave Gandy (http://fontawesome.io/)
+ * - ICO online converter: https://iconverticons.com/online/
+ */
+!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports&&"function"==typeof require?e(require("jquery")):e(jQuery)}((function(e){"use strict";function t(e){var t=document.getElementById("ngyColorHelperToRGB");return null===t&&((t=document.createElement("div")).id="ngyColorHelperToRGB",t.style.cssText="display: none; color:"+e+";",document.body.appendChild(t)),getComputedStyle(t).color}function n(e,t,n){var i="";if("RGBA("==t.toUpperCase().substring(0,5)&&(i="a",t="rgb("+t.substring(5)),"number"!=typeof e||e<-1||e>1||"string"!=typeof t||"r"!=t[0]&&"#"!=t[0]||"string"!=typeof n&&void 0!==n)return null;function a(e){var t=e.length,n=new Object;if(t>9){if((e=e.split(",")).length<3||e.length>4)return null;n[0]=o(e[0].slice(4)),n[1]=o(e[1]),n[2]=o(e[2]),n[3]=e[3]?parseFloat(e[3]):-1}else{if(8==t||6==t||t<4)return null;t<6&&(e="#"+e[1]+e[1]+e[2]+e[2]+e[3]+e[3]+(t>4?e[4]+""+e[4]:"")),e=o(e.slice(1),16),n[0]=e>>16&255,n[1]=e>>8&255,n[2]=255&e,n[3]=9==t||5==t?r((e>>24&255)/255*1e4)/1e4:-1}return n}var o=parseInt,r=Math.round,l=t.length>9,s=(l="string"==typeof n?n.length>9||"c"==n&&!l:l,e<0),u=(e=s?-1*e:e,n=n&&"c"!=n?n:s?"#000000":"#FFFFFF",a(t)),c=a(n);return u&&c?l?"rgb"+i+"("+r((c[0]-u[0])*e+u[0])+","+r((c[1]-u[1])*e+u[1])+","+r((c[2]-u[2])*e+u[2])+(u[3]<0&&c[3]<0?")":","+(u[3]>-1&&c[3]>-1?r(1e4*((c[3]-u[3])*e+u[3]))/1e4:c[3]<0?u[3]:c[3])+")"):"#"+(4294967296+16777216*(u[3]>-1&&c[3]>-1?r(255*((c[3]-u[3])*e+u[3])):c[3]>-1?r(255*c[3]):u[3]>-1?r(255*u[3]):255)+65536*r((c[0]-u[0])*e+u[0])+256*r((c[1]-u[1])*e+u[1])+r((c[2]-u[2])*e+u[2])).toString(16).slice(u[3]>-1||c[3]>-1?1:3):null}function i(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)t[n]=i(e[n]);return t}function a(){var e=jQuery(window);return{l:e.scrollLeft(),t:e.scrollTop(),w:e.width(),h:e.height()}}function o(e,t){var n=0;""==e&&(e="*"),jQuery(e).each((function(){var e=parseInt(jQuery(this).css("z-index"));n=e>n?e:n})),n++,jQuery(t).css("z-index",n)}var r=function(e){return{}.toString.call(e).match(/\s([a-zA-Z]+)/)[1].toLowerCase()};function l(){this.LightboxReOpen=function(){m()},this.ReloadAlbum=function(){if(""===u.O.kind)throw"Not supported for this content source:"+u.O.kind;var e=u.GOM.albumIdx;if(-1==e)throw"Current album not found.";for(var t=u.I[e].GetID(),n=u.I.length,i=0;i1&&e--,u.GOM.pagination.currentPage=e,u.GOM.ScrollToTop(),L(),E(!0),!1},this.PaginationCountPages=function(){return 0==u.GOM.items.length?0:Math.ceil((u.GOM.items[u.GOM.items.length-1].row+1)/u.galleryMaxRows.Get())};var s=function(e,t,n){var i;return function(){var a=this,o=arguments;function r(){n||e.apply(a,o),i=null}i?clearTimeout(i):n&&e.apply(a,o),i=setTimeout(r,t||100)}};window.ng_draf=function(e){return requestAnimationFrame((function(){window.requestAnimationFrame(e)}))},window.requestTimeout=function(e,t){if(!(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame&&window.mozCancelRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame))return window.setTimeout(e,t);var n=(new Date).getTime(),i=new Object;return i.value=requestAnimFrame((function a(){(new Date).getTime()-n>=t?e.call():i.value=requestAnimFrame(a)})),i},window.requestAnimFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e,t){window.setTimeout(e,1e3/60)},window.clearRequestTimeout=function(e){window.cancelAnimationFrame?window.cancelAnimationFrame(e.value):window.webkitCancelAnimationFrame?window.webkitCancelAnimationFrame(e.value):window.webkitCancelRequestAnimationFrame?window.webkitCancelRequestAnimationFrame(e.value):window.mozCancelRequestAnimationFrame?window.mozCancelRequestAnimationFrame(e.value):window.oCancelRequestAnimationFrame?window.oCancelRequestAnimationFrame(e.value):window.msCancelRequestAnimationFrame?window.msCancelRequestAnimationFrame(e.value):clearTimeout(e)};var u=this;function c(e){this.$e=null,this.ngy2ItemIdx=e,this.mediaNumber=u.VOM.items.length+1,this.posX=0,this.posY=0}u.I=[],u.Id=[],u.O=null,u.baseEltID=null,u.$E={base:null,conTnParent:null,conLoadingB:null,conConsole:null,conNavigationBar:null,conTnBottom:null,scrollableParent:null},u.shoppingCart=[],u.layout={internal:!0,engine:"",support:{rows:!1},prerequisite:{imageSize:!1},SetEngine:function(){if(u.layout.internal){if("auto"==u.tn.settings.width[u.GOM.curNavLevel][u.GOM.curWidth]||""==u.tn.settings.width[u.GOM.curNavLevel][u.GOM.curWidth])return u.layout.engine="JUSTIFIED",u.layout.support.rows=!0,void(u.layout.prerequisite.imageSize=!0);if("auto"==u.tn.settings.height[u.GOM.curNavLevel][u.GOM.curWidth]||""==u.tn.settings.height[u.GOM.curNavLevel][u.GOM.curWidth])return u.layout.engine="CASCADING",u.layout.support.rows=!1,void(u.layout.prerequisite.imageSize=!0);if(null!=u.tn.settings.getMosaic())return u.layout.engine="MOSAIC",u.layout.support.rows=!0,void(u.layout.prerequisite.imageSize=!1);u.layout.engine="GRID",u.layout.support.rows=!0,u.layout.prerequisite.imageSize=!1}}},u.galleryResizeEventEnabled=!1,u.galleryMaxRows={l1:0,lN:0,Get:function(){return u.galleryMaxRows[u.GOM.curNavLevel]}},u.galleryMaxItems={l1:0,lN:0,Get:function(){return u.galleryMaxItems[u.GOM.curNavLevel]}},u.galleryFilterTags={l1:0,lN:0,Get:function(){return u.galleryFilterTags[u.GOM.curNavLevel]}},u.galleryFilterTagsMode={l1:0,lN:0,Get:function(){return u.galleryFilterTagsMode[u.GOM.curNavLevel]}},u.galleryDisplayMode={l1:"FULLCONTENT",lN:"FULLCONTENT",Get:function(){return u.galleryDisplayMode[u.GOM.curNavLevel]}},u.galleryLastRowFull={l1:!1,lN:!1,Get:function(){return u.galleryLastRowFull[u.GOM.curNavLevel]}},u.gallerySorting={l1:"",lN:"",Get:function(){return u.gallerySorting[u.GOM.curNavLevel]}},u.galleryDisplayTransition={l1:"none",lN:"none",Get:function(){return u.galleryDisplayTransition[u.GOM.curNavLevel]}},u.galleryDisplayTransitionDuration={l1:500,lN:500,Get:function(){return u.galleryDisplayTransitionDuration[u.GOM.curNavLevel]}},u.$currentTouchedThumbnail=null,u.tn={opt:{l1:{crop:!0,stacks:0,stacksTranslateX:0,stacksTranslateY:0,stacksTranslateZ:0,stacksRotateX:0,stacksRotateY:0,stacksRotateZ:0,stacksScale:0,borderHorizontal:0,borderVertical:0,baseGridHeight:0,displayTransition:"FADEIN",displayTransitionStartVal:0,displayTransitionEasing:"easeOutQuart",displayTransitionDuration:240,displayInterval:15},lN:{crop:!0,stacks:0,stacksTranslateX:0,stacksTranslateY:0,stacksTranslateZ:0,stacksRotateX:0,stacksRotateY:0,stacksRotateZ:0,stacksScale:0,borderHorizontal:0,borderVertical:0,baseGridHeight:0,displayTransition:"FADEIN",displayTransitionStartVal:0,displayTransitionEasing:"easeOutQuart",displayTransitionDuration:240,displayInterval:15},Get:function(e){return u.tn.opt[u.GOM.curNavLevel][e]}},scale:1,labelHeight:{l1:0,lN:0,get:function(){return u.tn.labelHeight[u.GOM.curNavLevel]}},defaultSize:{width:{l1:{xs:0,sm:0,me:0,la:0,xl:0},lN:{xs:0,sm:0,me:0,la:0,xl:0}},height:{l1:{xs:0,sm:0,me:0,la:0,xl:0},lN:{xs:0,sm:0,me:0,la:0,xl:0}},getWidth:function(){return u.tn.defaultSize.width[u.GOM.curNavLevel][u.GOM.curWidth]},getOuterWidth:function(){u.tn.borderWidth=u.tn.opt.Get("borderHorizontal"),u.tn.borderHeight=u.tn.opt.Get("borderVertical");var e=u.tn.defaultSize.width[u.GOM.curNavLevel][u.GOM.curWidth]+2*u.tn.opt.Get("borderHorizontal");return"right"!=u.O.thumbnailLabel.get("position")&&"left"!=u.O.thumbnailLabel.get("position")||(e+=u.tn.defaultSize.width[u.GOM.curNavLevel][u.GOM.curWidth]),e},getHeight:function(){return u.tn.defaultSize.height[u.GOM.curNavLevel][u.GOM.curWidth]},getOuterHeight:function(){return u.tn.defaultSize.height[u.GOM.curNavLevel][u.GOM.curWidth]+2*u.tn.opt.Get("borderVertical")}},settings:{width:{l1:{xs:0,sm:0,me:0,la:0,xl:0,xsc:"u",smc:"u",mec:"u",lac:"u",xlc:"u"},lN:{xs:0,sm:0,me:0,la:0,xl:0,xsc:"u",smc:"u",mec:"u",lac:"u",xlc:"u"}},height:{l1:{xs:0,sm:0,me:0,la:0,xl:0,xsc:"u",smc:"u",mec:"u",lac:"u",xlc:"u"},lN:{xs:0,sm:0,me:0,la:0,xl:0,xsc:"u",smc:"u",mec:"u",lac:"u",xlc:"u"}},getH:function(e,t){var n=null==e?u.GOM.curNavLevel:e,i=null==t?u.GOM.curWidth:t;return"MOSAIC"==u.layout.engine?this.height[n][i]*this.mosaic[n+"Factor"].h[i]:this.height[n][i]},getW:function(e,t){var n=null==e?u.GOM.curNavLevel:e,i=null==t?u.GOM.curWidth:t;return"MOSAIC"==u.layout.engine?this.width[n][i]*this.mosaic[n+"Factor"].w[i]:this.width[n][i]},mosaic:{l1:{xs:null,sm:null,me:null,la:null,xl:null},lN:{xs:null,sm:null,me:null,la:null,xl:null},l1Factor:{h:{xs:1,sm:1,me:1,la:1,xl:1},w:{xs:1,sm:1,me:1,la:1,xl:1}},lNFactor:{h:{xs:1,sm:1,me:1,la:1,xl:1},w:{xs:1,sm:1,me:1,la:1,xl:1}}},getMosaic:function(){return this.mosaic[u.GOM.curNavLevel][u.GOM.curWidth]},mosaicCalcFactor:function(e,t){for(var n=1,i=1,a=0;at?(r&&(clearTimeout(r),r=null),l=u,o=e.apply(i,a),r||(i=a=null)):r||!1===n.trailing||(r=setTimeout(s,c)),o}}(x,15,{leading:!1}),u.blockList=null,u.allowList=null,u.albumList=[],u.locationHashLastUsed="",u.custGlobals={},u.touchAutoOpenDelayTimerID=0,u.i18nLang="",u.timeLastTouchStart=0,u.custGlobals={},u.markupOrApiProcessed=!1,u.GOM={albumIdx:-1,clipArea:{top:0,height:0},displayArea:{width:0,height:0},displayAreaLast:{width:0,height:0},displayedMoreSteps:0,items:[],$imgPreloader:[],thumbnails2Display:[],itemsDisplayed:0,firstDisplay:!0,firstDisplayTime:0,navigationBar:{displayed:!1,$newContent:""},cache:{viewport:null,containerOffset:null,areaWidth:100},nbSelected:0,pagination:{currentPage:0},panThreshold:60,panYOnly:!1,lastFullRow:-1,lastDisplayedIdx:-1,displayInterval:{from:0,len:0},hammertime:null,curNavLevel:"l1",curWidth:"me",albumSearch:"",albumSearchTags:"",lastZIndex:0,lastRandomValue:0,slider:{hostIdx:-1,hostItem:null,currentIdx:0,nextIdx:0,timerID:0,tween:null},NGY2Item:function(e){if(null==u.GOM.items[e]||null==u.GOM.items[e])return null;var t=u.GOM.items[e].thumbnailIdx;return u.I[t]},GTn:function(e,t,n){this.thumbnailIdx=e,this.width=0,this.height=0,this.top=0,this.left=0,this.row=0,this.imageWidth=t,this.imageHeight=n,this.resizedContentWidth=0,this.resizedContentHeight=0,this.displayed=!1,this.neverDisplayed=!0,this.inDisplayArea=!1},ScrollToTop:function(){var e,t,n,i;if(!u.GOM.firstDisplay&&(null!==u.$E.scrollableParent||(e=u.$E.base,t=20,n=a(),(i=e.offset()).top>=n.t&&i.top<=n.t+n.h-t)||u.$E.base.get(0).scrollIntoView(),null!==u.$E.scrollableParent)){var o=u.$E.scrollableParent.scrollTop(),r=Math.abs(u.$E.scrollableParent.offset().top-u.$E.base.offset().top-o);o>r&&window.ng_draf((function(){u.$E.scrollableParent.scrollTop(r)}))}}},u.VOM={viewerDisplayed:!1,viewerIsFullscreen:!1,infoDisplayed:!1,toolbarsDisplayed:!0,toolsHide:null,zoom:{posX:0,posY:0,userFactor:1,isZooming:!1},padding:{H:0,V:0},window:{lastWidth:0,lastHeight:0},$viewer:null,$toolbar:null,$toolbarTL:null,$toolbarTR:null,toolbarMode:"std",playSlideshow:!1,playSlideshowTimerID:0,slideshowDelay:3e3,albumID:-1,viewerMediaIsChanged:!1,items:[],panMode:"off",$baseCont:null,$content:null,content:{previous:{vIdx:-1,$media:null,NGY2Item:function(){return u.I[u.VOM.items[u.VOM.content.previous.vIdx].ngy2ItemIdx]}},current:{vIdx:-1,$media:null,NGY2Item:function(){return u.I[u.VOM.items[u.VOM.content.current.vIdx].ngy2ItemIdx]}},next:{vIdx:-1,$media:null,NGY2Item:function(){return u.I[u.VOM.items[u.VOM.content.next.vIdx].ngy2ItemIdx]}}},IdxNext:function(){var e=0;return u.VOM.content.current.vIdx=t){var n=this.oneTmbWidth*u.VOM.content.current.vIdx;n+this.posX=this.vwidth&&(this.posX=this.vwidth-(n+this.oneTmbWidth))}this.PanGallery(0)}},PanGallery:function(e){this.gwidththis.vwidth-this.oneTmbWidth&&(this.posX=this.vwidth-this.oneTmbWidth),this.posX+this.gwidthu.VOM.ImageLoader.maxChecks?(u.VOM.ImageLoader.list[i]=null,e.callback(0,0,e.ngitem,e.checks)):(t++,e.checks++));0==t&&(u.VOM.ImageLoader.list=[],clearInterval(u.VOM.ImageLoader.intervalHandle),delete u.VOM.ImageLoader.intervalHandle)}}},u.popup={isDisplayed:!1,$elt:null,close:function(){null!=this.$elt&&(new NGTweenable).tween({from:{opacity:1},to:{opacity:0},attachment:{t:this},easing:"easeInOutSine",duration:100,step:function(e,t){null!=t.t.$elt&&t.t.$elt.css("opacity",e.opacity)},finish:function(e,t){null!=t.t.$elt&&(t.t.$elt.remove(),t.t.$elt=null),t.t.isDisplayed=!1}})}},u.galleryTheme_dark={navigationBar:{background:"none",borderTop:"",borderBottom:"",borderRight:"",borderLeft:""},navigationBreadcrumb:{background:"#111",color:"#fff",colorHover:"#ccc",borderRadius:"4px"},navigationFilter:{color:"#ddd",background:"#111",colorSelected:"#fff",backgroundSelected:"#111",borderRadius:"4px"},navigationPagination:{background:"#111",color:"#fff",colorHover:"#ccc",borderRadius:"4px"},thumbnail:{background:"#444",backgroundImage:"linear-gradient(315deg, #111 0%, #445 90%)",borderColor:"#000",borderRadius:"0px",labelOpacity:1,labelBackground:"rgba(34, 34, 34, 0)",titleColor:"#fff",titleBgColor:"transparent",titleShadow:"",descriptionColor:"#ccc",descriptionBgColor:"transparent",descriptionShadow:"",stackBackground:"#aaa"},thumbnailIcon:{padding:"5px",color:"#fff",shadow:""},pagination:{background:"#181818",backgroundSelected:"#666",color:"#fff",borderRadius:"2px",shapeBorder:"3px solid #666",shapeColor:"#444",shapeSelectedColor:"#aaa"}},u.galleryTheme_light={navigationBar:{background:"none",borderTop:"",borderBottom:"",borderRight:"",borderLeft:""},navigationBreadcrumb:{background:"#eee",color:"#000",colorHover:"#333",borderRadius:"4px"},navigationFilter:{background:"#eee",color:"#222",colorSelected:"#000",backgroundSelected:"#eee",borderRadius:"4px"},navigationPagination:{background:"#eee",color:"#000",colorHover:"#333",borderRadius:"4px"},thumbnail:{background:"#444",backgroundImage:"linear-gradient(315deg, #111 0%, #445 90%)",borderColor:"#000",labelOpacity:1,labelBackground:"rgba(34, 34, 34, 0)",titleColor:"#fff",titleBgColor:"transparent",titleShadow:"",descriptionColor:"#ccc",descriptionBgColor:"transparent",descriptionShadow:"",stackBackground:"#888"},thumbnailIcon:{padding:"5px",color:"#fff"},pagination:{background:"#eee",backgroundSelected:"#aaa",color:"#000",borderRadius:"2px",shapeBorder:"3px solid #666",shapeColor:"#444",shapeSelectedColor:"#aaa"}},u.viewerTheme_dark={background:"#000",barBackground:"rgba(4, 4, 4, 0.2)",barBorder:"0px solid #111",barColor:"#fff",barDescriptionColor:"#ccc"},u.viewerTheme_light={background:"#f8f8f8",barBackground:"rgba(4, 4, 4, 0.7)",barBorder:"0px solid #111",barColor:"#fff",barDescriptionColor:"#ccc"};var h=NGY2Tools.NanoAlert,d=NGY2Tools.NanoConsoleLog;function m(){u.VOM.items=[],u.VOM.albumID="0",u.GOM.curNavLevel="l1";var e=0,t=u.$E.base[0].attributes,n="";t.hasOwnProperty("src")&&(n=t.src.nodeValue),""==n&&t.hasOwnProperty("data-ngthumb")&&(n=t["data-ngthumb"].nodeValue);for(var i=void 0,a=0;a0?Ne(i):d(u,"No content for Lightbox standalone.")}function p(e){var t={albumID:"0",imageID:"0"},n=e.split("/");return n.length>0&&(t.albumID=n[0],n.length>1&&(t.imageID=n[1])),t}function g(e,t){u.VOM.viewerDisplayed&&nt(null);var n=NGY2Item.GetIdx(u,t);u.GOM.curNavLevel="lN",0==n&&(u.GOM.curNavLevel="l1"),u.layout.SetEngine(),u.galleryResizeEventEnabled=!1,-1==n&&(NGY2Item.New(u,"","",t,"0","album"),n=u.I.length-1),u.I[n].contentIsLoaded?(me(),u.GOM.pagination.currentPage=0,lt(t,""),w(n)):Z(t,g,e,t)}function f(){switch(u.galleryDisplayMode.Get()){case"PAGINATION":u.layout.support.rows&&u.galleryMaxRows.Get()>0&&function(){if(u.$E.conTnBottom.css("opacity",0),u.$E.conTnBottom.children().remove(),0==u.GOM.items.length)return;var e=Math.ceil((u.GOM.items[u.GOM.items.length-1].row+1)/u.galleryMaxRows.Get());if(1==e)return;u.GOM.pagination.currentPage>e-1&&(u.GOM.pagination.currentPage=e-1);if(M(),0==u.GOM.displayInterval.len)return;if("NUMBERS"==u.O.galleryPaginationMode&&u.GOM.pagination.currentPage>0){jQuery('").appendTo(u.$E.conTnBottom).click((function(e){G()}))}var t=0,n=e;if("NUMBERS"!=u.O.galleryPaginationMode)t=0;else{var i=u.O.paginationVisiblePages;if(i>=e)t=0;else{var a=0;a=i%2==1?(i+1)/2:i/2,u.GOM.pagination.currentPagee&&(n=e-1)):(n=(t=u.GOM.pagination.currentPage-a)+i)>e&&(n=e-1),n-t'+l+"").appendTo(u.$E.conTnBottom);s.data("pageNumber",o),s.click((function(e){u.GOM.pagination.currentPage=jQuery(this).data("pageNumber"),ot("pageChanged"),u.GOM.ScrollToTop(),L(),E(!0)}))}if("NUMBERS"==u.O.galleryPaginationMode&&u.GOM.pagination.currentPage+1
"):t.$E.conConsole.append("nanogallery2: "+n+" ["+t.baseEltID+"]
"))},e.NanoConsoleLog=function(e,t){window.console&&console.log("nanogallery2: "+t+" ["+e.baseEltID+"]")},e.PreloaderDisplay=function(e){if(!0===e){if(this.$E.conLoadingB.removeClass("nanoGalleryLBarOff").addClass("nanoGalleryLBar"),null!=this.GOM.albumIdxLoading&&-1!=this.GOM.albumIdxLoading){this.I[this.GOM.albumIdxLoading].$Elts[".nGY2TnImg"].addClass("nGY2GThumbnailLoaderDisplayed")}}else if(this.$E.conLoadingB.removeClass("nanoGalleryLBar").addClass("nanoGalleryLBarOff"),null!=this.GOM.albumIdxLoading&&-1!=this.GOM.albumIdxLoading){this.I[this.GOM.albumIdxLoading].$Elts[".nGY2TnImg"].removeClass("nGY2GThumbnailLoaderDisplayed")}},e.AreaShuffle=function(e){for(var t,n,i=e.length;i;t=Math.floor(Math.random()*i),n=e[--i],e[i]=e[t],e[t]=n);return e},e.GetImageTitleFromURL=function(e){return"%filename"==this.O.thumbnailLabel.get("title")?e.split("/").pop().replace("_"," "):"%filenameNoExt"==this.O.thumbnailLabel.get("title")?e.split("/").pop().split(".").shift().replace("_"," "):""},e.AlbumPostProcess=function(t){var n=this.gallerySorting[this.GOM.curNavLevel],i=this.galleryMaxItems[this.GOM.curNavLevel];if(""!=n||i>0){var a=this.I.filter((function(e){return e.albumID==t&&"albumUp"!=e.kind}));switch(n){case"RANDOM":a=e.AreaShuffle(a);break;case"REVERSED":a=a.reverse();break;case"TITLEASC":a.sort((function(e,t){return e.title.toUpperCase()t.title.toUpperCase()?1:0}));break;case"TITLEDESC":a.sort((function(e,t){return e.title.toUpperCase()>t.title.toUpperCase()?-1:e.title.toUpperCase()0&&a.length>i&&a.splice(i-1,a.length-i),this.I.ngy2removeIf((function(e){return e.albumID==t&&"albumUp"!=e.kind})),this.I.push.apply(this.I,a)}},e}(),window.NGY2Item=function(){var e=1;function t(t){var n=0;n=null==t?e++:t,this.GetID=function(){return n},this.kind="",this.mediaKind="img",this.mediaMarkup="",this.G=null,this.title="",this.description="",this.albumID=0,this.src="",this.width=0,this.height=0,this.destinationURL="",this.downloadURL="",this.author="",this.left=0,this.top=0,this.width=0,this.height=0,this.resizedContentWidth=0,this.resizedContentHeight=0,this.thumbs={url:{l1:{xs:"",sm:"",me:"",la:"",xl:""},lN:{xs:"",sm:"",me:"",la:"",xl:""}},width:{l1:{xs:0,sm:0,me:0,la:0,xl:0},lN:{xs:0,sm:0,me:0,la:0,xl:0}},height:{l1:{xs:0,sm:0,me:0,la:0,xl:0},lN:{xs:0,sm:0,me:0,la:0,xl:0}}},this.thumbnailImgRevealed=!1,this.imageDominantColors=null,this.imageDominantColor=null,this.featured=!1,this.flickrThumbSizes={},this.picasaThumbs=null,this.hovered=!1,this.hoverInitDone=!1,this.contentIsLoaded=!1,this.contentLength=0,this.numberItems=0,this.mediaNumber=0,this.mediaCounter=0,this.eltTransform=[],this.eltFilter=[],this.eltEffect=[],this.paginationLastPage=0,this.paginationLastWidth=0,this.customData={},this.selected=!1,this.imageWidth=0,this.imageHeight=0,this.$elt=null,this.$Elts=[],this.tags=[],this.albumTagList=[],this.albumTagListSel=[],this.exif={exposure:"",flash:"",focallength:"",fstop:"",iso:"",model:"",time:"",location:""},this.deleted=!1,this.rotationAngle=0}t.Get=function(e,t){for(var n=e.I.length,i=0;ie.title===n));void 0!==t&&(n=t.replace)}if(-1!=r&&0!=r&&"image gallery by nanogallery2 [build]"!=n&&e.O.thumbnailLevelUp&&0==u.getContentLength(!1)&&""==e.O.album){let n=new t("0");e.I.push(n),u.contentLength+=1,n.title="UP",n.albumID=r,n.kind="albumUp",n.G=e,jQuery.extend(!0,n.thumbs.width,e.tn.defaultSize.width),jQuery.extend(!0,n.thumbs.height,e.tn.defaultSize.height)}var c=t.Get(e,o);null===c&&(c=new t(o),e.I.push(c),-1!=r&&"image gallery by nanogallery2 [build]"!=n&&(u.contentLength+=1)),c.G=e,c.albumID=r,c.kind=l,"image"==l&&(u.mediaCounter+=1,c.mediaNumber=u.mediaCounter);var h=e.O.thumbnailFeaturedKeyword;if(""!=h){h=h.toUpperCase();var d=n.toUpperCase().indexOf(h);d>-1&&(c.featured=!0,n=n.substring(0,d)+n.substring(d+h.length,n.length)),(d=i.toUpperCase().indexOf(h))>-1&&(c.featured=!0,i=i.substring(0,d)+i.substring(d+h.length,i.length))}if("string"==typeof e.galleryFilterTags.Get())switch(e.galleryFilterTags.Get().toUpperCase()){case"TITLE":{let e,t=/(?:^|\W)#(\w+)(?!\w)/g,i=[];for(;e=t.exec(n);)i.push(e[1].replace(/^\s*|\s*$/,""));c.setTags(i),n=n.split("#").join("");break}case"DESCRIPTION":{let e,t=/(?:^|\W)#(\w+)(?!\w)/g,n=[];for(;e=t.exec(i);)n.push(e[1].replace(/^\s*|\s*$/,""));c.setTags(n),i=i.split("#").join("");break}}else""!=s&&null!=s&&c.setTags(s.split(" "));return c.title=a(e,n),c.description=a(e,i),c},t.prototype.delete=function(){this.deleted=!0,this.G.I[t.GetIdx(this.G,this.albumID)].contentLength--,this.G.I[t.GetIdx(this.G,this.albumID)].numberItems--;for(var e=this.G.GOM.items.length,n=this.GetID(),i=-1,a=-1,o=0;o":">",'"':""","'":"'","/":"/","`":"`","=":"="};function a(e,t){return 1==e.O.allowHTMLinData?t:String(t).replace(/[&<>"'`=\/]/g,(function(e){return i[e]}))}function o(e,t){if("0"===(e=String(e))||1==t)return e;var n=Number(e.replace(/[a-zA-Z]/g,"")),i=e.match(/([^\-0-9\.]+)/g),a="";return null!=i&&i.length>0&&(a=i.join()),isNaN(n)||0==n?e:(n*=t)+a}return t.get_nextId=function(){return e},t.prototype.$getElt=function(e,t){return null==this.$elt?null:(void 0!==this.$Elts[e]&&1==!t||(this.$Elts[e]=".nGY2GThumbnail"==e?this.$elt:this.$elt.find(e)),this.$Elts[e])},t.prototype.removeElt=function(e){if(null!=this.$elt&&null!=this.$Elts[e]){this.$Elts[e].remove();var t=this.$Elts.indexOf(e);this.$Elts.splice(t,1)}},t.prototype.album=function(){return this.G.I[t.GetIdx(this.G,this.albumID)]},t.prototype.mediaTransition=function(){return this.G.O.viewerTransitionMediaKind.indexOf(this.mediaKind)>-1},t.prototype.imageSet=function(e,t,n){this.src=e,this.width=t,this.height=n},t.prototype.thumbSet=function(e,t,n,i,a){var o=["xs","sm","me","la","xl"];if(void 0===i||""==i||null==i)for(var r=0;r0){this.tags=e;for(var t=this.album().albumTagList,n=0;n0){if(this.G.O.thumbnailLevelUp&&"albumUp"==this.kind)return!0;var e=!1,t=this.album().albumTagListSel;if(0==t.length)return!0;for(var n=0;n=0)return!0;return!1},t.prototype.setMediaURL=function(e,t){this.src=e,this.mediaKind=t,"img"==t&&(this.mediaMarkup='')},t.prototype.isToDisplay=function(e){return this.albumID==e&&this.checkTagFilter()&&this.isSearchFound()&&this.isSearchTagFound()&&0==this.deleted},t.prototype.getContentLength=function(e){if(0==e||0==this.albumTagList.length||0==this.G.galleryFilterTags.Get())return this.contentLength;for(var t=this.G.I.length,n=0,i=this.GetID(),a=0;a=0;h--){var d="translateX("+o(t.translateX,i)+") translateY("+o(t.translateY,a)+") translateZ("+o(t.translateZ,r)+") scale("+o(t.scale,c)+") translate("+o(t.translate,1)+")";this.G.IE<=9||this.G.isGingerbread?d+=" rotate("+o(t.rotateZ,u)+")":d+=" rotateX("+o(t.rotateX,l)+") rotateY("+o(t.rotateY,s)+") rotateZ("+o(t.rotateZ,u)+") rotate("+o(t.rotate,1)+")",t.$elt[h].style[this.G.CSStransformName]=d,n>0&&(i-=this.G.tn.opt.Get("stacksTranslateX"),a-=this.G.tn.opt.Get("stacksTranslateY"),r-=this.G.tn.opt.Get("stacksTranslateZ"),l-=this.G.tn.opt.Get("stacksRotateX"),s-=this.G.tn.opt.Get("stacksRotateY"),u-=this.G.tn.opt.Get("stacksRotateZ"),c-=this.G.tn.opt.Get("stacksScale"))}else if(null!=t.$elt)for(h=0;h',thumbnailImage:'',breadcrumbAlbum:'',breadcrumbHome:'',breadcrumbSeparator:'',breadcrumbSeparatorRtl:'',navigationFilterSelected:'',navigationFilterUnselected:'',navigationFilterSelectedAll:'',navigationPaginationPrevious:'',navigationPaginationNext:'',thumbnailSelected:'',thumbnailUnselected:'',thumbnailFeatured:'',thumbnailCounter:'',thumbnailShare:'',thumbnailDownload:'',thumbnailInfo:'',thumbnailShoppingcart:'',thumbnailDisplay:'',thumbnailCustomTool1:"T1",thumbnailCustomTool2:"T2",thumbnailCustomTool3:"T3",thumbnailCustomTool4:"T4",thumbnailCustomTool5:"T5",thumbnailCustomTool6:"T6",thumbnailCustomTool7:"T7",thumbnailCustomTool8:"T8",thumbnailCustomTool9:"T9",thumbnailCustomTool10:"T10",thumbnailAlbumUp:'',paginationNext:'',paginationPrevious:'',galleryMoreButton:' ',buttonClose:'',viewerPrevious:'',viewerNext:'',viewerImgPrevious:'',viewerImgNext:'',viewerDownload:'',viewerToolbarMin:'',viewerToolbarStd:'',viewerPlay:'',viewerPause:'',viewerFullscreenOn:'',viewerFullscreenOff:'',viewerZoomIn:'',viewerZoomOut:'',viewerLinkOriginal:'',viewerInfo:'',viewerShare:'',viewerRotateLeft:'',viewerRotateRight:'',viewerShoppingcart:'',user:'',location:'',picture:'',config:'',shareFacebook:'',shareTwitter:'',shareTumblr:'',sharePinterest:'',shareVK:'',shareMail:'',viewerCustomTool1:"T1",viewerCustomTool2:"T2",viewerCustomTool3:"T3",viewerCustomTool4:"T4",viewerCustomTool5:"T5",viewerCustomTool6:"T6",viewerCustomTool7:"T7",viewerCustomTool8:"T8",viewerCustomTool9:"T9",viewerCustomTool10:"T10"}},jQuery.fn.nanogallery2=function(t,n,i){if(void 0===jQuery(this).data("nanogallery2data")){if("destroy"==t)return;return this.each((function(){new jQuery.nanogallery2(this,t)}))}var a=e(this).data("nanogallery2data").nG2;if(void 0===t||!0!==t.lightboxStandalone){switch(t){case"displayItem":a.DisplayItem(n);break;case"search":return a.Search(n);case"search2":return a.Search2(n,i);case"search2Execute":return a.Search2Execute();case"refresh":a.Refresh();break;case"resize":a.Resize();break;case"instance":return a;case"data":return a.data={items:a.I,gallery:a.GOM,lightbox:a.VOM,shoppingcart:a.shoppingCart},a.data;case"reload":return a.ReloadAlbum(),e(this);case"itemsSelectedGet":return a.ItemsSelectedGet();case"itemsSetSelectedValue":a.ItemsSetSelectedValue(n,i);break;case"option":if(void 0===i)return a.Get(n);a.Set(n,i),"demoViewportWidth"==n&&e(window).trigger("resize");break;case"destroy":a.Destroy(),e(this).removeData("nanogallery2data");break;case"shoppingCartGet":return a.shoppingCart;case"shoppingCartUpdate":if(void 0===i||void 0===n)return!1;for(var o=n,r=i,l=0;l=i,r=l-(i-a),e.isPlaying()&&(o?(m(h,e._attachment,r),e.stop(!0)):(e._scheduleId=g(e._timeoutHandler,16.666666666666668),f(e,"beforeTween"),a=0?e:0-e}return s=1-(c=3*t)-(u=3*(i-t)-c),h=1-(m=3*n)-(d=3*(a-n)-m),r=e,l=function(e){return 1/(200*e)}(o),function(e){return((h*e+d)*e+m)*e}(function(e,t){var n,i,a,o,r,l;for(a=e,l=0;l<8;l++){if(f(o=p(a)-e)i)return i;for(;no?n=a:i=a,a=.5*(i-n)+n}return a}(r,l))}n.setBezierFunction=function(t,i,a,o,r){var l=function(t,n,i,a){return function(o){return e(o,t,n,i,a,1)}}(i,a,o,r);return l.displayName=t,l.x1=i,l.y1=a,l.x2=o,l.y2=r,n.prototype.formula[t]=l},n.unsetBezierFunction=function(e){delete n.prototype.formula[e]}}(),(t=new n)._filterArgs=[],n.interpolate=function(e,i,a,o,r){var l=n.shallowCopy({},e),s=r||0,u=n.composeEasingObject(e,o||"linear");t.set({});var c=t._filterArgs;c.length=0,c[0]=l,c[1]=e,c[2]=i,c[3]=u,n.applyFilter(t,"tweenCreated"),n.applyFilter(t,"beforeTween");var h=function(e,t,i,a,o,r){return n.tweenProps(a,t,e,i,1,r,o)}(e,l,i,a,u,s);return n.applyFilter(t,"afterTween"),h},function(e){var t=/(\d|\-|\.)/,n=/([^\-0-9\.]+)/g,i=/[0-9.\-]+/g,a=new RegExp("rgb\\("+i.source+/,\s*/.source+i.source+/,\s*/.source+i.source+"\\)","g"),o=/^.*\(/,r=/#([0-9]|[a-f]){3,6}/gi,l="VAL";function s(e,t){var n,i=[],a=e.length;for(n=0;n\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=e.console&&(e.console.warn||e.console.log);return o&&o.call(e.console,a,i),t.apply(this,arguments)}}a="function"!=typeof Object.assign?function(e){if(e===i||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n-1}function I(e){return e.trim().split(/\s+/g)}function T(e,t,n){if(e.indexOf&&!n)return e.indexOf(t);for(var i=0;in[t]})):i.sort()),i}function L(e,t){for(var n,a,r=t[0].toUpperCase()+t.slice(1),l=0;l1&&!n.firstMultiple?n.firstMultiple=$(t):1===o&&(n.firstMultiple=!1);var r=n.firstInput,l=n.firstMultiple,c=l?l.center:r.center,h=t.center=F(a);t.timeStamp=u(),t.deltaTime=t.timeStamp-r.timeStamp,t.angle=U(c,h),t.distance=H(c,h),function(e,t){var n=t.center,i=e.offsetDelta||{},a=e.prevDelta||{},o=e.prevInput||{};1!==t.eventType&&4!==o.eventType||(a=e.prevDelta={x:o.deltaX||0,y:o.deltaY||0},i=e.offsetDelta={x:n.x,y:n.y});t.deltaX=a.x+(n.x-i.x),t.deltaY=a.y+(n.y-i.y)}(n,t),t.offsetDirection=B(t.deltaX,t.deltaY);var d=z(t.deltaTime,t.deltaX,t.deltaY);t.overallVelocityX=d.x,t.overallVelocityY=d.y,t.overallVelocity=s(d.x)>s(d.y)?d.x:d.y,t.scale=l?(m=l.pointers,p=a,H(p[0],p[1],_)/H(m[0],m[1],_)):1,t.rotation=l?function(e,t){return U(t[1],t[0],_)+U(e[1],e[0],_)}(l.pointers,a):0,t.maxPointers=n.prevInput?t.pointers.length>n.prevInput.maxPointers?t.pointers.length:n.prevInput.maxPointers:t.pointers.length,function(e,t){var n,a,o,r,l=e.lastInterval||t,u=t.timeStamp-l.timeStamp;if(8!=t.eventType&&(u>25||l.velocity===i)){var c=t.deltaX-l.deltaX,h=t.deltaY-l.deltaY,d=z(u,c,h);a=d.x,o=d.y,n=s(d.x)>s(d.y)?d.x:d.y,r=B(c,h),e.lastInterval=t}else n=l.velocity,a=l.velocityX,o=l.velocityY,r=l.direction;t.velocity=n,t.velocityX=a,t.velocityY=o,t.direction=r}(n,t);var m,p;var g=e.element;M(t.srcEvent.target,g)&&(g=t.srcEvent.target);t.target=g}(e,n),e.emit("hammer.input",n),e.recognize(n),e.session.prevInput=n}function $(e){for(var t=[],n=0;n=s(t)?e<0?2:4:t<0?8:16}function H(e,t,n){n||(n=A);var i=t[n[0]]-e[n[0]],a=t[n[1]]-e[n[1]];return Math.sqrt(i*i+a*a)}function U(e,t,n){n||(n=A);var i=t[n[0]]-e[n[0]],a=t[n[1]]-e[n[1]];return 180*Math.atan2(a,i)/Math.PI}P.prototype={handler:function(){},init:function(){this.evEl&&y(this.element,this.evEl,this.domHandler),this.evTarget&&y(this.target,this.evTarget,this.domHandler),this.evWin&&y(E(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&G(this.element,this.evEl,this.domHandler),this.evTarget&&G(this.target,this.evTarget,this.domHandler),this.evWin&&G(E(this.element),this.evWin,this.domHandler)}};var W={mousedown:1,mousemove:2,mouseup:4},j="mousedown",X="mousemove mouseup";function Q(){this.evEl=j,this.evWin=X,this.pressed=!1,P.apply(this,arguments)}f(Q,P,{handler:function(e){var t=W[e.type];1&t&&0===e.button&&(this.pressed=!0),2&t&&1!==e.which&&(t=4),this.pressed&&(4&t&&(this.pressed=!1),this.callback(this.manager,t,{pointers:[e],changedPointers:[e],pointerType:V,srcEvent:e}))}});var q={pointerdown:1,pointermove:2,pointerup:4,pointercancel:8,pointerout:8},Z={2:N,3:"pen",4:V,5:"kinect"},J="pointerdown",K="pointermove pointerup pointercancel";function ee(){this.evEl=J,this.evWin=K,P.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}e.MSPointerEvent&&!e.PointerEvent&&(J="MSPointerDown",K="MSPointerMove MSPointerUp MSPointerCancel"),f(ee,P,{handler:function(e){var t=this.store,n=!1,i=e.type.toLowerCase().replace("ms",""),a=q[i],o=Z[e.pointerType]||e.pointerType,r=o==N,l=T(t,e.pointerId,"pointerId");1&a&&(0===e.button||r)?l<0&&(t.push(e),l=t.length-1):12&a&&(n=!0),l<0||(t[l]=e,this.callback(this.manager,a,{pointers:t,changedPointers:[e],pointerType:o,srcEvent:e}),n&&t.splice(l,1))}});var te={touchstart:1,touchmove:2,touchend:4,touchcancel:8},ne="touchstart",ie="touchstart touchmove touchend touchcancel";function ae(){this.evTarget=ne,this.evWin=ie,this.started=!1,P.apply(this,arguments)}function oe(e,t){var n=x(e.touches),i=x(e.changedTouches);return 12&t&&(n=S(n.concat(i),"identifier",!0)),[n,i]}f(ae,P,{handler:function(e){var t=te[e.type];if(1===t&&(this.started=!0),this.started){var n=oe.call(this,e,t);12&t&&n[0].length-n[1].length==0&&(this.started=!1),this.callback(this.manager,t,{pointers:n[0],changedPointers:n[1],pointerType:N,srcEvent:e})}}});var re={touchstart:1,touchmove:2,touchend:4,touchcancel:8},le="touchstart touchmove touchend touchcancel";function se(){this.evTarget=le,this.targetIds={},P.apply(this,arguments)}function ue(e,t){var n=x(e.touches),i=this.targetIds;if(3&t&&1===n.length)return i[n[0].identifier]=!0,[n,n];var a,o,r=x(e.changedTouches),l=[],s=this.target;if(o=n.filter((function(e){return M(e.target,s)})),1===t)for(a=0;a-1&&i.splice(e,1)}),2500)}}function me(e){for(var t=e.srcEvent.clientX,n=e.srcEvent.clientY,i=0;i-1&&this.requireFail.splice(t,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(e){return!!this.simultaneous[e.id]},emit:function(e){var t=this,n=this.state;function i(n){t.manager.emit(n,e)}n<8&&i(t.options.event+xe(n)),i(t.options.event),e.additionalEvent&&i(e.additionalEvent),n>=8&&i(t.options.event+xe(n))},tryEmit:function(e){if(this.canEmit())return this.emit(e);this.state=Ie},canEmit:function(){for(var e=0;et.threshold&&a&t.direction},attrTest:function(e){return Ce.prototype.attrTest.call(this,e)&&(2&this.state||!(2&this.state)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=Se(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),f(ke,Ce,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Oe]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||2&this.state)},emit:function(e){if(1!==e.scale){var t=e.scale<1?"in":"out";e.additionalEvent=this.options.event+t}this._super.emit.call(this,e)}}),f(De,Te,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[be]},process:function(e){var t=this.options,n=e.pointers.length===t.pointers,i=e.distancet.time;if(this._input=e,!i||!n||12&e.eventType&&!a)this.reset();else if(1&e.eventType)this.reset(),this._timer=c((function(){this.state=8,this.tryEmit()}),t.time,this);else if(4&e.eventType)return 8;return Ie},reset:function(){clearTimeout(this._timer)},emit:function(e){8===this.state&&(e&&4&e.eventType?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=u(),this.manager.emit(this.options.event,this._input)))}}),f(Ne,Ce,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Oe]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||2&this.state)}}),f(Ve,Ce,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:30,pointers:1},getTouchAction:function(){return Ee.prototype.getTouchAction.call(this)},attrTest:function(e){var t,n=this.options.direction;return 30&n?t=e.overallVelocity:6&n?t=e.overallVelocityX:n&Y&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&n&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&s(t)>this.options.velocity&&4&e.eventType},emit:function(e){var t=Se(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),f(Ye,Te,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ve]},process:function(e){var t=this.options,n=e.pointers.length===t.pointers,i=e.distance";l(n,"Could not retrieve nanoPhotosProvider2 data. Error: "+(t+", "+i+" "+a+"
URL:"+d))}))}catch(e){l(n,"Could not retrieve nanoPhotosProvider2 data. Error: "+e)}};function a(e){return decodeURIComponent(e)}function o(e,t){n.O.debugMode&&(console.log("nanoPhotosProvider2 parse data:"),console.dir(t));jQuery.each(t.album_content,(function(e,i){var o=n.O.dataProvider.substring(0,n.O.dataProvider.indexOf("nano_photos_provider2.php")),r=o+a(i.src),l=i.title,u=i.description.split("_").join(" "),c="image";void 0!==i.kind&&i.kind.length>0&&(c=i.kind);var h=i.ID,d=!1;if("album"==c&&(s(l,h)||(d=!0),""==n.O.album&&""==n.O.photoset||(d=!0)),"image"==c||!d){var m=0;void 0!==i.albumID&&(m=i.albumID,!0);var p=void 0===i.tags?"":i.tags,g=NGY2Item.New(n,l.split("_").join(" "),u,h,m,c,p);g.setMediaURL(r,"img"),void 0!==i.dcGIF&&(g.imageDominantColors="data:image/gif;base64,"+i.dcGIF),void 0!==i.dc&&""!==i.dc&&(g.imageDominantColor=i.dc),"album"==c?g.numberItems=i.cnt:(g.imageWidth=i.imgWidth,g.imageHeight=i.imgHeight),""!=i.originalURL&&(g.downloadURL=o+a(i.originalURL));for(var f=n.GOM.curNavLevel,b=["xs","sm","me","la","xl"],v=0;v0&&(d="&max-results="+n.galleryMaxItems.Get());var m="";"undefined"!=typeof ngy2_pwa_at&&(m=ngy2_pwa_at),0==e?(s=""!=m?"https://photoslibrary.googleapis.com/v1/albums":n.O.google2URL+"?nguserid="+n.O.userID+"&alt=json&v=3&kind=album"+d+"&rnd="+(new Date).getTime(),u="album"):s=""!=m?"https://photoslibrary.googleapis.com/v1/mediaItems:search":n.O.google2URL+"?nguserid="+n.O.userID+"&ngalbumid="+e+"&alt=json&v=3&kind=photo&"+d,n.O.debugMode&&console.log("Google Photos URL: "+s),r(!0),jQuery.ajaxSetup({cache:!1}),jQuery.support.cors=!0;try{var p=setTimeout((function(){r(!1),l("Could not retrieve AJAX data...")}),6e4);jQuery.getJSON(s+"&callback=?",(function(s){if("error"==s.nano_status)return clearTimeout(p),r(!1),void l(n,"Could not retrieve Google data. Error: "+s.nano_message);clearTimeout(p),r(!1),a(c,u,s),h(e),null!=t&&t(i,o,null)})).fail((function(e,t,i){clearTimeout(p),r(!1);var a="";for(var o in e)a+=o+"="+e[o]+"
";l(n,"Could not retrieve Google data. Error: "+(t+", "+i+" "+a+"
URL:"+s))}))}catch(e){l(n,"Could not retrieve Google data. Error: "+e)}};function a(e,t,i){n.O.debugMode&&(console.log("Google Photos data:"),console.dir(i));var a=n.I[e].GetID();jQuery.each(i,(function(e,i){if("object"==typeof i&&null!==i){var r="",l="";"image"==t?(void 0!==i.description&&(r=i.description),""!=n.O.thumbnailLabel.get("title")&&(l=u(i.filename))):l=i.title,null==l&&(l="");var h=i.id;if("album"==t&&(!c(l,h)||null==i.coverPhotoBaseUrl))return!0;var d=NGY2Item.New(n,l,r,h,a,t,""),m=0,p=0,g="";"image"==t?(g=i.baseUrl,n.O.viewerZoom||null==n.O.viewerZoom?g+="=h"+i.mediaMetadata.height+"-w"+i.mediaMetadata.width:window.screen.width>window.screen.height?g+="=w"+window.screen.width:g=s+"=h"+window.screen.height,d.setMediaURL(g,"img"),void 0!==i.mediaMetadata.width&&(d.imageWidth=parseInt(i.mediaMetadata.width),m=d.imageWidth),void 0!==i.mediaMetadata.height&&(d.imageHeight=parseInt(i.mediaMetadata.height),p=d.imageHeight),void 0!==i.mediaMetadata.photo&&(null!=i.mediaMetadata.photo.exposureTime&&(d.exif.exposure=i.mediaMetadata.photo.exposureTime),null!=i.mediaMetadata.photo.focalLength&&(d.exif.focallength=i.mediaMetadata.photo.focalLength),null!=i.mediaMetadata.photo.apertureFNumber&&(d.exif.fstop=i.mediaMetadata.photo.apertureFNumber),null!=i.mediaMetadata.photo.isoEquivalent&&(d.exif.iso=i.mediaMetadata.photo.isoEquivalent),null!=i.mediaMetadata.photo.cameraModel&&(d.exif.model=i.mediaMetadata.photo.cameraModel)),void 0!==i.mediaMetadata.video&&(null!=i.mediaMetadata.video.cameraModel&&(d.exif.model=i.mediaMetadata.video.cameraModel),d.downloadURL=i.baseUrl+"=dv")):d.numberItems=i.mediaItemsCount,d.thumbs=o("l1",d.thumbs,i,t,p,m),d.thumbs=o("lN",d.thumbs,i,t,p,m);var f=n.O.fnProcessData;null!==f&&("function"==typeof f?f(d,"google2",i):window[f](d,"google2",i))}})),n.I[e].contentIsLoaded=!0}function o(e,t,i,a,o,r){for(var l=["xs","sm","me","la","xl"],s=0;sd?b(i,d+1):(clearTimeout(g),c(!1),f=u(f,n.O.tagBlockList),"album"==m?r(s,e,f):o(s,e,f),p(e),null!=t&&t(a,l,null))})).fail((function(e,t,i){clearTimeout(g),c(!1),h(n,"Could not retrieve Flickr ajax data: "+t+", "+i)}))};b(d,1)};function o(e,t,a){n.O.debugMode&&(console.log("Flickr parse photos:"),console.dir(a)),jQuery.each(a,(function(e,a){var o=a.id,r=a.url_sq,s=a.title;""!=n.O.thumbnailLabel.get("title")&&(s=d(r));var u=a.description._content,c=75,h=75,m=i.photoAvailableSizesStr.length-1;n.O.flickrSkipOriginal&&m--;for(e=m;e>=0;e--)if(null!=a["url_"+i.photoAvailableSizesStr[e]]){r=a["url_"+i.photoAvailableSizesStr[e]],c=parseInt(a["width_"+i.photoAvailableSizesStr[e]]),h=parseInt(a["height_"+i.photoAvailableSizesStr[e]]);break}var p={};for(var g in a)0!=g.indexOf("height_")&&0!=g.indexOf("width_")&&0!=g.indexOf("url_")||(p[g]=a[g]);var f=void 0!==a.tags?a.tags:"",b=NGY2Item.New(n,s,u,o,t,"image",f);b.setMediaURL(r,"img"),b.imageWidth=c,b.imageHeight=h;var v={url:{l1:{xs:"",sm:"",me:"",la:"",xl:""},lN:{xs:"",sm:"",me:"",la:"",xl:""}},width:{l1:{xs:0,sm:0,me:0,la:0,xl:0},lN:{xs:0,sm:0,me:0,la:0,xl:0}},height:{l1:{xs:0,sm:0,me:0,la:0,xl:0},lN:{xs:0,sm:0,me:0,la:0,xl:0}}};v=l(v,a,"l1"),v=l(v,a,"lN"),b.thumbs=v;var O=n.O.fnProcessData;null!==O&&("function"==typeof O?O(b,"flickr",a):window[O](b,"flickr",a))})),n.I[e].contentIsLoaded=!0}function r(e,t,i){n.O.debugMode&&(console.log("Flickr parse list of albums:"),console.dir(i)),jQuery.each(i,(function(e,i){var a=i.title._content;if(0==i.visibility_can_see_set)return!0;if(m(a,i.id)){var o=i.id,r=null!=i.description._content?i.description._content:"",s={};for(var u in i.primary_photo_extras)s[u]=i.primary_photo_extras[u];var c="";void 0!==i.primary_photo_extras&&void 0!==i.primary_photo_extras.tags&&(c=i.primary_photo_extras.tags);var h=NGY2Item.New(n,a,r,o,t,"album",c);h.numberItems=i.photos,h.thumbSizes=s;var d={url:{l1:{xs:"",sm:"",me:"",la:"",xl:""},lN:{xs:"",sm:"",me:"",la:"",xl:""}},width:{l1:{xs:0,sm:0,me:0,la:0,xl:0},lN:{xs:0,sm:0,me:0,la:0,xl:0}},height:{l1:{xs:0,sm:0,me:0,la:0,xl:0},lN:{xs:0,sm:0,me:0,la:0,xl:0}}};d=l(d,i.primary_photo_extras,"l1"),d=l(d,i.primary_photo_extras,"lN"),h.thumbs=d;var p=n.O.fnProcessData;null!==p&&("function"==typeof p?p(h,"flickr",i):window[p](h,"flickr",i))}})),n.I[e].contentIsLoaded=!0}function l(e,t,i){var a=1;!0===n.tn.opt[i].crop&&(a=n.O.thumbnailCropScaleFactor);for(var o=["xs","sm","me","la","xl"],r=0;rn.tn.settings.height[i][o[r]]&&(l="width_",u=Math.ceil(n.tn.settings.width[i][o[r]]*n.tn.scale*a*n.tn.settings.mosaic[i+"Factor"].w[o[r]]));let c=s(l,u,t);e.url[i][o[r]]=c.url,e.width[i][o[r]]=c.width,e.height[i][o[r]]=c.height}return e}function s(e,t,n){for(var a={url:"",width:0,height:0},o=0,r=0;r=t))break}var s=i.photoAvailableSizesStr[o];return a.url=n["url_"+s],a.width=parseInt(n["width_"+s]),a.height=parseInt(n["height_"+s]),a}var u=function(e,t){return""!=t&&null!=e&&(e=e.filter((function(e){var n=new RegExp(t,"i"),i=[e.tags];return Array.isArray(e.tags)&&(i=e.tags),!i.some((function(e){return n.test(e)}))}))),e};var c=NGY2Tools.PreloaderDisplay.bind(n),h=NGY2Tools.NanoAlert,d=NGY2Tools.GetImageTitleFromURL.bind(n),m=NGY2Tools.FilterAlbumName.bind(n),p=NGY2Tools.AlbumPostProcess.bind(n);switch(t){case"AlbumGetContent":var g=arguments[2],f=arguments[3],b=arguments[4],v=arguments[5];a(g,f,b,v)}}}));
\ No newline at end of file
From 18e6d3ad171c4c1b187825c1da10d60d89dc7067 Mon Sep 17 00:00:00 2001
From: city-unit <140349364+city-unit@users.noreply.github.com>
Date: Mon, 21 Aug 2023 00:46:25 -0400
Subject: [PATCH 05/23] A gallery viewer, powered by nanogallery2.
---
public/scripts/extensions/gallery/index.js | 123 ++++++++++++++++++
.../scripts/extensions/gallery/manifest.json | 12 ++
2 files changed, 135 insertions(+)
create mode 100644 public/scripts/extensions/gallery/index.js
create mode 100644 public/scripts/extensions/gallery/manifest.json
diff --git a/public/scripts/extensions/gallery/index.js b/public/scripts/extensions/gallery/index.js
new file mode 100644
index 000000000..d8ae588d7
--- /dev/null
+++ b/public/scripts/extensions/gallery/index.js
@@ -0,0 +1,123 @@
+import {
+ eventSource, this_chid, characters, callPopup
+} from "../../../script.js";
+import { selected_group } from "../../group-chats.js";
+
+
+function loadFile(url, type, callback) {
+ return new Promise((resolve, reject) => {
+ if (type === "css") {
+ var link = document.createElement("link");
+ link.rel = "stylesheet";
+ link.href = url;
+ document.head.appendChild(link);
+ link.onload = resolve;
+ link.onerror = reject;
+ } else if (type === "js") {
+ var script = document.createElement("script");
+ script.src = url;
+ document.body.appendChild(script);
+ script.onload = resolve;
+ script.onerror = reject;
+ }
+ });
+}
+
+const extensionName = "gallery";
+const extensionFolderPath = `scripts/extensions/${extensionName}/`;
+let firstTime = true;
+
+async function showCharGallery() {
+
+ if (firstTime) {
+ loadFile(`${extensionFolderPath}nanogallery2.woff.min.css`, "css")
+ .then(() => {
+ firstTime = false;
+ return loadFile(`${extensionFolderPath}jquery.nanogallery2.min.js`, "js");
+ })
+ }
+
+ console.trace('showCharGallery()');
+ try {
+ let selectedID = this_chid;
+ let url = "";
+
+ if (selected_group) {
+ selectedID = selected_group;
+ url = selectedID;
+ }
+ if (selectedID) {
+ let char = characters[selectedID];
+ let avatar = char.avatar;
+ avatar = avatar.replace('.png', '');
+ url = avatar;
+ }
+
+ const items = await getGalleryItems(url);
+
+ // Create empty container for gallery and display popup
+ let close = callPopup('', 'text');
+ if ($("body").css("position") === "fixed") {
+ $("body").css("position", "static");
+ }
+
+ // Delayed initialization of nanogallery2
+ setTimeout(() => {
+ $("#my-gallery").nanogallery2({
+ items: items,
+ thumbnailHeight: 150,
+ thumbnailWidth: 150,
+ });
+ console.log($("#my-gallery").children().length);
+ }, 100);
+
+ close.then(() => {
+ $("#my-gallery").nanogallery2('destroy');
+ if ($("body").css("position") === "static") {
+ $("body").css("position", "fixed");
+ }
+ });
+
+ } catch (err) {
+ console.error(err);
+ }
+}
+
+
+async function getGalleryItems(url) {
+ return new Promise((resolve, reject) => {
+ $.get(`/listimgfiles/${url}`, function (files) {
+ const items = files.map(file => {
+ let imgSrc = `user/images/${url}/${file}`;
+ return {
+ src: imgSrc,
+ srct: imgSrc,
+ title: '' // Or add a title if you wish
+ };
+ });
+ resolve(items);
+ }).fail(error => {
+ reject(error);
+ });
+ });
+}
+
+jQuery(async () => { //wait for the page to load
+ $(document).ready(function () {
+ // Listen to the emitted event
+ eventSource.on('charManagementDropdown', (selectedOptionId) => {
+ console.log("Emitted event received with option ID:", selectedOptionId);
+
+ if (selectedOptionId === "show_char_gallery") {
+ showCharGallery();
+ }
+ });
+
+ let newOption = $('