pax_global_header00006660000000000000000000000064116136057550014523gustar00rootroot0000000000000052 comment=09bdc0fe8dacedd693972316a37f74a413927bf6 slimbox-2.04/000077500000000000000000000000001161360575500131255ustar00rootroot00000000000000slimbox-2.04/README.txt000066400000000000000000000036401161360575500146260ustar00rootroot00000000000000SLIMBOX V2.04 README ==================== The ultimate lightweight Lightbox clone ... now using the jQuery javascript library (c) Christophe Beyls 2007-2010 MIT-style license http://code.google.com/p/slimbox/ Included files: example.html A simple example page demonstrating how to use Slimbox with the default configuration. example.jpg An example image used on the example page. README.txt The file you are reading. css/* The Slimbox stylesheet and its associated images. You can edit them to customize Slimbox appearance. You can choose between the standard slimbox2.css or slimbox2-rtl.css which is designed for right-to-left languages. js/slimbox2.js The minified version of Slimbox 2, plus the editable autoloading code using default options. src/slimbox2.js The Slimbox 2 source. Contains many comments and is not suitable for production use (needs to be minified first). src/autoload.js The default autoloading code included after the main minified code in the final production file. It activates Slimbox on selected links. extra/* Some extra scripts that you can add to the autoload code block inside slimbox2.js to add special functionality. Slimbox 2 requires the jQuery library (version 1.3 or more recent) to be installed on your website in order to work properly. You can remove or customize the provided autoload code block by editing the slimbox2.js file. By default, it behaves like Lightbox. When deploying slimbox2.js, you MUST always preserve the copyright notice at the beginning of the file. If you are a developer and want to edit the provided source code, it is strongly recommended to minify the script using "YUI Compressor" by Julien Lecomte before distribution. It will strip spaces and comments and shrink the variable names in order to obtain the smallest file size. For more information, please read the documentation on the official project page. Enjoy!slimbox-2.04/css/000077500000000000000000000000001161360575500137155ustar00rootroot00000000000000slimbox-2.04/css/closelabel.gif000066400000000000000000000017131161360575500165130ustar00rootroot00000000000000GIF87aBzzzYYY҃䌌PPPTTTVVVRRRXXXQQQSSSUUU{{{```WWWOOOLLLfff___KKKޡlllxxxyyydddZZZﳳ㇇iiiNNNsssMMMggg|||ccc߹pppeeevvvmmmnnnooo,B/2X]$(Y';8*'G × ?,T!'M  ̕   7냣&HOB!  B !BvGur GA! !,XpH,(q9XP2TDK%fPGC P~@D@XĆ۩S~ S  S!u~! A;slimbox-2.04/css/nextlabel.gif000066400000000000000000000005421161360575500163630ustar00rootroot00000000000000GIF89a? zzzaaammmUUUևϾrrrIII333!,?  mdih,:p,tmx|pH,ȠF04r 04R@SNbƆ06ŀ P(2!ǹ(UOaZ?[ e) L&[bUOj$l@c=* rJU$ P'[YêŴKfhִ%ĨR_%I- H0D ;slimbox-2.04/css/prevlabel.gif000066400000000000000000000005631161360575500163640ustar00rootroot00000000000000GIF89a? bbbmmmǺyyy廻WWW333!,? `&dihprmx|pH,ibpdӦ@i@0CS +&vOR =Dak# ~Xb%| BLbs# i&`LQ}eg|X""Nhr#\C&d"&x \j$j&~ȄrXtu`YJ"+*$H0 TPaÄ#JHS;slimbox-2.04/css/slimbox2-rtl.css000066400000000000000000000023501161360575500167650ustar00rootroot00000000000000/* SLIMBOX */ #lbOverlay { position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background-color: #000; cursor: pointer; } #lbCenter, #lbBottomContainer { position: absolute; z-index: 9999; overflow: hidden; background-color: #fff; } .lbLoading { background: #fff url(loading.gif) no-repeat center; } #lbImage { position: absolute; left: 0; top: 0; border: 10px solid #fff; background-repeat: no-repeat; } #lbPrevLink, #lbNextLink { display: block; position: absolute; top: 0; width: 50%; outline: none; } #lbPrevLink { right: 0; } #lbPrevLink:hover { background: transparent url(prevlabel.gif) no-repeat 100% 15%; } #lbNextLink { left: 0; } #lbNextLink:hover { background: transparent url(nextlabel.gif) no-repeat 0 15%; } #lbBottom { font-family: Verdana, Arial, Geneva, Helvetica, sans-serif; font-size: 10px; color: #666; line-height: 1.4em; text-align: right; border: 10px solid #fff; border-top-style: none; direction: rtl; } #lbCloseLink { display: block; float: left; width: 66px; height: 22px; background: transparent url(closelabel.gif) no-repeat center; margin: 5px 0; outline: none; } #lbCaption, #lbNumber { margin-left: 71px; } #lbCaption { font-weight: bold; } slimbox-2.04/css/slimbox2.css000066400000000000000000000023301161360575500161640ustar00rootroot00000000000000/* SLIMBOX */ #lbOverlay { position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background-color: #000; cursor: pointer; } #lbCenter, #lbBottomContainer { position: absolute; z-index: 9999; overflow: hidden; background-color: #fff; } .lbLoading { background: #fff url(loading.gif) no-repeat center; } #lbImage { position: absolute; left: 0; top: 0; border: 10px solid #fff; background-repeat: no-repeat; } #lbPrevLink, #lbNextLink { display: block; position: absolute; top: 0; width: 50%; outline: none; } #lbPrevLink { left: 0; } #lbPrevLink:hover { background: transparent url(prevlabel.gif) no-repeat 0 15%; } #lbNextLink { right: 0; } #lbNextLink:hover { background: transparent url(nextlabel.gif) no-repeat 100% 15%; } #lbBottom { font-family: Verdana, Arial, Geneva, Helvetica, sans-serif; font-size: 10px; color: #666; line-height: 1.4em; text-align: left; border: 10px solid #fff; border-top-style: none; } #lbCloseLink { display: block; float: right; width: 66px; height: 22px; background: transparent url(closelabel.gif) no-repeat center; margin: 5px 0; outline: none; } #lbCaption, #lbNumber { margin-right: 71px; } #lbCaption { font-weight: bold; } slimbox-2.04/example.html000066400000000000000000000014011161360575500154420ustar00rootroot00000000000000 Slimbox 2 example page

Slimbox 2 example page

Click here to view a picture inside Slimbox.

