PNG  IHDRX cHRMz&u0`:pQ<bKGD pHYsodtIME MeqIDATxw]Wug^Qd˶ 6`!N:!@xI~)%7%@Bh&`lnjVF29gΨ4E$|>cɚ{gk= %,a KX%,a KX%,a KX%,a KX%,a KX%,a KX%, b` ǟzeאfp]<!SJmɤY޲ڿ,%c ~ع9VH.!Ͳz&QynֺTkRR.BLHi٪:l;@(!MԴ=žI,:o&N'Kù\vRmJ雵֫AWic H@" !: Cé||]k-Ha oݜ:y F())u]aG7*JV@J415p=sZH!=!DRʯvɱh~V\}v/GKY$n]"X"}t@ xS76^[bw4dsce)2dU0 CkMa-U5tvLƀ~mlMwfGE/-]7XAƟ`׮g ewxwC4\[~7@O-Q( a*XGƒ{ ՟}$_y3tĐƤatgvێi|K=uVyrŲlLӪuܿzwk$m87k( `múcE)"@rK( z4$D; 2kW=Xb$V[Ru819קR~qloѱDyįݎ*mxw]y5e4K@ЃI0A D@"BDk_)N\8͜9dz"fK0zɿvM /.:2O{ Nb=M=7>??Zuo32 DLD@D| &+֎C #B8ַ`bOb $D#ͮҪtx]%`ES`Ru[=¾!@Od37LJ0!OIR4m]GZRJu$‡c=%~s@6SKy?CeIh:[vR@Lh | (BhAMy=݃  G"'wzn޺~8ԽSh ~T*A:xR[ܹ?X[uKL_=fDȊ؂p0}7=D$Ekq!/t.*2ʼnDbŞ}DijYaȲ(""6HA;:LzxQ‘(SQQ}*PL*fc\s `/d'QXW, e`#kPGZuŞuO{{wm[&NBTiiI0bukcA9<4@SӊH*؎4U/'2U5.(9JuDfrޱtycU%j(:RUbArLֺN)udA':uGQN"-"Is.*+k@ `Ojs@yU/ H:l;@yyTn}_yw!VkRJ4P)~y#)r,D =ě"Q]ci'%HI4ZL0"MJy 8A{ aN<8D"1#IJi >XjX֔#@>-{vN!8tRݻ^)N_╗FJEk]CT՟ YP:_|H1@ CBk]yKYp|og?*dGvzنzӴzjֺNkC~AbZƷ`.H)=!QͷVTT(| u78y֮}|[8-Vjp%2JPk[}ԉaH8Wpqhwr:vWª<}l77_~{s۴V+RCģ%WRZ\AqHifɤL36: #F:p]Bq/z{0CU6ݳEv_^k7'>sq*+kH%a`0ԣisqにtү04gVgW΂iJiS'3w.w}l6MC2uԯ|>JF5`fV5m`Y**Db1FKNttu]4ccsQNnex/87+}xaUW9y>ͯ骵G{䩓Գ3+vU}~jJ.NFRD7<aJDB1#ҳgSb,+CS?/ VG J?|?,2#M9}B)MiE+G`-wo߫V`fio(}S^4e~V4bHOYb"b#E)dda:'?}׮4繏`{7Z"uny-?ǹ;0MKx{:_pÚmFמ:F " .LFQLG)Q8qN q¯¯3wOvxDb\. BKD9_NN &L:4D{mm o^tֽ:q!ƥ}K+<"m78N< ywsard5+вz~mnG)=}lYݧNj'QJS{S :UYS-952?&O-:W}(!6Mk4+>A>j+i|<<|;ر^߉=HE|V#F)Emm#}/"y GII웻Jі94+v뾧xu~5C95~ūH>c@덉pʃ1/4-A2G%7>m;–Y,cyyaln" ?ƻ!ʪ<{~h~i y.zZB̃/,雋SiC/JFMmBH&&FAbϓO^tubbb_hZ{_QZ-sύodFgO(6]TJA˯#`۶ɟ( %$&+V'~hiYy>922 Wp74Zkq+Ovn錄c>8~GqܲcWꂎz@"1A.}T)uiW4="jJ2W7mU/N0gcqܗOO}?9/wìXžΏ0 >֩(V^Rh32!Hj5`;O28؇2#ݕf3 ?sJd8NJ@7O0 b־?lldщ̡&|9C.8RTWwxWy46ah嘦mh٤&l zCy!PY?: CJyв]dm4ǜҐR޻RլhX{FƯanшQI@x' ao(kUUuxW_Ñ줮[w8 FRJ(8˼)_mQ _!RJhm=!cVmm ?sFOnll6Qk}alY}; "baӌ~M0w,Ggw2W:G/k2%R,_=u`WU R.9T"v,<\Ik޽/2110Ӿxc0gyC&Ny޽JҢrV6N ``یeA16"J³+Rj*;BϜkZPJaÍ<Jyw:NP8/D$ 011z֊Ⱳ3ι֘k1V_"h!JPIΣ'ɜ* aEAd:ݺ>y<}Lp&PlRfTb1]o .2EW\ͮ]38؋rTJsǏP@芎sF\> P^+dYJLbJ C-xϐn> ι$nj,;Ǖa FU *择|h ~izť3ᤓ`K'-f tL7JK+vf2)V'-sFuB4i+m+@My=O҈0"|Yxoj,3]:cо3 $#uŘ%Y"y죯LebqtҢVzq¼X)~>4L׶m~[1_k?kxֺQ`\ |ٛY4Ѯr!)N9{56(iNq}O()Em]=F&u?$HypWUeB\k]JɩSع9 Zqg4ZĊo oMcjZBU]B\TUd34ݝ~:7ڶSUsB0Z3srx 7`:5xcx !qZA!;%͚7&P H<WL!džOb5kF)xor^aujƍ7 Ǡ8/p^(L>ὴ-B,{ۇWzֺ^k]3\EE@7>lYBȝR.oHnXO/}sB|.i@ɥDB4tcm,@ӣgdtJ!lH$_vN166L__'Z)y&kH;:,Y7=J 9cG) V\hjiE;gya~%ks_nC~Er er)muuMg2;֫R)Md) ,¶ 2-wr#F7<-BBn~_(o=KO㭇[Xv eN_SMgSҐ BS헃D%g_N:/pe -wkG*9yYSZS.9cREL !k}<4_Xs#FmҶ:7R$i,fi!~' # !6/S6y@kZkZcX)%5V4P]VGYq%H1!;e1MV<!ϐHO021Dp= HMs~~a)ަu7G^];git!Frl]H/L$=AeUvZE4P\.,xi {-~p?2b#amXAHq)MWǾI_r`S Hz&|{ +ʖ_= (YS(_g0a03M`I&'9vl?MM+m~}*xT۲(fY*V4x@29s{DaY"toGNTO+xCAO~4Ϳ;p`Ѫ:>Ҵ7K 3}+0 387x\)a"/E>qpWB=1 ¨"MP(\xp߫́A3+J] n[ʼnӼaTbZUWb={~2ooKױӰp(CS\S筐R*JغV&&"FA}J>G֐p1ٸbk7 ŘH$JoN <8s^yk_[;gy-;߉DV{c B yce% aJhDȶ 2IdйIB/^n0tNtџdcKj4϶v~- CBcgqx9= PJ) dMsjpYB] GD4RDWX +h{y`,3ꊕ$`zj*N^TP4L:Iz9~6s) Ga:?y*J~?OrMwP\](21sZUD ?ܟQ5Q%ggW6QdO+\@ ̪X'GxN @'4=ˋ+*VwN ne_|(/BDfj5(Dq<*tNt1х!MV.C0 32b#?n0pzj#!38}޴o1KovCJ`8ŗ_"]] rDUy޲@ Ȗ-;xџ'^Y`zEd?0„ DAL18IS]VGq\4o !swV7ˣι%4FѮ~}6)OgS[~Q vcYbL!wG3 7띸*E Pql8=jT\꘿I(z<[6OrR8ºC~ډ]=rNl[g|v TMTղb-o}OrP^Q]<98S¤!k)G(Vkwyqyr޽Nv`N/e p/~NAOk \I:G6]4+K;j$R:Mi #*[AȚT,ʰ,;N{HZTGMoּy) ]%dHء9Պ䠬|<45,\=[bƟ8QXeB3- &dҩ^{>/86bXmZ]]yޚN[(WAHL$YAgDKp=5GHjU&99v簪C0vygln*P)9^͞}lMuiH!̍#DoRBn9l@ xA/_v=ȺT{7Yt2N"4!YN`ae >Q<XMydEB`VU}u]嫇.%e^ánE87Mu\t`cP=AD/G)sI"@MP;)]%fH9'FNsj1pVhY&9=0pfuJ&gޤx+k:!r˭wkl03׼Ku C &ѓYt{.O.zҏ z}/tf_wEp2gvX)GN#I ݭ߽v/ .& и(ZF{e"=V!{zW`, ]+LGz"(UJp|j( #V4, 8B 0 9OkRrlɱl94)'VH9=9W|>PS['G(*I1==C<5"Pg+x'K5EMd؞Af8lG ?D FtoB[je?{k3zQ vZ;%Ɠ,]E>KZ+T/ EJxOZ1i #T<@ I}q9/t'zi(EMqw`mYkU6;[t4DPeckeM;H}_g pMww}k6#H㶏+b8雡Sxp)&C $@'b,fPߑt$RbJ'vznuS ~8='72_`{q纶|Q)Xk}cPz9p7O:'|G~8wx(a 0QCko|0ASD>Ip=4Q, d|F8RcU"/KM opKle M3#i0c%<7׿p&pZq[TR"BpqauIp$ 8~Ĩ!8Սx\ւdT>>Z40ks7 z2IQ}ItԀ<-%S⍤};zIb$I 5K}Q͙D8UguWE$Jh )cu4N tZl+[]M4k8֦Zeq֮M7uIqG 1==tLtR,ƜSrHYt&QP윯Lg' I,3@P'}'R˪e/%-Auv·ñ\> vDJzlӾNv5:|K/Jb6KI9)Zh*ZAi`?S {aiVDԲuy5W7pWeQJk֤#5&V<̺@/GH?^τZL|IJNvI:'P=Ϛt"¨=cud S Q.Ki0 !cJy;LJR;G{BJy޺[^8fK6)=yʊ+(k|&xQ2`L?Ȓ2@Mf 0C`6-%pKpm')c$׻K5[J*U[/#hH!6acB JA _|uMvDyk y)6OPYjœ50VT K}cǻP[ $:]4MEA.y)|B)cf-A?(e|lɉ#P9V)[9t.EiQPDѠ3ϴ;E:+Օ t ȥ~|_N2,ZJLt4! %ա]u {+=p.GhNcŞQI?Nd'yeh n7zi1DB)1S | S#ًZs2|Ɛy$F SxeX{7Vl.Src3E℃Q>b6G ўYCmtկ~=K0f(=LrAS GN'ɹ9<\!a`)֕y[uՍ[09` 9 +57ts6}b4{oqd+J5fa/,97J#6yν99mRWxJyѡyu_TJc`~W>l^q#Ts#2"nD1%fS)FU w{ܯ R{ ˎ󅃏џDsZSQS;LV;7 Od1&1n$ N /.q3~eNɪ]E#oM~}v֯FڦwyZ=<<>Xo稯lfMFV6p02|*=tV!c~]fa5Y^Q_WN|Vs 0ҘދU97OI'N2'8N֭fgg-}V%y]U4 峧p*91#9U kCac_AFңĪy뚇Y_AiuYyTTYЗ-(!JFLt›17uTozc. S;7A&&<ԋ5y;Ro+:' *eYJkWR[@F %SHWP 72k4 qLd'J "zB6{AC0ƁA6U.'F3:Ȅ(9ΜL;D]m8ڥ9}dU "v!;*13Rg^fJyShyy5auA?ɩGHRjo^]׽S)Fm\toy 4WQS@mE#%5ʈfFYDX ~D5Ϡ9tE9So_aU4?Ѽm%&c{n>.KW1Tlb}:j uGi(JgcYj0qn+>) %\!4{LaJso d||u//P_y7iRJ߬nHOy) l+@$($VFIQ9%EeKʈU. ia&FY̒mZ=)+qqoQn >L!qCiDB;Y<%} OgBxB!ØuG)WG9y(Ą{_yesuZmZZey'Wg#C~1Cev@0D $a@˲(.._GimA:uyw֬%;@!JkQVM_Ow:P.s\)ot- ˹"`B,e CRtaEUP<0'}r3[>?G8xU~Nqu;Wm8\RIkբ^5@k+5(By'L&'gBJ3ݶ!/㮻w҅ yqPWUg<e"Qy*167΃sJ\oz]T*UQ<\FԎ`HaNmڜ6DysCask8wP8y9``GJ9lF\G g's Nn͵MLN֪u$| /|7=]O)6s !ĴAKh]q_ap $HH'\1jB^s\|- W1:=6lJBqjY^LsPk""`]w)󭃈,(HC ?䔨Y$Sʣ{4Z+0NvQkhol6C.婧/u]FwiVjZka&%6\F*Ny#8O,22+|Db~d ~Çwc N:FuuCe&oZ(l;@ee-+Wn`44AMK➝2BRՈt7g*1gph9N) *"TF*R(#'88pm=}X]u[i7bEc|\~EMn}P瘊J)K.0i1M6=7'_\kaZ(Th{K*GJyytw"IO-PWJk)..axӝ47"89Cc7ĐBiZx 7m!fy|ϿF9CbȩV 9V-՛^pV̌ɄS#Bv4-@]Vxt-Z, &ֺ*diؠ2^VXbs֔Ìl.jQ]Y[47gj=幽ex)A0ip׳ W2[ᎇhuE^~q흙L} #-b۸oFJ_QP3r6jr+"nfzRJTUqoaۍ /$d8Mx'ݓ= OՃ| )$2mcM*cЙj}f };n YG w0Ia!1Q.oYfr]DyISaP}"dIӗթO67jqR ҊƐƈaɤGG|h;t]䗖oSv|iZqX)oalv;۩meEJ\!8=$4QU4Xo&VEĊ YS^E#d,yX_> ۘ-e\ "Wa6uLĜZi`aD9.% w~mB(02G[6y.773a7 /=o7D)$Z 66 $bY^\CuP. (x'"J60׿Y:Oi;F{w佩b+\Yi`TDWa~|VH)8q/=9!g߆2Y)?ND)%?Ǐ`k/sn:;O299yB=a[Ng 3˲N}vLNy;*?x?~L&=xyӴ~}q{qE*IQ^^ͧvü{Huu=R|>JyUlZV, B~/YF!Y\u_ݼF{_C)LD]m {H 0ihhadd nUkf3oٺCvE\)QJi+֥@tDJkB$1!Đr0XQ|q?d2) Ӣ_}qv-< FŊ߫%roppVBwü~JidY4:}L6M7f٬F "?71<2#?Jyy4뷢<_a7_=Q E=S1И/9{+93֮E{ǂw{))?maÆm(uLE#lïZ  ~d];+]h j?!|$F}*"4(v'8s<ŏUkm7^7no1w2ؗ}TrͿEk>p'8OB7d7R(A 9.*Mi^ͳ; eeUwS+C)uO@ =Sy]` }l8^ZzRXj[^iUɺ$tj))<sbDJfg=Pk_{xaKo1:-uyG0M ԃ\0Lvuy'ȱc2Ji AdyVgVh!{]/&}}ċJ#%d !+87<;qN޼Nفl|1N:8ya  8}k¾+-$4FiZYÔXk*I&'@iI99)HSh4+2G:tGhS^繿 Kتm0 вDk}֚+QT4;sC}rՅE,8CX-e~>G&'9xpW,%Fh,Ry56Y–hW-(v_,? ; qrBk4-V7HQ;ˇ^Gv1JVV%,ik;D_W!))+BoS4QsTM;gt+ndS-~:11Sgv!0qRVh!"Ȋ(̦Yl.]PQWgٳE'`%W1{ndΗBk|Ž7ʒR~,lnoa&:ü$ 3<a[CBݮwt"o\ePJ=Hz"_c^Z.#ˆ*x z̝grY]tdkP*:97YľXyBkD4N.C_[;F9`8& !AMO c `@BA& Ost\-\NX+Xp < !bj3C&QL+*&kAQ=04}cC!9~820G'PC9xa!w&bo_1 Sw"ܱ V )Yl3+ס2KoXOx]"`^WOy :3GO0g;%Yv㐫(R/r (s } u B &FeYZh0y> =2<Ϟc/ -u= c&׭,.0"g"7 6T!vl#sc>{u/Oh Bᾈ)۴74]x7 gMӒ"d]U)}" v4co[ ɡs 5Gg=XR14?5A}D "b{0$L .\4y{_fe:kVS\\O]c^W52LSBDM! C3Dhr̦RtArx4&agaN3Cf<Ԉp4~ B'"1@.b_/xQ} _߃҉/gٓ2Qkqp0շpZ2fԫYz< 4L.Cyυι1t@鎫Fe sYfsF}^ V}N<_`p)alٶ "(XEAVZ<)2},:Ir*#m_YӼ R%a||EƼIJ,,+f"96r/}0jE/)s)cjW#w'Sʯ5<66lj$a~3Kʛy 2:cZ:Yh))+a߭K::N,Q F'qB]={.]h85C9cr=}*rk?vwV렵ٸW Rs%}rNAkDv|uFLBkWY YkX מ|)1!$#3%y?pF<@<Rr0}: }\J [5FRxY<9"SQdE(Q*Qʻ)q1E0B_O24[U'],lOb ]~WjHޏTQ5Syu wq)xnw8~)c 쫬gٲߠ H% k5dƝk> kEj,0% b"vi2Wس_CuK)K{n|>t{P1򨾜j>'kEkƗBg*H%'_aY6Bn!TL&ɌOb{c`'d^{t\i^[uɐ[}q0lM˕G:‚4kb祔c^:?bpg… +37stH:0}en6x˟%/<]BL&* 5&fK9Mq)/iyqtA%kUe[ڛKN]Ě^,"`/ s[EQQm?|XJ߅92m]G.E΃ח U*Cn.j_)Tѧj̿30ڇ!A0=͜ar I3$C^-9#|pk!)?7.x9 @OO;WƝZBFU keZ75F6Tc6"ZȚs2y/1 ʵ:u4xa`C>6Rb/Yм)^=+~uRd`/|_8xbB0?Ft||Z\##|K 0>>zxv8۴吅q 8ĥ)"6>~\8:qM}#͚'ĉ#p\׶ l#bA?)|g g9|8jP(cr,BwV (WliVxxᡁ@0Okn;ɥh$_ckCgriv}>=wGzβ KkBɛ[˪ !J)h&k2%07δt}!d<9;I&0wV/ v 0<H}L&8ob%Hi|޶o&h1L|u֦y~󛱢8fٲUsւ)0oiFx2}X[zVYr_;N(w]_4B@OanC?gĦx>мgx>ΛToZoOMp>40>V Oy V9iq!4 LN,ˢu{jsz]|"R޻&'ƚ{53ўFu(<٪9:΋]B;)B>1::8;~)Yt|0(pw2N%&X,URBK)3\zz&}ax4;ǟ(tLNg{N|Ǽ\G#C9g$^\}p?556]/RP.90 k,U8/u776s ʪ_01چ|\N 0VV*3H鴃J7iI!wG_^ypl}r*jɤSR 5QN@ iZ#1ٰy;_\3\BQQ x:WJv츟ٯ$"@6 S#qe딇(/P( Dy~TOϻ<4:-+F`0||;Xl-"uw$Цi󼕝mKʩorz"mϺ$F:~E'ҐvD\y?Rr8_He@ e~O,T.(ފR*cY^m|cVR[8 JҡSm!ΆԨb)RHG{?MpqrmN>߶Y)\p,d#xۆWY*,l6]v0h15M˙MS8+EdI='LBJIH7_9{Caз*Lq,dt >+~ّeʏ?xԕ4bBAŚjﵫ!'\Ը$WNvKO}ӽmSşذqsOy?\[,d@'73'j%kOe`1.g2"e =YIzS2|zŐƄa\U,dP;jhhhaxǶ?КZ՚.q SE+XrbOu%\GتX(H,N^~]JyEZQKceTQ]VGYqnah;y$cQahT&QPZ*iZ8UQQM.qo/T\7X"u?Mttl2Xq(IoW{R^ ux*SYJ! 4S.Jy~ BROS[V|žKNɛP(L6V^|cR7i7nZW1Fd@ Ara{詑|(T*dN]Ko?s=@ |_EvF]׍kR)eBJc" MUUbY6`~V޴dJKß&~'d3i5h-3LL

HOME


5h-3LL 1.0
DIR: /srv/http/adent.cz/horkynj.cz/app/webroot/virtual-prohlidka/xml/viewer/skin
/srv/http/adent.cz/horkynj.cz/app/webroot/virtual-prohlidka/xml/viewer/skin/
Upload File:
Current File : /srv/http/adent.cz/horkynj.cz/app/webroot/virtual-prohlidka/xml/viewer/skin/videointerface.xml
<krpano>

	<!-- krpano 1.20.11 - Video-Interface Skin -->


	<!-- skin settings -->
	<skin_settings layout_width="100%"
	               layout_maxwidth="814"
	               controlbar_width="-24"
	               controlbar_height="40"
	               controlbar_offset="20"
	               design_skin_images="vtourskin.png"
	               design_bgcolor="0x2D3E50"
	               design_bgalpha="0.8"
	               design_bgborder="0"
	               design_bgroundedge="1"
	               design_bgshadow="0 4 10 0x000000 0.3"
	               design_thumbborder_bgborder="3 0xFFFFFF 1.0"
	               design_thumbborder_padding="2"
	               design_thumbborder_bgroundedge="0"
	               design_text_css="color:#FFFFFF; font-family:Arial;"
	               design_text_shadow="1"
	               />


	<!-- save the url path of this xml file (the url value will be adjusted during xml parsing) -->
	<videointerfacexmlpath url="./" />


	<!-- mouse / touch / keyboard(button) control settings - http://krpano.com/docu/xml/#control -->
	<control mouse="drag"
	         touch="drag"
	         zoomtocursor="false"
	         zoomoutcursor="false"
	         draginertia="0.1"
	         dragfriction="0.9"
	         movetoaccelerate="1.0"
	         movetospeed="10.0"
	         movetofriction="0.8"
	         keybaccelerate="0.09"
	         keybfriction="0.94"
	         keybfovchange="0.25"
	         mousefovchange="1.0"
	         fovspeed="3.0"
	         fovfriction="0.9"
	         bouncinglimits="true"
	         />

	<!-- mouse cursors - http://krpano.com/docu/xml/#cursors -->
	<cursors standard="default"
	         dragging="move"
	         moving="move"
	         />


	<!-- ensure stagescale 2x for mobile devices (regardless if mobilescale is 0.5 or 1.0) -->
	<krpano stagescale="calc:stagescale * 2" if="stagescale LT 1.0" devices="mobile" />


	<!-- include VR support - http://krpano.com/plugins/webvr/ -->
	<include url="%VIEWER%/plugins/webvr.xml" devices="html5" />

	<!-- overwrite some settings from the webvr.xml for the skin integration -->
	<plugin name="WebVR" keep="true" devices="html5"
	        mobilevr_support="true"
	        mobilevr_fake_support="true"
	        onavailable="removelayer(webvr_enterbutton); set(layer[skin_btn_vr].enabled,true); tween(layer[skin_btn_vr].alpha, 1.0); webvr_onavailable();"
	        onentervr="webvr_onentervr(); webvr_setup();"
	        vr_cursor=""
	        />

	<!-- webvr button style (adjust to match skin style) -->
	<style name="webvr_button_style"
	       border="false"
	       roundedge="calc:1.0"
	       backgroundcolor="get:skin_settings.design_bgcolor" backgroundalpha="get:skin_settings.design_bgalpha"
	       shadow="0.01" shadowrange="10.0" shadowangle="90.0" shadowcolor="0x30261B" shadowalpha="0.50"
	       css="calc:skin_settings.design_text_css + ' color:#FFFFFF;font-size:' + 20*webvr_setup_scale*webvr_button_scale + 'px;'"
	       />

	<!-- show a 'rotate the device' info when the mobile device is in portrait orientation in VR mode -->
	<layer name="webvr_rotate_to_landscape_request" keep="true" vr="true" devices="mobile"
	       url="rotate_device.png" scale="0.5"
	       align="top" edge="center" y="28%"
	       autoalpha="true" alpha="0.0"
	       enabled="false"
	       />

	<events name="webvr_events" keep="true" devices="html5"
	        onresize.mobile="webvr_act_as_gyro_in_portrait_mode();"
	        onviewchange=""
	        />

	<action name="webvr_setup">
		if(webvr.isenabled,
			webvr_act_as_gyro_in_portrait_mode(true);
		  ,
			tween(layer[webvr_rotate_to_landscape_request].alpha, 0.0, 0.0);
			set(events[webvr_events].onviewchange, null);
		  );
	</action>

	<action name="webvr_act_as_gyro_in_portrait_mode">
		if(device.mobile AND webvr.isenabled,
			div(aspect, stagewidth, stageheight);
			if(aspect != lastaspect OR '%1' == 'true',
				copy(lastaspect, aspect);
				if(stagewidth GT stageheight,
					<!-- landscape orientation - use stereo rendering and a direct/fast gyro sensor mode -->
					set(display.stereo, true);
					set(webvr.mobilevr_sensor_mode, 3);
					webvr.update();
					tween(layer[webvr_rotate_to_landscape_request].alpha, 0.0, 0.0);
				  ,
					<!-- portrait orientation - use normal rendering and a smoother/slower gyro sensor mode -->
					set(display.stereo, false);
					set(webvr.mobilevr_sensor_mode, 1);
					webvr.update();
					tween(layer[webvr_rotate_to_landscape_request].alpha, 1.0);
					delayedcall(3.0, tween(layer[webvr_rotate_to_landscape_request].alpha, 0.0, 1.0); );
				  );
			  );
		  ,
			set(lastaspect, 0);
		  );
	</action>


	<!-- gyro plugin -->
	<plugin name="skin_gyro" keep="true" url="%VIEWER%/plugins/gyro2.js" devices="html5.and.touch" enabled="true" onavailable="skin_have_gyro_support();" onenable="skin_gyro_enabled();" ondisable="skin_gyro_disabled();" />


	<!-- skin styles -->

	<!-- skin_base - the base skin image -->
	<style name="skin_base" url="calc:videointerfacexmlpath.url + skin_settings.design_skin_images" />


	<!-- skin_glow - button glowing (if additional ondown,onup,onout,over events are needed, this style provides ondown2,onup2,onover2,onout2 events) -->
	<style name="skin_glow"
	       ondown="copy(skin_lockglow,name); skin_buttonglow(get(name)); stopdelayedcall(skin_autohide); if(ondown2, ondown2() );"
	       onover="if(skin_lockglow === null, copy(skin_lockglow,name); skin_buttonglow(get(name),0.3) ); if(onover2, onover2() );"
	       onout="if(skin_lockglow === name AND !pressed, skin_buttonglow(null);delete(skin_lockglow); ); if(onout2, onout2() );"
	       onup="if(onup2, onup2()); delayedcall(0, if(hovering AND enabled, skin_buttonglow(get(name),0.3); , skin_buttonglow(null);delete(skin_lockglow); ); );"
	       />

	<action name="skin_buttonglow">
		if('%1' !== 'null',
			set(strength,0.7);
			if(%2 != null, set(strength,%2));
			set(layer[skin_buttonglow].parent, %1);
			set(layer[skin_buttonglow].visible, true);
			tween(layer[skin_buttonglow].alpha, get(strength), 0.07);
		  ,
			tween(layer[skin_buttonglow].alpha, 0.0, 0.1, default,
				set(layer[skin_buttonglow].parent, null);
				set(layer[skin_buttonglow].visible, false);
			  );
		  );
	</action>


	<!-- skin events -->
	<events name="skin_events" keep="true"
	        onclick="skin_video_click_event();"
	        onmousedown="skin_video_down_event();"
	        onenterfullscreen.fullscreensupport="set(layer[skin_btn_fullscreen].crop, '64|576|64|64');"
	        onexitfullscreen.fullscreensupport="set(layer[skin_btn_fullscreen].crop, '0|576|64|64');"
	        />


	<!-- skin layout -->

	<style name="skintext" type="text" background="false" border="false" css="calc:skin_settings.design_text_css + ' text-align:left; font-style:italic; font-size:12px;'" textshadow="get:skin_settings.design_text_shadow" />
	<style name="skintext_sel" css="calc:skin_settings.design_text_css + ' text-align:left; font-style:italic; font-size:12px; text-decoration:underline;'" />
	<style name="settingsitem" type="container" align="lefttop" x="0" y="8" width="100%" height="20" bgcolor="0xFFFFFF" bgalpha="0.0" bgcapture="true" onover="set(bgalpha,0.25);" onout="set(bgalpha,0.0);" ondown.touch="onover();" onup.touch="onout();" children="false" />


	<layer name="skin_layer" keep="true" type="container" align="top" width="get:skin_settings.layout_width" maxwidth="get:skin_settings.layout_maxwidth" height="100%" maskchildren="true" xvisible="false" bgcapture="false" zorder="1">

		<layer name="skin_control_bar" state="visible" type="container" autoalpha="true" align="bottom" width="get:skin_settings.controlbar_width" height="calc:skin_settings.controlbar_height" x="0" y="get:skin_settings.controlbar_offset" zorder="3" bgcolor="get:skin_settings.design_bgcolor" bgalpha="get:skin_settings.design_bgalpha" bgborder="get:skin_settings.design_bgborder" bgroundedge="get:skin_settings.design_bgroundedge" bgshadow="get:skin_settings.design_bgshadow" onover="stopdelayedcall(skin_autohide);">

			<!-- left buttons - play/pause, volume -->
			<layer name="skin_btn_playpause" style="skin_base|skin_glow" crop="0|640|64|64" align="left" x="5" y="0" scale="0.5" onclick="plugin[video].togglepause();" />

			<layer name="skin_btn_volume" visible.no-desktop="false" style="skin_glow" type="container" width="32" height="32" align="left" x="40" y="0" bgcapture="true" children="false" onover2="stopdelayedcall(skin_autohide);stopdelayedcall(autoclose_volumectrl); skin_open_volumectrl();" onout2="if(layer[skin_volumectrl].pressed == false, delayedcall(autoclose_volumectrl, 0.5, skin_close_volumectrl()); );" onclick="if(layer[skin_volumectrl].alpha == 1.0, if(plugin[video].volume GT 0.0, set(plugin[video].volume,0.0), set(plugin[video].volume,1.0)); skin_volumectrl_update(); );">
				<layer name="skin_btn_volume_icon" style="skin_base" crop="64|704|64|64" scale="0.5" align="lefttop" />
			</layer>

			<!-- seek bar -->
			<layer name="skin_video_seekbar_container" type="container" align="left" x.desktop="90" x.no-desktop="50" width.desktop.and.fullscreensupport="-228" width.desktop.and.no-fullscreensupport="-188" width.no-desktop.and.fullscreensupport="-188" width.no-desktop.and.no-fullscreensupport="-148" height="100%" bgcapture="true" ondown="stopdelayedcall(skin_autohide);skin_video_ondownseeking();">
				<layer name="skin_video_seekbar" type="container" bgcolor="0xFFFFFF" bgalpha="0.25" align="center" width="100%" height="4">
					<layer name="skin_video_loadbar" type="container" bgcolor="0xFFFFFF" bgalpha="0.5" align="left" width="0" height="4" />
					<layer name="skin_video_seekpos" type="container" bgcolor="0xFFFFFF" bgalpha="1.0" align="left" edge="center" x="0" bgroundedge="8" width="10" height="10" />
				</layer>
			</layer>

			<!-- right buttons - vr, settings, fullscreen -->
			<layer name="skin_btn_vr" style="skin_base|skin_glow" crop="0|0|80|64" align="right" x.fullscreensupport="80" x.no-fullscreensupport="43" y="0" scale="0.5" onclick="webvr.enterVR();" enabled="false" alpha="0.25" />

			<layer name="skin_btn_settings" style="skin_base|skin_glow" crop="0|704|64|64" align="right" edge="center" x.fullscreensupport="57" x.no-fullscreensupport="20" y="0" scale="0.5" onclick="if(skin_settings_opened !== true, skin_open_settings(), skin_close_settings() );" />

			<layer name="skin_btn_fullscreen" style="skin_base|skin_glow" crop="0|576|64|64" align="right" x="5" y="0" scale="0.5" onclick="switch(fullscreen);" devices="fullscreensupport" />

			<!-- title, video time -->
			<layer name="skin_title" style="skintext" align="lefttop" edge="leftbottom" x="4" capture="false" handcursor="false" html="" />
			<layer name="skin_video_time" style="skintext" align="righttop" edge="rightbottom" x="4" enabled="false" html="" />

			<!-- settings menu -->
			<layer name="skin_settings_menu" type="container" align="righttop" edge="rightbottom" width="190" height.no-flash.and.no-chromemobile="110" height.flash.or.chromemobile="86" autoalpha="true" alpha="0.0" y="-24" bgcapture="true" handcursor="false" bgcolor="get:skin_settings.design_bgcolor" bgalpha="get:skin_settings.design_bgalpha" bgborder="get:skin_settings.design_bgborder" bgroundedge="get:skin_settings.design_bgroundedge" bgshadow="get:skin_settings.design_bgshadow">
				<layer name="skin_gyro_container" style="settingsitem" x="0" y="8" alpha="0.5" enabled="false" onclick="switch(plugin[skin_gyro].enabled);">
					<layer name="skin_gyro_txt" style="skintext" align="left" x="10" html="Gyro Control" />
					<layer name="skin_gyro_not" style="skintext" align="right" x="10" html="Not available" visible="true" />
					<layer name="skin_gyro_ctrl" type="container" align="right" x="10" width="24" height="12" bgborder="1 0xFFFFFF 1" bgroundedge="8" visible="false" alpha="0.5">
						<layer name="skin_gyro_ctrl_i" type="container" align="left" x="-1" width="14" height="14" bgcolor="0xFFFFFF" bgalpha="1" bgroundedge="8" />
					</layer>
				</layer>
				<layer name="skin_rate_container" style="settingsitem" x="0" y="32" onclick="tween(layer[skin_settings_menu].alpha,0.0,0.2);tween(layer[skin_settings_rate].alpha,1.0,0.2);" devices="no-flash.and.no-chromemobile">
					<layer name="skin_rate_txt" style="skintext" align="left" x="8" html="Playback Rate" />
					<layer name="skin_rate_val" style="skintext" align="right" x="10" html="1.0x" />
				</layer>
				<layer name="skin_view_container" style="settingsitem" x="0" y.no-flash.and.no-chromemobile="56" y.flash.or.chromemobile="32" onclick="tween(layer[skin_settings_menu].alpha,0.0,0.2);tween(layer[skin_settings_view].alpha,1.0,0.2);">
					<layer name="skin_view_txt" style="skintext" align="left" x="8" html="View Projection" />
					<layer name="skin_view_val" style="skintext" align="right" x="10" html="Normal" />
				</layer>
				<layer name="skin_quality_container" style="settingsitem" x="0" y.no-flash.and.no-chromemobile="80" y.flash.or.chromemobile="56" onclick="tween(layer[skin_settings_menu].alpha,0.0,0.2);tween(layer[skin_settings_quality].alpha,1.0,0.2);">
					<layer name="skin_quality_txt" style="skintext" align="left" x="8" html="Quality" />
					<layer name="skin_quality" style="skintext" align="right" x="10" html="" />
				</layer>
			</layer>

			<!-- playback-rate sub-menu -->
			<layer name="skin_settings_rate" type="container" align="righttop" edge="rightbottom" width="108" height="calc:20+24*6+6" autoalpha="true" alpha="0.0" y="-24" bgcapture="true" handcursor="false" bgcolor="get:skin_settings.design_bgcolor" bgalpha="get:skin_settings.design_bgalpha" bgborder="get:skin_settings.design_bgborder" bgroundedge="get:skin_settings.design_bgroundedge" bgshadow="get:skin_settings.design_bgshadow">
				<layer name="skin_settings_r0" style="settingsitem" y="8" onclick="tween(layer[skin_settings_rate].alpha,0.0,0.2);tween(layer[skin_settings_menu].alpha,1.0,0.2);"><layer name="skin_settings_r0t" x="-1" style="skintext" align="center" html="Playback Rate" /></layer>
				<layer name="skin_settings_rs" type="container" align="lefttop" y="36" width="100%" height="1" bgcolor="0xFFFFFF" bgalpha="0.5" />
				<layer name="skin_settings_r1" style="settingsitem" y="calc:20+24*1" onclick="skin_setplaybackrate(0.25);"><layer name="skin_settings_r1t" style="skintext" align="center" html="0.25x" /></layer>
				<layer name="skin_settings_r2" style="settingsitem" y="calc:20+24*2" onclick="skin_setplaybackrate(0.5);"><layer name="skin_settings_r2t" style="skintext" align="center" html="0.5x" /></layer>
				<layer name="skin_settings_r3" style="settingsitem" y="calc:20+24*3" onclick="skin_setplaybackrate(1.0);"><layer name="skin_settings_r3t" style="skintext|skintext_sel" align="center" html="1.0x" /></layer>
				<layer name="skin_settings_r4" style="settingsitem" y="calc:20+24*4" onclick="skin_setplaybackrate(1.5);"><layer name="skin_settings_r4t" style="skintext" align="center" html="1.5x" /></layer>
				<layer name="skin_settings_r5" style="settingsitem" y="calc:20+24*5" onclick="skin_setplaybackrate(2.0);"><layer name="skin_settings_r5t" style="skintext" align="center" html="2.0x" /></layer>
			</layer>

			<!-- view projection sub-menu -->
			<layer name="skin_settings_view" type="container" align="righttop" edge="rightbottom" width="108" height="calc:20+24*8+6" autoalpha="true" alpha="0.0" y="-24" bgcapture="true" handcursor="false" bgcolor="get:skin_settings.design_bgcolor" bgalpha="get:skin_settings.design_bgalpha" bgborder="get:skin_settings.design_bgborder" bgroundedge="get:skin_settings.design_bgroundedge" bgshadow="get:skin_settings.design_bgshadow">
				<layer name="skin_settings_v0" style="settingsitem" y="8" onclick="tween(layer[skin_settings_view].alpha,0.0,0.2);tween(layer[skin_settings_menu].alpha,1.0,0.2);"><layer name="skin_settings_v0t" x="-1" style="skintext" align="center" html="View Projection" /></layer>
				<layer name="skin_settings_vs" type="container" align="lefttop" y="36" width="100%" height="1" bgcolor="0xFFFFFF" bgalpha="0.5" />
				<layer name="skin_settings_v1" style="settingsitem" y="calc:20+24*1" onclick="skin_view_flat();"><layer name="skin_settings_v1t" style="skintext" align="center" html="Flat" /></layer>
				<layer name="skin_settings_v2" style="settingsitem" y="calc:20+24*2" onclick="skin_view_normal();"><layer name="skin_settings_v2t" style="skintext|skintext_sel" align="center" html="Normal" /></layer>
				<layer name="skin_settings_v3" style="settingsitem" y="calc:20+24*3" onclick="skin_view_fisheye();"><layer name="skin_settings_v3t" style="skintext" align="center" html="Fisheye" /></layer>
				<layer name="skin_settings_v4" style="settingsitem" y="calc:20+24*4" onclick="skin_view_stereographic();"><layer name="skin_settings_v4t" style="skintext" align="center" html="Stereographic" /></layer>
				<layer name="skin_settings_v5" style="settingsitem" y="calc:20+24*5" onclick="skin_view_architectural();"><layer name="skin_settings_v5t" style="skintext" align="center" html="Architectural" /></layer>
				<layer name="skin_settings_v6" style="settingsitem" y="calc:20+24*6" onclick="skin_view_pannini();"><layer name="skin_settings_v6t" style="skintext" align="center" html="Pannini" /></layer>
				<layer name="skin_settings_v7" style="settingsitem" y="calc:20+24*7" onclick="skin_view_littleplanet();"><layer name="skin_settings_v7t" style="skintext" align="center" html="Little Planet" /></layer>
			</layer>

			<!-- video-quality sub-menu -->
			<layer name="skin_settings_quality" type="container" align="righttop" edge="rightbottom" width="108" height="calc:8+24+8" autoalpha="true" alpha="0.0" y="-24" bgcapture="true" handcursor="false" bgcolor="get:skin_settings.design_bgcolor" bgalpha="get:skin_settings.design_bgalpha" bgborder="get:skin_settings.design_bgborder" bgroundedge="get:skin_settings.design_bgroundedge" bgshadow="get:skin_settings.design_bgshadow">
				<layer name="skin_settings_q0" style="settingsitem" y="8" onclick="tween(layer[skin_settings_quality].alpha,0.0,0.2);tween(layer[skin_settings_menu].alpha,1.0,0.2);"><layer name="skin_settings_q0t" x="-1" style="skintext" align="center" html="Quality" /></layer>
				<layer name="skin_settings_qs" type="container" align="lefttop" y="36" width="100%" height="1" bgcolor="0xFFFFFF" bgalpha="0.5" />
			</layer>

			<!-- sound volume control -->
			<layer name="skin_volumectrl" type="container" align="lefttop" edge="leftbottom" width="32" height="110" x="40" y="-24" autoalpha="true" alpha="0.0" bgcolor="get:skin_settings.design_bgcolor" bgalpha="get:skin_settings.design_bgalpha" bgborder="get:skin_settings.design_bgborder" bgroundedge="get:skin_settings.design_bgroundedge" bgshadow="get:skin_settings.design_bgshadow" bgcapture="true" onover="stopdelayedcall(autoclose_volumectrl);" onout="if(pressed == false, delayedcall(autoclose_volumectrl, 0.5, skin_close_volumectrl()); );" ondown="stopdelayedcall(autoclose_volumectrl); skin_volumectrl_ondownchanging();" onup="onout();">
				<layer name="skin_volumectrl_bar_container" type="container" align="lefttop" width="100%" height="100%">
					<layer name="skin_volumectrl_bar" type="container" bgcolor="0xFFFFFF" bgalpha="0.25" align="center" width="4" height="-32">
						<layer name="skin_volumectrl_pos" type="container" bgcolor="0xFFFFFF" bgalpha="1.0" align="top" edge="center" x="0" bgroundedge="8" width="10" height="10" />
					</layer>
				</layer>
			</layer>

		</layer>

		<!-- glow effect layer -->
		<layer name="skin_buttonglow" style="skin_base" crop="64|384|64|64" align="center" x="0" y="1" scale="1.0" alpha="0.0" visible="false" enabled="false" />

		<!-- centered play/pause button -->
		<layer name="skin_video_playpause" keep="true" style="skin_base|skin_glow" crop="0|640|64|64" scale="0.75" align="center" alpha="0.0" autoalpha="true" state="hidden" onclick="skin_video_playpause_click();" />

		<!-- error window -->
		<layer name="skin_error" visible="false" zorder="99" type="container" align="center" width="100" height="100" bgcapture="true" onclick="set(visible,false);" bgcolor="get:skin_settings.design_bgcolor" bgalpha="get:skin_settings.design_bgalpha" bgborder="get:skin_settings.design_bgborder" bgroundedge="get:skin_settings.design_bgroundedge" bgshadow="get:skin_settings.design_bgshadow">
			<layer name="skin_error_msg" style="skintext" align="center" html="" enabled="false" padding="8 16" onautosized="copy(layer[skin_error].width, width); copy(layer[skin_error].height, height)" />
		</layer>

	</layer>


	<action name="skin_video_setup">
		if(skin_video_setup_done !== true,
			set(skin_video_setup_done, true);

			<!-- use the video events for getting state updates -->
			set(plugin[video].onvideoready, skin_video_updatestate() );
			set(plugin[video].onvideoplay, skin_video_updatestate(); if(skin_settings_opened !== true, skin_autohide(2.0)); );
			set(plugin[video].onvideopaused, skin_video_updatestate(); skin_show_playpause(); );
			set(plugin[video].onvideocomplete, skin_video_updatestate(); skin_show_playpause(); skin_show(); );
			set(plugin[video].onerror, skin_video_error() );

			<!-- when paused onstart, show the play button -->
			if(plugin[video].pausedonstart,
				set(layer[skin_video_playpause].state, 'visible');
				set(layer[skin_video_playpause].enabled, true);
				tween(layer[skin_video_playpause].alpha, 1.0);
			  );

			<!-- use the current scene title -->
			copy(layer[skin_title].html, scene[get(xml.scene)].title);

			<!-- start the video-time update interval -->
			setinterval(skin_video_seek_updates, 0.5, skin_video_updatetime() );
		  );
	</action>


	<action name="skin_video_updatetime">
		copy(t1, plugin[video].time);
		copy(t2, plugin[video].totaltime);
		if(%1 !== null, calc(t1, %1 * t2); );
		div(t1_min, t1, 60);
		mod(t1_sec, t1, 60);
		Math.floor(t1_min);
		Math.floor(t1_sec);
		div(t2_min, t2, 60);
		mod(t2_sec, t2, 60);
		Math.floor(t2_min);
		Math.floor(t2_sec);
		calc(layer[skin_video_time].html, t1_min + ':' + (t1_sec LT 10 ? '0' : '') + t1_sec + ' / ' + t2_min + ':' + (t2_sec LT 10 ? '0' : '') + t2_sec);
		calc(layer[skin_video_seekpos].x, (t1 / t2 * 100) + '%');
		calc(layer[skin_video_loadbar].width, (plugin[video].loadedbytes / plugin[video].totalbytes * 100) + '%');
	</action>


	<action name="skin_video_ondownseeking">
		asyncloop(pressed,
			screentolayer(skin_video_seekbar, mouse.stagex,mouse.stagey, lx,ly);
			calc(seekpos, lx / layer[skin_video_seekbar].pixelwidth);
			clamp(seekpos, 0.0, 1.0);
			skin_video_updatetime(seekpos);
		  ,
			plugin[video].seek(calc((seekpos * 100) + '%'));
		  );
	</action>


	<action name="skin_video_updatestate">
		calc(layer[skin_video_playpause].crop, plugin[video].ispaused ? '0|640|64|64' : '64|640|64|64');
		copy(layer[skin_btn_playpause].crop, layer[skin_video_playpause].crop);
	</action>


	<action name="skin_video_error">
		calc(layer[skin_error_msg].html, 'Error: ' + videoerror);
		set(layer[skin_error].visible, true);
	</action>


	<action name="skin_video_click_event">
		delayedcall(skin_click_detection, 0.25,
			if(layer[skin_control_bar].state == 'hidden',
				stopdelayedcall(skin_autohide_pp);
				skin_show();
				skin_show_playpause();
			  ,
				if(skin_settings_opened === true OR skin_volumectrl_opened == true,
					skin_close_settings();
					skin_close_volumectrl();
				  ,
					stopdelayedcall(skin_autohide_pp);
					if(layer[skin_video_playpause].state == 'hidden',
						skin_show_playpause();
					  ,
						skin_hide_playpause();
						skin_autohide(0.0);
					  );
				  );
			  );
		  );
	</action>


	<action name="skin_autohide">
		delayedcall(skin_autohide, %1,
			set(layer[skin_control_bar].state, 'hidden');
			tween(layer[skin_control_bar].y, calc(-(skin_settings.controlbar_offset + skin_settings.controlbar_height)));
			tween(layer[skin_control_bar].alpha, 0.0);
		  );
	</action>


	<action name="skin_show">
		stopdelayedcall(skin_autohide);
		set(layer[skin_control_bar].state, 'visible');
		tween(layer[skin_control_bar].y, get(skin_settings.controlbar_offset));
		tween(layer[skin_control_bar].alpha, 1.0);
	</action>


	<action name="skin_show_playpause">
		set(layer[skin_video_playpause].state, 'visible');
		tween(layer[skin_video_playpause].alpha, 1.0);
		delayedcall(skin_autohide_pp, 2.0,
			set(layer[skin_video_playpause].state,'hidden');
			tween(layer[skin_video_playpause].alpha, 0.0);
		  );
	</action>


	<action name="skin_hide_playpause">
		set(layer[skin_video_playpause].state, 'hidden');
		tween(layer[skin_video_playpause].alpha, 0.0);
	</action>


	<action name="skin_video_down_event">
		stopdelayedcall(skin_click_detection);
	</action>


	<action name="skin_video_playpause_click">
		if(plugin[video].ispaused,
			plugin[video].play();
			set(layer[skin_video_playpause].state, 'hidden');
			tween(layer[skin_video_playpause].alpha, 0.0);
		  ,
			plugin[video].pause();
			set(layer[skin_video_playpause].state, 'visible');
			tween(layer[skin_video_playpause].alpha, 1.0);
			delayedcall(skin_autohide_pp, 2.0, set(layer[skin_video_playpause].state,'hidden'); tween(layer[skin_video_playpause].alpha, 0.0); );
		  );
	</action>


	<action name="skin_open_settings">
		if(skin_settings_opened !== true,
			set(skin_settings_opened, true);

			tween(layer[skin_btn_settings].rotate, 90);
			tween(layer[skin_settings_menu].alpha, 1.0, 0.2);
		  );
	</action>


	<action name="skin_close_settings">
		if(skin_settings_opened === true,
			set(skin_settings_opened, false);

			tween(layer[skin_btn_settings].rotate, 0);
			tween(layer[skin_settings_menu].alpha, 0.0, 0.2);

			tween(layer[skin_settings_rate].alpha, 0.0, 0.2);
			tween(layer[skin_settings_view].alpha, 0.0, 0.2);
			tween(layer[skin_settings_quality].alpha, 0.0, 0.2);
		  );
	</action>


	<action name="skin_open_volumectrl">
		if(skin_volumectrl_opened !== true,
			set(skin_volumectrl_opened, true);

			tween(layer[skin_volumectrl].alpha, 1.0, 0.2);
		  );
	</action>


	<action name="skin_close_volumectrl">
		if(skin_volumectrl_opened === true,
			set(skin_volumectrl_opened, false);

			tween(layer[skin_volumectrl].alpha, 0.0, 0.2);
		  );
	</action>


	<action name="skin_volumectrl_ondownchanging">
		asyncloop(pressed,
			screentolayer(skin_volumectrl_bar, mouse.stagex,mouse.stagey, lx,ly);
			calc(volumectrl_pos, 1.0 - (ly / layer[skin_volumectrl_bar].pixelheight));
			clamp(volumectrl_pos, 0.0, 1.0);
			copy(plugin[video].volume, volumectrl_pos);
			skin_volumectrl_update();
		  );
	</action>


	<action name="skin_volumectrl_update">
		calc(layer[skin_volumectrl_pos].y, ((1.0 - plugin[video].volume) * 100) + '%');
		calc(layer[skin_btn_volume_icon].crop, plugin[video].volume GT 0.0 ? '64|704|64|64' : '64|704|40|64');
		calc(layer[skin_btn_volume_icon].alpha, plugin[video].volume GT 0.0 ? 1.0 : 0.25);
	</action>


	<action name="skin_have_gyro_support">
		set(layer[skin_gyro_container].enabled, true);
		set(layer[skin_gyro_container].alpha, 1.0);
		set(layer[skin_gyro_not].visible, false);
		set(layer[skin_gyro_ctrl].visible, true);
	</action>


	<action name="skin_gyro_enabled">
		tween(layer[skin_gyro_ctrl_i].x, 11);
		tween(layer[skin_gyro_ctrl].alpha, 1.0);
	</action>


	<action name="skin_gyro_disabled">
		tween(layer[skin_gyro_ctrl_i].x, -1);
		tween(layer[skin_gyro_ctrl].alpha, 0.5);
	</action>


	<!-- context menu - http://krpano.com/docu/xml/#contextmenu -->
	<contextmenu>
		<item name="kr" caption="KRPANO"     />
		<item name="fs" caption="FULLSCREEN" />
		<item name="cc" caption="Change Controlmode" onclick="skin_changecontrolmode();"  separator="true" devices="mouse" />
		<item name="tv" caption="Flat View"          onclick="skin_view_flat();"          separator="true" />
		<item name="nv" caption="Normal View"        onclick="skin_view_normal();"        />
		<item name="fv" caption="Fisheye View"       onclick="skin_view_fisheye();"       />
		<item name="sv" caption="Stereographic View" onclick="skin_view_stereographic();" />
		<item name="av" caption="Architectural View" onclick="skin_view_architectural();" />
		<item name="pv" caption="Pannini View"       onclick="skin_view_pannini();"       />
		<item name="lp" caption="Little Planet View" onclick="skin_view_littleplanet();"  />
	</contextmenu>

	<action name="skin_changecontrolmode">
		switch(control.mode, moveto, drag);
	</action>

	<action name="skin_setplaybackrate">
		set(plugin[video].playbackrate, %1);
		set(layer[skin_rate_val].html, calc('%1' + 'x'));
		layer[skin_settings_r1t].loadstyle(calc('%1' == '0.25' ? 'skintext_sel' : 'skintext'));
		layer[skin_settings_r2t].loadstyle(calc('%1' == '0.5' ? 'skintext_sel' : 'skintext'));
		layer[skin_settings_r3t].loadstyle(calc('%1' == '1.0' ? 'skintext_sel' : 'skintext'));
		layer[skin_settings_r4t].loadstyle(calc('%1' == '1.5' ? 'skintext_sel' : 'skintext'));
		layer[skin_settings_r5t].loadstyle(calc('%1' == '2.0' ? 'skintext_sel' : 'skintext'));
	</action>

	<action name="skin_update_view_menu">
		copy(layer[skin_view_val].html, layer[skin_settings_v%1t].html);
		layer[skin_settings_v1t].loadstyle(calc('%1' == '1' ? 'skintext_sel' : 'skintext'));
		layer[skin_settings_v2t].loadstyle(calc('%1' == '2' ? 'skintext_sel' : 'skintext'));
		layer[skin_settings_v3t].loadstyle(calc('%1' == '3' ? 'skintext_sel' : 'skintext'));
		layer[skin_settings_v4t].loadstyle(calc('%1' == '4' ? 'skintext_sel' : 'skintext'));
		layer[skin_settings_v5t].loadstyle(calc('%1' == '5' ? 'skintext_sel' : 'skintext'));
		layer[skin_settings_v6t].loadstyle(calc('%1' == '6' ? 'skintext_sel' : 'skintext'));
		layer[skin_settings_v7t].loadstyle(calc('%1' == '7' ? 'skintext_sel' : 'skintext'));
	</action>

	<action name="skin_view_flat">
		set(plugin[skin_gyro].enabled, false);
		skin_update_view_menu(1);
		if(videointerface_isflat !== true,
			set(videointerface_isflat, true);
			stoptween(view.fov);
			mod(view.hlookat, 360);
			set(view.limitview, off);
			set(view.maxpixelzoom, 0);
			copy(videointerface_backup_fovmin, view.fovmin);
			set(view.fovmin, 0.01);
			set(control.usercontrol, off);
			copy(videointerface_backup_mouse, control.mode);
			set(control.mode, drag);

			copy(current_fov, view.fov);
			copy(videointerface_backup_fovtype, view.fovtype);
			remapfovtype(current_fov, get(view.fovtype), HFOV);
			set(view.fovtype, HFOV);
			copy(view.fov, current_fov);
			copy(startfov, current_fov);

			copy(image_hfov, image.hfov);
			tween(image_hfov, 1.0, 3.0, linear,
				set(control.usercontrol,all);
				set(view.fovmin, 0.25);
				set(view.hlookatmin, -2);
				set(view.hlookatmax, +2);
				set(view.vlookatmin, -1);
				set(view.vlookatmax, +1);
				set(view.limitview, range);
			  ,
				if(image_hfov LT 90,
					mul(view.fov, image_hfov, 1.1);
				  ,
					sub(hr, image_hfov, 90);
					div(hr, 270);
					sub(hr2, 1, hr);
					mul(a, startfov, hr);
					mul(b, 99, hr2);
					add(view.fov, a,b);
				  );
				copy(image.hfov, image_hfov);
				set(image.vfov, 0);
				updateobject(true, true);
			  );

			adjusthlookat(0);
			tween(view.hlookat, 0, 1.5);
			tween(view.vlookat, 0, 1.5);
		 );
	</action>

	<action name="skin_view_non_flat">
		if(videointerface_isflat === true,
			set(videointerface_isflat, false);
			set(view.limitview, off);
			set(control.usercontrol, all);
			copy(control.mode, videointerface_backup_mouse);

			copy(current_fov, view.fov);
			remapfovtype(current_fov, get(view.fovtype), get(videointerface_backup_fovtype));
			copy(view.fovtype, videointerface_backup_fovtype);
			copy(view.fov, current_fov);

			copy(image_hfov, image.hfov);
			tween(image_hfov, 360.0, 3.0, linear,
				copy(view.fovmin, videointerface_backup_fovmin);
				set(view.limitview, auto);
				set(view.hlookatmin, -180);
				set(view.hlookatmax, +180);
				set(view.vlookatmin, -90);
				set(view.vlookatmax, +90);
			  ,
				copy(image.hfov, image_hfov);
				set(image.vfov, 0);
				updateobject(true, true);
			  );

			tween(view.fov, 120, 1.5);
		  );

		if(view.vlookat LT -60 OR view.vlookat GT +60,
			tween(view.vlookat, 0.0, 1.0, easeInOutSine);
		  );
	</action>

	<action name="skin_view_look_straight">
		skin_view_non_flat();
		if(view.vlookat LT -80 OR view.vlookat GT +80,
			tween(view.vlookat, 0.0, 1.0, easeInOutSine);
			tween(view.fov,     100, distance(150,0.8));
		  );
	</action>

	<action name="skin_view_normal">
		skin_update_view_menu(2);
		skin_view_look_straight();
		tween(view.architectural, 0.0, distance(1.0,0.5));
		tween(view.pannini,       0.0, distance(1.0,0.5));
		tween(view.distortion,    0.0, distance(1.0,0.5));
	</action>

	<action name="skin_view_fisheye">
		skin_update_view_menu(3);
		skin_view_look_straight();
		tween(view.architectural, 0.0,  distance(1.0,0.5));
		tween(view.pannini,       0.0,  distance(1.0,0.5));
		tween(view.distortion,    0.35, distance(1.0,0.5));
	</action>

	<action name="skin_view_stereographic">
		skin_update_view_menu(4);
		skin_view_look_straight();
		tween(view.architectural, 0.0, distance(1.0,0.5));
		tween(view.pannini,       0.0, distance(1.0,0.5));
		tween(view.distortion,    1.0, distance(1.0,0.8));
	</action>

	<action name="skin_view_architectural">
		skin_update_view_menu(5);
		skin_view_look_straight();
		tween(view.architectural, 1.0, distance(1.0,0.5));
		tween(view.pannini,       0.0, distance(1.0,0.5));
		tween(view.distortion,    0.0, distance(1.0,0.5));
	</action>

	<action name="skin_view_pannini">
		skin_update_view_menu(6);
		skin_view_look_straight();
		tween(view.architectural, 0.0, distance(1.0,0.5));
		tween(view.pannini,       1.0, distance(1.0,0.8));
		if(view.distortion LT 0.1,
			tween(view.distortion, 1.0, distance(1.0,0.8));
		  );
	</action>

	<action name="skin_view_littleplanet">
		skin_update_view_menu(7);
		if(videointerface_isflat === true,
			skin_view_non_flat();
			tween(view.fov,           150, distance(150,0.8));
			tween(view.architectural, 0.0, distance(1.0,0.5));
			tween(view.pannini,       0.0, distance(1.0,0.5));
			tween(view.distortion,    1.0, distance(1.0,0.8));
			delayedcall(0.5,
				tween(view.vlookat, 90, distance(100,0.8));
				tween(view.hlookat,  0, distance(100,0.8));
			  );
		  ,
			tween(view.architectural, 0.0, distance(1.0,0.5));
			tween(view.pannini,       0.0, distance(1.0,0.5));
			tween(view.distortion,    1.0, distance(1.0,0.8));
			tween(view.fov,           150, distance(150,0.8));
			tween(view.vlookat,        90, distance(100,0.8));
			add(new_hlookat, view.hlookat, 0.0);
			tween(view.hlookat, get(new_hlookat), distance(100,0.8));
		  );
	</action>


	<!-- video interface actions -->

	<!-- videointerface_addsource (name, videourl, posterurl)
		%1 - name
		%2 - videourl
		%3 - posterurl
	-->
	<action name="videointerface_addsource">
		<!-- init/setup the video interface skin -->
		skin_video_setup();

		set(videosources['v%1'].sourcename, '%1');
		set(videosources['v%1'].videourl, '%2');
		set(videosources['v%1'].posterurl, '%3');

		<!-- add layers to the quality sub-menu -->
		calc(lname, 'skin_settings_q' + videosources.count);
		addlayer(get(lname));
		copy(ly, layer[get(lname)]);
		ly.loadstyle(settingsitem);
		calc(ly.y, 20 + 24*videosources.count);
		set(ly.parent, 'skin_settings_quality');
		set(ly.onclick, videointerface_play('%1') );
		calc(lname2, lname + 't');
		addlayer(get(lname2));
		copy(ly2, layer[get(lname2)]);
		ly2.loadstyle(skintext);
		copy(ly2.parent, lname);
		set(ly2.align,'center');
		set(ly2.html,'%1');
		copy(videosources['v%1'].textelement, ly2);

		calc(layer[skin_settings_quality].height, 20+24+24*videosources.count+6);
	</action>


	<!-- videointerface_addsource
		%1 - name
		%2 - videourl
		%3 - posterurl
	-->
	<action name="videointerface_play">
		set(layer[skin_error].visible, false);
		copy(vs, videosources['v%1']);
		plugin[video].playvideo(get(vs.videourl), get(vs.posterurl), get(plugin[video].pausedonstart), get(plugin[video].time));
		skin_volumectrl_update();
		set(layer[skin_quality].html, %1);
		for(set(i,0), i LT videosources.count, inc(i),
			videosources[get(i)].textelement.loadstyle(calc(videosources[get(i)].sourcename == '%1' ? 'skintext_sel' : 'skintext'));
		  );
	</action>

</krpano>