From 6f408c36516638c3dceb86582823eb312a0bbc35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= <jfd@butonic.de> Date: Wed, 4 Jul 2012 23:36:49 +0200 Subject: [PATCH] add supersized slideshow --- apps/gallery/css/supersized.css | 25 + apps/gallery/css/supersized.shutter.css | 74 ++ apps/gallery/img/supersized/back.png | Bin 0 -> 2629 bytes apps/gallery/img/supersized/bg-black.png | Bin 0 -> 1074 bytes apps/gallery/img/supersized/bg-hover.png | Bin 0 -> 960 bytes .../img/supersized/button-tray-down.png | Bin 0 -> 1506 bytes .../gallery/img/supersized/button-tray-up.png | Bin 0 -> 1466 bytes apps/gallery/img/supersized/forward.png | Bin 0 -> 2614 bytes apps/gallery/img/supersized/nav-bg.png | Bin 0 -> 995 bytes apps/gallery/img/supersized/nav-dot.png | Bin 0 -> 1901 bytes apps/gallery/img/supersized/pause.png | Bin 0 -> 1131 bytes apps/gallery/img/supersized/play.png | Bin 0 -> 1562 bytes apps/gallery/img/supersized/progress-back.png | Bin 0 -> 929 bytes apps/gallery/img/supersized/progress-bar.png | Bin 0 -> 929 bytes apps/gallery/img/supersized/progress.gif | Bin 0 -> 2608 bytes .../img/supersized/supersized-logo.png | Bin 0 -> 3982 bytes apps/gallery/img/supersized/thumb-back.png | Bin 0 -> 2122 bytes apps/gallery/img/supersized/thumb-forward.png | Bin 0 -> 2118 bytes apps/gallery/index.php | 6 + apps/gallery/js/jquery.easing.min.js | 71 ++ apps/gallery/js/slideshow.js | 58 ++ apps/gallery/js/supersized.3.2.7.js | 930 ++++++++++++++++++ apps/gallery/js/supersized.3.2.7.min.js | 13 + apps/gallery/js/supersized.shutter.js | 337 +++++++ apps/gallery/js/supersized.shutter.min.js | 14 + apps/gallery/templates/index.php | 52 +- 26 files changed, 1579 insertions(+), 1 deletion(-) create mode 100644 apps/gallery/css/supersized.css create mode 100644 apps/gallery/css/supersized.shutter.css create mode 100644 apps/gallery/img/supersized/back.png create mode 100644 apps/gallery/img/supersized/bg-black.png create mode 100644 apps/gallery/img/supersized/bg-hover.png create mode 100644 apps/gallery/img/supersized/button-tray-down.png create mode 100644 apps/gallery/img/supersized/button-tray-up.png create mode 100644 apps/gallery/img/supersized/forward.png create mode 100644 apps/gallery/img/supersized/nav-bg.png create mode 100644 apps/gallery/img/supersized/nav-dot.png create mode 100644 apps/gallery/img/supersized/pause.png create mode 100644 apps/gallery/img/supersized/play.png create mode 100644 apps/gallery/img/supersized/progress-back.png create mode 100644 apps/gallery/img/supersized/progress-bar.png create mode 100644 apps/gallery/img/supersized/progress.gif create mode 100644 apps/gallery/img/supersized/supersized-logo.png create mode 100644 apps/gallery/img/supersized/thumb-back.png create mode 100644 apps/gallery/img/supersized/thumb-forward.png create mode 100644 apps/gallery/js/jquery.easing.min.js create mode 100644 apps/gallery/js/slideshow.js create mode 100644 apps/gallery/js/supersized.3.2.7.js create mode 100644 apps/gallery/js/supersized.3.2.7.min.js create mode 100644 apps/gallery/js/supersized.shutter.js create mode 100644 apps/gallery/js/supersized.shutter.min.js diff --git a/apps/gallery/css/supersized.css b/apps/gallery/css/supersized.css new file mode 100644 index 0000000000..617f501120 --- /dev/null +++ b/apps/gallery/css/supersized.css @@ -0,0 +1,25 @@ +/* + + Supersized - Fullscreen Slideshow jQuery Plugin + Version : 3.2.7 + Site : www.buildinternet.com/project/supersized + + Author : Sam Dunn + Company : One Mighty Roar (www.onemightyroar.com) + License : MIT License / GPL License + +*/ +#supersized-loader { display:none; position:absolute; top:50%; left:50%; z-index:0; width:60px; height:60px; margin:-30px 0 0 -30px; text-indent:-999em; background:url('%appswebroot%/gallery/img/supersized/progress.gif') no-repeat center center;} + +#supersized { visibility:hidden; display:block; position:fixed; left:0; top:0; overflow:hidden; z-index:200; height:100%; width:100%; } +#supersized img { width:auto; height:auto; position:relative; display:none; outline:none; border:none; } +#supersized.speed img { -ms-interpolation-mode:nearest-neighbor; image-rendering: -moz-crisp-edges; } /*Speed*/ +#supersized.quality img { -ms-interpolation-mode:bicubic; image-rendering: optimizeQuality; } /*Quality*/ + +#supersized li { display:block; list-style:none; z-index:150; position:fixed; overflow:hidden; top:0; left:0; width:100%; height:100%; background:#111; } +#supersized a { width:100%; height:100%; display:block; } +#supersized li.prevslide { z-index:160; } +#supersized li.activeslide { z-index:170; } +#supersized li.image-loading { background:#111 url('%appswebroot%/gallery/img/supersized/progress.gif') no-repeat center center; width:100%; height:100%; } +#supersized li.image-loading img{ visibility:hidden; } +#supersized li.prevslide img, #supersized li.activeslide img{ display:inline; } diff --git a/apps/gallery/css/supersized.shutter.css b/apps/gallery/css/supersized.shutter.css new file mode 100644 index 0000000000..0084d4bb9c --- /dev/null +++ b/apps/gallery/css/supersized.shutter.css @@ -0,0 +1,74 @@ +/* + + Supersized - Fullscreen Slideshow jQuery Plugin + Version : 3.2.7 + Site : www.buildinternet.com/project/supersized + + Theme : Shutter 1.2 + Author : Sam Dunn + Company : One Mighty Roar (www.onemightyroar.com) + License : MIT License / GPL License + +*/ + +/* Controls Bar +----------------------------*/ +#slideshow-controls-wrapper { margin:0 auto; height:42px; width:100%; bottom:0px; left:0; z-index:204; background:url('%appswebroot%/gallery/img/supersized/nav-bg.png') repeat-x; position:fixed; } +#slideshow-controls { overflow:hidden; height:100%; position:relative; text-align:left; z-index:205; } +#slidecounter { float:left; color:#999; font:14px "Helvetica Neue", Helvetica, Arial, sans-serif; text-shadow:#000 0 -1px 0; margin:0px 10px 0 15px; line-height:42px; } +#slidecaption { overflow:hidden; float:left; color:#FFF; font:400 14px "Helvetica Neue", Helvetica, Arial, sans-serif; text-shadow:#000 1px 1px 2px; margin:0 20px 0 0; line-height:42px; } + +/*#navigation { float:right; margin:0px 20px 0 0; }*/ +#play-button{ float:left; margin-top:1px;border-right:1px solid #333; background:url('%appswebroot%/gallery/img/supersized/bg-hover.png') repeat-x 0 44px; } +#play-button:hover{ background-position:0 1px; cursor:pointer; } + +#prevslide, #nextslide{ position:fixed; height:43px; width:43px; top:50%; margin-top:-21px; opacity:0.6; z-index:204; } +#prevslide{ left:10px; background:url('%appswebroot%/gallery/img/supersized/back.png'); } +#nextslide{ right:10px; background:url('%appswebroot%/gallery/img/supersized/forward.png'); } +#prevslide:active, #nextslide:active{ margin-top:-19px; } +#prevslide:hover, #nextslide:hover{ cursor:pointer; } + +ul#slide-list{ padding:15px 0; float:left; position:absolute; left:50%; } +ul#slide-list li{ list-style:none; width:12px; height:12px; float:left; margin:0 5px 0 0; } +ul#slide-list li.current-slide a, ul#slide-list li.current-slide a:hover{ background-position:0 0px; } +ul#slide-list li a{ display:block; width:12px; height:12px; background:url('%appswebroot%/gallery/img/supersized/nav-dot.png') no-repeat 0 -24px; } +ul#slide-list li a:hover{ background-position:0 -12px; cursor:pointer; } + +#tray-button{ float:right; margin-top:1px; border-left:1px solid #333; background:url('%appswebroot%/gallery/img/supersized/bg-hover.png') repeat-x 0 44px; } +#tray-button:hover{ background-position:0 1px; cursor:pointer; } + + +/* Progress Bar +----------------------------*/ +#progress-back{ z-index:205; position:fixed; bottom:42px; left:0; height:8px; width:100%; background:url('%appswebroot%/gallery/img/supersized/progress-back.png') repeat-x; } +#progress-bar{ position:relative; height:8px; width:100%; background:url('%appswebroot%/gallery/img/supersized/progress-bar.png') repeat-x; } + + +/* Thumbnail Navigation +----------------------------*/ +#nextthumb,#prevthumb { z-index:202; display:none; position:fixed; bottom:61px; height:75px; width:100px; overflow:hidden; background:#ddd; border:1px solid #fff; -webkit-box-shadow:0 0 5px #000; } +#nextthumb { right:12px; } +#prevthumb { left:12px; } +#nextthumb img, #prevthumb img { width:150px; height:auto; } +#nextthumb:active, #prevthumb:active { bottom:59px; } +#nextthumb:hover, #prevthumb:hover { cursor:pointer; } + + +/* Thumbnail Tray +----------------------------*/ +#thumb-tray{ position:fixed; z-index:203; bottom:0; left:0; background:url('%appswebroot%/gallery/img/supersized/bg-black.png'); height:150px; width:100%; overflow:hidden; text-align:center; -moz-box-shadow: 0px 0px 4px #000; -webkit-box-shadow: 0px 0px 4px #000; box-shadow: 0px 0px 4px #000; } + +#thumb-back, #thumb-forward{ position:absolute; z-index:5; bottom:42px; height:108px; width:40px; } +#thumb-back{ left:0; background: url('%appswebroot%/gallery/img/supersized/thumb-back.png') no-repeat center center;} +#thumb-forward{ right:0; background:url('%appswebroot%/gallery/img/supersized/thumb-forward.png') no-repeat center center;} +#thumb-back:hover, #thumb-forward:hover{ cursor:pointer; background-color:rgba(256,256,256, 0.1); } +#thumb-back:hover{ border-right:1px solid rgba(256,256,256, 0.2); } +#thumb-forward:hover{ border-left:1px solid rgba(256,256,256, 0.2); } + + +ul#thumb-list{ display:inline-block; list-style:none; position:relative; left:0px; padding:0 0px; } +ul#thumb-list li{ background:#111; list-style:none; display:inline; width:150px; height:108px; overflow:hidden; float:left; margin:0; } +ul#thumb-list li img { width:200px; height:auto; opacity:0.5; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; filter:alpha(opacity=60); -webkit-transition: all 100ms ease-in-out; -moz-transition: all 100ms ease-in-out; -o-transition: all 100ms ease-in-out; -ms-transition: all 100ms ease-in-out; transition: all 100ms ease-in-out; } +ul#thumb-list li.current-thumb img, ul#thumb-list li:hover img{ opacity:1; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter:alpha(opacity=100); } +ul#thumb-list li:hover{ cursor:pointer; } + diff --git a/apps/gallery/img/supersized/back.png b/apps/gallery/img/supersized/back.png new file mode 100644 index 0000000000000000000000000000000000000000..44cd0ae703cb0810dc707f0da621708e14018fdd GIT binary patch literal 2629 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 a8^gIPtFBDjsw@F&*m=78xvX<aXaWGs%v!_% literal 0 HcmV?d00001 diff --git a/apps/gallery/img/supersized/bg-black.png b/apps/gallery/img/supersized/bg-black.png new file mode 100644 index 0000000000000000000000000000000000000000..8c2f00140d611be9ab73598bd1ca5f313416b8ec GIT binary patch literal 1074 zcmeAS@N?(olHy`uVBq!ia0y~yU`PRB4mJh`hJr^^Ll_tsBuiW)N`mv#O3D+9QW+dm z@{>{(JaZG%Q-e|yQz{EjrrIztFe_z-M3hAM`dB6B=jtVb)aX^@7BGN-jeSKyVsdtB zi9%9pdS;%j()-=}l@u~lY?Z=IeGPmIoKrJ0J*tXQgRA^PlB=?lEmM^2?G$V(tSWK~ za#KqZ6)JLb@`|l0Y?Z*~TICg6frRyy6u?SKvTc<hj*9RNP;kyKN>wn`Gtf;oFf&jv zGt@IQHZeCh*HJJsFf`CNFw!?P(ls=<GB&a@Fi?O3B|8P1qLehNAQv~NT}3Hrwn`Z# zB?VUc`sL;2dgaD?`9<mahL)C=ATx}Nbc<5bbc-wVN)jt{^NN*WCb*;)Cl_TFlw{`T zDS%8&Ov*1Uu~kxn8e5TD05>+T7#d8;`MLTPi3R$GdIlgbLHwFq;OmQDX>KlDb#X~h zD#E>34K5C;EJ)Q4N-fSWElN%eN=;J+xv9X)xhOTUB)=#mKR*W+iUAq<CHch}`2`Bj z!KMnniOHFHAU;^VudkJ7UU5lcUUI6Zi>*>cZh>BAW{Q=Ishhd8xrL>Pxv`s}p{s$V zi-ozPiJ6(3k%_s1tAR00uS<S%X>Mv>2~2MaLa!rEy`ZE33Jxom)S}F?)D*X({9FaF zm#s2!yTu%*c~HG6xZPrbQ?I_Af{i{XVv!;mCKTl224aHKBq)8_DIgMlYF>)1QjwCq zoyFe?YZ(|AmU+53hE&{obCHpkfq~=jhUWUrjzesUb6d7f@+n!ijiIA~K~O+}iOI#G mfrFlG4gp4}z5BK^@h~ixVw_Sdxv(0Pi#=WaT-G@yGywprjy${o literal 0 HcmV?d00001 diff --git a/apps/gallery/img/supersized/bg-hover.png b/apps/gallery/img/supersized/bg-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..1ca2022e106454b787657cecabc88aa30eb744fb GIT binary patch literal 960 zcmeAS@N?(olHy`uVBq!ia0y~yU|?imU{K;<V_;yIr@L8@fq_A?#5JNMI6tkVJh3R1 z!7(L2DOJHUH!(dmC^a#qvhZZ84FdzSQf5d*NrbPDRdRl=ULr`1UPW#J0|?mIR}>^B zXQ!4ZB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT8h zBDWwnwIorYA~z?m*s8)-32d%aUa=KOSYJs2tfVB{Rte&$2;Tq&=lr5n1yel(-DCqZ z0|hffJwsy?b8~YY1tSAP1APM{eM2K%Lvt%*BP#;~1t?ImQ?MyYNwW%aaf8}bl#*tv zlu=SrV5P5LUS6(OZmgGIl&)`RX=w>E!^lXtC?!p|xH7LKu|hYmSQ%!5OKNd)QD#9& zW`3Rm$i&2?{L&IzB_*h_6}bg)WAlok!IYezt6z~=pl_&W0P+&Vuek-jzW9~q=E7AM zmjtCE+>6!V;*iRMRQ;gT;{4L0<kX<lG-Z&R3ap%qQWHz^i$e1Ab6}wukda@KU!0L& zpx_*As^FWLoS6sWgVp=`T6yLbmn7yTr+T{BDplkb=w)W6SUH&(TDlmRS(vz(xfvR| z8d$hlxLBAPn7W!e8yFiHJHqt3<R_QrrskEv^rj&6TH@3TN(!LhuyRQ)$}CGwaVyHt zRRDY0Die!a+?-quT}{ngOkB*IvAYGLHwBAZpn6?#>eaVXu+axaEK)?ngo0e$KumC& z1f@?q1w_J6%}cRWDpIny3(=2U#lXN|;_2cTQgJIuKt$xv`6CQ06`l7L9*KAS;8d?` y=y<R2NLuTosQ5?L=`6Dt?>{`Iob#JiAc0{@t#tMDl$Db~dCJq(&t;ucLK6VWd@1<= literal 0 HcmV?d00001 diff --git a/apps/gallery/img/supersized/button-tray-down.png b/apps/gallery/img/supersized/button-tray-down.png new file mode 100644 index 0000000000000000000000000000000000000000..99b92aef122f08800dd80bd79b92fd7d2293a692 GIT binary patch literal 1506 zcmeAS@N?(olHy`uVBq!ia0y~yU@&7~V9?@VV_;zT5xByZfq_A?#5JNMI6tkVJh3R1 z!7(L2DOJHUH!(dmC^a#qvhZZ84FdzSQf5d*NrbPDRdRl=ULr`1UPW#J0|?mIR}>^B zXQ!4ZB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT8h zBDWwnwIorYA~z?m*s8)-32d%aUa=KOSYJs2tfVB{Rte&$2;Tq&=lr5n1yel(-DCqZ z0|hffJwsy?b8~YY1tSAP1APM{eM2K%Lvt%*BP#;~1t?ImQ?MyYNwW%aaf8}bl#*tv zlu=SrV5P5LUS6(OZmgGIl&)`RX=w>E!^lXtC?!p|xH7LKu|hYmSQ%!5OKNd)QD#9& zW`3Rm$i&2?{L&IzB_*h_6}bg)WAlok!IYezt6z~=pl_&W0P+&Vuek-jzW9~q=E7AM zmjtCE+>6!V;*iRMRQ;gT;{4L0<kX<lG-Z&R3ap%qQWHz^i$e1Ab6}wukda@KU!0L& zpx_*As^FWLoS6sWgVp=`T6yLbmn7yTr+T{BDplkb=w)W6SUH)yS{NI<IGY+cniv|o z8aTRGnp#>qnp#*oyBL|67{T<q<R_QrrskEv^rj&6y5Q6cN(!LhuyRQ)$}CGwaVyHt zRRDY0Die!aOiYXo%uP+raheC!n}WqHP`ws7_3GOx*yw{I7Ac}(LP0KWASO6Xg3_m* z0wUq3=B3yw6)D-<iI&NDF)%QNdAc};RNQ(q!#`U%P~>R-C85<CBIdd;)lc}vbgJws zyUHIRD4k*c$g3bR;LN&hLU&6R9&_?Kx~)4woGYqn!Vh(BZ_@-Zr4m7t$4d-KZ_T_C zqCPJ?Zb6p!v2#9>ulIgv7N2Cj=dkVjeb$@;fx?0dYQ-FHEkAfDLV`OvQKzSMqk-7A z@{2FOFg7-nC#$7Jtdoc?G+)Oe`#``#-TpSG_YOXhgNtH*d(Ef_E7uSSVrM(|uk_QQ zL(*DPy^b%ni02f(`YOvrs(7NulK+1a?vyQBmMPLbPvo?I-PT8p6a3ZIe|Jw_u6gHr zy0+oO9ZsuOE!z-s=T6V!{cPK|{1$k@c>KWAj5i@)-tFz&_EVp$QcA9C|B+8T5x1+3 z{kimRe{*O6Yh=z2BjdjlcrM?Wc<Yl<?Cx0tJHH<^-!9dD`;bey@d5P!w)6Q*kF5w= zIU#Yz?Mb^Vy}E)#Q|Gcu*X=v*a&=#ms=@l#zaHJ_6^t@|RUe=umiaF5+u9Af5#^hs z;yAKT`CdD~{^7yb)lHL5+x|Y<bn6t?UBBM0`^%Ts*8kz2+^#y?;q;`RU*;CBT4`!@ z_Lo}lOwOQH^VL7b9?RvfvJK+&&bl<oKdkic-4r$7wA#6+o_;s^|K(%aboSEix<76U z++A|_(z8Q$Tz(DQ50YzsByC=9t}{vRr1ko@CGS(><2bYL=02Jxmh5UI!PC{ESa9T= z&dZeeytoV2ybSCI6D?(;H)Ts*S~qWRf2Ho4(mrdIX>S^)&E5ReB|^PYep*WNH-jI% uzxG!*mlg5tNP<M=u|p9zzI_aCU}WIjwe3pi_a}v*QrFYf&t;ucLK6VBRXL~t literal 0 HcmV?d00001 diff --git a/apps/gallery/img/supersized/button-tray-up.png b/apps/gallery/img/supersized/button-tray-up.png new file mode 100644 index 0000000000000000000000000000000000000000..7cc57785f0a7a309cc2959273f5eaaaa1a69ed40 GIT binary patch literal 1466 zcmeAS@N?(olHy`uVBq!ia0y~yU@&7~V9?@VV_;zT5xByZfq_A?#5JNMI6tkVJh3R1 z!7(L2DOJHUH!(dmC^a#qvhZZ84FdzSQf5d*NrbPDRdRl=ULr`1UPW#J0|?mIR}>^B zXQ!4ZB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT8h zBDWwnwIorYA~z?m*s8)-32d%aUa=KOSYJs2tfVB{Rte&$2;Tq&=lr5n1yel(-DCqZ z0|hffJwsy?b8~YY1tSAP1APM{eM2K%Lvt%*BP#;~1t?ImQ?MyYNwW%aaf8}bl#*tv zlu=SrV5P5LUS6(OZmgGIl&)`RX=w>E!^lXtC?!p|xH7LKu|hYmSQ%!5OKNd)QD#9& zW`3Rm$i&2?{L&IzB_*h_6}bg)WAlok!IYezt6z~=pl_&W0P+&Vuek-jzW9~q=E7AM zmjtCE+>6!V;*iRMRQ;gT;{4L0<kX<lG-Z&R3ap%qQWHz^i$e1Ab6}wukda@KU!0L& zpx_*As^FWLoS6sWgVp=`T6yLbmn7yTr+T{BDplkb=w)W6Secj@8<?A#nwlConiv|o z8aTRGnp#>qnp#*oyBL|67{T<q<R_QrrskEv^rj&6n&H$7N(!LhuyRQ)$}CGwaVyHt zRRDY0DigO`jB%O=)tiFbEhaei>f0&U=z}5_DWYLQK`w3}COA!k(x;sQBH^dzrPwMJ zDcRfkhaXtSz`&&E>EaktaqG>Dv)<B<A_wl*9W~+1UXT^&?<->C;ksJk$5aRYuB!^2 zFB}cF@p`eawuXr`&->$U^EKeZ{|r~IxFgLR)8^UioXtCHO@4}q{Q;NF%-J>kbvX&f zhyRt`vw60bg~6<iMO4fvBx8a^=R^pa!R@SD&g3anE_HaZ+**lFOBtc%J0~5vVfRfb zdttx}hV|MpK@}V7c;<O?>ifAbs@s46-{17>eaD4!E`+T-x_HiWA=P7HPkDvh%8aCE zf4lgxbMN=^`+RK8ISC<4W}FBKnUIyT@^SL>7e9We%t#ZnnWq(TK4;VK%!!(s+;gtC zZ^@oDEiU$S!_?D_iL=7LxG%b3FW~v$@7L)n$HERaUs2#Tjt>e5j%II5yqB0*C|MGl z?tT4h&=HY1gJ;eUmmNI6(PEC|P4<dfMvuC=qSGdAYWNv(Fe5OuG}CM^N95^Uo(F$_ z`QrM(Il5Zt|Np~hlisY&wqf1R&wG5qyV$>>2P=A3rf{v=6BqU``mR>l+@|}lq@~*J zdHWh>ZtZ%+|3W}|cEaQ5bA3FQA8p#CvtCVY`NKy_{L`jtcdmOES0SG_@9@Xkb(zuc zI)93|Hpbg;pKo*Hh;94F^CxQquc^O_{wrb4zwaq~Y}g@Y*EkvL+K3aHpX4oFzD?XC z{CCFWB(3!wjCEJNZWveUr5Bu=*mV2Ix@h5_*WNEW?pUW=kh9z>L;d@Vvzh_yZ=dyB pK3&4S77||)ofB_p3-1<5V0dtCozCqiH<p7+Q%_evmvv4FO#nlXA%Xw^ literal 0 HcmV?d00001 diff --git a/apps/gallery/img/supersized/forward.png b/apps/gallery/img/supersized/forward.png new file mode 100644 index 0000000000000000000000000000000000000000..e2084ab3fafe805cc4fa302bc4d2723932fba46f GIT binary patch literal 2614 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 O$$7f^xvX<aXaWF$Gic)g literal 0 HcmV?d00001 diff --git a/apps/gallery/img/supersized/nav-bg.png b/apps/gallery/img/supersized/nav-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..800f904ddc7d1f2bbd2b82d7eb20d23fdfdf406f GIT binary patch literal 995 zcmeAS@N?(olHy`uVBq!ia0y~yU|?imV9?=UV_;xdqJAlnfq_A?#5JNMI6tkVJh3R1 z!7(L2DOJHUH!(dmC^a#qvhZZ84FdzSQf5d*NrbPDRdRl=ULr`1UPW#J0|?mIR}>^B zXQ!4ZB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT8h zBDWwnwIorYA~z?m*s8)-32d%aUa=KOSYJs2tfVB{Rte&$2;Tq&=lr5n1yel(-DCqZ z0|hffJwsy?b8~YY1tSAP1APM{eM2K%Lvt%*BP#;~1t?ImQ?MyYNwW%aaf8}bl#*tv zlu=SrV5P5LUS6(OZmgGIl&)`RX=w>E!^lXtC?!p|xH7LKu|hYmSQ%!5OKNd)QD#9& zW`3Rm$i&2?{L&IzB_*h_6}bg)WAlok!IYezt6z~=pl_&W0P+&Vuek-jzW9~q=E7AM zmjtCE+>6!V;*iRMRQ;gT;{4L0<kX<lG-Z&R3ap%qQWHz^i$e1Ab6}wukda@KU!0L& zpx_*As^FWLoS6sWgVp=`T6yLbmn7yTr+T{BDplkb=w)W6Sh+d58oHXAIhnYaIU5?f z8d$hlxLBAPn7W!e8yFiHJHqt3<R_QrrskEv^rj&6I^)y}N(!LhuyRQ)$}CGwaVyHt zRRDY0DigO`EOD9#)tiFbEsi+#>f0&U=z}5_DWYLQK`w3}COA!k(x;sQBH^dzrPwMJ zDcRcvB+9*EU|<OMba4!+xK+}Bk+;Es!)5)E&>4&0?Qe88U`k-+^z8k+Lv9Z@OF~cg zIZJ*a!3n#Y&zzBW<hte^ZZc=`syc^O+gO)bWjmhC-Sn2DGj8|VKdfi=>?^&ddw}71 WaBRh=d#BfdvYn@^pUXO@geCx^kv>!a literal 0 HcmV?d00001 diff --git a/apps/gallery/img/supersized/nav-dot.png b/apps/gallery/img/supersized/nav-dot.png new file mode 100644 index 0000000000000000000000000000000000000000..a28a50789f37f6afc9abc8b1495c76cacf7a1889 GIT binary patch literal 1901 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 literal 0 HcmV?d00001 diff --git a/apps/gallery/img/supersized/pause.png b/apps/gallery/img/supersized/pause.png new file mode 100644 index 0000000000000000000000000000000000000000..a2c21a51ceeb781cb1a7ada35e9d3fe01ddb0083 GIT binary patch literal 1131 zcmeAS@N?(olHy`uVBq!ia0y~yU@&7~V9?@VV_;zT5xByZfq_A?#5JNMI6tkVJh3R1 z!7(L2DOJHUH!(dmC^a#qvhZZ84FdzSQf5d*NrbPDRdRl=ULr`1UPW#J0|?mIR}>^B zXQ!4ZB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT8h zBDWwnwIorYA~z?m*s8)-32d%aUa=KOSYJs2tfVB{Rte&$2;Tq&=lr5n1yel(-DCqZ z0|hffJwsy?b8~YY1tSAP1APM{eM2K%Lvt%*BP#;~1t?ImQ?MyYNwW%aaf8}bl#*tv zlu=SrV5P5LUS6(OZmgGIl&)`RX=w>E!^lXtC?!p|xH7LKu|hYmSQ%!5OKNd)QD#9& zW`3Rm$i&2?{L&IzB_*h_6}bg)WAlok!IYezt6z~=pl_&W0P+&Vuek-jzW9~q=E7AM zmjtCE+>6!V;*iRMRQ;gT;{4L0<kX<lG-Z&R3ap%qQWHz^i$e1Ab6}wukda@KU!0L& zpx_*As^FWLoS6sWgVp=`T6yLbmn7yTr+T{BDplkb=w)W6SUEXc7@Av}T9~_7xEUI{ z8dw+_8akPp89TZfxHuX)o5A$D<R_QrrskEv^rj&6TH@3TN(!LhuyRQ)$}CGwaVyHt zRRDY0DigO`%y60q)tiFbE#^4&>f0&U=z}5_DWYLQK`w3}COA!k(x;sQBH^dzrPwMJ zDcRe-V)4yoU|_iK>EaktaqG>@gS>|ocwFDEx^3We+ca{;TMi!K<|k^l>>m!UYN+$J z`^aBcb9@uiYOS?mXV!>EnJ};!G%)fcFfiYEmGE0jxW9DSq>HNxR~{`6=TUs|`Kz66 z^_~1FK}p@mlEe2@S(U{Eom*O!cD16#Si-bxTQ(a@@T57r`@Whm{8o*aW*6aayeyf` zKyb?=kG{@>hBNtdjJG^8i`NcXeD;kL4}VX!&rvQ3(=IjB>|;5uIo~Jy9u4}{_thlt zXvI^xkH1&WN#Bws^D5w&@g@8JOPM4NK;35dQ80lan*SJ^XNJLHQ1<t9^>bP0l+XkK DZ;^NX literal 0 HcmV?d00001 diff --git a/apps/gallery/img/supersized/play.png b/apps/gallery/img/supersized/play.png new file mode 100644 index 0000000000000000000000000000000000000000..16e53f8674546f9d1530ef1b29a8559eaa948386 GIT binary patch literal 1562 zcmeAS@N?(olHy`uVBq!ia0y~yU@&7~V9?@VV_;zT5xByZfq_A?#5JNMI6tkVJh3R1 z!7(L2DOJHUH!(dmC^a#qvhZZ84FdzSQf5d*NrbPDRdRl=ULr`1UPW#J0|?mIR}>^B zXQ!4ZB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT8h zBDWwnwIorYA~z?m*s8)-32d%aUa=KOSYJs2tfVB{Rte&$2;Tq&=lr5n1yel(-DCqZ z0|hffJwsy?b8~YY1tSAP1APM{eM2K%Lvt%*BP#;~1t?ImQ?MyYNwW%aaf8}bl#*tv zlu=SrV5P5LUS6(OZmgGIl&)`RX=w>E!^lXtC?!p|xH7LKu|hYmSQ%!5OKNd)QD#9& zW`3Rm$i&2?{L&IzB_*h_6}bg)WAlok!IYezt6z~=pl_&W0P+&Vuek-jzW9~q=E7AM zmjtCE+>6!V;*iRMRQ;gT;{4L0<kX<lG-Z&R3ap%qQWHz^i$e1Ab6}wukda@KU!0L& zpx_*As^FWLoS6sWgVp=`T6yLbmn7yTr+T{BDplkb=w)W6SUEXc7@Av}nwYy-xEUI{ z8dw+_8akPp89TZfxHuX)o5A$D<R_QrrskEv^rj&6n&Q+8N(!LhuyRQ)$}CGwaVyHt zRRDY0Die!aj9na^j2&H_%w0gPz~&Z+-V`iuf$DX}saM}l!A2hxu}BdO6AE&112MsA z5|lpe6c7nNH7~_hsR)#;FPEh=FfjFbx;TbZ+<G&^*I(FCqT#-;hez<`$?80v;iiuM z|G54)vhzP;)q8Pqv7zC|2M1jgwzBkaiA6<uJ5Q9DIAKM^<&dbio8D{^(duXoQgqn8 z`|S_Dyq=HBSKe*OJDKw-rTpIAnP)ElT<5^ixVVh7$$>@h*wGyl;*XPJdb$fY?&@R| zO=gVq^-zD566(lZny6(~uygNR3mLvyJ34ptbxGVjlRL38v$3S4L}>YC&*tqD9`ovd ztF-;iTo|Vm8yntv`spJ5eC4%YMUu@bFEH+&6!}|s-{#G{%zytrDEsbYH-CTk!s?EY zl{f0=i)JQv?fP^5dv*100}~65y|#BJoX-80&@m~4W8;)1GQVOM1~BZ;m-uD#Ju$cR zt76-(iRRnHW_x#u*2n8jPtXx@ax~Y`U3oZ7e6FR$k22wEaqp0+<w{0<k1sH9+9O~T zUGQo5bl)R!XOHPjHT+w|CAVOK#<FwCMp>?FI-iEQT{iLl=|9(wIXC@$<DwJ!rLp<T zT*IQpf;TQ&7CtpUS(*FZ!s8!wgxZoeR<JvpukkPxzx<_M`1h2^#s@DrZ065lIBX!7 z*x|ME#Ja1y4BmB3?Ob|Ui=`%R#>{!Al8R(rIvbr3i~aOsNv5{pUxAHBT_u_7^j*^9 zFY9_qd{lUSB0Ts+f@0|QbsEd;95f7=P9CYgrRD$9li}y5Zh_0qiM~fC6&Ffy|8kh9 zDmj_)NvGzP-Z$5sR+z;Gn)AK;7$KtcP(f$;)&3b@loxwk6VbX7bmG&+2mJ1>H;#IT zdz|hJo7JIweWKYCR?D=19Zt$}(d!<*WfF3UyYRGgUet?EZBtfdD(=o%={KwYw>{_7 zwI!CjJ4|N_sjha~CiM8fc99`0MZ7t(kJEr*^Rxzu-_omfK&7>(tDnm{r-UW|3@l0p literal 0 HcmV?d00001 diff --git a/apps/gallery/img/supersized/progress-back.png b/apps/gallery/img/supersized/progress-back.png new file mode 100644 index 0000000000000000000000000000000000000000..68cd45b6706bc9b1870d83842c89fc3423429a67 GIT binary patch literal 929 zcmeAS@N?(olHy`uVBq!ia0y~yU|?imVBp|jV_;ygkeceqz`!6`;u=vBoS#-wo>-L1 z;Fyx1l&avFo0y&&l$w}QS$HzlhJk@uDKjLZB*NFnDmgz_FA=0huOhdA0R(L9D+&^m zvr|hHl2X$%^K6yg@7}MZkeOnu6mIHk;9KCFnvv;IRg@ZB<rk7%m7Q#vqGWHUU{hgL zkz0_PT9T+xk(-lOY*k^a1UA<yuh<GCtgoa1R#K8}s|0aWgl~X?bAC~(f~lT?ZnA-y zfr6Q#o}sacxw*NHf{}rtfxdx}zM+w>p}Cc@k(Ggg0u(6ODcBUHq*(>IxIyhIN=dU- z$|xx*u+rBrFE7_CH`dE9O4m2Ew6p}7VPvFRl#-@fT$xvrSfQI&tPC^3CAB!YD6^m> zGe1uOWMX1cerbuVk`mO|irfOYv3bSNU`o!<)vrh_&^OdG0C@@G*W3bMU;IjQbK$Cs zOM+4n?!{_waY$uBs(w&vaeir0a%xa&nli{u1y;^Qsfi`|MIrh5Ij~R+$jC3rFV4s> zP;d@5Rq#zr&ddYx!Rmc|tvvIJOA_;vQ$1a5l`3)z^fEJ3tc)xjEzOL~T})gI+zbs} z4J_O&Tr5ltOkGW#4U7$p9btN1@{>z*Q}aq-dQ%X3U2*CKB?VA$Sh=JYWtOF;xE1B+ zDuBIgm5JLePB_hj>P^Az7H6D#_3adF^g$7e6wxrDAQv|f6PzYN>C;XDk?>RVQf!rq zl<e)EEISU$Qlg$Njv*Ddk_1FVN)nP7nEtRhG%zv<USepv;aoETlxaL&{an^LB{Ts5 D7LOU| literal 0 HcmV?d00001 diff --git a/apps/gallery/img/supersized/progress-bar.png b/apps/gallery/img/supersized/progress-bar.png new file mode 100644 index 0000000000000000000000000000000000000000..49ebb0513b78c054a2b5a48d8688f56f8b839241 GIT binary patch literal 929 zcmeAS@N?(olHy`uVBq!ia0y~yU|?imVBp|jV_;ygkeceqz`!6`;u=vBoS#-wo>-L1 z;Fyx1l&avFo0y&&l$w}QS$HzlhJk@uDKjLZB*NFnDmgz_FA=0huOhdA0R(L9D+&^m zvr|hHl2X$%^K6yg@7}MZkeOnu6mIHk;9KCFnvv;IRg@ZB<rk7%m7Q#vqGWHUU{hgL zkz0_PT9T+xk(-lOY*k^a1UA<yuh<GCtgoa1R#K8}s|0aWgl~X?bAC~(f~lT?ZnA-y zfr6Q#o}sacxw*NHf{}rtfxdx}zM+w>p}Cc@k(Ggg0u(6ODcBUHq*(>IxIyhIN=dU- z$|xx*u+rBrFE7_CH`dE9O4m2Ew6p}7VPvFRl#-@fT$xvrSfQI&tPC^3CAB!YD6^m> zGe1uOWMX1cerbuVk`mO|irfOYv3bSNU`o!<)vrh_&^OdG0C@@G*W3bMU;IjQbK$Cs zOM+4n?!{_waY$uBs(w&vaeir0a%xa&nli{u1y;^Qsfi`|MIrh5Ij~R+$jC3rFV4s> zP;d@5Rq#zr&ddYx!Rmc|tvvIJOA_;vQ$1a5l`3)z^fEJ3tc)xjEzOK93{6}N+zbs} z4J_O&Tr5ltOkGW#4U7$p9btN1@{>z*Q}aq-dQ%X3jd1D(B?VA$Sh=JYWtOF;xE1B+ zDuBIgm5I|W=59F6gX&Ge?G^)^diCuTZ1h19ixkl?p&%DG5EGmxLFv;@0g>=i^HOY; zij?f_VwPojGcYiSdb&7<RNPAX@&EsRW?^Q52kHz=JPg(6n0+RPZCeP+G@h=0F6*2U Fng9YF8tDK4 literal 0 HcmV?d00001 diff --git a/apps/gallery/img/supersized/progress.gif b/apps/gallery/img/supersized/progress.gif new file mode 100644 index 0000000000000000000000000000000000000000..f3e45e0569c02ae3fe7114691e5b5aba892e9ef4 GIT binary patch literal 2608 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 literal 0 HcmV?d00001 diff --git a/apps/gallery/img/supersized/supersized-logo.png b/apps/gallery/img/supersized/supersized-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b1243a297840e79bc777d46e1a15b5b235d09983 GIT binary patch literal 3982 zcmeAS@N?(olHy`uVBq!ia0y~yVA#XJz@W&%#=yXkyz!tJ0|SF(iEBhjaDG}zd16s2 zgJVj5QmTSyZen_BP-<dIW#P$G8wLhurOc3sk_cZPtK|G#y+n{2y^7od1`x2ZuP8`N z&Q2{+NJ>r5%(GQ`zk9!uLS~AsQn;zFfp39xYDT6<RZ(him0w75Rd%vvijuvZf=z{0 zMQ%ZEYDuC(MQ%=Bu~mhw64+d;ykaYmu)dN4SV>8?trEmh5xxNm&iO^D3Z{Any2%D+ z1`1||dWOa(=H}))3PuKo2Koj@`i4fjhUQkrMpgy}3Q(YAr(jc*l4cd;;s&*=C?(BS zDWjyMz)D}gyu4hm+*mKaC|%#s($W%ShLMqOQA(O_ab;dfVufyAu`<jAm(=3qqRfJl z%=|nBkco*&`K2YcN=i^;D{>3q#^x16gDE*bSHB{$K;KZ$0OTczUvmq5eeo;J&4sHj zE(uCSxEHIz#UYgisro^w#rdU0$*Do9Y04ls6<9eJr6!i-7lq{K=fFZSAS1sdzc?em zK*2fKRKYhfIWrH$2dnq>werj>E=kNwPW5!LRjSA>(96tBu`)1lbv1D_b8|JYa5Xe^ zadR{^HE}jGF*Px8wRCbZafa!2$xklLP0cHT=}m#_H8;Si7nBr0!C~c+T9jFqn&MWJ zpQ`}&vQ;K-x47Um52`l>r(4Wiaq88#Q?StoMJ!T8!-Rrd+(1llngpd!I|W3-Pt8lQ zRVq@lx63tVddtAT!{q7W7*cWTO$@J3$W76@2KzrdcJt|N3-Z;7=<U6_$yqgPZJxEq zl_OcgJSUFb+97+i<%QI3$FpIJ*Ez73x?U_azmXKG6;$8hV7(=)&_%PED@lY!$)Zb1 z;XlWTFLQ2IpPYMq_RQ~Xf-d(x^*%rQx3~EG-*-Eo	IapM3JjNs~7x#Dg@JT%2%8 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 II;Vst0F5pofB*mh literal 0 HcmV?d00001 diff --git a/apps/gallery/img/supersized/thumb-back.png b/apps/gallery/img/supersized/thumb-back.png new file mode 100644 index 0000000000000000000000000000000000000000..3c969ebd5276c73df8c1e8f4fb205731f00a0793 GIT binary patch literal 2122 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 X>}iYh_gQD02i5MLu6{1-oD!M<cBpO; literal 0 HcmV?d00001 diff --git a/apps/gallery/img/supersized/thumb-forward.png b/apps/gallery/img/supersized/thumb-forward.png new file mode 100644 index 0000000000000000000000000000000000000000..afe451c75d0d6072a77a67f5ebbbf862dda8e3c4 GIT binary patch literal 2118 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 I=akR{0D=p1t^fc4 literal 0 HcmV?d00001 diff --git a/apps/gallery/index.php b/apps/gallery/index.php index b8aadacb47..c7eafc9a1c 100644 --- a/apps/gallery/index.php +++ b/apps/gallery/index.php @@ -30,6 +30,12 @@ OCP\App::setActiveNavigationEntry( 'gallery_index' ); OCP\Util::addStyle('files', 'files'); OCP\Util::addStyle('gallery', 'styles'); OCP\Util::addScript('gallery', 'pictures'); +OCP\Util::addStyle( 'gallery', 'supersized' ); +OCP\Util::addStyle( 'gallery', 'supersized.shutter' ); +OCP\Util::addscript('gallery', 'slideshow'); +OCP\Util::addscript('gallery', 'jquery.easing.min'); +OCP\Util::addscript('gallery', 'supersized.3.2.7.min'); +OCP\Util::addscript('gallery', 'supersized.shutter.min'); include('gallery/lib/tiles.php'); diff --git a/apps/gallery/js/jquery.easing.min.js b/apps/gallery/js/jquery.easing.min.js new file mode 100644 index 0000000000..bbf8410391 --- /dev/null +++ b/apps/gallery/js/jquery.easing.min.js @@ -0,0 +1,71 @@ +/* + * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ + * + * Uses the built in easing capabilities added In jQuery 1.1 + * to offer multiple easing options + * + * TERMS OF USE - jQuery Easing + * + * Open source under the BSD License. + * + * Copyright � 2008 George McGinley Smith + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +jQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(e,f,a,h,g){return jQuery.easing[jQuery.easing.def](e,f,a,h,g)},easeInQuad:function(e,f,a,h,g){return h*(f/=g)*f+a},easeOutQuad:function(e,f,a,h,g){return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,f,a,h,g){return h*(f/=g)*f*f+a},easeOutCubic:function(e,f,a,h,g){return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInQuart:function(e,f,a,h,g){return h*(f/=g)*f*f*f+a},easeOutQuart:function(e,f,a,h,g){return -h*((f=f/g-1)*f*f*f-1)+a},easeInOutQuart:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f+a}return -h/2*((f-=2)*f*f*f-2)+a},easeInQuint:function(e,f,a,h,g){return h*(f/=g)*f*f*f*f+a},easeOutQuint:function(e,f,a,h,g){return h*((f=f/g-1)*f*f*f*f+1)+a},easeInOutQuint:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInSine:function(e,f,a,h,g){return -h*Math.cos(f/g*(Math.PI/2))+h+a},easeOutSine:function(e,f,a,h,g){return h*Math.sin(f/g*(Math.PI/2))+a},easeInOutSine:function(e,f,a,h,g){return -h/2*(Math.cos(Math.PI*f/g)-1)+a},easeInExpo:function(e,f,a,h,g){return(f==0)?a:h*Math.pow(2,10*(f/g-1))+a},easeOutExpo:function(e,f,a,h,g){return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,f,a,h,g){if(f==0){return a}if(f==g){return a+h}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInCirc:function(e,f,a,h,g){return -h*(Math.sqrt(1-(f/=g)*f)-1)+a},easeOutCirc:function(e,f,a,h,g){return h*Math.sqrt(1-(f=f/g-1)*f)+a},easeInOutCirc:function(e,f,a,h,g){if((f/=g/2)<1){return -h/2*(Math.sqrt(1-f*f)-1)+a}return h/2*(Math.sqrt(1-(f-=2)*f)+1)+a},easeInElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return -(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e},easeOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return g*Math.pow(2,-10*h)*Math.sin((h*k-i)*(2*Math.PI)/j)+l+e},easeInOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k/2)==2){return e+l}if(!j){j=k*(0.3*1.5)}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}if(h<1){return -0.5*(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e}return g*Math.pow(2,-10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j)*0.5+l+e},easeInBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*(f/=h)*f*((g+1)*f-g)+a},easeOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*((f=f/h-1)*f*((g+1)*f+g)+1)+a},easeInOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}if((f/=h/2)<1){return i/2*(f*f*(((g*=(1.525))+1)*f-g))+a}return i/2*((f-=2)*f*(((g*=(1.525))+1)*f+g)+2)+a},easeInBounce:function(e,f,a,h,g){return h-jQuery.easing.easeOutBounce(e,g-f,0,h,g)+a},easeOutBounce:function(e,f,a,h,g){if((f/=g)<(1/2.75)){return h*(7.5625*f*f)+a}else{if(f<(2/2.75)){return h*(7.5625*(f-=(1.5/2.75))*f+0.75)+a}else{if(f<(2.5/2.75)){return h*(7.5625*(f-=(2.25/2.75))*f+0.9375)+a}else{return h*(7.5625*(f-=(2.625/2.75))*f+0.984375)+a}}}},easeInOutBounce:function(e,f,a,h,g){if(f<g/2){return jQuery.easing.easeInBounce(e,f*2,0,h,g)*0.5+a}return jQuery.easing.easeOutBounce(e,f*2-g,0,h,g)*0.5+h*0.5+a}}); + +/* + * + * TERMS OF USE - EASING EQUATIONS + * + * Open source under the BSD License. + * + * Copyright � 2001 Robert Penner + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ \ No newline at end of file diff --git a/apps/gallery/js/slideshow.js b/apps/gallery/js/slideshow.js new file mode 100644 index 0000000000..01d5a4cf2c --- /dev/null +++ b/apps/gallery/js/slideshow.js @@ -0,0 +1,58 @@ +$(document).ready(function(){ + + $.endSlideshow = function () { + if($.supersized.vars.slideshow_interval){ + clearInterval($.supersized.vars.slideshow_interval); + }; + + $(".supersizedHolder").remove(); + $('#slideshow-content').hide(); + $('#thumb-list').remove(); + } + + // add slideshow in holder div + $('#slideshow input.start').click(function(){ + + var images=[]; + $('#gallerycontent div a').each(function(i,a){ + images.push({image : a.href, title : a.title, thumb : a.children[0].src, url : 'javascript:$.endSlideshow()'}); + }); + + if (images.length <= 0) { + return; + } + + $("body").append("<div class='supersizedHolder'></div>"); + $("#supersized-loader").remove(); + $("#supersized").remove(); + $(".supersizedHolder").append("<div id='supersized-loader'></div><ul id='supersized'></ul>"); + $("#supersized").show(); + $('#slideshow-content').show(); + + + jQuery(function($){ + + $.supersized({ + + // Functionality + slide_interval : 3000, // Length between transitions + transition : 1, // 0-None, 1-Fade, 2-Slide Top, 3-Slide Right, 4-Slide Bottom, 5-Slide Left, 6-Carousel Right, 7-Carousel Left + transition_speed : 700, // Speed of transition + + // Components + slide_links : 'blank', // Individual links for each slide (Options: false, 'num', 'name', 'blank') + slides : images // Slideshow Images + + }); + }); + + }); + + //close slideshow on esc and remove holder + $(document).keyup(function(e) { + if (e.keyCode == 27) { // esc + $.endSlideshow(); + } + }); + +}); diff --git a/apps/gallery/js/supersized.3.2.7.js b/apps/gallery/js/supersized.3.2.7.js new file mode 100644 index 0000000000..f5a1c0bbc2 --- /dev/null +++ b/apps/gallery/js/supersized.3.2.7.js @@ -0,0 +1,930 @@ +/* + + Supersized - Fullscreen Slideshow jQuery Plugin + Version : 3.2.7 + Site : www.buildinternet.com/project/supersized + + Author : Sam Dunn + Company : One Mighty Roar (www.onemightyroar.com) + License : MIT License / GPL License + +*/ + +(function($){ + + /* Place Supersized Elements + ----------------------------*/ + $(document).ready(function() { + $('body').append('<div id="supersized-loader"></div><ul id="supersized"></ul>'); + }); + + + $.supersized = function(options){ + + /* Variables + ----------------------------*/ + var el = '#supersized', + base = this; + // Access to jQuery and DOM versions of element + base.$el = $(el); + base.el = el; + vars = $.supersized.vars; + // Add a reverse reference to the DOM object + base.$el.data("supersized", base); + api = base.$el.data('supersized'); + + base.init = function(){ + // Combine options and vars + $.supersized.vars = $.extend($.supersized.vars, $.supersized.themeVars); + $.supersized.vars.options = $.extend({},$.supersized.defaultOptions, $.supersized.themeOptions, options); + base.options = $.supersized.vars.options; + + base._build(); + }; + + + /* Build Elements + ----------------------------*/ + base._build = function(){ + // Add in slide markers + var thisSlide = 0, + slideSet = '', + markers = '', + markerContent, + thumbMarkers = '', + thumbImage; + + while(thisSlide <= base.options.slides.length-1){ + //Determine slide link content + switch(base.options.slide_links){ + case 'num': + markerContent = thisSlide; + break; + case 'name': + markerContent = base.options.slides[thisSlide].title; + break; + case 'blank': + markerContent = ''; + break; + } + + slideSet = slideSet+'<li class="slide-'+thisSlide+'"></li>'; + + if(thisSlide == base.options.start_slide-1){ + // Slide links + if (base.options.slide_links)markers = markers+'<li class="slide-link-'+thisSlide+' current-slide"><a>'+markerContent+'</a></li>'; + // Slide Thumbnail Links + if (base.options.thumb_links){ + base.options.slides[thisSlide].thumb ? thumbImage = base.options.slides[thisSlide].thumb : thumbImage = base.options.slides[thisSlide].image; + thumbMarkers = thumbMarkers+'<li class="thumb'+thisSlide+' current-thumb"><img src="'+thumbImage+'"/></li>'; + }; + }else{ + // Slide links + if (base.options.slide_links) markers = markers+'<li class="slide-link-'+thisSlide+'" ><a>'+markerContent+'</a></li>'; + // Slide Thumbnail Links + if (base.options.thumb_links){ + base.options.slides[thisSlide].thumb ? thumbImage = base.options.slides[thisSlide].thumb : thumbImage = base.options.slides[thisSlide].image; + thumbMarkers = thumbMarkers+'<li class="thumb'+thisSlide+'"><img src="'+thumbImage+'"/></li>'; + }; + } + thisSlide++; + } + + if (base.options.slide_links) $(vars.slide_list).html(markers); + if (base.options.thumb_links && vars.thumb_tray.length){ + $(vars.thumb_tray).append('<ul id="'+vars.thumb_list.replace('#','')+'">'+thumbMarkers+'</ul>'); + } + + $(base.el).append(slideSet); + + // Add in thumbnails + if (base.options.thumbnail_navigation){ + // Load previous thumbnail + vars.current_slide - 1 < 0 ? prevThumb = base.options.slides.length - 1 : prevThumb = vars.current_slide - 1; + $(vars.prev_thumb).show().html($("<img/>").attr("src", base.options.slides[prevThumb].image)); + + // Load next thumbnail + vars.current_slide == base.options.slides.length - 1 ? nextThumb = 0 : nextThumb = vars.current_slide + 1; + $(vars.next_thumb).show().html($("<img/>").attr("src", base.options.slides[nextThumb].image)); + } + + base._start(); // Get things started + }; + + + /* Initialize + ----------------------------*/ + base._start = function(){ + + // Determine if starting slide random + if (base.options.start_slide){ + vars.current_slide = base.options.start_slide - 1; + }else{ + vars.current_slide = Math.floor(Math.random()*base.options.slides.length); // Generate random slide number + } + + // If links should open in new window + var linkTarget = base.options.new_window ? ' target="_blank"' : ''; + + // Set slideshow quality (Supported only in FF and IE, no Webkit) + if (base.options.performance == 3){ + base.$el.addClass('speed'); // Faster transitions + } else if ((base.options.performance == 1) || (base.options.performance == 2)){ + base.$el.addClass('quality'); // Higher image quality + } + + // Shuffle slide order if needed + if (base.options.random){ + arr = base.options.slides; + for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x); // Fisher-Yates shuffle algorithm (jsfromhell.com/array/shuffle) + base.options.slides = arr; + } + + /*-----Load initial set of images-----*/ + + if (base.options.slides.length > 1){ + if(base.options.slides.length > 2){ + // Set previous image + vars.current_slide - 1 < 0 ? loadPrev = base.options.slides.length - 1 : loadPrev = vars.current_slide - 1; // If slide is 1, load last slide as previous + var imageLink = (base.options.slides[loadPrev].url) ? "href='" + base.options.slides[loadPrev].url + "'" : ""; + + var imgPrev = $('<img src="'+base.options.slides[loadPrev].image+'"/>'); + var slidePrev = base.el+' li:eq('+loadPrev+')'; + imgPrev.appendTo(slidePrev).wrap('<a ' + imageLink + linkTarget + '></a>').parent().parent().addClass('image-loading prevslide'); + + imgPrev.load(function(){ + $(this).data('origWidth', $(this).width()).data('origHeight', $(this).height()); + base.resizeNow(); // Resize background image + }); // End Load + } + } else { + // Slideshow turned off if there is only one slide + base.options.slideshow = 0; + } + + // Set current image + imageLink = (api.getField('url')) ? "href='" + api.getField('url') + "'" : ""; + var img = $('<img src="'+api.getField('image')+'"/>'); + + var slideCurrent= base.el+' li:eq('+vars.current_slide+')'; + img.appendTo(slideCurrent).wrap('<a ' + imageLink + linkTarget + '></a>').parent().parent().addClass('image-loading activeslide'); + + img.load(function(){ + base._origDim($(this)); + base.resizeNow(); // Resize background image + base.launch(); + if( typeof theme != 'undefined' && typeof theme._init == "function" ) theme._init(); // Load Theme + }); + + if (base.options.slides.length > 1){ + // Set next image + vars.current_slide == base.options.slides.length - 1 ? loadNext = 0 : loadNext = vars.current_slide + 1; // If slide is last, load first slide as next + imageLink = (base.options.slides[loadNext].url) ? "href='" + base.options.slides[loadNext].url + "'" : ""; + + var imgNext = $('<img src="'+base.options.slides[loadNext].image+'"/>'); + var slideNext = base.el+' li:eq('+loadNext+')'; + imgNext.appendTo(slideNext).wrap('<a ' + imageLink + linkTarget + '></a>').parent().parent().addClass('image-loading'); + + imgNext.load(function(){ + $(this).data('origWidth', $(this).width()).data('origHeight', $(this).height()); + base.resizeNow(); // Resize background image + }); // End Load + } + /*-----End load initial images-----*/ + + // Hide elements to be faded in + base.$el.css('visibility','hidden'); + $('.load-item').hide(); + + }; + + + /* Launch Supersized + ----------------------------*/ + base.launch = function(){ + + base.$el.css('visibility','visible'); + $('#supersized-loader').remove(); //Hide loading animation + + // Call theme function for before slide transition + if( typeof theme != 'undefined' && typeof theme.beforeAnimation == "function" ) theme.beforeAnimation('next'); + $('.load-item').show(); + + // Keyboard Navigation + if (base.options.keyboard_nav){ + $(document.documentElement).keyup(function (event) { + + if(vars.in_animation) return false; // Abort if currently animating + + // Left Arrow or Down Arrow + if ((event.keyCode == 37) || (event.keyCode == 40)) { + clearInterval(vars.slideshow_interval); // Stop slideshow, prevent buildup + base.prevSlide(); + + // Right Arrow or Up Arrow + } else if ((event.keyCode == 39) || (event.keyCode == 38)) { + clearInterval(vars.slideshow_interval); // Stop slideshow, prevent buildup + base.nextSlide(); + + // Spacebar + } else if (event.keyCode == 32 && !vars.hover_pause) { + clearInterval(vars.slideshow_interval); // Stop slideshow, prevent buildup + base.playToggle(); + } + + }); + } + + // Pause when hover on image + if (base.options.slideshow && base.options.pause_hover){ + $(base.el).hover(function() { + if(vars.in_animation) return false; // Abort if currently animating + vars.hover_pause = true; // Mark slideshow paused from hover + if(!vars.is_paused){ + vars.hover_pause = 'resume'; // It needs to resume afterwards + base.playToggle(); + } + }, function() { + if(vars.hover_pause == 'resume'){ + base.playToggle(); + vars.hover_pause = false; + } + }); + } + + if (base.options.slide_links){ + // Slide marker clicked + $(vars.slide_list+'> li').click(function(){ + + index = $(vars.slide_list+'> li').index(this); + targetSlide = index + 1; + + base.goTo(targetSlide); + return false; + + }); + } + + // Thumb marker clicked + if (base.options.thumb_links){ + $(vars.thumb_list+'> li').click(function(){ + + index = $(vars.thumb_list+'> li').index(this); + targetSlide = index + 1; + + api.goTo(targetSlide); + return false; + + }); + } + + // Start slideshow if enabled + if (base.options.slideshow && base.options.slides.length > 1){ + + // Start slideshow if autoplay enabled + if (base.options.autoplay && base.options.slides.length > 1){ + vars.slideshow_interval = setInterval(base.nextSlide, base.options.slide_interval); // Initiate slide interval + }else{ + vars.is_paused = true; // Mark as paused + } + + //Prevent navigation items from being dragged + $('.load-item img').bind("contextmenu mousedown",function(){ + return false; + }); + + } + + // Adjust image when browser is resized + $(window).resize(function(){ + base.resizeNow(); + }); + + }; + + + /* Resize Images + ----------------------------*/ + base.resizeNow = function(){ + + return base.$el.each(function() { + // Resize each image seperately + $('img', base.el).each(function(){ + + thisSlide = $(this); + var ratio = (thisSlide.data('origHeight')/thisSlide.data('origWidth')).toFixed(2); // Define image ratio + + // Gather browser size + var browserwidth = base.$el.width(), + browserheight = base.$el.height(), + offset; + + /*-----Resize Image-----*/ + if (base.options.fit_always){ // Fit always is enabled + if ((browserheight/browserwidth) > ratio){ + resizeWidth(); + } else { + resizeHeight(); + } + }else{ // Normal Resize + if ((browserheight <= base.options.min_height) && (browserwidth <= base.options.min_width)){ // If window smaller than minimum width and height + + if ((browserheight/browserwidth) > ratio){ + base.options.fit_landscape && ratio < 1 ? resizeWidth(true) : resizeHeight(true); // If landscapes are set to fit + } else { + base.options.fit_portrait && ratio >= 1 ? resizeHeight(true) : resizeWidth(true); // If portraits are set to fit + } + + } else if (browserwidth <= base.options.min_width){ // If window only smaller than minimum width + + if ((browserheight/browserwidth) > ratio){ + base.options.fit_landscape && ratio < 1 ? resizeWidth(true) : resizeHeight(); // If landscapes are set to fit + } else { + base.options.fit_portrait && ratio >= 1 ? resizeHeight() : resizeWidth(true); // If portraits are set to fit + } + + } else if (browserheight <= base.options.min_height){ // If window only smaller than minimum height + + if ((browserheight/browserwidth) > ratio){ + base.options.fit_landscape && ratio < 1 ? resizeWidth() : resizeHeight(true); // If landscapes are set to fit + } else { + base.options.fit_portrait && ratio >= 1 ? resizeHeight(true) : resizeWidth(); // If portraits are set to fit + } + + } else { // If larger than minimums + + if ((browserheight/browserwidth) > ratio){ + base.options.fit_landscape && ratio < 1 ? resizeWidth() : resizeHeight(); // If landscapes are set to fit + } else { + base.options.fit_portrait && ratio >= 1 ? resizeHeight() : resizeWidth(); // If portraits are set to fit + } + + } + } + /*-----End Image Resize-----*/ + + + /*-----Resize Functions-----*/ + + function resizeWidth(minimum){ + if (minimum){ // If minimum height needs to be considered + if(thisSlide.width() < browserwidth || thisSlide.width() < base.options.min_width ){ + if (thisSlide.width() * ratio >= base.options.min_height){ + thisSlide.width(base.options.min_width); + thisSlide.height(thisSlide.width() * ratio); + }else{ + resizeHeight(); + } + } + }else{ + if (base.options.min_height >= browserheight && !base.options.fit_landscape){ // If minimum height needs to be considered + if (browserwidth * ratio >= base.options.min_height || (browserwidth * ratio >= base.options.min_height && ratio <= 1)){ // If resizing would push below minimum height or image is a landscape + thisSlide.width(browserwidth); + thisSlide.height(browserwidth * ratio); + } else if (ratio > 1){ // Else the image is portrait + thisSlide.height(base.options.min_height); + thisSlide.width(thisSlide.height() / ratio); + } else if (thisSlide.width() < browserwidth) { + thisSlide.width(browserwidth); + thisSlide.height(thisSlide.width() * ratio); + } + }else{ // Otherwise, resize as normal + thisSlide.width(browserwidth); + thisSlide.height(browserwidth * ratio); + } + } + }; + + function resizeHeight(minimum){ + if (minimum){ // If minimum height needs to be considered + if(thisSlide.height() < browserheight){ + if (thisSlide.height() / ratio >= base.options.min_width){ + thisSlide.height(base.options.min_height); + thisSlide.width(thisSlide.height() / ratio); + }else{ + resizeWidth(true); + } + } + }else{ // Otherwise, resized as normal + if (base.options.min_width >= browserwidth){ // If minimum width needs to be considered + if (browserheight / ratio >= base.options.min_width || ratio > 1){ // If resizing would push below minimum width or image is a portrait + thisSlide.height(browserheight); + thisSlide.width(browserheight / ratio); + } else if (ratio <= 1){ // Else the image is landscape + thisSlide.width(base.options.min_width); + thisSlide.height(thisSlide.width() * ratio); + } + }else{ // Otherwise, resize as normal + thisSlide.height(browserheight); + thisSlide.width(browserheight / ratio); + } + } + }; + + /*-----End Resize Functions-----*/ + + if (thisSlide.parents('li').hasClass('image-loading')){ + $('.image-loading').removeClass('image-loading'); + } + + // Horizontally Center + if (base.options.horizontal_center){ + $(this).css('left', (browserwidth - $(this).width())/2); + } + + // Vertically Center + if (base.options.vertical_center){ + $(this).css('top', (browserheight - $(this).height())/2); + } + + }); + + // Basic image drag and right click protection + if (base.options.image_protect){ + + $('img', base.el).bind("contextmenu mousedown",function(){ + return false; + }); + + } + + return false; + + }); + + }; + + + /* Next Slide + ----------------------------*/ + base.nextSlide = function(){ + + if(vars.in_animation || !api.options.slideshow) return false; // Abort if currently animating + else vars.in_animation = true; // Otherwise set animation marker + + clearInterval(vars.slideshow_interval); // Stop slideshow + + var slides = base.options.slides, // Pull in slides array + liveslide = base.$el.find('.activeslide'); // Find active slide + $('.prevslide').removeClass('prevslide'); + liveslide.removeClass('activeslide').addClass('prevslide'); // Remove active class & update previous slide + + // Get the slide number of new slide + vars.current_slide + 1 == base.options.slides.length ? vars.current_slide = 0 : vars.current_slide++; + + var nextslide = $(base.el+' li:eq('+vars.current_slide+')'), + prevslide = base.$el.find('.prevslide'); + + // If hybrid mode is on drop quality for transition + if (base.options.performance == 1) base.$el.removeClass('quality').addClass('speed'); + + + /*-----Load Image-----*/ + + loadSlide = false; + + vars.current_slide == base.options.slides.length - 1 ? loadSlide = 0 : loadSlide = vars.current_slide + 1; // Determine next slide + + var targetList = base.el+' li:eq('+loadSlide+')'; + if (!$(targetList).html()){ + + // If links should open in new window + var linkTarget = base.options.new_window ? ' target="_blank"' : ''; + + imageLink = (base.options.slides[loadSlide].url) ? "href='" + base.options.slides[loadSlide].url + "'" : ""; // If link exists, build it + var img = $('<img src="'+base.options.slides[loadSlide].image+'"/>'); + + img.appendTo(targetList).wrap('<a ' + imageLink + linkTarget + '></a>').parent().parent().addClass('image-loading').css('visibility','hidden'); + + img.load(function(){ + base._origDim($(this)); + base.resizeNow(); + }); // End Load + }; + + // Update thumbnails (if enabled) + if (base.options.thumbnail_navigation == 1){ + + // Load previous thumbnail + vars.current_slide - 1 < 0 ? prevThumb = base.options.slides.length - 1 : prevThumb = vars.current_slide - 1; + $(vars.prev_thumb).html($("<img/>").attr("src", base.options.slides[prevThumb].image)); + + // Load next thumbnail + nextThumb = loadSlide; + $(vars.next_thumb).html($("<img/>").attr("src", base.options.slides[nextThumb].image)); + + } + + + + /*-----End Load Image-----*/ + + + // Call theme function for before slide transition + if( typeof theme != 'undefined' && typeof theme.beforeAnimation == "function" ) theme.beforeAnimation('next'); + + //Update slide markers + if (base.options.slide_links){ + $('.current-slide').removeClass('current-slide'); + $(vars.slide_list +'> li' ).eq(vars.current_slide).addClass('current-slide'); + } + + nextslide.css('visibility','hidden').addClass('activeslide'); // Update active slide + + switch(base.options.transition){ + case 0: case 'none': // No transition + nextslide.css('visibility','visible'); vars.in_animation = false; base.afterAnimation(); + break; + case 1: case 'fade': // Fade + nextslide.animate({opacity : 0},0).css('visibility','visible').animate({opacity : 1, avoidTransforms : false}, base.options.transition_speed, function(){ base.afterAnimation(); }); + break; + case 2: case 'slideTop': // Slide Top + nextslide.animate({top : -base.$el.height()}, 0 ).css('visibility','visible').animate({ top:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); + break; + case 3: case 'slideRight': // Slide Right + nextslide.animate({left : base.$el.width()}, 0 ).css('visibility','visible').animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); + break; + case 4: case 'slideBottom': // Slide Bottom + nextslide.animate({top : base.$el.height()}, 0 ).css('visibility','visible').animate({ top:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); + break; + case 5: case 'slideLeft': // Slide Left + nextslide.animate({left : -base.$el.width()}, 0 ).css('visibility','visible').animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); + break; + case 6: case 'carouselRight': // Carousel Right + nextslide.animate({left : base.$el.width()}, 0 ).css('visibility','visible').animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); + liveslide.animate({ left: -base.$el.width(), avoidTransforms : false }, base.options.transition_speed ); + break; + case 7: case 'carouselLeft': // Carousel Left + nextslide.animate({left : -base.$el.width()}, 0 ).css('visibility','visible').animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); + liveslide.animate({ left: base.$el.width(), avoidTransforms : false }, base.options.transition_speed ); + break; + } + return false; + }; + + + /* Previous Slide + ----------------------------*/ + base.prevSlide = function(){ + + if(vars.in_animation || !api.options.slideshow) return false; // Abort if currently animating + else vars.in_animation = true; // Otherwise set animation marker + + clearInterval(vars.slideshow_interval); // Stop slideshow + + var slides = base.options.slides, // Pull in slides array + liveslide = base.$el.find('.activeslide'); // Find active slide + $('.prevslide').removeClass('prevslide'); + liveslide.removeClass('activeslide').addClass('prevslide'); // Remove active class & update previous slide + + // Get current slide number + vars.current_slide == 0 ? vars.current_slide = base.options.slides.length - 1 : vars.current_slide-- ; + + var nextslide = $(base.el+' li:eq('+vars.current_slide+')'), + prevslide = base.$el.find('.prevslide'); + + // If hybrid mode is on drop quality for transition + if (base.options.performance == 1) base.$el.removeClass('quality').addClass('speed'); + + + /*-----Load Image-----*/ + + loadSlide = vars.current_slide; + + var targetList = base.el+' li:eq('+loadSlide+')'; + if (!$(targetList).html()){ + // If links should open in new window + var linkTarget = base.options.new_window ? ' target="_blank"' : ''; + imageLink = (base.options.slides[loadSlide].url) ? "href='" + base.options.slides[loadSlide].url + "'" : ""; // If link exists, build it + var img = $('<img src="'+base.options.slides[loadSlide].image+'"/>'); + + img.appendTo(targetList).wrap('<a ' + imageLink + linkTarget + '></a>').parent().parent().addClass('image-loading').css('visibility','hidden'); + + img.load(function(){ + base._origDim($(this)); + base.resizeNow(); + }); // End Load + }; + + // Update thumbnails (if enabled) + if (base.options.thumbnail_navigation == 1){ + + // Load previous thumbnail + //prevThumb = loadSlide; + loadSlide == 0 ? prevThumb = base.options.slides.length - 1 : prevThumb = loadSlide - 1; + $(vars.prev_thumb).html($("<img/>").attr("src", base.options.slides[prevThumb].image)); + + // Load next thumbnail + vars.current_slide == base.options.slides.length - 1 ? nextThumb = 0 : nextThumb = vars.current_slide + 1; + $(vars.next_thumb).html($("<img/>").attr("src", base.options.slides[nextThumb].image)); + } + + /*-----End Load Image-----*/ + + + // Call theme function for before slide transition + if( typeof theme != 'undefined' && typeof theme.beforeAnimation == "function" ) theme.beforeAnimation('prev'); + + //Update slide markers + if (base.options.slide_links){ + $('.current-slide').removeClass('current-slide'); + $(vars.slide_list +'> li' ).eq(vars.current_slide).addClass('current-slide'); + } + + nextslide.css('visibility','hidden').addClass('activeslide'); // Update active slide + + switch(base.options.transition){ + case 0: case 'none': // No transition + nextslide.css('visibility','visible'); vars.in_animation = false; base.afterAnimation(); + break; + case 1: case 'fade': // Fade + nextslide.animate({opacity : 0},0).css('visibility','visible').animate({opacity : 1, avoidTransforms : false}, base.options.transition_speed, function(){ base.afterAnimation(); }); + break; + case 2: case 'slideTop': // Slide Top (reverse) + nextslide.animate({top : base.$el.height()}, 0 ).css('visibility','visible').animate({ top:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); + break; + case 3: case 'slideRight': // Slide Right (reverse) + nextslide.animate({left : -base.$el.width()}, 0 ).css('visibility','visible').animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); + break; + case 4: case 'slideBottom': // Slide Bottom (reverse) + nextslide.animate({top : -base.$el.height()}, 0 ).css('visibility','visible').animate({ top:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); + break; + case 5: case 'slideLeft': // Slide Left (reverse) + nextslide.animate({left : base.$el.width()}, 0 ).css('visibility','visible').animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); + break; + case 6: case 'carouselRight': // Carousel Right (reverse) + nextslide.animate({left : -base.$el.width()}, 0 ).css('visibility','visible').animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); + liveslide.animate({left : 0}, 0 ).animate({ left: base.$el.width(), avoidTransforms : false}, base.options.transition_speed ); + break; + case 7: case 'carouselLeft': // Carousel Left (reverse) + nextslide.animate({left : base.$el.width()}, 0 ).css('visibility','visible').animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); + liveslide.animate({left : 0}, 0 ).animate({ left: -base.$el.width(), avoidTransforms : false }, base.options.transition_speed ); + break; + } + return false; + }; + + + /* Play/Pause Toggle + ----------------------------*/ + base.playToggle = function(){ + + if (vars.in_animation || !api.options.slideshow) return false; // Abort if currently animating + + if (vars.is_paused){ + + vars.is_paused = false; + + // Call theme function for play + if( typeof theme != 'undefined' && typeof theme.playToggle == "function" ) theme.playToggle('play'); + + // Resume slideshow + vars.slideshow_interval = setInterval(base.nextSlide, base.options.slide_interval); + + }else{ + + vars.is_paused = true; + + // Call theme function for pause + if( typeof theme != 'undefined' && typeof theme.playToggle == "function" ) theme.playToggle('pause'); + + // Stop slideshow + clearInterval(vars.slideshow_interval); + + } + + return false; + + }; + + + /* Go to specific slide + ----------------------------*/ + base.goTo = function(targetSlide){ + if (vars.in_animation || !api.options.slideshow) return false; // Abort if currently animating + + var totalSlides = base.options.slides.length; + + // If target outside range + if(targetSlide < 0){ + targetSlide = totalSlides; + }else if(targetSlide > totalSlides){ + targetSlide = 1; + } + targetSlide = totalSlides - targetSlide + 1; + + clearInterval(vars.slideshow_interval); // Stop slideshow, prevent buildup + + // Call theme function for goTo trigger + if (typeof theme != 'undefined' && typeof theme.goTo == "function" ) theme.goTo(); + + if (vars.current_slide == totalSlides - targetSlide){ + if(!(vars.is_paused)){ + vars.slideshow_interval = setInterval(base.nextSlide, base.options.slide_interval); + } + return false; + } + + // If ahead of current position + if(totalSlides - targetSlide > vars.current_slide ){ + + // Adjust for new next slide + vars.current_slide = totalSlides-targetSlide-1; + vars.update_images = 'next'; + base._placeSlide(vars.update_images); + + //Otherwise it's before current position + }else if(totalSlides - targetSlide < vars.current_slide){ + + // Adjust for new prev slide + vars.current_slide = totalSlides-targetSlide+1; + vars.update_images = 'prev'; + base._placeSlide(vars.update_images); + + } + + // set active markers + if (base.options.slide_links){ + $(vars.slide_list +'> .current-slide').removeClass('current-slide'); + $(vars.slide_list +'> li').eq((totalSlides-targetSlide)).addClass('current-slide'); + } + + if (base.options.thumb_links){ + $(vars.thumb_list +'> .current-thumb').removeClass('current-thumb'); + $(vars.thumb_list +'> li').eq((totalSlides-targetSlide)).addClass('current-thumb'); + } + + }; + + + /* Place Slide + ----------------------------*/ + base._placeSlide = function(place){ + + // If links should open in new window + var linkTarget = base.options.new_window ? ' target="_blank"' : ''; + + loadSlide = false; + + if (place == 'next'){ + + vars.current_slide == base.options.slides.length - 1 ? loadSlide = 0 : loadSlide = vars.current_slide + 1; // Determine next slide + + var targetList = base.el+' li:eq('+loadSlide+')'; + + if (!$(targetList).html()){ + // If links should open in new window + var linkTarget = base.options.new_window ? ' target="_blank"' : ''; + + imageLink = (base.options.slides[loadSlide].url) ? "href='" + base.options.slides[loadSlide].url + "'" : ""; // If link exists, build it + var img = $('<img src="'+base.options.slides[loadSlide].image+'"/>'); + + img.appendTo(targetList).wrap('<a ' + imageLink + linkTarget + '></a>').parent().parent().addClass('image-loading').css('visibility','hidden'); + + img.load(function(){ + base._origDim($(this)); + base.resizeNow(); + }); // End Load + }; + + base.nextSlide(); + + }else if (place == 'prev'){ + + vars.current_slide - 1 < 0 ? loadSlide = base.options.slides.length - 1 : loadSlide = vars.current_slide - 1; // Determine next slide + + var targetList = base.el+' li:eq('+loadSlide+')'; + + if (!$(targetList).html()){ + // If links should open in new window + var linkTarget = base.options.new_window ? ' target="_blank"' : ''; + + imageLink = (base.options.slides[loadSlide].url) ? "href='" + base.options.slides[loadSlide].url + "'" : ""; // If link exists, build it + var img = $('<img src="'+base.options.slides[loadSlide].image+'"/>'); + + img.appendTo(targetList).wrap('<a ' + imageLink + linkTarget + '></a>').parent().parent().addClass('image-loading').css('visibility','hidden'); + + img.load(function(){ + base._origDim($(this)); + base.resizeNow(); + }); // End Load + }; + base.prevSlide(); + } + + }; + + + /* Get Original Dimensions + ----------------------------*/ + base._origDim = function(targetSlide){ + targetSlide.data('origWidth', targetSlide.width()).data('origHeight', targetSlide.height()); + }; + + + /* After Slide Animation + ----------------------------*/ + base.afterAnimation = function(){ + + // If hybrid mode is on swap back to higher image quality + if (base.options.performance == 1){ + base.$el.removeClass('speed').addClass('quality'); + } + + // Update previous slide + if (vars.update_images){ + vars.current_slide - 1 < 0 ? setPrev = base.options.slides.length - 1 : setPrev = vars.current_slide-1; + vars.update_images = false; + $('.prevslide').removeClass('prevslide'); + $(base.el+' li:eq('+setPrev+')').addClass('prevslide'); + } + + vars.in_animation = false; + + // Resume slideshow + if (!vars.is_paused && base.options.slideshow){ + vars.slideshow_interval = setInterval(base.nextSlide, base.options.slide_interval); + if (base.options.stop_loop && vars.current_slide == base.options.slides.length - 1 ) base.playToggle(); + } + + // Call theme function for after slide transition + if (typeof theme != 'undefined' && typeof theme.afterAnimation == "function" ) theme.afterAnimation(); + + return false; + + }; + + base.getField = function(field){ + return base.options.slides[vars.current_slide][field]; + }; + + // Make it go! + base.init(); + }; + + + /* Global Variables + ----------------------------*/ + $.supersized.vars = { + + // Elements + thumb_tray : '#thumb-tray', // Thumbnail tray + thumb_list : '#thumb-list', // Thumbnail list + slide_list : '#slide-list', // Slide link list + + // Internal variables + current_slide : 0, // Current slide number + in_animation : false, // Prevents animations from stacking + is_paused : false, // Tracks paused on/off + hover_pause : false, // If slideshow is paused from hover + slideshow_interval : false, // Stores slideshow timer + update_images : false, // Trigger to update images after slide jump + options : {} // Stores assembled options list + + }; + + + /* Default Options + ----------------------------*/ + $.supersized.defaultOptions = { + + // Functionality + slideshow : 1, // Slideshow on/off + autoplay : 1, // Slideshow starts playing automatically + start_slide : 1, // Start slide (0 is random) + stop_loop : 0, // Stops slideshow on last slide + random : 0, // Randomize slide order (Ignores start slide) + slide_interval : 5000, // Length between transitions + transition : 1, // 0-None, 1-Fade, 2-Slide Top, 3-Slide Right, 4-Slide Bottom, 5-Slide Left, 6-Carousel Right, 7-Carousel Left + transition_speed : 750, // Speed of transition + new_window : 1, // Image links open in new window/tab + pause_hover : 0, // Pause slideshow on hover + keyboard_nav : 1, // Keyboard navigation on/off + performance : 1, // 0-Normal, 1-Hybrid speed/quality, 2-Optimizes image quality, 3-Optimizes transition speed // (Only works for Firefox/IE, not Webkit) + image_protect : 1, // Disables image dragging and right click with Javascript + + // Size & Position + fit_always : 0, // Image will never exceed browser width or height (Ignores min. dimensions) + fit_landscape : 0, // Landscape images will not exceed browser width + fit_portrait : 1, // Portrait images will not exceed browser height + min_width : 0, // Min width allowed (in pixels) + min_height : 0, // Min height allowed (in pixels) + horizontal_center : 1, // Horizontally center background + vertical_center : 1, // Vertically center background + + + // Components + slide_links : 1, // Individual links for each slide (Options: false, 'num', 'name', 'blank') + thumb_links : 1, // Individual thumb links for each slide + thumbnail_navigation : 0 // Thumbnail navigation + + }; + + $.fn.supersized = function(options){ + return this.each(function(){ + (new $.supersized(options)); + }); + }; + +})(jQuery); + diff --git a/apps/gallery/js/supersized.3.2.7.min.js b/apps/gallery/js/supersized.3.2.7.min.js new file mode 100644 index 0000000000..b9cea9cee1 --- /dev/null +++ b/apps/gallery/js/supersized.3.2.7.min.js @@ -0,0 +1,13 @@ +/* + + Supersized - Fullscreen Slideshow jQuery Plugin + Version : 3.2.7 + Site : www.buildinternet.com/project/supersized + + Author : Sam Dunn + Company : One Mighty Roar (www.onemightyroar.com) + License : MIT License / GPL License + +*/ + +(function(a){a(document).ready(function(){a("body").append('<div id="supersized-loader"></div><ul id="supersized"></ul>')});a.supersized=function(b){var c="#supersized",d=this;d.$el=a(c);d.el=c;vars=a.supersized.vars;d.$el.data("supersized",d);api=d.$el.data("supersized");d.init=function(){a.supersized.vars=a.extend(a.supersized.vars,a.supersized.themeVars);a.supersized.vars.options=a.extend({},a.supersized.defaultOptions,a.supersized.themeOptions,b);d.options=a.supersized.vars.options;d._build()};d._build=function(){var g=0,e="",j="",h,f="",i;while(g<=d.options.slides.length-1){switch(d.options.slide_links){case"num":h=g;break;case"name":h=d.options.slides[g].title;break;case"blank":h="";break}e=e+'<li class="slide-'+g+'"></li>';if(g==d.options.start_slide-1){if(d.options.slide_links){j=j+'<li class="slide-link-'+g+' current-slide"><a>'+h+"</a></li>"}if(d.options.thumb_links){d.options.slides[g].thumb?i=d.options.slides[g].thumb:i=d.options.slides[g].image;f=f+'<li class="thumb'+g+' current-thumb"><img src="'+i+'"/></li>'}}else{if(d.options.slide_links){j=j+'<li class="slide-link-'+g+'" ><a>'+h+"</a></li>"}if(d.options.thumb_links){d.options.slides[g].thumb?i=d.options.slides[g].thumb:i=d.options.slides[g].image;f=f+'<li class="thumb'+g+'"><img src="'+i+'"/></li>'}}g++}if(d.options.slide_links){a(vars.slide_list).html(j)}if(d.options.thumb_links&&vars.thumb_tray.length){a(vars.thumb_tray).append('<ul id="'+vars.thumb_list.replace("#","")+'">'+f+"</ul>")}a(d.el).append(e);if(d.options.thumbnail_navigation){vars.current_slide-1<0?prevThumb=d.options.slides.length-1:prevThumb=vars.current_slide-1;a(vars.prev_thumb).show().html(a("<img/>").attr("src",d.options.slides[prevThumb].image));vars.current_slide==d.options.slides.length-1?nextThumb=0:nextThumb=vars.current_slide+1;a(vars.next_thumb).show().html(a("<img/>").attr("src",d.options.slides[nextThumb].image))}d._start()};d._start=function(){if(d.options.start_slide){vars.current_slide=d.options.start_slide-1}else{vars.current_slide=Math.floor(Math.random()*d.options.slides.length)}var o=d.options.new_window?' target="_blank"':"";if(d.options.performance==3){d.$el.addClass("speed")}else{if((d.options.performance==1)||(d.options.performance==2)){d.$el.addClass("quality")}}if(d.options.random){arr=d.options.slides;for(var h,m,k=arr.length;k;h=parseInt(Math.random()*k),m=arr[--k],arr[k]=arr[h],arr[h]=m){}d.options.slides=arr}if(d.options.slides.length>1){if(d.options.slides.length>2){vars.current_slide-1<0?loadPrev=d.options.slides.length-1:loadPrev=vars.current_slide-1;var g=(d.options.slides[loadPrev].url)?"href='"+d.options.slides[loadPrev].url+"'":"";var q=a('<img src="'+d.options.slides[loadPrev].image+'"/>');var n=d.el+" li:eq("+loadPrev+")";q.appendTo(n).wrap("<a "+g+o+"></a>").parent().parent().addClass("image-loading prevslide");q.load(function(){a(this).data("origWidth",a(this).width()).data("origHeight",a(this).height());d.resizeNow()})}}else{d.options.slideshow=0}g=(api.getField("url"))?"href='"+api.getField("url")+"'":"";var l=a('<img src="'+api.getField("image")+'"/>');var f=d.el+" li:eq("+vars.current_slide+")";l.appendTo(f).wrap("<a "+g+o+"></a>").parent().parent().addClass("image-loading activeslide");l.load(function(){d._origDim(a(this));d.resizeNow();d.launch();if(typeof theme!="undefined"&&typeof theme._init=="function"){theme._init()}});if(d.options.slides.length>1){vars.current_slide==d.options.slides.length-1?loadNext=0:loadNext=vars.current_slide+1;g=(d.options.slides[loadNext].url)?"href='"+d.options.slides[loadNext].url+"'":"";var e=a('<img src="'+d.options.slides[loadNext].image+'"/>');var p=d.el+" li:eq("+loadNext+")";e.appendTo(p).wrap("<a "+g+o+"></a>").parent().parent().addClass("image-loading");e.load(function(){a(this).data("origWidth",a(this).width()).data("origHeight",a(this).height());d.resizeNow()})}d.$el.css("visibility","hidden");a(".load-item").hide()};d.launch=function(){d.$el.css("visibility","visible");a("#supersized-loader").remove();if(typeof theme!="undefined"&&typeof theme.beforeAnimation=="function"){theme.beforeAnimation("next")}a(".load-item").show();if(d.options.keyboard_nav){a(document.documentElement).keyup(function(e){if(vars.in_animation){return false}if((e.keyCode==37)||(e.keyCode==40)){clearInterval(vars.slideshow_interval);d.prevSlide()}else{if((e.keyCode==39)||(e.keyCode==38)){clearInterval(vars.slideshow_interval);d.nextSlide()}else{if(e.keyCode==32&&!vars.hover_pause){clearInterval(vars.slideshow_interval);d.playToggle()}}}})}if(d.options.slideshow&&d.options.pause_hover){a(d.el).hover(function(){if(vars.in_animation){return false}vars.hover_pause=true;if(!vars.is_paused){vars.hover_pause="resume";d.playToggle()}},function(){if(vars.hover_pause=="resume"){d.playToggle();vars.hover_pause=false}})}if(d.options.slide_links){a(vars.slide_list+"> li").click(function(){index=a(vars.slide_list+"> li").index(this);targetSlide=index+1;d.goTo(targetSlide);return false})}if(d.options.thumb_links){a(vars.thumb_list+"> li").click(function(){index=a(vars.thumb_list+"> li").index(this);targetSlide=index+1;api.goTo(targetSlide);return false})}if(d.options.slideshow&&d.options.slides.length>1){if(d.options.autoplay&&d.options.slides.length>1){vars.slideshow_interval=setInterval(d.nextSlide,d.options.slide_interval)}else{vars.is_paused=true}a(".load-item img").bind("contextmenu mousedown",function(){return false})}a(window).resize(function(){d.resizeNow()})};d.resizeNow=function(){return d.$el.each(function(){a("img",d.el).each(function(){thisSlide=a(this);var f=(thisSlide.data("origHeight")/thisSlide.data("origWidth")).toFixed(2);var e=d.$el.width(),h=d.$el.height(),i;if(d.options.fit_always){if((h/e)>f){g()}else{j()}}else{if((h<=d.options.min_height)&&(e<=d.options.min_width)){if((h/e)>f){d.options.fit_landscape&&f<1?g(true):j(true)}else{d.options.fit_portrait&&f>=1?j(true):g(true)}}else{if(e<=d.options.min_width){if((h/e)>f){d.options.fit_landscape&&f<1?g(true):j()}else{d.options.fit_portrait&&f>=1?j():g(true)}}else{if(h<=d.options.min_height){if((h/e)>f){d.options.fit_landscape&&f<1?g():j(true)}else{d.options.fit_portrait&&f>=1?j(true):g()}}else{if((h/e)>f){d.options.fit_landscape&&f<1?g():j()}else{d.options.fit_portrait&&f>=1?j():g()}}}}}function g(k){if(k){if(thisSlide.width()<e||thisSlide.width()<d.options.min_width){if(thisSlide.width()*f>=d.options.min_height){thisSlide.width(d.options.min_width);thisSlide.height(thisSlide.width()*f)}else{j()}}}else{if(d.options.min_height>=h&&!d.options.fit_landscape){if(e*f>=d.options.min_height||(e*f>=d.options.min_height&&f<=1)){thisSlide.width(e);thisSlide.height(e*f)}else{if(f>1){thisSlide.height(d.options.min_height);thisSlide.width(thisSlide.height()/f)}else{if(thisSlide.width()<e){thisSlide.width(e);thisSlide.height(thisSlide.width()*f)}}}}else{thisSlide.width(e);thisSlide.height(e*f)}}}function j(k){if(k){if(thisSlide.height()<h){if(thisSlide.height()/f>=d.options.min_width){thisSlide.height(d.options.min_height);thisSlide.width(thisSlide.height()/f)}else{g(true)}}}else{if(d.options.min_width>=e){if(h/f>=d.options.min_width||f>1){thisSlide.height(h);thisSlide.width(h/f)}else{if(f<=1){thisSlide.width(d.options.min_width);thisSlide.height(thisSlide.width()*f)}}}else{thisSlide.height(h);thisSlide.width(h/f)}}}if(thisSlide.parents("li").hasClass("image-loading")){a(".image-loading").removeClass("image-loading")}if(d.options.horizontal_center){a(this).css("left",(e-a(this).width())/2)}if(d.options.vertical_center){a(this).css("top",(h-a(this).height())/2)}});if(d.options.image_protect){a("img",d.el).bind("contextmenu mousedown",function(){return false})}return false})};d.nextSlide=function(){if(vars.in_animation||!api.options.slideshow){return false}else{vars.in_animation=true}clearInterval(vars.slideshow_interval);var h=d.options.slides,e=d.$el.find(".activeslide");a(".prevslide").removeClass("prevslide");e.removeClass("activeslide").addClass("prevslide");vars.current_slide+1==d.options.slides.length?vars.current_slide=0:vars.current_slide++;var g=a(d.el+" li:eq("+vars.current_slide+")"),i=d.$el.find(".prevslide");if(d.options.performance==1){d.$el.removeClass("quality").addClass("speed")}loadSlide=false;vars.current_slide==d.options.slides.length-1?loadSlide=0:loadSlide=vars.current_slide+1;var k=d.el+" li:eq("+loadSlide+")";if(!a(k).html()){var j=d.options.new_window?' target="_blank"':"";imageLink=(d.options.slides[loadSlide].url)?"href='"+d.options.slides[loadSlide].url+"'":"";var f=a('<img src="'+d.options.slides[loadSlide].image+'"/>');f.appendTo(k).wrap("<a "+imageLink+j+"></a>").parent().parent().addClass("image-loading").css("visibility","hidden");f.load(function(){d._origDim(a(this));d.resizeNow()})}if(d.options.thumbnail_navigation==1){vars.current_slide-1<0?prevThumb=d.options.slides.length-1:prevThumb=vars.current_slide-1;a(vars.prev_thumb).html(a("<img/>").attr("src",d.options.slides[prevThumb].image));nextThumb=loadSlide;a(vars.next_thumb).html(a("<img/>").attr("src",d.options.slides[nextThumb].image))}if(typeof theme!="undefined"&&typeof theme.beforeAnimation=="function"){theme.beforeAnimation("next")}if(d.options.slide_links){a(".current-slide").removeClass("current-slide");a(vars.slide_list+"> li").eq(vars.current_slide).addClass("current-slide")}g.css("visibility","hidden").addClass("activeslide");switch(d.options.transition){case 0:case"none":g.css("visibility","visible");vars.in_animation=false;d.afterAnimation();break;case 1:case"fade":g.animate({opacity:0},0).css("visibility","visible").animate({opacity:1,avoidTransforms:false},d.options.transition_speed,function(){d.afterAnimation()});break;case 2:case"slideTop":g.animate({top:-d.$el.height()},0).css("visibility","visible").animate({top:0,avoidTransforms:false},d.options.transition_speed,function(){d.afterAnimation()});break;case 3:case"slideRight":g.animate({left:d.$el.width()},0).css("visibility","visible").animate({left:0,avoidTransforms:false},d.options.transition_speed,function(){d.afterAnimation()});break;case 4:case"slideBottom":g.animate({top:d.$el.height()},0).css("visibility","visible").animate({top:0,avoidTransforms:false},d.options.transition_speed,function(){d.afterAnimation()});break;case 5:case"slideLeft":g.animate({left:-d.$el.width()},0).css("visibility","visible").animate({left:0,avoidTransforms:false},d.options.transition_speed,function(){d.afterAnimation()});break;case 6:case"carouselRight":g.animate({left:d.$el.width()},0).css("visibility","visible").animate({left:0,avoidTransforms:false},d.options.transition_speed,function(){d.afterAnimation()});e.animate({left:-d.$el.width(),avoidTransforms:false},d.options.transition_speed);break;case 7:case"carouselLeft":g.animate({left:-d.$el.width()},0).css("visibility","visible").animate({left:0,avoidTransforms:false},d.options.transition_speed,function(){d.afterAnimation()});e.animate({left:d.$el.width(),avoidTransforms:false},d.options.transition_speed);break}return false};d.prevSlide=function(){if(vars.in_animation||!api.options.slideshow){return false}else{vars.in_animation=true}clearInterval(vars.slideshow_interval);var h=d.options.slides,e=d.$el.find(".activeslide");a(".prevslide").removeClass("prevslide");e.removeClass("activeslide").addClass("prevslide");vars.current_slide==0?vars.current_slide=d.options.slides.length-1:vars.current_slide--;var g=a(d.el+" li:eq("+vars.current_slide+")"),i=d.$el.find(".prevslide");if(d.options.performance==1){d.$el.removeClass("quality").addClass("speed")}loadSlide=vars.current_slide;var k=d.el+" li:eq("+loadSlide+")";if(!a(k).html()){var j=d.options.new_window?' target="_blank"':"";imageLink=(d.options.slides[loadSlide].url)?"href='"+d.options.slides[loadSlide].url+"'":"";var f=a('<img src="'+d.options.slides[loadSlide].image+'"/>');f.appendTo(k).wrap("<a "+imageLink+j+"></a>").parent().parent().addClass("image-loading").css("visibility","hidden");f.load(function(){d._origDim(a(this));d.resizeNow()})}if(d.options.thumbnail_navigation==1){loadSlide==0?prevThumb=d.options.slides.length-1:prevThumb=loadSlide-1;a(vars.prev_thumb).html(a("<img/>").attr("src",d.options.slides[prevThumb].image));vars.current_slide==d.options.slides.length-1?nextThumb=0:nextThumb=vars.current_slide+1;a(vars.next_thumb).html(a("<img/>").attr("src",d.options.slides[nextThumb].image))}if(typeof theme!="undefined"&&typeof theme.beforeAnimation=="function"){theme.beforeAnimation("prev")}if(d.options.slide_links){a(".current-slide").removeClass("current-slide");a(vars.slide_list+"> li").eq(vars.current_slide).addClass("current-slide")}g.css("visibility","hidden").addClass("activeslide");switch(d.options.transition){case 0:case"none":g.css("visibility","visible");vars.in_animation=false;d.afterAnimation();break;case 1:case"fade":g.animate({opacity:0},0).css("visibility","visible").animate({opacity:1,avoidTransforms:false},d.options.transition_speed,function(){d.afterAnimation()});break;case 2:case"slideTop":g.animate({top:d.$el.height()},0).css("visibility","visible").animate({top:0,avoidTransforms:false},d.options.transition_speed,function(){d.afterAnimation()});break;case 3:case"slideRight":g.animate({left:-d.$el.width()},0).css("visibility","visible").animate({left:0,avoidTransforms:false},d.options.transition_speed,function(){d.afterAnimation()});break;case 4:case"slideBottom":g.animate({top:-d.$el.height()},0).css("visibility","visible").animate({top:0,avoidTransforms:false},d.options.transition_speed,function(){d.afterAnimation()});break;case 5:case"slideLeft":g.animate({left:d.$el.width()},0).css("visibility","visible").animate({left:0,avoidTransforms:false},d.options.transition_speed,function(){d.afterAnimation()});break;case 6:case"carouselRight":g.animate({left:-d.$el.width()},0).css("visibility","visible").animate({left:0,avoidTransforms:false},d.options.transition_speed,function(){d.afterAnimation()});e.animate({left:0},0).animate({left:d.$el.width(),avoidTransforms:false},d.options.transition_speed);break;case 7:case"carouselLeft":g.animate({left:d.$el.width()},0).css("visibility","visible").animate({left:0,avoidTransforms:false},d.options.transition_speed,function(){d.afterAnimation()});e.animate({left:0},0).animate({left:-d.$el.width(),avoidTransforms:false},d.options.transition_speed);break}return false};d.playToggle=function(){if(vars.in_animation||!api.options.slideshow){return false}if(vars.is_paused){vars.is_paused=false;if(typeof theme!="undefined"&&typeof theme.playToggle=="function"){theme.playToggle("play")}vars.slideshow_interval=setInterval(d.nextSlide,d.options.slide_interval)}else{vars.is_paused=true;if(typeof theme!="undefined"&&typeof theme.playToggle=="function"){theme.playToggle("pause")}clearInterval(vars.slideshow_interval)}return false};d.goTo=function(f){if(vars.in_animation||!api.options.slideshow){return false}var e=d.options.slides.length;if(f<0){f=e}else{if(f>e){f=1}}f=e-f+1;clearInterval(vars.slideshow_interval);if(typeof theme!="undefined"&&typeof theme.goTo=="function"){theme.goTo()}if(vars.current_slide==e-f){if(!(vars.is_paused)){vars.slideshow_interval=setInterval(d.nextSlide,d.options.slide_interval)}return false}if(e-f>vars.current_slide){vars.current_slide=e-f-1;vars.update_images="next";d._placeSlide(vars.update_images)}else{if(e-f<vars.current_slide){vars.current_slide=e-f+1;vars.update_images="prev";d._placeSlide(vars.update_images)}}if(d.options.slide_links){a(vars.slide_list+"> .current-slide").removeClass("current-slide");a(vars.slide_list+"> li").eq((e-f)).addClass("current-slide")}if(d.options.thumb_links){a(vars.thumb_list+"> .current-thumb").removeClass("current-thumb");a(vars.thumb_list+"> li").eq((e-f)).addClass("current-thumb")}};d._placeSlide=function(e){var h=d.options.new_window?' target="_blank"':"";loadSlide=false;if(e=="next"){vars.current_slide==d.options.slides.length-1?loadSlide=0:loadSlide=vars.current_slide+1;var g=d.el+" li:eq("+loadSlide+")";if(!a(g).html()){var h=d.options.new_window?' target="_blank"':"";imageLink=(d.options.slides[loadSlide].url)?"href='"+d.options.slides[loadSlide].url+"'":"";var f=a('<img src="'+d.options.slides[loadSlide].image+'"/>');f.appendTo(g).wrap("<a "+imageLink+h+"></a>").parent().parent().addClass("image-loading").css("visibility","hidden");f.load(function(){d._origDim(a(this));d.resizeNow()})}d.nextSlide()}else{if(e=="prev"){vars.current_slide-1<0?loadSlide=d.options.slides.length-1:loadSlide=vars.current_slide-1;var g=d.el+" li:eq("+loadSlide+")";if(!a(g).html()){var h=d.options.new_window?' target="_blank"':"";imageLink=(d.options.slides[loadSlide].url)?"href='"+d.options.slides[loadSlide].url+"'":"";var f=a('<img src="'+d.options.slides[loadSlide].image+'"/>');f.appendTo(g).wrap("<a "+imageLink+h+"></a>").parent().parent().addClass("image-loading").css("visibility","hidden");f.load(function(){d._origDim(a(this));d.resizeNow()})}d.prevSlide()}}};d._origDim=function(e){e.data("origWidth",e.width()).data("origHeight",e.height())};d.afterAnimation=function(){if(d.options.performance==1){d.$el.removeClass("speed").addClass("quality")}if(vars.update_images){vars.current_slide-1<0?setPrev=d.options.slides.length-1:setPrev=vars.current_slide-1;vars.update_images=false;a(".prevslide").removeClass("prevslide");a(d.el+" li:eq("+setPrev+")").addClass("prevslide")}vars.in_animation=false;if(!vars.is_paused&&d.options.slideshow){vars.slideshow_interval=setInterval(d.nextSlide,d.options.slide_interval);if(d.options.stop_loop&&vars.current_slide==d.options.slides.length-1){d.playToggle()}}if(typeof theme!="undefined"&&typeof theme.afterAnimation=="function"){theme.afterAnimation()}return false};d.getField=function(e){return d.options.slides[vars.current_slide][e]};d.init()};a.supersized.vars={thumb_tray:"#thumb-tray",thumb_list:"#thumb-list",slide_list:"#slide-list",current_slide:0,in_animation:false,is_paused:false,hover_pause:false,slideshow_interval:false,update_images:false,options:{}};a.supersized.defaultOptions={slideshow:1,autoplay:1,start_slide:1,stop_loop:0,random:0,slide_interval:5000,transition:1,transition_speed:750,new_window:1,pause_hover:0,keyboard_nav:1,performance:1,image_protect:1,fit_always:0,fit_landscape:0,fit_portrait:1,min_width:0,min_height:0,horizontal_center:1,vertical_center:1,slide_links:1,thumb_links:1,thumbnail_navigation:0};a.fn.supersized=function(b){return this.each(function(){(new a.supersized(b))})}})(jQuery); \ No newline at end of file diff --git a/apps/gallery/js/supersized.shutter.js b/apps/gallery/js/supersized.shutter.js new file mode 100644 index 0000000000..cc3025a94a --- /dev/null +++ b/apps/gallery/js/supersized.shutter.js @@ -0,0 +1,337 @@ +/* + + Supersized - Fullscreen Slideshow jQuery Plugin + Version : 3.2.7 + Theme : Shutter 1.1 + + Site : www.buildinternet.com/project/supersized + Author : Sam Dunn + Company : One Mighty Roar (www.onemightyroar.com) + License : MIT License / GPL License + +*/ + +(function($){ + + theme = { + + + /* Initial Placement + ----------------------------*/ + _init : function(){ + + // Center Slide Links + if (api.options.slide_links) $(vars.slide_list).css('margin-left', -$(vars.slide_list).width()/2); + + // Start progressbar if autoplay enabled + if (api.options.autoplay){ + if (api.options.progress_bar) theme.progressBar(); + }else{ + if ($(vars.play_button).attr('src')) $(vars.play_button).attr("src", vars.image_path + "play.png"); // If pause play button is image, swap src + if (api.options.progress_bar) $(vars.progress_bar).stop().animate({left : -$(window).width()}, 0 ); // Place progress bar + } + + + /* Thumbnail Tray + ----------------------------*/ + // Hide tray off screen + $(vars.thumb_tray).animate({bottom : -$(vars.thumb_tray).height()}, 0 ); + + // Thumbnail Tray Toggle + $(vars.tray_button).toggle(function(){ + $(vars.thumb_tray).stop().animate({bottom : 0, avoidTransforms : true}, 300 ); + if ($(vars.tray_arrow).attr('src')) $(vars.tray_arrow).attr("src", vars.image_path + "button-tray-down.png"); + return false; + }, function() { + $(vars.thumb_tray).stop().animate({bottom : -$(vars.thumb_tray).height(), avoidTransforms : true}, 300 ); + if ($(vars.tray_arrow).attr('src')) $(vars.tray_arrow).attr("src", vars.image_path + "button-tray-up.png"); + return false; + }); + + // Make thumb tray proper size + $(vars.thumb_list).width($('> li', vars.thumb_list).length * $('> li', vars.thumb_list).outerWidth(true)); //Adjust to true width of thumb markers + + // Display total slides + if ($(vars.slide_total).length){ + $(vars.slide_total).html(api.options.slides.length); + } + + + /* Thumbnail Tray Navigation + ----------------------------*/ + if (api.options.thumb_links){ + //Hide thumb arrows if not needed + if ($(vars.thumb_list).width() <= $(vars.thumb_tray).width()){ + $(vars.thumb_back +','+vars.thumb_forward).fadeOut(0); + } + + // Thumb Intervals + vars.thumb_interval = Math.floor($(vars.thumb_tray).width() / $('> li', vars.thumb_list).outerWidth(true)) * $('> li', vars.thumb_list).outerWidth(true); + vars.thumb_page = 0; + + // Cycle thumbs forward + $(vars.thumb_forward).click(function(){ + if (vars.thumb_page - vars.thumb_interval <= -$(vars.thumb_list).width()){ + vars.thumb_page = 0; + $(vars.thumb_list).stop().animate({'left': vars.thumb_page}, {duration:500, easing:'easeOutExpo'}); + }else{ + vars.thumb_page = vars.thumb_page - vars.thumb_interval; + $(vars.thumb_list).stop().animate({'left': vars.thumb_page}, {duration:500, easing:'easeOutExpo'}); + } + }); + + // Cycle thumbs backwards + $(vars.thumb_back).click(function(){ + if (vars.thumb_page + vars.thumb_interval > 0){ + vars.thumb_page = Math.floor($(vars.thumb_list).width() / vars.thumb_interval) * -vars.thumb_interval; + if ($(vars.thumb_list).width() <= -vars.thumb_page) vars.thumb_page = vars.thumb_page + vars.thumb_interval; + $(vars.thumb_list).stop().animate({'left': vars.thumb_page}, {duration:500, easing:'easeOutExpo'}); + }else{ + vars.thumb_page = vars.thumb_page + vars.thumb_interval; + $(vars.thumb_list).stop().animate({'left': vars.thumb_page}, {duration:500, easing:'easeOutExpo'}); + } + }); + + } + + + /* Navigation Items + ----------------------------*/ + $(vars.next_slide).click(function() { + api.nextSlide(); + }); + + $(vars.prev_slide).click(function() { + api.prevSlide(); + }); + + // Full Opacity on Hover + if(jQuery.support.opacity){ + $(vars.prev_slide +','+vars.next_slide).mouseover(function() { + $(this).stop().animate({opacity:1},100); + }).mouseout(function(){ + $(this).stop().animate({opacity:0.6},100); + }); + } + + if (api.options.thumbnail_navigation){ + // Next thumbnail clicked + $(vars.next_thumb).click(function() { + api.nextSlide(); + }); + // Previous thumbnail clicked + $(vars.prev_thumb).click(function() { + api.prevSlide(); + }); + } + + $(vars.play_button).click(function() { + api.playToggle(); + }); + + + /* Thumbnail Mouse Scrub + ----------------------------*/ + if (api.options.mouse_scrub){ + $(vars.thumb_tray).mousemove(function(e) { + var containerWidth = $(vars.thumb_tray).width(), + listWidth = $(vars.thumb_list).width(); + if (listWidth > containerWidth){ + var mousePos = 1, + diff = e.pageX - mousePos; + if (diff > 10 || diff < -10) { + mousePos = e.pageX; + newX = (containerWidth - listWidth) * (e.pageX/containerWidth); + diff = parseInt(Math.abs(parseInt($(vars.thumb_list).css('left'))-newX )).toFixed(0); + $(vars.thumb_list).stop().animate({'left':newX}, {duration:diff*3, easing:'easeOutExpo'}); + } + } + }); + } + + + /* Window Resize + ----------------------------*/ + $(window).resize(function(){ + + // Delay progress bar on resize + if (api.options.progress_bar && !vars.in_animation){ + if (vars.slideshow_interval) clearInterval(vars.slideshow_interval); + if (api.options.slides.length - 1 > 0) clearInterval(vars.slideshow_interval); + + $(vars.progress_bar).stop().animate({left : -$(window).width()}, 0 ); + + if (!vars.progressDelay && api.options.slideshow){ + // Delay slideshow from resuming so Chrome can refocus images + vars.progressDelay = setTimeout(function() { + if (!vars.is_paused){ + theme.progressBar(); + vars.slideshow_interval = setInterval(api.nextSlide, api.options.slide_interval); + } + vars.progressDelay = false; + }, 1000); + } + } + + // Thumb Links + if (api.options.thumb_links && vars.thumb_tray.length){ + // Update Thumb Interval & Page + vars.thumb_page = 0; + vars.thumb_interval = Math.floor($(vars.thumb_tray).width() / $('> li', vars.thumb_list).outerWidth(true)) * $('> li', vars.thumb_list).outerWidth(true); + + // Adjust thumbnail markers + if ($(vars.thumb_list).width() > $(vars.thumb_tray).width()){ + $(vars.thumb_back +','+vars.thumb_forward).fadeIn('fast'); + $(vars.thumb_list).stop().animate({'left':0}, 200); + }else{ + $(vars.thumb_back +','+vars.thumb_forward).fadeOut('fast'); + } + + } + }); + + + }, + + + /* Go To Slide + ----------------------------*/ + goTo : function(){ + if (api.options.progress_bar && !vars.is_paused){ + $(vars.progress_bar).stop().animate({left : -$(window).width()}, 0 ); + theme.progressBar(); + } + }, + + /* Play & Pause Toggle + ----------------------------*/ + playToggle : function(state){ + + if (state =='play'){ + // If image, swap to pause + if ($(vars.play_button).attr('src')) $(vars.play_button).attr("src", vars.image_path + "pause.png"); + if (api.options.progress_bar && !vars.is_paused) theme.progressBar(); + }else if (state == 'pause'){ + // If image, swap to play + if ($(vars.play_button).attr('src')) $(vars.play_button).attr("src", vars.image_path + "play.png"); + if (api.options.progress_bar && vars.is_paused)$(vars.progress_bar).stop().animate({left : -$(window).width()}, 0 ); + } + + }, + + + /* Before Slide Transition + ----------------------------*/ + beforeAnimation : function(direction){ + if (api.options.progress_bar && !vars.is_paused) $(vars.progress_bar).stop().animate({left : -$(window).width()}, 0 ); + + /* Update Fields + ----------------------------*/ + // Update slide caption + if ($(vars.slide_caption).length){ + (api.getField('title')) ? $(vars.slide_caption).html(api.getField('title')) : $(vars.slide_caption).html(''); + } + // Update slide number + if (vars.slide_current.length){ + $(vars.slide_current).html(vars.current_slide + 1); + } + + + // Highlight current thumbnail and adjust row position + if (api.options.thumb_links){ + + $('.current-thumb').removeClass('current-thumb'); + $('li', vars.thumb_list).eq(vars.current_slide).addClass('current-thumb'); + + // If thumb out of view + if ($(vars.thumb_list).width() > $(vars.thumb_tray).width()){ + // If next slide direction + if (direction == 'next'){ + if (vars.current_slide == 0){ + vars.thumb_page = 0; + $(vars.thumb_list).stop().animate({'left': vars.thumb_page}, {duration:500, easing:'easeOutExpo'}); + } else if ($('.current-thumb').offset().left - $(vars.thumb_tray).offset().left >= vars.thumb_interval){ + vars.thumb_page = vars.thumb_page - vars.thumb_interval; + $(vars.thumb_list).stop().animate({'left': vars.thumb_page}, {duration:500, easing:'easeOutExpo'}); + } + // If previous slide direction + }else if(direction == 'prev'){ + if (vars.current_slide == api.options.slides.length - 1){ + vars.thumb_page = Math.floor($(vars.thumb_list).width() / vars.thumb_interval) * -vars.thumb_interval; + if ($(vars.thumb_list).width() <= -vars.thumb_page) vars.thumb_page = vars.thumb_page + vars.thumb_interval; + $(vars.thumb_list).stop().animate({'left': vars.thumb_page}, {duration:500, easing:'easeOutExpo'}); + } else if ($('.current-thumb').offset().left - $(vars.thumb_tray).offset().left < 0){ + if (vars.thumb_page + vars.thumb_interval > 0) return false; + vars.thumb_page = vars.thumb_page + vars.thumb_interval; + $(vars.thumb_list).stop().animate({'left': vars.thumb_page}, {duration:500, easing:'easeOutExpo'}); + } + } + } + + + } + + }, + + + /* After Slide Transition + ----------------------------*/ + afterAnimation : function(){ + if (api.options.progress_bar && !vars.is_paused) theme.progressBar(); // Start progress bar + }, + + + /* Progress Bar + ----------------------------*/ + progressBar : function(){ + $(vars.progress_bar).stop().animate({left : -$(window).width()}, 0 ).animate({left:0}, api.options.slide_interval); + } + + + }; + + + /* Theme Specific Variables + ----------------------------*/ + $.supersized.themeVars = { + + // Internal Variables + progress_delay : false, // Delay after resize before resuming slideshow + thumb_page : false, // Thumbnail page + thumb_interval : false, // Thumbnail interval + image_path : OC.webroot+"/apps/gallery/img/supersized/", // Default image path + + // General Elements + play_button : '#pauseplay', // Play/Pause button + next_slide : '#nextslide', // Next slide button + prev_slide : '#prevslide', // Prev slide button + next_thumb : '#nextthumb', // Next slide thumb button + prev_thumb : '#prevthumb', // Prev slide thumb button + + slide_caption : '#slidecaption', // Slide caption + slide_current : '.slidenumber', // Current slide number + slide_total : '.totalslides', // Total Slides + slide_list : '#slide-list', // Slide jump list + + thumb_tray : '#thumb-tray', // Thumbnail tray + thumb_list : '#thumb-list', // Thumbnail list + thumb_forward : '#thumb-forward', // Cycles forward through thumbnail list + thumb_back : '#thumb-back', // Cycles backwards through thumbnail list + tray_arrow : '#tray-arrow', // Thumbnail tray button arrow + tray_button : '#tray-button', // Thumbnail tray button + + progress_bar : '#progress-bar' // Progress bar + + }; + + /* Theme Specific Options + ----------------------------*/ + $.supersized.themeOptions = { + + progress_bar : 1, // Timer for each slide + mouse_scrub : 0 // Thumbnails move with mouse + + }; + + +})(jQuery); diff --git a/apps/gallery/js/supersized.shutter.min.js b/apps/gallery/js/supersized.shutter.min.js new file mode 100644 index 0000000000..52ea4a3384 --- /dev/null +++ b/apps/gallery/js/supersized.shutter.min.js @@ -0,0 +1,14 @@ +/* + + Supersized - Fullscreen Slideshow jQuery Plugin + Version : 3.2.7 + Theme : Shutter 1.1 + + Site : www.buildinternet.com/project/supersized + Author : Sam Dunn + Company : One Mighty Roar (www.onemightyroar.com) + License : MIT License / GPL License + +*/ + +(function(a){theme={_init:function(){if(api.options.slide_links){a(vars.slide_list).css("margin-left",-a(vars.slide_list).width()/2)}if(api.options.autoplay){if(api.options.progress_bar){theme.progressBar()}}else{if(a(vars.play_button).attr("src")){a(vars.play_button).attr("src",vars.image_path+"play.png")}if(api.options.progress_bar){a(vars.progress_bar).stop().animate({left:-a(window).width()},0)}}a(vars.thumb_tray).animate({bottom:-a(vars.thumb_tray).height()},0);a(vars.tray_button).toggle(function(){a(vars.thumb_tray).stop().animate({bottom:0,avoidTransforms:true},300);if(a(vars.tray_arrow).attr("src")){a(vars.tray_arrow).attr("src",vars.image_path+"button-tray-down.png")}return false},function(){a(vars.thumb_tray).stop().animate({bottom:-a(vars.thumb_tray).height(),avoidTransforms:true},300);if(a(vars.tray_arrow).attr("src")){a(vars.tray_arrow).attr("src",vars.image_path+"button-tray-up.png")}return false});a(vars.thumb_list).width(a("> li",vars.thumb_list).length*a("> li",vars.thumb_list).outerWidth(true));if(a(vars.slide_total).length){a(vars.slide_total).html(api.options.slides.length)}if(api.options.thumb_links){if(a(vars.thumb_list).width()<=a(vars.thumb_tray).width()){a(vars.thumb_back+","+vars.thumb_forward).fadeOut(0)}vars.thumb_interval=Math.floor(a(vars.thumb_tray).width()/a("> li",vars.thumb_list).outerWidth(true))*a("> li",vars.thumb_list).outerWidth(true);vars.thumb_page=0;a(vars.thumb_forward).click(function(){if(vars.thumb_page-vars.thumb_interval<=-a(vars.thumb_list).width()){vars.thumb_page=0;a(vars.thumb_list).stop().animate({left:vars.thumb_page},{duration:500,easing:"easeOutExpo"})}else{vars.thumb_page=vars.thumb_page-vars.thumb_interval;a(vars.thumb_list).stop().animate({left:vars.thumb_page},{duration:500,easing:"easeOutExpo"})}});a(vars.thumb_back).click(function(){if(vars.thumb_page+vars.thumb_interval>0){vars.thumb_page=Math.floor(a(vars.thumb_list).width()/vars.thumb_interval)*-vars.thumb_interval;if(a(vars.thumb_list).width()<=-vars.thumb_page){vars.thumb_page=vars.thumb_page+vars.thumb_interval}a(vars.thumb_list).stop().animate({left:vars.thumb_page},{duration:500,easing:"easeOutExpo"})}else{vars.thumb_page=vars.thumb_page+vars.thumb_interval;a(vars.thumb_list).stop().animate({left:vars.thumb_page},{duration:500,easing:"easeOutExpo"})}})}a(vars.next_slide).click(function(){api.nextSlide()});a(vars.prev_slide).click(function(){api.prevSlide()});if(jQuery.support.opacity){a(vars.prev_slide+","+vars.next_slide).mouseover(function(){a(this).stop().animate({opacity:1},100)}).mouseout(function(){a(this).stop().animate({opacity:0.6},100)})}if(api.options.thumbnail_navigation){a(vars.next_thumb).click(function(){api.nextSlide()});a(vars.prev_thumb).click(function(){api.prevSlide()})}a(vars.play_button).click(function(){api.playToggle()});if(api.options.mouse_scrub){a(vars.thumb_tray).mousemove(function(f){var c=a(vars.thumb_tray).width(),g=a(vars.thumb_list).width();if(g>c){var b=1,d=f.pageX-b;if(d>10||d<-10){b=f.pageX;newX=(c-g)*(f.pageX/c);d=parseInt(Math.abs(parseInt(a(vars.thumb_list).css("left"))-newX)).toFixed(0);a(vars.thumb_list).stop().animate({left:newX},{duration:d*3,easing:"easeOutExpo"})}}})}a(window).resize(function(){if(api.options.progress_bar&&!vars.in_animation){if(vars.slideshow_interval){clearInterval(vars.slideshow_interval)}if(api.options.slides.length-1>0){clearInterval(vars.slideshow_interval)}a(vars.progress_bar).stop().animate({left:-a(window).width()},0);if(!vars.progressDelay&&api.options.slideshow){vars.progressDelay=setTimeout(function(){if(!vars.is_paused){theme.progressBar();vars.slideshow_interval=setInterval(api.nextSlide,api.options.slide_interval)}vars.progressDelay=false},1000)}}if(api.options.thumb_links&&vars.thumb_tray.length){vars.thumb_page=0;vars.thumb_interval=Math.floor(a(vars.thumb_tray).width()/a("> li",vars.thumb_list).outerWidth(true))*a("> li",vars.thumb_list).outerWidth(true);if(a(vars.thumb_list).width()>a(vars.thumb_tray).width()){a(vars.thumb_back+","+vars.thumb_forward).fadeIn("fast");a(vars.thumb_list).stop().animate({left:0},200)}else{a(vars.thumb_back+","+vars.thumb_forward).fadeOut("fast")}}})},goTo:function(b){if(api.options.progress_bar&&!vars.is_paused){a(vars.progress_bar).stop().animate({left:-a(window).width()},0);theme.progressBar()}},playToggle:function(b){if(b=="play"){if(a(vars.play_button).attr("src")){a(vars.play_button).attr("src",vars.image_path+"pause.png")}if(api.options.progress_bar&&!vars.is_paused){theme.progressBar()}}else{if(b=="pause"){if(a(vars.play_button).attr("src")){a(vars.play_button).attr("src",vars.image_path+"play.png")}if(api.options.progress_bar&&vars.is_paused){a(vars.progress_bar).stop().animate({left:-a(window).width()},0)}}}},beforeAnimation:function(b){if(api.options.progress_bar&&!vars.is_paused){a(vars.progress_bar).stop().animate({left:-a(window).width()},0)}if(a(vars.slide_caption).length){(api.getField("title"))?a(vars.slide_caption).html(api.getField("title")):a(vars.slide_caption).html("")}if(vars.slide_current.length){a(vars.slide_current).html(vars.current_slide+1)}if(api.options.thumb_links){a(".current-thumb").removeClass("current-thumb");a("li",vars.thumb_list).eq(vars.current_slide).addClass("current-thumb");if(a(vars.thumb_list).width()>a(vars.thumb_tray).width()){if(b=="next"){if(vars.current_slide==0){vars.thumb_page=0;a(vars.thumb_list).stop().animate({left:vars.thumb_page},{duration:500,easing:"easeOutExpo"})}else{if(a(".current-thumb").offset().left-a(vars.thumb_tray).offset().left>=vars.thumb_interval){vars.thumb_page=vars.thumb_page-vars.thumb_interval;a(vars.thumb_list).stop().animate({left:vars.thumb_page},{duration:500,easing:"easeOutExpo"})}}}else{if(b=="prev"){if(vars.current_slide==api.options.slides.length-1){vars.thumb_page=Math.floor(a(vars.thumb_list).width()/vars.thumb_interval)*-vars.thumb_interval;if(a(vars.thumb_list).width()<=-vars.thumb_page){vars.thumb_page=vars.thumb_page+vars.thumb_interval}a(vars.thumb_list).stop().animate({left:vars.thumb_page},{duration:500,easing:"easeOutExpo"})}else{if(a(".current-thumb").offset().left-a(vars.thumb_tray).offset().left<0){if(vars.thumb_page+vars.thumb_interval>0){return false}vars.thumb_page=vars.thumb_page+vars.thumb_interval;a(vars.thumb_list).stop().animate({left:vars.thumb_page},{duration:500,easing:"easeOutExpo"})}}}}}}},afterAnimation:function(){if(api.options.progress_bar&&!vars.is_paused){theme.progressBar()}},progressBar:function(){a(vars.progress_bar).stop().animate({left:-a(window).width()},0).animate({left:0},api.options.slide_interval)}};a.supersized.themeVars={progress_delay:false,thumb_page:false,thumb_interval:false,image_path:OC.webroot+"/apps/gallery/img/supersized/",play_button:"#pauseplay",next_slide:"#nextslide",prev_slide:"#prevslide",next_thumb:"#nextthumb",prev_thumb:"#prevthumb",slide_caption:"#slidecaption",slide_current:".slidenumber",slide_total:".totalslides",slide_list:"#slide-list",thumb_tray:"#thumb-tray",thumb_list:"#thumb-list",thumb_forward:"#thumb-forward",thumb_back:"#thumb-back",tray_arrow:"#tray-arrow",tray_button:"#tray-button",progress_bar:"#progress-bar"};a.supersized.themeOptions={progress_bar:1,mouse_scrub:0}})(jQuery); diff --git a/apps/gallery/templates/index.php b/apps/gallery/templates/index.php index c90932cefd..048fb6c5bb 100644 --- a/apps/gallery/templates/index.php +++ b/apps/gallery/templates/index.php @@ -22,7 +22,10 @@ $(document).ready(function() { } } -?><br/> +?> + <div id="slideshow"> + <input type="button" class="start" value="<?php echo $l->t('Slideshow')?>" /> + </div> </div> <div id="gallerycontent"> <?php @@ -32,3 +35,50 @@ echo $_['tl']->get(); ?> </div> + +<!-- start supersized block --> +<div id="slideshow-content" class="supersized" style="display:none;"> + + <!--Thumbnail Navigation--> + <div id="prevthumb"></div> + <div id="nextthumb"></div> + + <!--Arrow Navigation--> + <a id="prevslide" class="load-item"></a> + <a id="nextslide" class="load-item"></a> + + <div id="thumb-tray" class="load-item"> + <div id="thumb-back"></div> + <div id="thumb-forward"></div> + </div> + + <!--Time Bar--> + <div id="progress-back" class="load-item"> + <div id="progress-bar"></div> + </div> + + <!--Control Bar--> + <div id="slideshow-controls-wrapper" class="load-item"> + <div id="slideshow-controls"> + + <a id="play-button"><img id="pauseplay" src="<?php echo OCP\image_path('gallery', 'supersized/pause.png'); ?>"/></a> + + <!--Slide counter--> + <div id="slidecounter"> + <span class="slidenumber"></span> / <span class="totalslides"></span> + </div> + + <!--Slide captions displayed here--> + <div id="slidecaption"></div> + + <!--Thumb Tray button--> + <a id="tray-button"><img id="tray-arrow" src="<?php echo OCP\image_path('gallery', 'supersized/button-tray-up.png'); ?>"/></a> + + <!--Navigation--> + <!-- + <ul id="slide-list"></ul> + --> + </div> + </div> + +</div><!-- end supersized block --> -- GitLab