slimbox-2.04/example.jpg000066400000000000000000001145741161360575500152760ustar00rootroot00000000000000JFIFddDuckyA&Adobed +h8^C    C  M t3'&jZ%K2oAvzO/43w0L?Zefz<儨;+4q2gNBgL"n =*k4wX5Ƚǡ"fNLɩȑ #(C~j(1 Fyp]7\#9"CeSr\\fh pæbS2nvj Ltf?7L){IDXu(c  iD*4 ֚&8| h מ5o[[?~ zڑߚ n!Y7ڻ<h h y_V{fFrƌ\ѥp j.br92;^yYF:bhzpq8H8ZW]i׽gSG2oG1S[𭵩hi{3o1螺9o99e&5Zzr/88CA@fϽeTe5އ7jcu=>d٩27 y_MI7jrFS[g/1;.lޗԁIZp(89.A }ٝ[Uq3z5Y?f| Fk:Ƨ"|ԩD88h 3(*"nc9.3 5靦^l6\|3B bAYp88f g.;M1=1 :Ul鹓RidTuyČG3)gJQv.l$g.GKhbp*h1 (ӆ<8/`}ܱ*mS[ϛfN gE˚2!'Cff2Poѯ=1"T825PT0a%48Nlx Dž__͹{ҕi_oykcj:8J5"\GLzh7׵e$E_n'\4&Ҏys7-"#+!{LCuQYPͦ1]9"*֞3ҧNig*M9%˾-|F~cm_ѕ[? pz{UhӐB4HL@쮒$ˣ,:b24ć볎H֢f&tj>L 6I\ҿNqENqXO5b̚zֹ;>7LI!ȗ;wH9ϓOJ?VugW:OCCiry;^w sysq9[gon5dʺvrJ'fܓb]CJ+KLU5pӃ<&pD\d L4~m%b{F Ty^eyJ1][gv4kE/67#Aba&y%u.J8u <8\4ϥOJJbUw#;>wN ŭ;{|g.Mp5a9Z)o';nw'3.OMETXUbҋ73jپU$* rZtrT"tob8H#+}=qjǜDܚpv88הs<C}^Zf{" <^kNM#5 .UANsa3Nkk($3'2rsBL[Q0*I>{ijX$~%yUt}.G>zc-^Xy_=D;y5CUc5iԤ< ycg`ټ9Zk9EFLQit\uk**lk?lKug=~}?NWAI'Y-UU`їv-Vli &X 7!3{8Iy0Liț*dMRq\vrTubx:6E?']F9n+K+l"೸vP *#s}2}^tdj;s:#c(& 4>q=zt/M8:6 șU=8:^-=RwN{_C20ƒTNőT=G=M!?[z" VuTG69hufs=!44ƴh14Ơ*7踞Y2.N8{ܴ\$J鸻5Y:~uIUx~.R$QΖξO8a^`Dr 92yyGՠZȩm弽OǏՓj|/\<&ߞף~kk͎@{pIdCX XlURֶkm h-Gs-!T(.ؚUu\cOdYZLi@rn[ #8T:ul 7cџlzi7! \P@A( 5@PQTi*r 4HMɛ=m/- u(4C`oYp5W5]$"dTs!R K\ ޙmZ@h5nL?6"4ήuD*Ajn;ǭ6[p䉕TI5M ԁ E:-C.8888888\5&j%Zroi-! "01#2A$3@BPX>} b\̻=ID\ոε,]"(M@ #40sp SmMγiel!n0`sL]G'%m%ˢ])Q婩 FD80mbV`3,AȶYUIVpڻ.N;;bS-gWhgɪN:婩c0N3 8N  ?XyV]&/)F MU8ͽFrP6%Ϗ~30!Yp' a+J4 7?# a!t4"ղ@U)3-7)(f#cB'gV5r˸lV\-`s'$cԛ0A#[C?M% V OyLW3۝yOռl_\mJ55`S"0-* 2) еҵ':RWoi}SF~_ 1ȡoK#y*iu8M!N7GKYu<*Y~?ASPF^Ɉ%uh={uUWUdƼeWiW (aST^ϗ?5h 1(-:^@6x2lURZԭ}=-?˙BŲߛWyJS>@l,3tg?3.[D<-ẩV=tCm`֟[_c/]S'fPW)Degg)˛uc1Kcm#ҏMlrKELEdiL=LE4 5gD*z՚Z~FsB;;nnnno㹾絓rv%uЄfU&ޅSZR^[X[LS50_aDib]Cn]{U׹MAfr$ʪC2/ =Y*qf40&gLpҫ1mwljG4b\| =?- 8&pH4{~ǣS)^ WʱWNZʫUfM-zKv3!4UMʛ}ω{ek>^^ ].me+^W+$cLVh`f-Bmh͕*|6"U۪ ߿aJJWl@ekof<͍V x)r3%PEA狌y5ʾ3ssss:Fs ? j_#4]8P/cV ' 0y=EYnB!}mJ^c& :W?hLʄW+777ȿmAyE2wZnkW䳾}6ZDŽ:;`b=J=Km,c.V 6>;,l曜) ]@ث" 4& >VZN;r8ǧ}MM oh؋Jkcdd/~˜˼cxһ& M8_LZf NSq[u*+$5-Qiב[̰6n L&71nD­EqrGѐԶXNa>R J5gk,A0W-2r1'IQfY"BD❈B&Z~ G-N~bu*sӳkz.X`Ɨ˹JZt0>AQQ{sa%Mzu4d~&ux:r_v7Qs1W "5ܝ^6B}u*΢Oug]f]V%-{_uǚ,_reu_ KŕG) =3u e8'G0 025cV ~O=KW1:sWPx|DQFETL{Gf3SۇM2=RM&}1ߍxa37: }cCmF*k1!\zh!";׮Rʽ &=*xLBrT?/ssspLs=¤c׹L& a ``0|3EuH~;v VCl+}7777 Χpmtc 4nnn =? `1Zَd!繹A557777 LUM+QBa S{Um0Mzm̌If[1/g.%8 r`h s 07<+ 0"$gL{Hqrp|\nD?-0`0a`nn0ZKP O#FxYL09M-@"?ę,kڹ70]SsS]7a8ÏQ·f ? s,! 01@A"Q2aqPB?1f!&.I1c_6r$[FH}#''b ZQEԘf,++J6Tˡ1%X' }QEv/ZY7U$dMҊ֊,BiHY!#,|EG.Q#~#oPMK;]}eLY6cFI/с}.Ldq~̘芶%ZDX,jژ1J$B;,Y(?Fd11Bѓ!eEmM.dCա ɶ!Q)7_(蔭)B o%OZct)p69:Dё!b#fyѦdToLCc}0|I[1Qf^ J Wrڋ,LhlՑ8z9XY/ڄ3,蔯DњvΛ/DlfhK>:1>2c랫_N-./Q7i/igEpfǥCv/K/in2}4_lݦYLq6B)x#Ћg GQ?xͧlfP͋.I3,qcb1KK(kJK"EY^LpN^HGYdcKD?&\WkF̞ 㡢 E/+؝}9(zBDCIO/D쎲DD`K:=3ÎzBbqI?<bf&K>QkZc2Kj,L591",Je'+\>Ou]T=R7 -ΐ""CflNJҺ(SfHLmSCΨtKԡ.˭kDYxIF\6y< zQ]NZ3'#qI o JٰJH|4+"d\tE #ƈ/FQ](Xֺ̪%'!"1drmٖRB(ldXݓTWShtQ]x21DdgZ1Gڳڣڨ7bvf?F,b͹r(NwR%3'=w_"0-+LIT#&UdFDqkZ0$Q#%+cʍe^4%}8kR,ldkp(#gszbFJClC'\]Ѽrr!*Hyǘ]#$%ԣgd%L!m0Hf33w\GDM2YU̾ǖ#< =BZOl6zWL2LRHRqc}GcFS^JM}6BT,$[!CE=}YeYɟ5Q?Q) b}ȟClꙗcҢCF:EZ>Dbm!E cVd|KHO,c$nl"/EHg2Nh7¯e_i! aYi-]?/! 10A"@Qa2qRP#?ҽ2P [(QHB2;a.R^6O ΗZJTKFCj֊(o7=DЈ w5f(ءH~ֽDYɆ63{pEt!r#FXWv=7.ҊۢJQgzNW#%CjK)NC$!̴&;r+2QZM~řB=dzSE݄̘FrR>( |`1r!qγ)9i%$ZM9 ($D'.·{F,v4e_Uòi'=Ao?"̗6IK1ZO-BF6DeQ6QȲ䢉pJRj" E䔈Gsɱ$N[hqhB܌;W:td>ISy}B'1\Y9 DY!]yem6Vg?/F6$%Hd61"Hǟ4aE-%2K{% DHRIsH2Q!O/c؎JBF\e$b˴R ]}^<toh e)Y XoGBZD::OawbCcdQ|ʱ3$$IQr2R]͒bGT~5WΌ#\Ljy^/#GIY?>˓jqku2ȊIrf>Ho(f uef#'ڑ)IȒ'}J\9c Ϳ#CSiʛ#i!eGMմ1z$(6tьymKCh ]MqGJ41$xMDR6%!eb!BD:69e!D8m1b^Hd<{T`r(L^ߓ nб<$h#wdt96'?'b#dP$lGG0cGSSKby2DKt,v&IbnbD&tEI|6A6ӯo/Zm؆@鳧&Lvu}5rm- m3bȄoǂQtf5Z׿^t&1?g, 81F5uNP S/ɓOMziE~y0ciO#EwV?u ?"՝B1bR:l䔎_?TGF WL)y!X1W(M!?2ݏDoDz9BF~irARѢX,]fWtF79Ckc˵Y&Ro'E|x̘>M_Ά?O q+W:n|#J~3(RDO鱙Sjɋ]B{+(!vF]"F){481#h+ѡ-_=TdEB}z4lmޔݹ"DžVyN %"LݤDG+= dIJ1ajJ?d/g-|*D1vr/d?!1AQ"2a 0Bq@PR#b3rCSc?[Y\ڛv6:'K9'ၺ08+ѱ*LW5 !wturݯ VPW U>x+ˀ6xPWY][dY6Bi5iƷDr8n 2آ{`ep@5~e9?]p*2̪]4Gr A䨴GUuLny/ʮ MUPlʨ'g Ԭ2TnM\MU:t@׶ &($:E9 |ǞInb)^0P9|ȟu@B-1~P.?sF>ia<3Dǻ't`=Nd]7A䀙PW.Ey1_g u# IcxAw&W]TĩB̙@J6|'5XK׵UMo>խdSY<ubMWlCWcRvΈj(x>w1h+wwo4RvFh?  \Y#L^9;ٷpWPBh][T Y\N=]uz9mlh-QԵ8kGktBP_ګDm9uO;[c[Q `NFڟA3*֜G%vˍ/nĸs#Z~G衮=Nn$ZHZ -N~;=Fg~xxAY4 UU %αjp K_*4>mF֏TWڜ~n8fUK璏 ~jNaMT/ ɆzC;g]t\ѵwG_쮾Ռ<\AP[ HW@~Y"Qp}X̛E{{$ZH}ĺ! )ʥ]g[`ug*5V2P/*< 53ژYK9?S]mڧt{ ڻ7y%A_*d Go)4}PhbiݮCdWV-.HLCcEvl?'Ա"erPg\ JMHM4UT t\P)<_F~ i]fVz;ͣ̐T ]lR`ER0fk\UQoڱ$trNNXp*zٌ c]T*j.9,*qQ*v$ᲝcOrW3mم~9PC; Ϣ(OġW h&.DNypK9Q 7H3Iߺ_5u4clf]TB͘l`f_I7ݮ*ȏ,j]B;2f[MZ9lEMB0^nR:=6&4X(~U =]wl cȑ6bT m\p ^?⍣'8yNNA~'%˰/UA99lK?gA*|Y۴nުX-\۰ ЫWkHnN5vq^bmwErWKsdQ[8Q* 8% \خʫEQEh2DmURNe6 vc1.(|%{2D淘]b>&N2d}(N f?E [WlNܜDޏmy'er v͍m /0*K& E-LE|@vj8]y!ˉ0lDL|դ`P"Z)TN TOq%Ê$pJeRLI][7Iv|-\g3wE=Dcxpo>t . [l (QV8Qۺt]%"} 򢌴Am2pijy H*x--`0w7;,! ÞjǧqUkh\ /Tq=P*{c`cGo췘%;dPsAOjZ^d}*'7e1L|{]ES (!1AQaq 0?!sP8Z*5즣Ο Y~Bߨb=nC[ -BLU TǗ~rR 0CPQRZfS-/-SE MT\5 [7|w,v3R*qj<̌fjPCspdhiG5Od'3x 6%t]:AՆ̃6"(sk2dA ̐tg D*Po|)x&z,bLI[0*TP!:u~@GE :W.iODw9 "  ΅pCtk3̘"a7r2ũoƘ7q(@q VX%t@*C>2H <~( -z {}5.8eX|%_<0 ASˆ5NC"y4AT7u N(dž259;H>_,:+u!GM>X0qsf v2:)$~ʗ6rphin-4')›Rwk6Lۙ[W694]"ߛx 8G90y·.W8^a뼯$NCzGVt']Bg*7.2ćӴ׬M3G\=Xp?>C\x:cX3U=2x W)L_/W&{+s:hnʽq:fUh;0(%Jz(!z _6Ch{V`3BC3jT ]Y'f`X0T̏ʠ/^ ]%C2a9GdvTF^|f\~ N/P}B?ҢAeP_F1%J%E_o, Yn &iK"vLqn,sGRGL2/sƫ[y%~0|?+۱ 719ߘۺ&#vŞw؞f-)RtD/et!PKcس3\8e\DQr· )>bvpP*{ItQv\ءTy`P<}P"%ľA S=+6.y ZJ.(ܾ.\qzo3'EZTOet ϼ F:Vby_\UWEíJZ 'E?Pĺjjy˃^1i>fܵ.Ex 3pXfxV ]F c8iE<<ΡǜKߝ踑w԰ TC._E˗t6BU:pۈF%ȫү{k[dUq/5+Hc..Ttމ/nRp'UaFiE !H9LGGkbvՓ;Q}.%Ŋ9y0oAE%?qWTšon }P2]Wz[Y8? _ƿ0̏;kϟX%;%{^w*"+2ڇ_LO-`58L"//~bPEksw_BKԮ`z ^"0btTK?-BӁvcԮ^eß5z A'w{ye֛Ki@# 2#Yb4Z'dd ΗE2w%")Kh\XXzp\0fa\ܬ.ɚ FHZΖӆ:@t%<9`z4=풷㏑\>pE>W5%0݁>q x1Z bX+xϹff9 g+ `pî`']L F K˗߁TtlvrGAg[{gcP*LR;u;{afD.`,?_Dc)6t\0Ok{-h7  R˗/ȇ 13VG {s+3GH/8#x4J;4 ̮ᇆk3ǘ ;w> h٩["5{>aûZxaиtaP` ]@AKqI~(CA^e:Ug(Z{^Gނ[r=eL*5iQ2sq o­>ƣYd#{wb{c\M+n<p }oQjwƬ3WV(b\KN2hTw{KG9v/72{M#4,.Va7γ l#`çW>+ϙV`\es/|fEg:,IP%y&mc$+N6)Jqsr"Z(&c.8>bUj#(w981"؝̴n BK(ׇK)@ /FV?Yy539;?TB|1;_( 0^+>¾3.wcJbw G;׎Ҍh  E3t6b9.AaP"8mv\;F b\ |W_gg8cL,ӗ2? !%\atbAQB1~YF'AXeŶNı\ӑ3C2`3?:!xpK2ܶ@KrIC.-".U|#Ac+QQ# TjFEsw0x8DЄ!0G@$L5#f?)'(6/ h@L*Y~=Q4w% aQ :&> O,/߼wL/6*O5pq %f c_JJ$IS.@0y, UyoA5,bD*!Gy9؏c\ή Ksbӕv"m $2P3B`@ %٭LeSVЃ 5f~Am&_A){8&OucƗ57vWaUx~. cmbRY=t/?nGB< [}Q90IK9<-L* G8Ñ{dVG@,Y c%hcsVw<.\zjVP''V^F\c~588\@`?~^L] G̦r+_-B4(L< ޯ!@c r+30;1k?NU%6pj vIb m ˽L/^"+L62SlK~P`̃9#k*hX8pяĸ|NC7^ ?&!C|K0-}j`>iI!{u_3LB)Rc@EvQdϡ PfU7 phPz:k/*S*2EL܎Ck훳J1r1ޘZ@bgGp"ZxpcRFBMң|"<1tl :~[M2Pw_} %flЩsGg3t˜V\>%XB:3Plβ[4@|^fZs+ !(7Nk:Ήߦ!Am sul)l>ZoӭEc63i$`oR=5D<46mˊJ'bSWW:p.lwalpSbk!@ 9KϹd3u^v7 ϸ+tޭAgjq~3<8'PD};܎Dgz\hhʭ^[gamQ-;S`d#!1A Qa0q? 0=ȉ]Y|d ZVLw]-ݏ~/,K`0Nuut?g~Yծ,v.}B #,Y&ueGM b;Y<[8$?.ط H.,ddA,m ˁ ݆&?\ Ob6x g,OAqRK4uȻ|Cl6;vݺA {?_mtpOgg m 3ilO^ٯ:mǣ!.qr{4[oLIx7V=GR'eȋxCmMO!4۶|HCՃkϑ|Ydiw$,3>n&{ta/.>dyK{, c6{/ݽ2mwe~܆۳$~gm3veGY:u'c>Έ~Xw/ ݆Nb& qͳle䏩xf0ʄx!"^Gן%͂a63۩A۴G컶& snZJq9m-m11:h!,'Y}m$#}`߷WP7!O|[$gGȆl:gIfrO vdOKmlku:d٧i?ԧNDvdNP Áp"3PqdNUגzrm!`;p?#f{=G8tsmcmm^1,%#NA㵣V߿iu݄Co`ׄ~ҙm \v]89mh>5u0)mk;؛mg`/ &˳ /#_`ov˷y4뜌48-j }L$3=whɶ1 3 a>Y%6_okeOVa:&@e _e.෽Pk k b#,-r ynݓ./tɝ{yXUU/.횹9Uef;g : zKˀ/3zEw 9{=LGp1v >YX 8dX^"md!}|u9AEo϶="lɗ&0}Vdm7$}tw+1+a%a&:rݙnd9㝖YomY,aeYK.~;6e  U e'E|x]Oؖ0oel\,=[FC)gx6[$%21g\;3vmfdMG;Ƕ/yaz?G -xyż|lC '; 60K,p1빘x2Lg^x]Hc~oafI$##~͖͟o"KɜfqggmEيpA1mIa-8ܶop=-|8Y۹ݴ&=ul6ñ$Ojz 6p3gl,3!:#x݈oSw'?wb'ۿ)!1A Qa0q@?#K,ٖe?>NzO'PIx, Aǻ,I&I>Y1 q[o& u`Iϴ?M?)KyIy I1$OfC1Ws=ɬp;vzmH0 8 ,I$Yg# K=]Z15{ ñnya7%Rn~, ;zN2mk[0|B`,=J_RZA?'Vml|Uf'a,2pUp}  ^y#yo#71Fvٻ-߃0, <_EmϾNd -rx=K u-r,O{, S@x[ml"lnXlQ ],8=3?-noΞmNOo4VFq#ݬgy9I-6DU?<;=-Պn/bg|F,8SՆ# CFRD_:yxZmO[myܻ ̑%Ǒ9I,<۰'n}p 닩w`Ma$qă&,J'+,GIkxN:'<1]o`HP'C`$ϏW- FGFMz{6cutfσy,`TYNUEQ~'pI3,]%B]*?kE:EfPsc"BcYawlFKF{nYd`xm ᜇHMH~.Âfћ2=,߹$18zqz#ϭ}YL9~~;P?koŖYeAxa~o`D6|/ ~M̞8롲m 0~S9z$`&Nlէd &vu얍ݼ^fYdό:~]:~$vq ٱ2Z[w,^[(B sl,7`O"Dn)P,'?:'ZBܟw,{jui(l;F<'t)`x<)rCEo#eY IՁ`NdAXۿ}]oLo%}'0+<P% u|;bC`^8 =]ma6D//S%-DtrN: I8Izԭ]'s?H{1=l1F0^muXҼ։I|&C<7aj^q.n>SɃx>4L<˿v]Bk˩c>Bc`V<'A$ mum];}O],z[Iw<36k$ޞUb'ׂmKV|7^,x<W?2eGD˾ Cll6oxVGj"G5GS@eABPG3Hd1ݞԲ;% C mo# ż<xMWu` 7J/ Q*H`{gWI?+R}= {aC# fݒ>ԃϗ -|D@iE.ݽkze%p)c a9{4M,06կqua[evMN=āaW.5ntE=@>! >x8",kj}m—er5?;v=Lp@pCGiI%".A!l/ںYg͎Dxܒ'g=Ƅ0Ms=2tdA"ǍppG,ש[}͟vI{:HYo Dmӈ"z`g/>=[*͖YAAeO9d"bI  f}޷rh]HӳydA*$ !Yg#8&< WDD|r MeYƎw$YgrȈdZIIɍLcK$q,8$!%/PȈ~\%Z&ʝZ̓K,cK, I$̲""ߒpy|2CxgIdY C,,2IDq.C~9J5) QܒI'g饒p8>61tΎ[p.3"#kkˬ'!1AQaq ?Keqg62|ˏ9śncfœJ5SL[PP2HO,FrfML@F_q{{Z25$XV.bVɔu^_?2?3(rb,s_33y<15 0@0K6fwj_ycڿ~S;f59Ōȷ˜~ޭF]Eh[ M[a2g6zQ";mp[T~PN(iY%5jH9=#V,5E(' _ WiK=p/S!ULDbKxjL$ҙmh[0pK&ʶk-԰XSځD)Ek;<k&& 2Y@{&1`_.dd,o$m14t3N!!,ze; 7KCSk [ZJ9kf{v)jihل1*<Tѳ.R4_#ZJ"!FҕNy;DLs^ uOa%sC.Fv|@ vRXB 'CBВd0^QCGUv2*;$(!xMd宾&\O\>`M깟|?({Jd`-=J{x Eu?DTAY렴F D 3t JٸB ꪫU1/OLUR%xxXfbR2gv9u)ݗ̰rt.kFᨦg|N/1A`a4QlwqGg|L+tb6T7bqZp$z S9N1\Il6)k`YNxԤLT> c)r_{FR!ŔhAL8’q_+.bk. IK.#zBks׃2]YVWrpF1c~oTcS%Y7̨V ?{<6V3MH€_хRJ6D3lDσD% 0GJ(mF\ w*=9fPd{yfcbjAa*M/S3x[iRq2n("LR|ϗ 糘Aa8$ z|CP-(|E⾞f + }\HscURXUCUa mKPz '$AN<TMiA|ܯ! 2L_ KdFP[67(e@T􆢂2 L #k*2>ejPq+:\"xS EsqJI'<&{1pn`s P)XXazh]_!Uu{~l"5RpK/Q)9 a)-[r[HP55|x3D,"/F[*m)r`tʕjyK2dS,qPr .%!)FZ)Q.ڼe `^;>lĺn-"ߩWMA+ WT1< xyg#O&{91kUV㸷u_WZY{ҁN m6 S61$qấU?̴VVLɁ+XYs^f|&aO4.Z (yau-ln(ʳ%6a !BCO/bcۘ[ :='1XjG滈\V!V&qOMAjt:q!KP(oP› %`e )Ǹ6%<{aa~!PP(+XT|?]B*"!StOσy/#ORZc)*;!~X#ߜ1?D?qV'lL-ˡ<`C~3RF7vn8AJDV;|){'h@ h 3:P=nU {IZzf g 7W5*opu4q{ b/! >jQLch%umݽB!"_%d~?8{J"8eQt/q& 3ϔ/9nV Öb7m1L.fk*YOB 47b¾ Txp%ޥC_2,n̲ܽe[ ^xB@FC` GerzV;)RY&l n3曄 ud\xYxZ7R2L `cIM\3ځ4S9a|H6QO`" ]fUU.VT|XC=s[>6l\NcTF8>X6 3~gP\cyH ##(*-4-7C*#8bQ/2h/ԮVȆY ?Z(09\%A%,gz!@P.~AG[Bm.U2 q_?~ G W/*'u`<H󆗨Ӱ> KD6`0Ce,pDp8jypߢ]Nr[YnbdPSw(P:" ږbi@S12|P1ݾۗr2BFQ'Iu vnv>s :l*XmZjQ2^~7De.Q\KQ \o)yB#HظKn샺Ao*yܶ-g|@YP JUH.3p*S&84zdC1Zn eRx,>JVL˂ZFKoTK?h8~>5kw3OKã&PXhJ@k i STJA\Dé*+kaP͙N& o2p%^m, 9A; 1Xxrա3}@Ab I@#9av{3HAPe|^ ?.`kK)N% +(|-19'I mjH'BaO\R*[]qQbZʺia|CmZRPم=.U&)'+Ļ+23 Ôe]h z PQ-%ͅ0CBuY8M]b\)g(-y?Q )lwYlmBo(o263OwW0!㞬A;cb< I ;-̷YT.DtfEGˠ4A7Z QFe!WRŲq߇3lW@}Crsf9xW=0:ƌB[PzuQ`efaPFӈz#of !Պsv# (yB*׵,Qjv2#[űrhVU\LT n no"ӥo2R GԼnUhE;5ehePTDWq͚\C (`tpr8j[ԋqU%ՎxFD,78n?S"2X`z#AL~EZ<1kf&Dtе51Qvlբwr2*e `UUb+!d_BVV(R+s2tplb5.K9bk(^A"m ӶH?`?JXƴeQjM-^9VD( j)@(uq. M61[F鋾. 0b9 IJP_;J7uf'/Fݮŷfc`l['dV\UijXiG[>BTzXÀ`AE%,TNb7!GFYіt{ e GW, Ƨ0@w,xur!N3[ |2-/fdQe1ىޡ ֫0=AF!@J8T6iWX#EV@7O9>qm )Rpiʁц( /}Ee)p4)–J4LVM}LC(@J5Z&7!/GJ1@ӲƇ4ҁ-x x"QTho./jP=H@ž\,|.n͏@_*Ahr]& 4.T( PA2tGϹ >ogx5(xg)zWƝ\]UHWc:]_s2(4U2e*w$ի6)>Xli&\JbP%y6z-,GADKmTP'$A@3)%+!C% 2Uwh ܰ)ix Z+\w\4] ])/|rf1+cwࠊZ}jf–Xz̰w5YK1f 25͖ĮzaHrU70yV'G-f{epQ94P d!0 F< 䂚vd:VOArBlDh8h/p ŀ0hD>B6h}OB d]D-CǹefƦhI0ꞈMaLb`itΑҴ1W}Qj2neVa{QfIT^ke\Zg:c%[b#ZX7D\ֲZ)iYnX =g] ̭bFVaC#))^SYud]p5Plrㄗᓏ)rSQGsMԟ+uy'@ܰJ4#4"PhUPuS1@B3%Y,m)1ǮK /uE 3}-]\$J+RA ~cA# Q!5|摜+H*`C!Uvfl|e^8GB q1MJɽbT>UvSpT !e(&.1x(j]K AdRinNVyMtnϘ+y [DDs e8= >?6s.{e ^$ gD=e1 *Qύ1L-Կ[s$~h.?#Oke1Y?1R&7@./˜2ӋG6yxIl1jP7mQk[tS2[}EbrM'cׂCsNf()J+J⸌~Q,O.fx9Qgm72^n)jj$؄@⫔Fƹ3D6"[{/9.9s<[b/n4‡tܣ "1ErTR#*sRϗCSJUE delvNGͮ{GWl~W2>FܲF028 {ezaʦw1|L w' &zK0Q- $yBjmGq[wDvhRL<j-G2]<~!Y_OdeacCN\W7.keqn,.Yה-qTclN9x&n&ʯbW-3Oύ%y#!uFqc?0a1n30BSw1x ?slimbox-2.04/extra/000077500000000000000000000000001161360575500142505ustar00rootroot00000000000000slimbox-2.04/extra/android-market.js000066400000000000000000000022121161360575500175040ustar00rootroot00000000000000/* This code automatically integrates Android Market URLs with Slimbox using QR code generation. It will scan for all Android market links. These links have URLs starting with "market://". Note that you don't need to add rel="lightbox" to these links. On an Android phone's browser, clicking on Android Market links will open the Android Market. Desktop browsers are normally unable to open these links. But thanks to this script, clicking on them will open Slimbox and display a barcode (QR Code) that you can scan with your Android phone using your favorite barcode scanner application. Scanning the barcode will open the Android Market on the phone. The title attribute of the link will be used as description text. Add the following code to the autoload code block. */ if (!/android|iphone|ipod|series60|symbian|windows ce|blackberry/i.test(navigator.userAgent)) { jQuery(function($) { $("a[href^='market://']").slimbox({}, function(el) { return ["http://chart.apis.google.com/chart?chs=400x400&cht=qr&chl=" + encodeURIComponent(el.href.replace(/\/\?/, "?")), el.title + "
Scan this barcode with your Android phone."]; }); }); }slimbox-2.04/extra/autoactivation.js000066400000000000000000000017151161360575500176440ustar00rootroot00000000000000/* With the following code, Slimbox will activate itself automatically on all links pointing to images, or more specifically all links having URLs ending with: ".jpg" or ".png" or ".gif". As a result, you will not need to set the rel="lightbox" attribute on any link to activate Slimbox. Furthermore, all image links contained in the same block or paragraph (having the same parent element) will automatically be grouped together in a gallery, so you will not need to specify groups either. Images that are alone in their block or paragraph will be displayed individually. Replace the default autoload code block with this one. */ if (!/android|iphone|ipod|series60|symbian|windows ce|blackberry/i.test(navigator.userAgent)) { jQuery(function($) { $("a[href]").filter(function() { return /\.(jpg|png|gif)$/i.test(this.href); }).slimbox({}, null, function(el) { return (this == el) || (this.parentNode && (this.parentNode == el.parentNode)); }); }); }slimbox-2.04/extra/fix-urls.js000066400000000000000000000017511161360575500163630ustar00rootroot00000000000000/* The following code is identical to the default autoload code block, excepted that it will automatically fix URLs containing invalid characters. Some people use invalid characters like whitespaces, parenthesis or quotes in their image URLs. Slimbox does not work correctly with these characters, as explained in the FAQ. It's NOT a bug. The right solution is to fix the URLs by replacing these invalid characters with URL-encoded entities, so that they respect the standards. However if you are lazy and want the javascript to fix them for you before passing them to Slimbox, then replace the default autoload code block with this one. */ if (!/android|iphone|ipod|series60|symbian|windows ce|blackberry/i.test(navigator.userAgent)) { jQuery(function($) { $("a[rel^='lightbox']").slimbox({/* Put custom options here */}, function(el) { return [encodeURI(el.href), el.title]; }, function(el) { return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel)); }); }); }slimbox-2.04/extra/flickr.js000066400000000000000000000016741161360575500160700ustar00rootroot00000000000000/* This code automatically integrates Flickr thumbnails with Slimbox. It will scan for all links around thumbnail images pointing to Flickr photo PAGES. Note that you don't need to add rel="lightbox" to these links. When clicking on a Flickr thumbnail, Slimbox will open and display the medium-sized image. The title attribute of the link (or the alt attribute of the thumbnail if not available) will be used as description text, and a link to the Flickr photo page will be added under the description. Add the following code to the autoload code block. */ if (!/android|iphone|ipod|series60|symbian|windows ce|blackberry/i.test(navigator.userAgent)) { jQuery(function($) { $("a[href^='http://www.flickr.com/photos/'] > img:first-child[src]").parent().slimbox({}, function(el) { return [el.firstChild.src.replace(/_[mts]\.(\w+)$/, ".$1"), (el.title || el.firstChild.alt) + '
Flickr page']; }); }); }slimbox-2.04/extra/picasaweb.js000066400000000000000000000017761161360575500165570ustar00rootroot00000000000000/* This code automatically integrates Picasa Web Albums thumbnails with Slimbox. It will scan for all links around thumbnail images pointing to Picasa Web Albums photo PAGES. Note that you don't need to add rel="lightbox" to these links. When clicking on a Picasa Web Albums thumbnail, Slimbox will open and display the medium-sized image. The title attribute of the link (or the alt attribute of the thumbnail if not available) will be used as description text, and a link to the Picasa Web Albums photo page will be added under the description. Add the following code to the autoload code block. */ if (!/android|iphone|ipod|series60|symbian|windows ce|blackberry/i.test(navigator.userAgent)) { jQuery(function($) { $("a[href^='http://picasaweb.google.'] > img:first-child[src]").parent().slimbox({}, function(el) { return [el.firstChild.src.replace(/\/s\d+(?:\-c)?\/([^\/]+)$/, "/s512/$1"), (el.title || el.firstChild.alt) + '
Picasa Web Albums page']; }); }); }slimbox-2.04/js/000077500000000000000000000000001161360575500135415ustar00rootroot00000000000000slimbox-2.04/js/slimbox2.js000066400000000000000000000100331161360575500156330ustar00rootroot00000000000000/* Slimbox v2.04 - The ultimate lightweight Lightbox clone for jQuery (c) 2007-2010 Christophe Beyls MIT-style license. */ (function(w){var E=w(window),u,f,F=-1,n,x,D,v,y,L,r,m=!window.XMLHttpRequest,s=[],l=document.documentElement,k={},t=new Image(),J=new Image(),H,a,g,p,I,d,G,c,A,K;w(function(){w("body").append(w([H=w('
')[0],a=w('
')[0],G=w('
')[0]]).css("display","none"));g=w('
').appendTo(a).append(p=w('
').append([I=w('').click(B)[0],d=w('').click(e)[0]])[0])[0];c=w('
').appendTo(G).append([w('').add(H).click(C)[0],A=w('
')[0],K=w('
')[0],w('
')[0]])[0]});w.slimbox=function(O,N,M){u=w.extend({loop:false,overlayOpacity:0.8,overlayFadeDuration:400,resizeDuration:400,resizeEasing:"swing",initialWidth:250,initialHeight:250,imageFadeDuration:400,captionAnimationDuration:400,counterText:"Image {x} of {y}",closeKeys:[27,88,67],previousKeys:[37,80],nextKeys:[39,78]},M);if(typeof O=="string"){O=[[O,N]];N=0}y=E.scrollTop()+(E.height()/2);L=u.initialWidth;r=u.initialHeight;w(a).css({top:Math.max(0,y-(r/2)),width:L,height:r,marginLeft:-L/2}).show();v=m||(H.currentStyle&&(H.currentStyle.position!="fixed"));if(v){H.style.position="absolute"}w(H).css("opacity",u.overlayOpacity).fadeIn(u.overlayFadeDuration);z();j(1);f=O;u.loop=u.loop&&(f.length>1);return b(N)};w.fn.slimbox=function(M,P,O){P=P||function(Q){return[Q.href,Q.title]};O=O||function(){return true};var N=this;return N.unbind("click").click(function(){var S=this,U=0,T,Q=0,R;T=w.grep(N,function(W,V){return O.call(S,W,V)});for(R=T.length;Q=0)?C():(M(N,u.nextKeys)>=0)?e():(M(N,u.previousKeys)>=0)?B():false}function B(){return b(x)}function e(){return b(D)}function b(M){if(M>=0){F=M;n=f[F][0];x=(F||(u.loop?f.length:0))-1;D=((F+1)%f.length)||(u.loop?0:-1);q();a.className="lbLoading";k=new Image();k.onload=i;k.src=n}return false}function i(){a.className="";w(g).css({backgroundImage:"url("+n+")",visibility:"hidden",display:""});w(p).width(k.width);w([p,I,d]).height(k.height);w(A).html(f[F][1]||"");w(K).html((((f.length>1)&&u.counterText)||"").replace(/{x}/,F+1).replace(/{y}/,f.length));if(x>=0){t.src=f[x][0]}if(D>=0){J.src=f[D][0]}L=g.offsetWidth;r=g.offsetHeight;var M=Math.max(0,y-(r/2));if(a.offsetHeight!=r){w(a).animate({height:r,top:M},u.resizeDuration,u.resizeEasing)}if(a.offsetWidth!=L){w(a).animate({width:L,marginLeft:-L/2},u.resizeDuration,u.resizeEasing)}w(a).queue(function(){w(G).css({width:L,top:M+r,marginLeft:-L/2,visibility:"hidden",display:""});w(g).css({display:"none",visibility:"",opacity:""}).fadeIn(u.imageFadeDuration,h)})}function h(){if(x>=0){w(I).show()}if(D>=0){w(d).show()}w(c).css("marginTop",-c.offsetHeight).animate({marginTop:0},u.captionAnimationDuration);G.style.visibility=""}function q(){k.onload=null;k.src=t.src=J.src=n;w([a,g,c]).stop(true);w([I,d,g,G]).hide()}function C(){if(F>=0){q();F=x=D=-1;w(a).hide();w(H).stop().fadeOut(u.overlayFadeDuration,j)}return false}})(jQuery); // AUTOLOAD CODE BLOCK (MAY BE CHANGED OR REMOVED) if (!/android|iphone|ipod|series60|symbian|windows ce|blackberry/i.test(navigator.userAgent)) { jQuery(function($) { $("a[rel^='lightbox']").slimbox({/* Put custom options here */}, null, function(el) { return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel)); }); }); }slimbox-2.04/src/000077500000000000000000000000001161360575500137145ustar00rootroot00000000000000slimbox-2.04/src/autoload.js000066400000000000000000000005301161360575500160600ustar00rootroot00000000000000// AUTOLOAD CODE BLOCK (MAY BE CHANGED OR REMOVED) if (!/android|iphone|ipod|series60|symbian|windows ce|blackberry/i.test(navigator.userAgent)) { jQuery(function($) { $("a[rel^='lightbox']").slimbox({/* Put custom options here */}, null, function(el) { return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel)); }); }); }slimbox-2.04/src/slimbox2.js000066400000000000000000000210471161360575500160150ustar00rootroot00000000000000/*! Slimbox v2.04 - The ultimate lightweight Lightbox clone for jQuery (c) 2007-2010 Christophe Beyls MIT-style license. */ (function($) { // Global variables, accessible to Slimbox only var win = $(window), options, images, activeImage = -1, activeURL, prevImage, nextImage, compatibleOverlay, middle, centerWidth, centerHeight, ie6 = !window.XMLHttpRequest, hiddenElements = [], documentElement = document.documentElement, // Preload images preload = {}, preloadPrev = new Image(), preloadNext = new Image(), // DOM elements overlay, center, image, sizer, prevLink, nextLink, bottomContainer, bottom, caption, number; /* Initialization */ $(function() { // Append the Slimbox HTML code at the bottom of the document $("body").append( $([ overlay = $('
')[0], center = $('
')[0], bottomContainer = $('
')[0] ]).css("display", "none") ); image = $('
').appendTo(center).append( sizer = $('
').append([ prevLink = $('').click(previous)[0], nextLink = $('').click(next)[0] ])[0] )[0]; bottom = $('
').appendTo(bottomContainer).append([ $('').add(overlay).click(close)[0], caption = $('
')[0], number = $('
')[0], $('
')[0] ])[0]; }); /* API */ // Open Slimbox with the specified parameters $.slimbox = function(_images, startImage, _options) { options = $.extend({ loop: false, // Allows to navigate between first and last images overlayOpacity: 0.8, // 1 is opaque, 0 is completely transparent (change the color in the CSS file) overlayFadeDuration: 400, // Duration of the overlay fade-in and fade-out animations (in milliseconds) resizeDuration: 400, // Duration of each of the box resize animations (in milliseconds) resizeEasing: "swing", // "swing" is jQuery's default easing initialWidth: 250, // Initial width of the box (in pixels) initialHeight: 250, // Initial height of the box (in pixels) imageFadeDuration: 400, // Duration of the image fade-in animation (in milliseconds) captionAnimationDuration: 400, // Duration of the caption animation (in milliseconds) counterText: "Image {x} of {y}", // Translate or change as you wish, or set it to false to disable counter text for image groups closeKeys: [27, 88, 67], // Array of keycodes to close Slimbox, default: Esc (27), 'x' (88), 'c' (67) previousKeys: [37, 80], // Array of keycodes to navigate to the previous image, default: Left arrow (37), 'p' (80) nextKeys: [39, 78] // Array of keycodes to navigate to the next image, default: Right arrow (39), 'n' (78) }, _options); // The function is called for a single image, with URL and Title as first two arguments if (typeof _images == "string") { _images = [[_images, startImage]]; startImage = 0; } middle = win.scrollTop() + (win.height() / 2); centerWidth = options.initialWidth; centerHeight = options.initialHeight; $(center).css({top: Math.max(0, middle - (centerHeight / 2)), width: centerWidth, height: centerHeight, marginLeft: -centerWidth/2}).show(); compatibleOverlay = ie6 || (overlay.currentStyle && (overlay.currentStyle.position != "fixed")); if (compatibleOverlay) overlay.style.position = "absolute"; $(overlay).css("opacity", options.overlayOpacity).fadeIn(options.overlayFadeDuration); position(); setup(1); images = _images; options.loop = options.loop && (images.length > 1); return changeImage(startImage); }; /* options: Optional options object, see jQuery.slimbox() linkMapper: Optional function taking a link DOM element and an index as arguments and returning an array containing 2 elements: the image URL and the image caption (may contain HTML) linksFilter: Optional function taking a link DOM element and an index as arguments and returning true if the element is part of the image collection that will be shown on click, false if not. "this" refers to the element that was clicked. This function must always return true when the DOM element argument is "this". */ $.fn.slimbox = function(_options, linkMapper, linksFilter) { linkMapper = linkMapper || function(el) { return [el.href, el.title]; }; linksFilter = linksFilter || function() { return true; }; var links = this; return links.unbind("click").click(function() { // Build the list of images that will be displayed var link = this, startIndex = 0, filteredLinks, i = 0, length; filteredLinks = $.grep(links, function(el, i) { return linksFilter.call(link, el, i); }); // We cannot use jQuery.map() because it flattens the returned array for (length = filteredLinks.length; i < length; ++i) { if (filteredLinks[i] == link) startIndex = i; filteredLinks[i] = linkMapper(filteredLinks[i], i); } return $.slimbox(filteredLinks, startIndex, _options); }); }; /* Internal functions */ function position() { var l = win.scrollLeft(), w = win.width(); $([center, bottomContainer]).css("left", l + (w / 2)); if (compatibleOverlay) $(overlay).css({left: l, top: win.scrollTop(), width: w, height: win.height()}); } function setup(open) { if (open) { $("object").add(ie6 ? "select" : "embed").each(function(index, el) { hiddenElements[index] = [el, el.style.visibility]; el.style.visibility = "hidden"; }); } else { $.each(hiddenElements, function(index, el) { el[0].style.visibility = el[1]; }); hiddenElements = []; } var fn = open ? "bind" : "unbind"; win[fn]("scroll resize", position); $(document)[fn]("keydown", keyDown); } function keyDown(event) { var code = event.keyCode, fn = $.inArray; // Prevent default keyboard action (like navigating inside the page) return (fn(code, options.closeKeys) >= 0) ? close() : (fn(code, options.nextKeys) >= 0) ? next() : (fn(code, options.previousKeys) >= 0) ? previous() : false; } function previous() { return changeImage(prevImage); } function next() { return changeImage(nextImage); } function changeImage(imageIndex) { if (imageIndex >= 0) { activeImage = imageIndex; activeURL = images[activeImage][0]; prevImage = (activeImage || (options.loop ? images.length : 0)) - 1; nextImage = ((activeImage + 1) % images.length) || (options.loop ? 0 : -1); stop(); center.className = "lbLoading"; preload = new Image(); preload.onload = animateBox; preload.src = activeURL; } return false; } function animateBox() { center.className = ""; $(image).css({backgroundImage: "url(" + activeURL + ")", visibility: "hidden", display: ""}); $(sizer).width(preload.width); $([sizer, prevLink, nextLink]).height(preload.height); $(caption).html(images[activeImage][1] || ""); $(number).html((((images.length > 1) && options.counterText) || "").replace(/{x}/, activeImage + 1).replace(/{y}/, images.length)); if (prevImage >= 0) preloadPrev.src = images[prevImage][0]; if (nextImage >= 0) preloadNext.src = images[nextImage][0]; centerWidth = image.offsetWidth; centerHeight = image.offsetHeight; var top = Math.max(0, middle - (centerHeight / 2)); if (center.offsetHeight != centerHeight) { $(center).animate({height: centerHeight, top: top}, options.resizeDuration, options.resizeEasing); } if (center.offsetWidth != centerWidth) { $(center).animate({width: centerWidth, marginLeft: -centerWidth/2}, options.resizeDuration, options.resizeEasing); } $(center).queue(function() { $(bottomContainer).css({width: centerWidth, top: top + centerHeight, marginLeft: -centerWidth/2, visibility: "hidden", display: ""}); $(image).css({display: "none", visibility: "", opacity: ""}).fadeIn(options.imageFadeDuration, animateCaption); }); } function animateCaption() { if (prevImage >= 0) $(prevLink).show(); if (nextImage >= 0) $(nextLink).show(); $(bottom).css("marginTop", -bottom.offsetHeight).animate({marginTop: 0}, options.captionAnimationDuration); bottomContainer.style.visibility = ""; } function stop() { preload.onload = null; preload.src = preloadPrev.src = preloadNext.src = activeURL; $([center, image, bottom]).stop(true); $([prevLink, nextLink, image, bottomContainer]).hide(); } function close() { if (activeImage >= 0) { stop(); activeImage = prevImage = nextImage = -1; $(center).hide(); $(overlay).stop().fadeOut(options.overlayFadeDuration, setup); } return false; } })(jQuery);