From 3c0565ec081163b0cc1eeb82d78d149acf73e552 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Fri, 22 Oct 2010 09:18:17 +0000 Subject: [PATCH] New: add jQuery mobile for smartphone --- .../jquery/mobile/images/ajax-loader.gif | Bin 0 -> 8787 bytes .../jquery/mobile/images/ajax-loader.png | Bin 0 -> 503 bytes .../jquery/mobile/images/form-check-off.png | Bin 0 -> 364 bytes .../jquery/mobile/images/form-check-on.png | Bin 0 -> 460 bytes .../jquery/mobile/images/form-radio-off.png | Bin 0 -> 453 bytes .../jquery/mobile/images/form-radio-on.png | Bin 0 -> 519 bytes .../mobile/images/icon-arrow-white-down.png | Bin 0 -> 232 bytes .../mobile/images/icon-arrow-white-left.png | Bin 0 -> 236 bytes .../mobile/images/icon-arrow-white-right.png | Bin 0 -> 236 bytes .../mobile/images/icon-arrow-white-up.png | Bin 0 -> 231 bytes .../jquery/mobile/images/icon-delete.png | Bin 0 -> 1106 bytes .../jquery/mobile/images/icon-minus-white.png | Bin 0 -> 965 bytes .../jquery/mobile/images/icon-plus-white.png | Bin 0 -> 971 bytes .../mobile/images/icon-search-black.png | Bin 0 -> 1245 bytes .../jquery/mobile/images/icons-18-black.png | Bin 0 -> 907 bytes .../jquery/mobile/images/icons-18-white.png | Bin 0 -> 908 bytes .../jquery/mobile/images/icons-36-black.png | Bin 0 -> 1692 bytes .../jquery/mobile/images/icons-36-white.png | Bin 0 -> 1692 bytes .../jquery/mobile/jquery.mobile-1.0a1.css | 806 +++++ .../jquery/mobile/jquery.mobile-1.0a1.js | 2820 +++++++++++++++++ .../jquery/mobile/jquery.mobile-1.0a1.min.css | 9 + .../jquery/mobile/jquery.mobile-1.0a1.min.js | 90 + 22 files changed, 3725 insertions(+) create mode 100644 htdocs/includes/jquery/mobile/images/ajax-loader.gif create mode 100644 htdocs/includes/jquery/mobile/images/ajax-loader.png create mode 100644 htdocs/includes/jquery/mobile/images/form-check-off.png create mode 100644 htdocs/includes/jquery/mobile/images/form-check-on.png create mode 100644 htdocs/includes/jquery/mobile/images/form-radio-off.png create mode 100644 htdocs/includes/jquery/mobile/images/form-radio-on.png create mode 100644 htdocs/includes/jquery/mobile/images/icon-arrow-white-down.png create mode 100644 htdocs/includes/jquery/mobile/images/icon-arrow-white-left.png create mode 100644 htdocs/includes/jquery/mobile/images/icon-arrow-white-right.png create mode 100644 htdocs/includes/jquery/mobile/images/icon-arrow-white-up.png create mode 100644 htdocs/includes/jquery/mobile/images/icon-delete.png create mode 100644 htdocs/includes/jquery/mobile/images/icon-minus-white.png create mode 100644 htdocs/includes/jquery/mobile/images/icon-plus-white.png create mode 100644 htdocs/includes/jquery/mobile/images/icon-search-black.png create mode 100644 htdocs/includes/jquery/mobile/images/icons-18-black.png create mode 100644 htdocs/includes/jquery/mobile/images/icons-18-white.png create mode 100644 htdocs/includes/jquery/mobile/images/icons-36-black.png create mode 100644 htdocs/includes/jquery/mobile/images/icons-36-white.png create mode 100644 htdocs/includes/jquery/mobile/jquery.mobile-1.0a1.css create mode 100644 htdocs/includes/jquery/mobile/jquery.mobile-1.0a1.js create mode 100644 htdocs/includes/jquery/mobile/jquery.mobile-1.0a1.min.css create mode 100644 htdocs/includes/jquery/mobile/jquery.mobile-1.0a1.min.js diff --git a/htdocs/includes/jquery/mobile/images/ajax-loader.gif b/htdocs/includes/jquery/mobile/images/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..98969ca6fb666d8956bce3469ad6b4854262ac44 GIT binary patch literal 8787 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 literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/mobile/images/ajax-loader.png b/htdocs/includes/jquery/mobile/images/ajax-loader.png new file mode 100644 index 0000000000000000000000000000000000000000..32256ba05a7862ff3b61ccc4eedc7630d483d7ce GIT binary patch literal 503 zcmeAS@N?(olHy`uVBq!ia0vp^${@_b3?$!tUzY`>n2Vh}LpV4%Za?&Y0OT43_=LFr z|Ns9ZDd7Dck0hX8fs!Do-I(k_kX|R6nA&!n2yi? z>pKFNV>)DmIk@he=DyH+=5+Uk)+49AFSOn`b@@S#+Y0?lmv|DKnwpprW^UQyFhj}F zk>jwgZYaYt4lR{gVp1HzEK`%YczI1(IyE#8wMc|GJIC})X_?aCWKcb$!AbAfF)uGK z1J?s5$_fkFI5m|l!&!A&bPgR*NXf}*(Q;yAV7L$*v3$-4-WR~oWbkzLb6Mw<&;$S_ CP~5@* literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/mobile/images/form-check-off.png b/htdocs/includes/jquery/mobile/images/form-check-off.png new file mode 100644 index 0000000000000000000000000000000000000000..54e2fe0f80d066b60567f22a15c0e29a6636969f GIT binary patch literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqJQa%*9TgAsieWw;%dH0CJrId_r9R z|Np;s?b_wbm(QFzb3#7|wzaj@)YKFf7Nn)6MMXvV`}_Mrpr5~si;I<&m9eq0y1Kf& zyu75Oq_D8CsDOSs&@{1IQ+eo=O@f^)EG;nv4yKy{)Zban#Mw;QTQ|w3l1fm1G7ixyoePnc0 W<<+r~s8k2qz~JfX=d#Wzp$Py*TXTc} literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/mobile/images/form-check-on.png b/htdocs/includes/jquery/mobile/images/form-check-on.png new file mode 100644 index 0000000000000000000000000000000000000000..e6daaaf8b10684cc6bcdb58f038616800182bbee GIT binary patch literal 460 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqJQa%*9TgAsieWw;%dH0CE!od_r9R zgTeCU%hfg16%`dFB_-FcT`MFcG;`+6o}L~nD=SAQ$L8kdnwpxDk`iNMV?90Hw6ruJ zJ1Q#5-{0@dnKM8we*XRt1=-ozKv|#^Q03txM}S7{?Z0{wXqQ4skY6yvf1of5IAd&F zKGWC*2tw1!XMQ%wKMhpNS>O>_%)r1c1j3A$?$-SQ3d)qYMwA5SrEak7F}3vKO`$^yJgtcv*14*3Y_+cZzx|D3>>SN+`x7SR7qtid-~HCB>?G5?%?++% z7oxmVJnya8slYUC|DtQNRzq$nXS!NNh`q{qe+_xo?{-f4rhDj!)1)di$jC9c}_fJEuIm|vwqP6 zj=!5%u^;>xXv(##qWAOPW5(wKmkIAN;k>l7Q{wE(lP47G*LYsGDG%dLC| u-W7?3r7X?u+Nai)c3ARHWR%H;Z;V&91T)uhc)bETiNVv=&t;ucLK6Vp3!QKP literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/mobile/images/form-radio-on.png b/htdocs/includes/jquery/mobile/images/form-radio-on.png new file mode 100644 index 0000000000000000000000000000000000000000..ddc40497055e1e4dc24b4cb2397923b9ae3061f9 GIT binary patch literal 519 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqJQa%*9TgAsieWw;%dH0CE!od_r9R zg8`5S6o3Ez{ne{i&zw24X3ZJ_et|7pwmg6S{MfN$4CnrTk#gdYepReNg_0n@V21ypp@K?E zN}+cJ1(iZWm6VK)LxCU-2+GSlX08glzdIPHmb1VkvY3H^TL^?1FWs&C0~C}gag8Vm z&QB{TPb^Aha7@WhN>y;nEJ`iUFUl@fa1J&t-1^uIs7@55&bcTxu_QA;Paz~TH z&OKalKC$AO@{^t>{r9zE!e{?{5>olJk8kfQ+ldPlwbFNQnA>`SLuu;X*xR?`I9Ov{ zo-F;O7}p^&cfrjKZ_*#1+xsAmWvcgTgX3G&uD2&OmfrSyczV`>IQ#t4sB8BoZTTxV pximrST*Gc(zOY%r`_uj`_t#Y7|G7@rs~+en22WQ%mvv4FO#lm@&w~H} literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/mobile/images/icon-arrow-white-down.png b/htdocs/includes/jquery/mobile/images/icon-arrow-white-down.png new file mode 100644 index 0000000000000000000000000000000000000000..234083581165eb5db206001dd26204eb3d7bd321 GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;bFq_W2nPqp?T7vkfLyi!pAgso zU=UjKH3uldR1)MD%Se~XkW{ClH OFnGH9xvXRGxnTLm8LW0XdWdg5ABKzq>3=9=4ET@elmaPKn OVDNPHb6Mw<&;$V8GeE-t literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/mobile/images/icon-arrow-white-up.png b/htdocs/includes/jquery/mobile/images/icon-arrow-white-up.png new file mode 100644 index 0000000000000000000000000000000000000000..67f55245edb379482dae131db0e7b06df5c4b219 GIT binary patch literal 231 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 HQ$iB}ksr6J literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/mobile/images/icons-18-black.png b/htdocs/includes/jquery/mobile/images/icons-18-black.png new file mode 100644 index 0000000000000000000000000000000000000000..7534253639b658d8536a6be310fbc79e86ef467e GIT binary patch literal 907 zcmeAS@N?(olHy`uVBq!ia0y~yU@`!*MOc`DWMZvUD3D?FA@oW9^PP=yRgMR0yvNqJ&X zDuZK6ep0G}TV_#ed45rLv4V53Y2nt#WiBrPwP!dI5FnVRdZfwa2fJuU(yA&})+uIX za^jtCKkpeISu5c2ApcWsW%>J`yWh{%_j-C_qVny{`V;IGn{tI$a;j76K}(si=fAEB>nz!MRy~xjK&IyOgp;|2Y0Hk!eD>@`VOjpA zrgOV1_ckBhb>%^z+)v4_$=&apWVgIjNfTBoF`n(}UhghrTRc zzay{9AY5p^VgC8gWh?Lf`}pA6tGiPD&pFuIX5V}~O|WGu*ZrH*?iW}|JIoC!-|a9b zPyKX>?25H)`BR<+-}Gv|yXDmJfSwMvYzN=(T|RzK`wqQj3*@eoHhQ6yyCX5D@V7;r zVB5zG?(O$xtrA)s)~_e&6Sw@l+`+Kd%%Ua*b5E@QaQOS=to8#O$6xe)cyu#v;@i1d z^%iUDY+tQUzIR`>XNsf8(^;}%Gewpq@SiY_NL(T_@60}-dCr@rYPqbLx6R<_#d9+r zZ=GbGBa z85914`)2r*a{Z)v(+*AfF8=YBk-3dY#Dy6Ktsj<$$}2r>`X1nRcg_w!u@l_$il4il zXcCJ~x>sDMEi&WV)lh|!vq_B2)546e{3xIBX}W@YpN!={%^G&Kzw#P0-X6&Ure6k6 LS3j3^P6FA@oW9^PP=yRgMR0yvNqJ&XDuZK6 zep0G}TV_#ed45rLv4V53Y2nt#WBeWi_xX=-F zeLWw`i|_YVdMdLp{fwUU`_sF7pUdy>E}o(lu;4&_r?g%A8CAiO?%w16d{bY)(A)1? zn=Wmd8a825t>DsyYzOUPZq8Z0v~pk3vH7<;o)?4}d3+LXip=>G^74GqiuYAlMW5O_ zWvx+O)U=h+YqG^QCTIPn+cmvR{Z3k)E1Z%7t#b2x<*1jQDo(=l5Ng$`jPWYrYx(w+<$`3Nj_8TpAox@zgGB|YUcEW zZqpWD@#HthFHH{g$rB7^YU*8gex`guV)@yMV?~wwK1*`EoNj!m)9n(^&1;sC`j3KK zE;`42G=HfSI>D)V2FL5d7WHps`*^OqJ8sY3 zk$B_V49;y6*YzKpHnsPvyhC=4`^(8~EKk-po_zJ?mF(4qU(C(X~H$7yFfYB^U2po;<5MYIFCccRb2x9A;JT zdR;Hye8_iWz)Z`i#opOs@!>u18XIkQ2Twnym-=07!uwLyc$b^Lj=YR#tM5+Cn8q5( zoiwj{?fXmNQ=T#x?wZK_RHo9{V`4q)r+SA*Cf0wBIm{^>iiH;9E}Xyw%;4$j=d#Wz Gp$PyPp`*9} literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/mobile/images/icons-36-black.png b/htdocs/includes/jquery/mobile/images/icons-36-black.png new file mode 100644 index 0000000000000000000000000000000000000000..57d5275c2aa62076ef9238283c3770136d082d7d GIT binary patch literal 1692 zcma)+eK^w#8^?d;rA1CJ#^_M2alCZKCObk;nN4#uggg1xt?l^O;L^Gc}3up8_>*uRiK=R-k1o|i0g3slL=E%G_oAAj-wpyFkRUuduR zEuB~%Urw7XyGFO0nfym>@#u(x2;KGXCfJ?nz`O(4YsOxb@8B$2{T%42GXB9%uQJ1< zUm2Mj8n}u1=>9|SX0fuYY}5LZZJKZ&Msb@|{04WL{1hCe&Cy ztDLQ+1bJVo$@Dxl4Bg<}K1Pw0Q|1DiwMv#IIDK+F!pyZ^bZcoLBi~tnE4yovjo}nw zt|FhC&$uGN8<(3s?nN7ncQ&xOTaLr3o&UkE0TyNUdP_G*+jF)c!yW;)o-%vLQwPE&$(JTRz)8u5VGYAP0mJV8T`fI{>y*i5B z07|fWlaBkh;EN7r* z?ahO{GcJS|A78pCgSjlt&yiI$_O343=LVvHq0Y*c)A{nSqa;@qiEuE*pOeF}U{!bw zeOiTxN0~l>idAZ-adDLw#lniU-`Co*Ye%=Du>owezyS~dis`geJkpkR?v*^ z(?AleOYD1gft8fn{5S)+>W(}n50-nzy{bk{uaJMOkGh}UW!g?AMK*?hWlXQ z)>^4kE)rEHkhk1*wwL3xjRuAxbPvjVijaCsM8HvNw$dq++0(q`^K4}85%}{u> z>g;~YozHL{bzugn`PDfBh#mZ6OT~sFySqtz3j&4zHob}DVTJIPrASoR3PUMsIXTIq zEBUx9peEfSnKjF_TOS&Kjx4?9PI-uQWk^-=`T1(~<=WC?F{qV?9C38XNW-Mc3tNN^ zee^GWqx+8YmzD48c_z!HrSM90D6ceiL5T_}UF2LZDiFLJ9C$#Sppp4)bsnhpK;q+q zO0ZAKG~(xk-l1px7$dH5?Dha6i2QiyQ^yyksa(H|+p8#?${q8Tiue+4p%`um$(5NhH_*9sYpF;A*PK}0ZVrd7ZZ~C>hsN`FFX;3c)dcD5B0OKDR(SOfeps3`Wm%5 zJK6D%1i&Dd2I6L@LG7q)wCnqG&r4Euxd$JCOsfsn>BM-ZSWDl&ly&BuFDeOwh0LJJ zqX=2F-b~(E%UFreGT0>L$?2yFr+lw0_Kb9xj@-A?Yc)x6H&XZOX^0xhgj@adAZQjqm_EclR?jTfvZYk&_K)H^-vTw{lWtum~vPf7Lnpmv3urJrhwbD;z$6BRWl>T3Hcd)!=Xk`Q54F;bEJ z*|ydzpsBy27OoOSdK0eon5MQp#MjkAZgZELsAknwx&+@oHO&@ zLwHSh%7zrDSR2UXMZ>h?Yj5(BS#6JDQ%y>TRL0iLhYhS*x+-0FXo$A=f0cLggPZUA VRi7oAafRlg1KwCaOd~oxnTsoQsf+#%P}HZsiv zhd7}LF?8n5`nJ9a^_LXh4#RD2ccOPlG63iv_!>KgCNe&4FO6uJV45eD6iJJtkj?RN zKa&8MqXP`#0COCUtr*^Rn0|HOC^0m8B$WgpiIgakxmO&OM5j>Wlg&MG&Pfku5dff7 z?t@0+Q_EE6kh!4*1OF9x+@$bVLvcW7$ziP9>~ls5=U}1?^ZJofQjLw(h+ic%hGuaD zb7xZ{JscG7l~j#pHrgYZ4+)@iVW6MR)vMTriqz#c>4N2-e{=pMVI_y3X|DLIPb^O^ zXUv!VLb02h{+EtKRAgbK_WE~I%T zu5g2mORdN|v3ir;jZF5I}lKslx5!Z0F;r547bRLb>;$);X3=ZWBhOJqHH4(dB9K~z^r5K%Q z$NgJSl|xyMNIy00^B;!+f(c-q6)mpl>$=M`ep8)sD;Z(#&0c_CgT7th2CyS%&);Fi z_BMSHt@~#|`L-`}iTjlbj1{!NUE}tA*vaGL;bQwIQyfz)M{Gw`VU8TKiin2v=Y!uE z6+ugmt1n0_UDS&UQ3^71SC8alBc4Z9X6H#MTxs}Gf~$gnJD3*0%4M0;E07}}R>7ii zns1P7mDFuiQsqT`X4m(!=Z^VjuI=r$0=K>Lku{e;Y(R$|zh+(Ciupw&c+T%}5W%wR zKktGYK8W^&Hja*(ZiNWlj&+6_r&&Z=4l#2B%>DT2y5jKsG_CXj@&%&}_u-x z8P4M_v|uH-I+q8wgT8O8*pTJ)wuo+kA<*AvH{l!%AKIplMue|W<-)d;({zfQ>wOv2 zqFpSprknKYLK4qLiEp?Q@4;QEVnt#>fl_&?R&Xp1v2u?kiY*;$oK|>Yicw+rf8;i~ z?>Ki!{-%LryetqvD^Xz_LHd#$5h_rzt`-;ao(~T-SaVqB98pps>=ww{#Zv zYf}HnlR>m0n?G@L2o@amVB|yBCz^>=w~XB{E1Joh@DU5S_3R=MR3DrtQABy!DzY2P z;e~`^<)pcYJV^p9+*xdNXx595*N;B)gy~~-iV(h}kNlRriEJ4r#Cz4xu-)0oj(a4~ z5`1weVU85siO4~@zCHW2G+mp0@IJ_-T5p|#Po#-7bnON7(`Wq|{ zan4x8*ZVFT7^git^*G7H@3N|ItjlEVuANT1ahkhXeS`u&^nFCq*@XJgXr#JiF185$a$~KS}T1s$T2H^W%tbe%q}{ zd|$OtQR{oXC-G*@+Gs->?NvdCRqBjM*RnzF<~!4?k&kkf zJ3Z@M<3~fR7*^IEV%GgW4e(P6!)nucJ P?S~HdVEoZds0hYC+x;;k literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/mobile/jquery.mobile-1.0a1.css b/htdocs/includes/jquery/mobile/jquery.mobile-1.0a1.css new file mode 100644 index 00000000000..e60b3a8c89b --- /dev/null +++ b/htdocs/includes/jquery/mobile/jquery.mobile-1.0a1.css @@ -0,0 +1,806 @@ +/*! + * jQuery Mobile + * http://jquerymobile.com/ + * + * Copyright 2010, jQuery Project + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + */ +/* +* jQuery Mobile Framework +* Copyright (c) jQuery Project +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +* Note: Code is in draft form and is subject to change +*/ + + + +/* theme bar,body,btn containers +----------------------------------*/ +.ui-bar-a { border: 1px solid #2A2A2A; background: #111111; color: #fff; font-weight: bold; text-shadow: 0 -1px 1px #000; background-image: -moz-linear-gradient(top, #3c3c3c, #111111); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #3c3c3c),color-stop(1, #111111)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#3c3c3c', EndColorStr='#111111')"; } +.ui-bar-a, .ui-bar-a input, .ui-bar-a select, .ui-bar-a textarea, .ui-bar-a button { font-family: Helvetica, Arial, sans-serif; } +.ui-bar-a .ui-link-inherit { color: #fff; } +.ui-bar-a .ui-link { color: #7cc4e7; font-weight: bold; } + +.ui-body-a { border: 1px solid #2A2A2A; background: #222222; color: #fff; text-shadow: 0 1px 0 #000; font-weight: normal; background-image: -moz-linear-gradient(top, #666666, #222222); -webkit-gradient(linear,left top,left bottom,color-stop(0, #666666),color-stop(1, #222222)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#666666', EndColorStr='#222222)')"; } +.ui-body-a, .ui-body-a input, .ui-body-a select, .ui-body-a textarea, .ui-body-a button { font-family: Helvetica, Arial, sans-serif; } +.ui-body-a .ui-link-inherit { color: #fff; } +.ui-body-a .ui-link { color: #2489CE; font-weight: bold; } +.ui-br { border-bottom: 1px solid rgba(130,130,130,.3); } + +.ui-btn-up-a { border: 1px solid #222; background: #333333; font-weight: bold; color: #fff; cursor: pointer; text-shadow: 0 -1px 1px #000; text-decoration: none; background-image: -moz-linear-gradient(top, #555555, #333333); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #555555),color-stop(1, #333333)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#555555', EndColorStr='#333333')"; } +.ui-btn-up-a a.ui-link-inherit { color: #fff; } +.ui-btn-hover-a { border: 1px solid #000; background: #444444; font-weight: bold; color: #fff; text-shadow: 0 -1px 1px #000; text-decoration: none; background-image: -moz-linear-gradient(top, #666666, #444444); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #666666),color-stop(1, #444444)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#666666', EndColorStr='#444444')"; } +.ui-btn-hover-a a.ui-link-inherit { color: #fff; } +.ui-btn-down-a { border: 1px solid #000; background: #3d3d3d; font-weight: bold; color: #fff; text-shadow: 0 -1px 1px #000; background-image: -moz-linear-gradient(top, #333333, #5a5a5a); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #333333),color-stop(1, #5a5a5a)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#333333', EndColorStr='#5a5a5a')"; } +.ui-btn-down-a a.ui-link-inherit { color: #fff; } +.ui-btn-up-a, .ui-btn-hover-a, .ui-btn-down-a { font-family: Helvetica, Arial, sans-serif; } + + + + +.ui-bar-b { border: 1px solid #456f9a; background: #5e87b0; color: #fff; font-weight: bold; text-shadow: 0 -1px 1px #254f7a; background-image: -moz-linear-gradient(top, #81a8ce, #5e87b0); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #81a8ce),color-stop(1, #5e87b0)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#81a8ce', EndColorStr='#5e87b0')"; } +.ui-bar-b, .ui-bar-b input, .ui-bar-b select, .ui-bar-b textarea, .ui-bar-b button { font-family: Helvetica, Arial, sans-serif; } +.ui-bar-b .ui-link-inherit { color: #fff; } +.ui-bar-b .ui-link { color: #7cc4e7; font-weight: bold; } + +.ui-body-b { border: 1px solid #C6C6C6; background: #cccccc; color: #333333; text-shadow: 0 1px 0 #fff; font-weight: normal; background-image: -moz-linear-gradient(top, #e6e6e6, #cccccc); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #e6e6e6),color-stop(1, #cccccc)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#e6e6e6', EndColorStr='#cccccc')"; } +.ui-body-b, .ui-body-b input, .ui-body-b select, .ui-body-b textarea, .ui-body-b button { font-family: Helvetica, Arial, sans-serif; } +.ui-body-b .ui-link-inherit { color: #333333; } +.ui-body-b .ui-link { color: #2489CE; font-weight: bold; } + +.ui-btn-up-b { border: 1px solid #145072; background: #2567ab; font-weight: bold; color: #fff; cursor: pointer; text-shadow: 0 -1px 1px #145072; text-decoration: none; background-image: -moz-linear-gradient(top, #4e89c5, #2567ab); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #5f9cc5),color-stop(1, #396b9e)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#4e89c5', EndColorStr='#2567ab')"; } +.ui-btn-up-b a.ui-link-inherit { color: #fff; } +.ui-btn-hover-b { border: 1px solid #397cbe; background: #5397d5; font-weight: bold; color: #fff; text-shadow: 0 -1px 1px #014D68; background-image: -moz-linear-gradient(top, #71a2d0, #397cbe); text-decoration: none; background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #71a2d0),color-stop(1, #397cbe)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#71a2d0', EndColorStr='#397cbe')"; } +.ui-btn-hover-b a.ui-link-inherit { color: #fff; } +.ui-btn-down-b { border: 1px solid #225377; background: #4e89c5; font-weight: bold; color: #fff; text-shadow: 0 -1px 1px #225377; background-image: -moz-linear-gradient(top, #396b9e, #4e89c5); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #396b9e),color-stop(1, #4e89c5)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#396b9e', EndColorStr='#4e89c5')"; } +.ui-btn-down-b a.ui-link-inherit { color: #fff; } +.ui-btn-up-b, .ui-btn-hover-b, .ui-btn-down-b { font-family: Helvetica, Arial, sans-serif; } + + + + +.ui-bar-c { border: 1px solid #B3B3B3; background: #e9eaeb; color: #3E3E3E; font-weight: bold; text-shadow: 0 1px 1px #fff; background-image: -moz-linear-gradient(top, #f0f0f0, #e9eaeb); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #f0f0f0),color-stop(1, #e9eaeb)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#f0f0f0', EndColorStr='#e9eaeb')"; } +.ui-bar-c, .ui-bar-c input, .ui-bar-c select, .ui-bar-c textarea, .ui-bar-c button { font-family: Helvetica, Arial, sans-serif; } + +.ui-body-c { border: 1px solid #B3B3B3; color: #333333; text-shadow: 0 1px 0 #fff; background: #f0f0f0; background-image: -moz-linear-gradient(top, #fff, #f0f0f0); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #fff),color-stop(1, #f0f0f0)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#fff', EndColorStr='#f0f0f0')"; } +.ui-body-c, .ui-body-c input, .ui-body-c select, .ui-body-c textarea, .ui-body-c button { font-family: Helvetica, Arial, sans-serif; } +.ui-body-c .ui-link-inherit { color: #333333; } +.ui-body-c .ui-link { color: #2489CE; font-weight: bold; } + +.ui-btn-up-c { border: 1px solid #ccc; background: #eee; font-weight: bold; color: #444; cursor: pointer; text-shadow: 0 1px 1px #f6f6f6; text-decoration: none; background-image: -moz-linear-gradient(top, #fdfdfd, #eeeeee); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #fdfdfd),color-stop(1, #eeeeee)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#fdfdfd', EndColorStr='#eeeeee')"; } +.ui-btn-up-c a.ui-link-inherit { color: #2F3E46; } + +.ui-btn-hover-c { border: 1px solid #aaa; background: #f5f5f5; font-weight: bold; color: #111111; text-decoration: none; text-shadow: 0 1px 1px #fff; background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #ffffff),color-stop(1, #f5f5f5)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffffff', EndColorStr='#f5f5f5')"; } +.ui-btn-hover-c a.ui-link-inherit { color: #2F3E46; } + +.ui-btn-down-c { border: 1px solid #808080; background: #fdfdfd; font-weight: bold; color: #111111; text-shadow: text-shadow: 0 1px 1px #ffffff; background-image: -moz-linear-gradient(top, #eeeeee, #fdfdfd); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #eeeeee),color-stop(1, #fdfdfd)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#eeeeee', EndColorStr='#fdfdfd')"; } +.ui-btn-down-c a.ui-link-inherit { color: #2F3E46; } +.ui-btn-up-c, .ui-btn-hover-c, .ui-btn-down-c { font-family: Helvetica, Arial, sans-serif; } + + +.ui-bar-d { border: 1px solid #ccc; background: #bbb; color: #333; text-shadow: 0 1px 0 #eee; background-image: -moz-linear-gradient(top, #ddd, #bbb); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #ddd),color-stop(1, #bbb)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#ddd', EndColorStr='#bbb')"; } +.ui-bar-d, .ui-bar-d input, .ui-bar-d select, .ui-bar-d textarea, .ui-bar-d button { font-family: Helvetica, Arial, sans-serif; } +.ui-bar-d .ui-link-inherit { color: #333; } +.ui-bar-d .ui-link { color: #2489CE; font-weight: bold; } + +.ui-body-d { border: 1px solid #ccc; color: #333333; text-shadow: 0 1px 0 #fff; background: #ffffff; } +.ui-body-d, .ui-body-d input, .ui-body-d select, .ui-body-d textarea, .ui-body-d button { font-family: Helvetica, Arial, sans-serif; } +.ui-body-d .ui-link-inherit { color: #333333; } +.ui-body-d .ui-link { color: #2489CE; font-weight: bold; } + +.ui-btn-up-d { border: 1px solid #ccc; background: #fff; font-weight: bold; color: #444; text-decoration: none; text-shadow: 0 1px 1px #fff; } +.ui-btn-up-d a.ui-link-inherit { color: #333; } +.ui-btn-hover-d { border: 1px solid #aaa; background: #eeeeee; font-weight: bold; color: #222; cursor: pointer; text-shadow: 0 1px 1px #fff; text-decoration: none; background-image: -moz-linear-gradient(top, #fdfdfd, #eeeeee); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #fdfdfd),color-stop(1, #eeeeee)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#fdfdfd', EndColorStr='#eeeeee')"; } +.ui-btn-hover-d a.ui-link-inherit { color: #222; } + +.ui-btn-down-d { border: 1px solid #aaaaaa; background: #ffffff; font-weight: bold; color: #111; text-shadow: text-shadow: 0 1px 1px #ffffff; background-image: -moz-linear-gradient(top, #eeeeee, #ffffff); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #eeeeee),color-stop(1, #ffffff)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#eeeeee', EndColorStr='#ffffff')"; } +.ui-btn-down-d a.ui-link-inherit { border: 1px solid #808080; background: #ced0d2; font-weight: bold; color: #111; text-shadow: none; background-image: -moz-linear-gradient(top, #cccccc, #eeeeee); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #cccccc),color-stop(1, #eeeeee)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#cccccc', EndColorStr='#eeeeee')"; } +.ui-btn-up-d, .ui-btn-hover-d, .ui-btn-down-d { font-family: Helvetica, Arial, sans-serif; } + + +.ui-bar-e { border: 1px solid #F7C942; background: #fadb4e; color: #333; text-shadow: 0 1px 0 #fff; background-image: -moz-linear-gradient(top, #fceda7, #fadb4e); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #fceda7),color-stop(1, #fadb4e)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#fceda7', EndColorStr='#fadb4e')"; } +.ui-bar-e, .ui-bar-e input, .ui-bar-e select, .ui-bar-e textarea, .ui-bar-d button { font-family: Helvetica, Arial, sans-serif; } +.ui-bar-e .ui-link-inherit { color: #333; } +.ui-bar-e .ui-link { color: #2489CE; font-weight: bold; } + +.ui-body-e { border: 1px solid #F7C942; color: #333333; text-shadow: 0 1px 0 #fff; background: #faeb9e; background-image: -moz-linear-gradient(top, #fff, #faeb9e); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #fff),color-stop(1, #faeb9e)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#fff', EndColorStr='#faeb9e')"; } +.ui-body-e, .ui-body-e input, .ui-body-e select, .ui-body-e textarea, .ui-body-e button { font-family: Helvetica, Arial, sans-serif; } +.ui-body-e .ui-link-inherit { color: #333333; } +.ui-body-e .ui-link { color: #2489CE; font-weight: bold; } + + +.ui-btn-up-e { border: 1px solid #F7C942; background: #fadb4e; font-weight: bold; color: #333; cursor: pointer; text-shadow: 0 1px 1px #fe3; text-decoration: none; text-shadow: 0 1px 0 #fff; background-image: -moz-linear-gradient(top, #fceda7, #fadb4e); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #fceda7),color-stop(1, #fadb4e)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#fceda7', EndColorStr='#fadb4e')"; } +.ui-btn-up-e a.ui-link-inherit { color: #333; } + +.ui-btn-hover-e { border: 1px solid #e79952; background: #fbe26f; font-weight: bold; color: #111; text-decoration: none; text-shadow: 0 1px 1px #fff; background-image: -moz-linear-gradient(top, ##fcf0b5, #fbe26f); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #fcf0b5),color-stop(1, #fbe26f)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#fcf0b5', EndColorStr='#fbe26f')"; } + +.ui-btn-hover-e a.ui-link-inherit { color: #333; } +.ui-btn-down-e { border: 1px solid #F7C942; background: #fceda7; font-weight: bold; color: #111; text-shadow: text-shadow: 0 1px 1px #ffffff; background-image: -moz-linear-gradient(top, #fadb4e, #fceda7); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #fadb4e),color-stop(1, #fceda7)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#fadb4e', EndColorStr='#fceda7')"; } +.ui-btn-down-e a.ui-link-inherit { color: #333; } +.ui-btn-up-e, .ui-btn-hover-e, .ui-btn-down-e { font-family: Helvetica, Arial, sans-serif; } + + +/* links within "buttons" */ +a.ui-link-inherit { text-decoration: none !important; } + +/* Active class used as the "on" state across all themes */ +.ui-btn-active { border: 1px solid #155678; background: #4596ce; font-weight: bold; color: #fff; cursor: pointer; text-shadow: 0 -1px 1px #145072; text-decoration: none; background-image: -moz-linear-gradient(top, #85bae4, #5393c5); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #85bae4),color-stop(1, #5393c5)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#85bae4', EndColorStr='#5393c5')"; } +.ui-btn-active a.ui-link-inherit { color: #fff; } + +/* button inner top highlight */ +.ui-btn-inner { border-top: 1px solid #fff; border-color: rgba(255,255,255,.3); } + + +/* Container Corner radius */ +.ui-corner-tl { -moz-border-radius-topleft: .6em; -webkit-border-top-left-radius: .6em; border-top-left-radius: .6em; } +.ui-corner-tr { -moz-border-radius-topright: .6em; -webkit-border-top-right-radius: .6em; border-top-right-radius: .6em; } +.ui-corner-bl { -moz-border-radius-bottomleft: .6em; -webkit-border-bottom-left-radius: .6em; border-bottom-left-radius: .6em; } +.ui-corner-br { -moz-border-radius-bottomright: .6em; -webkit-border-bottom-right-radius: .6em; border-bottom-right-radius: .6em; } +.ui-corner-top { -moz-border-radius-topleft: .6em; -webkit-border-top-left-radius: .6em; border-top-left-radius: .6em; -moz-border-radius-topright: .6em; -webkit-border-top-right-radius: .6em; border-top-right-radius: .6em; } +.ui-corner-bottom { -moz-border-radius-bottomleft: .6em; -webkit-border-bottom-left-radius: .6em; border-bottom-left-radius: .6em; -moz-border-radius-bottomright: .6em; -webkit-border-bottom-right-radius: .6em; border-bottom-right-radius: .6em; } +.ui-corner-right { -moz-border-radius-topright: .6em; -webkit-border-top-right-radius: .6em; border-top-right-radius: .6em; -moz-border-radius-bottomright: .6em; -webkit-border-bottom-right-radius: .6em; border-bottom-right-radius: .6em; } +.ui-corner-left { -moz-border-radius-topleft: .6em; -webkit-border-top-left-radius: .6em; border-top-left-radius: .6em; -moz-border-radius-bottomleft: .6em; -webkit-border-bottom-left-radius: .6em; border-bottom-left-radius: .6em; } +.ui-corner-all { -moz-border-radius: .6em; -webkit-border-radius: .6em; border-radius: .6em; } + + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; opacity: .3; } + +/* Icons +----------------------------------*/ +/* .ui-icon { background-position: 50% 50%; background-repeat: no-repeat; background-color: #fff; background-color: rgba(0,0,0,.4); -moz-border-radius: 9px; -webkit-border-radius: 9px; border-radius: 9px; } */ + +.ui-icon { background-image: url(images/icons-18-white.png); background-repeat: no-repeat; background-color: #666; background-color: rgba(0,0,0,.4); -moz-border-radius: 9px; -webkit-border-radius: 9px; border-radius: 9px; } +.ui-icon-disc { background-color: #666; background-color: rgba(0,0,0,.3); -moz-border-radius: 9px; -webkit-border-radius: 9px; border-radius: 9px; } + +/* alt color */ +.ui-icon-black { background-image: url(images/icons-18-black.png); } +.ui-icon-black-disc { background-color: #fff; background-color: rgba(255,255,255,.3); -moz-border-radius: 9px; -webkit-border-radius: 9px; border-radius: 9px; } + +/* retina */ +@media screen and (-webkit-min-device-pixel-ratio: 2), screen and (max--moz-device-pixel-ratio: 2) { + .ui-icon { background-image: url(images/icons-36-white.png); background-size: 558px 18px; } + .ui-icon-black { background-image: url(images/icons-36-black.png); } +} + +/*plus minus*/ +.ui-icon-plus { background-position: -0 0; } +.ui-icon-minus { background-position: -36px 0; } + +/* delete/close */ +.ui-icon-delete { background-position: -72px 0; } + +/*arrows*/ +.ui-icon-arrow-r { background-position: -108px 0; } +.ui-icon-arrow-l { background-position: -144px 0; } +.ui-icon-arrow-u { background-position: -180px 0; } +.ui-icon-arrow-d { background-position: -216px 0; } + +.ui-icon-check { background-position: -252px 0; } +.ui-icon-gear { background-position: -288px 0; } +.ui-icon-refresh { background-position: -324px 0; } +.ui-icon-forward { background-position: -360px 0; } +.ui-icon-back { background-position: -396px 0; } + +.ui-icon-grid { background-position: -432px 0; } +.ui-icon-star { background-position: -468px 0; } +.ui-icon-alert { background-position: -504px 0; } +.ui-icon-info { background-position: -540px 0; } + +/*checks,radios*/ +.ui-icon-checkbox-off, +.ui-icon-checkbox-on, +.ui-icon-radio-off, +.ui-icon-radio-on { background-color: transparent; -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; } + +.ui-icon-checkbox-off { background-image: url(images/form-check-off.png); } +.ui-icon-checkbox-on { background-image: url(images/form-check-on.png); } +.ui-icon-radio-off { background-image: url(images/form-radio-off.png); } +.ui-icon-radio-on { background-image: url(images/form-radio-on.png); } + +.ui-icon-search { background-image: url(images/icon-search-black.png); } + +/* loading icon */ +.ui-icon-loading { background-image: url(images/ajax-loader.png); width: 40px; height: 40px; -moz-border-radius: 20px; -webkit-border-radius: 20px; border-radius: 20px; } + +/* btn Corner radius */ +.ui-btn-corner-tl { -moz-border-radius-topleft: 1em; -webkit-border-top-left-radius: 1em; border-top-left-radius: 1em; } +.ui-btn-corner-tr { -moz-border-radius-topright: 1em; -webkit-border-top-right-radius: 1em; border-top-right-radius: 1em; } +.ui-btn-corner-bl { -moz-border-radius-bottomleft: 1em; -webkit-border-bottom-left-radius: 1em; border-bottom-left-radius: 1em; } +.ui-btn-corner-br { -moz-border-radius-bottomright: 1em; -webkit-border-bottom-right-radius: 1em; border-bottom-right-radius: 1em; } +.ui-btn-corner-top { -moz-border-radius-topleft: 1em; -webkit-border-top-left-radius: 1em; border-top-left-radius: 1em; -moz-border-radius-topright: 1em; -webkit-border-top-right-radius: 1em; border-top-right-radius: 1em; } +.ui-btn-corner-bottom { -moz-border-radius-bottomleft: 1em; -webkit-border-bottom-left-radius: 1em; border-bottom-left-radius: 1em; -moz-border-radius-bottomright: 1em; -webkit-border-bottom-right-radius: 1em; border-bottom-right-radius: 1em; } +.ui-btn-corner-right { -moz-border-radius-topright: 1em; -webkit-border-top-right-radius: 1em; border-top-right-radius: 1em; -moz-border-radius-bottomright: 1em; -webkit-border-bottom-right-radius: 1em; border-bottom-right-radius: 1em; } +.ui-btn-corner-left { -moz-border-radius-topleft: 1em; -webkit-border-top-left-radius: 1em; border-top-left-radius: 1em; -moz-border-radius-bottomleft: 1em; -webkit-border-bottom-left-radius: 1em; border-bottom-left-radius: 1em; } +.ui-btn-corner-all { -moz-border-radius: 1em; -webkit-border-radius: 1em; border-radius: 1em;} + +/* radius clip */ +.ui-corner-tl, .ui-corner-tr, .ui-corner-bl, +.ui-corner-br, .ui-corner-top, .ui-corner-bottom, +.ui-corner-right, .ui-corner-left, .ui-corner-all, +.ui-btn-corner-tl, .ui-btn-corner-tr, .ui-btn-corner-bl, +.ui-btn-corner-br, .ui-btn-corner-top, .ui-btn-corner-bottom, +.ui-btn-corner-right, .ui-btn-corner-left, .ui-btn-corner-all { + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +/* Overlays */ +.ui-overlay { background: #666; opacity: .5; filter:Alpha(Opacity=50); position: absolute; width: 100%; height: 100%; } +.ui-overlay-shadow { -moz-box-shadow: 0px 0px 12px rgba(0,0,0,.6); -webkit-box-shadow: 0px 0px 12px rgba(0,0,0,.6); box-shadow: 0px 0px 12px rgba(0,0,0,.6); } + +.ui-shadow { -moz-box-shadow: 0px 1px 4px rgba(0,0,0,.3); -webkit-box-shadow: 0px 1px 4px rgba(0,0,0,.3); box-shadow: 0px 1px 4px rgba(0,0,0,.3); } +.ui-bar-a .ui-shadow, .ui-bar-b .ui-shadow , .ui-bar-c .ui-shadow { -moz-box-shadow: 0px 1px 0 rgba(255,255,255,.3); -webkit-box-shadow: 0px 1px 0 rgba(255,255,255,.3); box-shadow: 0px 1px 0 rgba(255,255,255,.3); } +.ui-shadow-inset { -moz-box-shadow: inset 0px 1px 4px rgba(0,0,0,.2); -webkit-box-shadow: inset 0px 1px 4px rgba(0,0,0,.2); box-shadow: inset 0px 1px 4px rgba(0,0,0,.2); } +.ui-icon-shadow { -moz-box-shadow: 0px 1px 0 rgba(255,255,255,.4); -webkit-box-shadow: 0px 1px 0 rgba(255,255,255,.4); box-shadow: 0px 1px 0 rgba(255,255,255,.4); } + +/* set focus state last */ +.ui-focus { outline-width: 0; -moz-box-shadow: 0px 0px 12px #387bbe; -webkit-box-shadow: 0px 0px 12px #387bbe; box-shadow: 0px 0px 12px #387bbe; } + +/* unset box shadow in browsers that don't do it right */ +.ui-mobile-nosupport-boxshadow * { -moz-box-shadow: none !important; -webkit-box-shadow: none !important; box-shadow: none !important; } +.ui-mobile-nosupport-boxshadow .ui-focus { outline-width: 2px; }/* +* jQuery Mobile Framework +* Copyright (c) jQuery Project +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +* Note: Code is in draft form and is subject to change +*/ + +/* some unsets - more probably needed */ +.ui-mobile fieldset, .ui-page { padding: 0; margin: 0; } +.ui-mobile a img, .ui-mobile fieldset { border: 0; } + +/* responsive page widths */ +.ui-mobile body { margin: 0; overflow-x: hidden; -webkit-backface-visibility:hidden; -webkit-text-size-adjust: none; min-height: 100%; } + +/*orientations from js are available */ +.portrait { } +.landscape { } + +/* "page" containers - full-screen views, one should always be in view post-pageload */ +.ui-page { top: 0; left: 0; width: 100%; min-height: 100%; position: absolute; display: none; -webkit-backface-visibility:hidden; border: 0; } +.ui-page-active { display: block; overflow: visible; } + +/* loading screen */ +.ui-loading, .ui-loading body { overflow: hidden !important; } +.ui-loading .ui-loader { display: block; } +.ui-loading .ui-page { overflow: hidden; } +.ui-loader { display: none; position: absolute; opacity: .85; z-index: 10; top: 75px; left: 50%; width: 200px; margin-left: -130px; padding: 20px 30px; } +.ui-loader h1 { font-size: 15px; text-align: center; } +.ui-loader .ui-icon { position: static; display: block; opacity: .9; margin: 0 auto; width: 35px; height: 35px; background-color: transparent; } + +/*headers, content panels*/ +.ui-bar, .ui-body { position: relative; padding: .4em 15px; overflow: hidden; display: block; clear:both; } +.ui-bar { font-size: 16px; margin: 0; } +.ui-bar h1, .ui-bar h2, .ui-bar h3, .ui-bar h4, .ui-bar h5, .ui-bar h6 { margin: 0; padding: 0; font-size: 16px; display: inline-block; } + +.ui-page .ui-header, .ui-page .ui-footer { position: relative; } +.ui-header .ui-btn-left { position: absolute; left: 10px; top: .4em; } +.ui-header .ui-title, .ui-footer .ui-title { text-align: center; font-size: 16px; display: block; margin: .6em 90px .8em; padding: 0; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; outline: 0 !important; } +.ui-header .ui-btn-right { position: absolute; right: 10px; top: .4em; } + +/*content area*/ +.ui-content { border-width: 0; overflow: visible; padding: 15px; } +.ui-page-fullscreen .ui-content { padding:0; } + +/* icons sizing */ +.ui-icon { width: 18px; height: 18px; } + +/* fullscreen class on ui-content div */ +.ui-fullscreen { } +.ui-fullscreen img { max-width: 100%; } + +/* non-js content hiding */ +.ui-nojs { position: absolute; left: -9999px; } +/* +* jQuery Mobile Framework +* Copyright (c) jQuery Project +* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. +*/ +.spin { +-webkit-animation-name: spin; +-webkit-animation-duration: 1s; +-webkit-animation-iteration-count: infinite; +} +@-webkit-keyframes spin { + from {-webkit-transform: rotate(0deg);} + to {-webkit-transform: rotate(360deg);} +} + +/* Transitions from jQtouch (with small modifications): http://www.jqtouch.com/ +Built by David Kaneda and maintained by Jonathan Stark. +*/ +.in, .out { + -webkit-animation-timing-function: ease-in-out; + -webkit-animation-duration: 350ms; +} + +.slide.in { + -webkit-animation-name: slideinfromright; +} + +.slide.out { + -webkit-animation-name: slideouttoleft; +} + +.slide.in.reverse { + -webkit-animation-name: slideinfromleft; +} + +.slide.out.reverse { + -webkit-animation-name: slideouttoright; +} + +.slideup.in { + -webkit-animation-name: slideinfrombottom; + z-index: 10; +} + +.slideup.out { + -webkit-animation-name: dontmove; + z-index: 0; +} + +.slideup.out.reverse { + z-index: 10; + -webkit-animation-name: slideouttobottom; +} + +.slideup.in.reverse { + z-index: 0; + -webkit-animation-name: dontmove; +} +.slidedown.in { + -webkit-animation-name: slideinfromtop; + z-index: 10; +} + +.slidedown.out { + -webkit-animation-name: dontmove; + z-index: 0; +} + +.slidedown.out.reverse { + z-index: 10; + -webkit-animation-name: slideouttotop; +} + +.slidedown.in.reverse { + z-index: 0; + -webkit-animation-name: dontmove; +} + +@-webkit-keyframes slideinfromright { + from { -webkit-transform: translateX(100%); } + to { -webkit-transform: translateX(0); } +} + +@-webkit-keyframes slideinfromleft { + from { -webkit-transform: translateX(-100%); } + to { -webkit-transform: translateX(0); } +} + +@-webkit-keyframes slideouttoleft { + from { -webkit-transform: translateX(0); } + to { -webkit-transform: translateX(-100%); } +} + +@-webkit-keyframes slideouttoright { + from { -webkit-transform: translateX(0); } + to { -webkit-transform: translateX(100%); } +} + + +@-webkit-keyframes slideinfromtop { + from { -webkit-transform: translateY(-100%); } + to { -webkit-transform: translateY(0); } +} + +@-webkit-keyframes slideinfrombottom { + from { -webkit-transform: translateY(100%); } + to { -webkit-transform: translateY(0); } +} + +@-webkit-keyframes slideouttobottom { + from { -webkit-transform: translateY(0); } + to { -webkit-transform: translateY(100%); } +} + +@-webkit-keyframes slideouttotop { + from { -webkit-transform: translateY(0); } + to { -webkit-transform: translateY(-100%); } +} +@-webkit-keyframes fadein { + from { opacity: 0; } + to { opacity: 1; } +} + +@-webkit-keyframes fadeout { + from { opacity: 1; } + to { opacity: 0; } +} + +.fade.in { + z-index: 10; + -webkit-animation-name: fadein; +} +.fade.out { + z-index: 0; +} + +.flip { + -webkit-animation-duration: .65s; +} + +.flip.in { + -webkit-animation-name: flipinfromleft; +} + +.flip.out { + -webkit-animation-name: flipouttoleft; +} + +/* Shake it all about */ + +.flip.in.reverse { + -webkit-animation-name: flipinfromright; +} + +.flip.out.reverse { + -webkit-animation-name: flipouttoright; +} + +@-webkit-keyframes flipinfromright { + from { -webkit-transform: rotateY(-180deg) scale(.8); } + to { -webkit-transform: rotateY(0) scale(1); } +} + +@-webkit-keyframes flipinfromleft { + from { -webkit-transform: rotateY(180deg) scale(.8); } + to { -webkit-transform: rotateY(0) scale(1); } +} + +@-webkit-keyframes flipouttoleft { + from { -webkit-transform: rotateY(0) scale(1); } + to { -webkit-transform: rotateY(-180deg) scale(.8); } +} + +@-webkit-keyframes flipouttoright { + from { -webkit-transform: rotateY(0) scale(1); } + to { -webkit-transform: rotateY(180deg) scale(.8); } +} + + +/* Hackish, but reliable. */ + +@-webkit-keyframes dontmove { + from { opacity: 1; } + to { opacity: 1; } +} + +.pop { + -webkit-transform-origin: 50% 50%; +} + +.pop.in { + -webkit-animation-name: popin; + z-index: 10; +} + +.pop.out.reverse { + -webkit-animation-name: popout; + z-index: 10; +} + +.pop.in.reverse { + z-index: 0; + -webkit-animation-name: dontmove; +} + +@-webkit-keyframes popin { + from { + -webkit-transform: scale(.2); + opacity: 0; + } + to { + -webkit-transform: scale(1); + opacity: 1; + } +} + +@-webkit-keyframes popout { + from { + -webkit-transform: scale(1); + opacity: 1; + } + to { + -webkit-transform: scale(.2); + opacity: 0; + } +}/* +* jQuery Mobile Framework +* Copyright (c) jQuery Project +* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. +*/ +/* content configurations. */ +.ui-grid-a, .ui-grid-b, .ui-grid-c { overflow: hidden; } +.ui-block-a, .ui-block-b, .ui-block-c, .ui-block-d { margin: 0; padding: 0; border: 0; float: left; } +/* grid a: 50/50 */ +.ui-grid-a .ui-block-a, .ui-grid-a .ui-block-b { width: 50%; } +.ui-grid-a .ui-block-a { clear: left; } +/* grid b: 33/33/33 */ +.ui-grid-b .ui-block-a, .ui-grid-b .ui-block-b, .ui-grid-b .ui-block-c { width: 33.333%; } +.ui-grid-b .ui-block-a { clear: left; }/* +* jQuery Mobile Framework +* Copyright (c) jQuery Project +* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. +*/ +/* fixed page header & footer configuration */ +.ui-header, .ui-footer, .ui-page-fullscreen .ui-header, .ui-page-fullscreen .ui-footer { position: absolute; overflow: hidden; width: 100%; border-left-width: 0; border-right-width: 0; } +.ui-header-fixed, .ui-footer-fixed { z-index: 1000; } +.ui-footer-duplicate, .ui-page-fullscreen .ui-fixed-inline { display: none; } +.ui-page-fullscreen .ui-header, .ui-page-fullscreen .ui-footer { opacity: .9; } +/* +* jQuery Mobile Framework +* Copyright (c) jQuery Project +* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. +*/ +.ui-navbar { overflow: hidden; } +.ui-navbar ul, .ui-navbar-expanded ul { list-style:none; padding: 0; margin: 0; position: relative; display: block; border: 0;} +.ui-navbar-collapsed ul { float: left; width: 75%; margin-right: -2px; } +.ui-navbar-collapsed .ui-navbar-toggle { float: left; width: 25%; } +.ui-navbar li.ui-navbar-truncate { position: absolute; left: -99999px; top: -99999px; } +.ui-navbar li .ui-btn, .ui-navbar .ui-navbar-toggle .ui-btn { display: block; font-size: 12px; text-align: center; margin: 0; outline: none; border-right-width: 0; } +.ui-navbar li .ui-btn { margin-right: -1px; } +.ui-navbar li .ui-btn:last-child { margin-right: 0; } +.ui-header .ui-navbar li .ui-btn, .ui-header .ui-navbar .ui-navbar-toggle .ui-btn, +.ui-footer .ui-navbar li .ui-btn, .ui-footer .ui-navbar .ui-navbar-toggle .ui-btn { border-top-width: 0; border-bottom-width: 0; } +.ui-navbar .ui-btn-inner { padding-left: 2px; padding-right: 2px; } +.ui-navbar-noicons li .ui-btn .ui-btn-inner, .ui-navbar-noicons .ui-navbar-toggle .ui-btn-inner { padding-top: .8em; padding-bottom: .9em; } +/*expanded page styles*/ +.ui-navbar-expanded .ui-btn { margin: 0; font-size: 14px; } +.ui-navbar-expanded .ui-btn-inner { padding-left: 5px; padding-right: 5px; } +.ui-navbar-expanded .ui-btn-icon-top .ui-btn-inner { padding: 45px 5px 15px; text-align: center; } +.ui-navbar-expanded .ui-btn-icon-top .ui-icon { top: 15px; } +.ui-navbar-expanded .ui-btn-icon-bottom .ui-btn-inner { padding: 15px 5px 45px; text-align: center; } +.ui-navbar-expanded .ui-btn-icon-bottom .ui-icon { bottom: 15px; } +.ui-navbar-expanded li .ui-btn .ui-btn-inner { min-height: 2.5em; } +.ui-navbar-expanded .ui-navbar-noicons .ui-btn .ui-btn-inner { padding-top: 1.8em; padding-bottom: 1.9em; }/* +* jQuery Mobile Framework +* Copyright (c) jQuery Project +* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. +*/ +.ui-btn { display: block; text-align: center; cursor:pointer; position: relative; margin: .5em 5px; padding: 0; } +.ui-btn:focus, .ui-btn a:focus { outline: none; } +.ui-header .ui-btn, .ui-footer .ui-btn, .ui-bar .ui-btn { display: inline-block; font-size: 13px; margin: 0; } +.ui-btn-inline { display: inline-block; } +.ui-btn-inner { padding: .6em 25px; display: block; height: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; position: relative; } +.ui-btn-text { } +.ui-header .ui-btn-inner, .ui-footer .ui-btn-inner, .ui-bar .ui-btn-inner { padding: .4em 8px .5em; } +.ui-btn-icon-notext { display: block; width: 20px; height: 20px; padding: 1px 0px 1px 2px; text-indent: -9999px; } +.ui-btn-icon-notext .ui-btn-inner { padding: 0; } +.ui-btn-icon-notext .ui-btn-text { position: absolute; left: -999px; } +.ui-btn-icon-left .ui-btn-inner { padding-left: 33px; } +.ui-header .ui-btn-icon-left .ui-btn-inner, +.ui-footer .ui-btn-icon-left .ui-btn-inner, +.ui-bar .ui-btn-icon-left .ui-btn-inner { padding-left: 27px; } +.ui-btn-icon-right .ui-btn-inner { padding-right: 33px; } +.ui-header .ui-btn-icon-right .ui-btn-inner, +.ui-footer .ui-btn-icon-right .ui-btn-inner +.ui-bar .ui-btn-icon-right .ui-btn-inner { padding-right: 27px; } +.ui-btn-icon-top .ui-btn-inner { padding-top: 33px; } +.ui-header .ui-btn-icon-top .ui-btn-inner +.ui-footer .ui-btn-icon-top .ui-btn-inner, +.ui-bar .ui-btn-icon-top .ui-btn-inner { padding-top: 27px; } +.ui-btn-icon-bottom .ui-btn-inner { padding-bottom: 33px; } +.ui-header .ui-btn-icon-bottom .ui-btn-inner, +.ui-footer .ui-btn-icon-bottom .ui-btn-inner, +.ui-bar .ui-btn-icon-bottom .ui-btn-inner { padding-bottom: 27px; } + +/*btn icon positioning*/ +.ui-btn-icon-notext .ui-icon { display: block; } +.ui-btn-icon-left .ui-icon, .ui-btn-icon-right .ui-icon { position: absolute; top: 50%; margin-top: -9px; } +.ui-btn-icon-top .ui-icon, .ui-btn-icon-bottom .ui-icon { position: absolute; left: 50%; margin-left: -9px; } +.ui-btn-icon-left .ui-icon { left: 10px; } +.ui-btn-icon-right .ui-icon {right: 10px; } +.ui-header .ui-btn-icon-left .ui-icon, +.ui-footer .ui-btn-icon-left .ui-icon, +.ui-bar .ui-btn-icon-left .ui-icon { left: 4px; } +.ui-header .ui-btn-icon-right .ui-icon, +.ui-footer .ui-btn-icon-right .ui-icon, +.ui-bar .ui-btn-icon-right .ui-icon { right: 4px; } +.ui-header .ui-btn-icon-top .ui-icon, +.ui-footer .ui-btn-icon-top .ui-icon, +.ui-bar .ui-btn-icon-top .ui-icon { top: 4px; } +.ui-header .ui-btn-icon-bottom .ui-icon, +.ui-footer .ui-btn-icon-bottom .ui-icon, +.ui-bar .ui-btn-icon-bottom .ui-icon { bottom: 4px; } +.ui-btn-icon-top .ui-icon { top: 5px; } +.ui-btn-icon-bottom .ui-icon { bottom: 5px; } +/*hiding native button,inputs */ +.ui-btn-hidden { position: absolute; left: -9999px; } +/* +* jQuery Mobile Framework +* Copyright (c) jQuery Project +* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. +*/ +.ui-collapsible-contain { margin: .5em 0; } +.ui-collapsible-heading { font-size: 16px; display: block; margin: 0 -8px; padding: 0; border-width: 0 0 1px 0; position: relative; } +.ui-collapsible-heading a { text-align: left; margin: 0; } +.ui-collapsible-heading a .ui-btn-inner { padding-left: 40px; } +.ui-collapsible-heading a span.ui-btn { position: absolute; left: 6px; top: 50%; margin: -12px 0 0 0; width: 20px; height: 20px; padding: 1px 0px 1px 2px; text-indent: -9999px; } +.ui-collapsible-heading a span.ui-btn .ui-btn-inner { padding: 0; } +.ui-collapsible-heading a span.ui-btn .ui-icon { left: 2px; } +.ui-collapsible-heading-status { position:absolute; left:-99999px; } +.ui-collapsible-content { display: block; padding: 10px 0 10px 8px; } +.ui-collapsible-content-collapsed { display: none; }/* +* jQuery Mobile Framework +* Copyright (c) jQuery Project +* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. +*/ +.ui-controlgroup, fieldset.ui-controlgroup { padding: 0; margin: .5em 0 1em; } +.ui-bar .ui-controlgroup { margin: 0 .3em; } +.ui-controlgroup-label { font-size: 16px; line-height: 1.4; font-weight: normal; margin: 0 0 .3em; } +.ui-controlgroup-controls { display: block; width: 95%;} +.ui-controlgroup li { list-style: none; } +.ui-controlgroup-vertical .ui-btn, +.ui-controlgroup-vertical div.ui-checkbox, .ui-controlgroup-vertical div.ui-radio { margin: 0; border-bottom-width: 0; } +.ui-controlgroup-vertical .ui-controlgroup-last { border-bottom-width: 1px; } +.ui-controlgroup-horizontal { padding: 0; } +.ui-controlgroup-horizontal .ui-btn, +.ui-controlgroup-horizontal div.ui-checkbox, .ui-controlgroup-horizontal div.ui-radio { margin: 0 -5px 0 0; display: inline-block; } +.ui-controlgroup-horizontal div.ui-checkbox .ui-btn, .ui-controlgroup-horizontal div.ui-radio .ui-btn, +.ui-controlgroup-horizontal div.ui-checkbox:last-child, .ui-controlgroup-horizontal div.ui-radio:last-child { margin-right: 0; } +.ui-controlgroup-horizontal .ui-controlgroup-last { margin-right: 0; } +.ui-controlgroup .ui-checkbox label, .ui-controlgroup .ui-radio label { font-size: 16px; } +/* conflicts with listview.. +.ui-controlgroup .ui-btn-icon-notext { width: 30px; height: 30px; text-indent: -9999px; } +.ui-controlgroup .ui-btn-icon-notext .ui-btn-inner { padding: 5px 6px 5px 5px; } +*/ + +@media screen and (min-width: 480px){ + .ui-controlgroup-label { vertical-align: top; display: inline-block; width: 20%; margin: 0 2% 0 0; } + .ui-controlgroup-controls { width: 60%; display: inline-block; } +}/* +* jQuery Mobile Framework +* Copyright (c) jQuery Project +* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. +*/ +.ui-dialog .ui-header, .ui-dialog .ui-content, .ui-dialog .ui-footer { margin: 15px; position: relative; } +.ui-dialog .ui-header, .ui-dialog .ui-footer { z-index: 10; width: auto; } +.ui-dialog .ui-content, .ui-dialog .ui-footer { margin-top: -15px; }/* +* jQuery Mobile Framework +* Copyright (c) jQuery Project +* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. +*/ +div.ui-checkbox, div.ui-radio { position:relative; margin: .2em 0 .5em; } +.ui-checkbox .ui-btn, .ui-radio .ui-btn { margin: 0; text-align: left; } +.ui-checkbox .ui-btn-icon-left .ui-btn-inner,.ui-radio .ui-btn-icon-left .ui-btn-inner { padding-left: 45px; } +.ui-checkbox .ui-btn-icon-right .ui-btn-inner, .ui-radio .ui-btn-icon-right .ui-btn-inner { padding-right: 45px; } +.ui-checkbox .ui-btn-icon-left .ui-icon, .ui-radio .ui-btn-icon-left .ui-icon {left: 15px; } +.ui-checkbox .ui-btn-icon-right .ui-icon, .ui-radio .ui-btn-icon-right .ui-icon {right: 15px; } +/* input, label positioning */ +.ui-checkbox input,.ui-radio input { position:absolute; left:20px; top:50%; width: 10px; height: 10px; margin:-5px 0 0 0; outline: 0 !important; }/* +* jQuery Mobile Framework +* Copyright (c) jQuery Project +* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. +*/ +.ui-field-contain { background: none; padding: 1.5em 0; margin: 0; border-bottom-width: 1px; overflow: visible; } +.ui-field-contain:first-child { border-top-width: 0; } +@media screen and (max-width: 480px){ + .ui-field-contain { border-width: 0; padding: 0; margin: 1em 0; } +}/* +* jQuery Mobile Framework +* Copyright (c) jQuery Project +* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. +*/ +.ui-select { display: block; } +.ui-select select { position: absolute; left: -99999px; } +.ui-select .ui-btn-icon-right .ui-btn-inner { padding-right: 45px; } +.ui-select .ui-btn-icon-right .ui-icon { right: 15px; } + +/* labels */ +label.ui-select { font-size: 16px; line-height: 1.4; font-weight: normal; margin: 0 0 .3em; display: block; } + +/*listbox*/ +.ui-listbox { position: absolute; padding: 0; z-index: 100 !important; width: 80%; max-width: 350px; padding: 6px; } +.ui-listbox .ui-listview { margin: 0; + } +.ui-listbox-hidden { top: -999999px; left: -99999px; } +.ui-listbox-screen { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 99; } +.ui-screen-hidden, .ui-listbox-list .ui-li .ui-icon { display: none; } +.ui-listbox-list .ui-btn-active .ui-icon { display: block; } + +/*used in listbox - to be removed/replaced with page-style hiding*/ +.ui-helper-hidden,.ui-mobile .ui-content-hidden { display: none; } + +@media screen and (min-width: 480px){ + label.ui-select { display: inline-block; width: 20%; margin: 0 2% 0 0; } + .ui-select { width: 60%; display: inline-block; } +}/* +* jQuery Mobile Framework +* Copyright (c) jQuery Project +* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. +*/ +label.ui-input-text { font-size: 16px; line-height: 1.4; display: block; font-weight: normal; margin: 0 0 .3em; } +input.ui-input-text, textarea.ui-input-text { background-image: none; padding: .4em; line-height: 1.4; font-size: 16px; display: block; width: 95%; } +textarea.ui-input-text { height: 50px; -webkit-transition: height 200ms linear; -moz-transition: height 200ms linear; -o-transition: height 200ms linear; transition: height 200ms linear; } +.ui-input-search { padding: 0 30px; width: 77%; background-position: 8px 50%; background-repeat: no-repeat; position: relative; } +.ui-input-search input.ui-input-text { border: none; width: 98%; padding: .4em 0; margin: 0; display: block; background: transparent none; outline: 0 !important; } +.ui-input-search .ui-input-clear { position: absolute; right: 2px; top: 50%; margin-top: -12px; } +.ui-input-search .ui-input-clear-hidden { display: none; } + +/* orientation adjustments - incomplete!*/ +@media screen and (min-width: 480px){ + label.ui-input-text { vertical-align: top; } + label.ui-input-text, label.ui-select { display: inline-block; width: 20%; margin: 0 2% 0 0; } + input.ui-input-text, textarea.ui-input-text, .ui-input-search { width: 60%; display: inline-block; } + .ui-input-search { width: 50%; } +}/* +* jQuery Mobile Framework +* Copyright (c) jQuery Project +* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. +*/ +.ui-listview { margin: 0; counter-reset: listnumbering; margin: -15px; } +.ui-listview-inset { margin: 1em 0; } +.ui-listview, .ui-li { list-style:none; padding:0; zoom: 1; } +.ui-li { display: block; margin:0; position: relative; overflow: hidden; text-align: left; border-width: 0; border-top-width: 1px; } +.ui-li .ui-btn-text { text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } +.ui-li-divider, .ui-li-static { padding: .5em 15px; font-size: 14px; font-weight: bold; counter-reset: listnumbering; } +ol.ui-listview .ui-link-inherit:before, .ui-li-dec { font-size: .8em; display: inline-block; padding-right: .3em; font-weight: normal;counter-increment: listnumbering; content: counter(listnumbering) ". "; } +ol.ui-listview .ui-li-jsnumbering:before { content: "" !important; } /* to avoid chance of duplication */ +.ui-listview-inset .ui-li { border-right-width: 1px; border-left-width: 1px; } +.ui-li:last-child { border-bottom-width: 1px; } +.ui-li .ui-btn-inner { display: block; position: relative; padding: .7em 75px .7em 15px; } +.ui-li-has-thumb .ui-btn-inner { min-height: 60px; padding-left: 100px; } +.ui-li-has-icon .ui-btn-inner { min-height: 20px; padding-left: 40px; } +.ui-li-heading { font-size: 16px; font-weight: bold; display: block; margin: .6em 0; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } +.ui-li-desc { font-size: 12px; font-weight: normal; display: block; margin: -.5em 0 .6em; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } +.ui-li-thumb, .ui-li-icon { position: absolute; left: 1px; top: 0; max-height: 80px; max-width: 80px; } +.ui-li-icon { max-height: 40px; max-width: 40px; left: 10px; top: .9em; } +.ui-li-thumb, .ui-li-icon, .ui-li-content { float: left; margin-right: 10px; } + +.ui-li-aside { float: right; width: 25%; text-align: right; margin: .3em 0; } +.ui-li-has-alt .ui-btn-inner { padding-right: 95px; } +.ui-li-count { position: absolute; font-size: 11px; font-weight: bold; padding: .2em .5em; top: 50%; margin-top: -.9em; right: 38px; } +.ui-li-divider .ui-li-count { right: 10px; } +.ui-li-has-alt .ui-li-count { right: 55px; } +.ui-li-link-alt { position: absolute; width: 40px; height: 100%; border-width: 0; border-left-width: 1px; top: 0; right: 0; margin: 0; padding: 0; } +.ui-li-link-alt .ui-btn { overflow: hidden; position: absolute; right: 8px; top: 50%; margin: -11px 0 0 0; border-bottom-width: 1px; } +.ui-li-link-alt .ui-btn-inner { padding: 0; position: static; } +.ui-li-link-alt .ui-btn .ui-icon { right: 50%; margin-right: -9px; } + +.ui-listview-filter { border-width: 0; overflow: hidden; margin: -15px -15px 15px -15px } +.ui-listview-filter .ui-input-search { margin: 5px; width: auto; display: block; }/* +* jQuery Mobile Framework +* Copyright (c) jQuery Project +* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. +*/ +label.ui-slider { display: block; } +input.ui-slider-input { display: inline-block; width: 40px; } +select.ui-slider-switch { display: none; } +div.ui-slider { position: relative; display: inline-block; overflow: visible; height: 15px; padding: 0; margin: 0 2% 0 15px; top: 4px; width: 66%; } +a.ui-slider-handle { position: absolute; z-index: 10; top: 50%; width: 28px; height: 28px; margin-top: -15px; margin-left: -15px; } +a.ui-slider-handle .ui-btn-inner { padding-left: 0; padding-right: 0; } +@media screen and (min-width: 480px){ + label.ui-slider { display: inline-block; width: 20%; margin: 0 2% 0 0; } + div.ui-slider { width: 45%; } +} + +div.ui-slider-switch { height: 32px; overflow: hidden; margin-left: 0; } +div.ui-slider-inneroffset { margin-left: 50%; position: absolute; top: 1px; height: 100%; width: 50%; } +div.ui-slider-handle-snapping { -webkit-transition: left 100ms linear; } +div.ui-slider-labelbg { position: absolute; top:0; margin: 0; border-width: 0; } +div.ui-slider-switch div.ui-slider-labelbg-a { width: 60%; height: 100%; left: 0; } +div.ui-slider-switch div.ui-slider-labelbg-b { width: 60%; height: 100%; right: 0; } +.ui-slider-switch-a div.ui-slider-labelbg-a, .ui-slider-switch-b div.ui-slider-labelbg-b { z-index: 1; } +.ui-slider-switch-a div.ui-slider-labelbg-b, .ui-slider-switch-b div.ui-slider-labelbg-a { z-index: 10; } + +div.ui-slider-switch a.ui-slider-handle { z-index: 20; width: 101%; height: 32px; margin-top: -18px; margin-left: -101%; } +span.ui-slider-label { width: 100%; position: absolute;height: 32px; font-size: 16px; text-align: center; line-height: 2; background: none; border-color: transparent; } +span.ui-slider-label-a { left: -100%; margin-right: -1px } +span.ui-slider-label-b { right: -100%; margin-left: -1px } diff --git a/htdocs/includes/jquery/mobile/jquery.mobile-1.0a1.js b/htdocs/includes/jquery/mobile/jquery.mobile-1.0a1.js new file mode 100644 index 00000000000..06b65f566b1 --- /dev/null +++ b/htdocs/includes/jquery/mobile/jquery.mobile-1.0a1.js @@ -0,0 +1,2820 @@ +/*! + * jQuery Mobile + * http://jquerymobile.com/ + * + * Copyright 2010, jQuery Project + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + */ +/*! + * jQuery UI Widget @VERSION + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function( $, undefined ) { + +// jQuery 1.4+ +if ( $.cleanData ) { + var _cleanData = $.cleanData; + $.cleanData = function( elems ) { + for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { + $( elem ).triggerHandler( "remove" ); + } + _cleanData( elems ); + }; +} else { + var _remove = $.fn.remove; + $.fn.remove = function( selector, keepData ) { + return this.each(function() { + if ( !keepData ) { + if ( !selector || $.filter( selector, [ this ] ).length ) { + $( "*", this ).add( [ this ] ).each(function() { + $( this ).triggerHandler( "remove" ); + }); + } + } + return _remove.call( $(this), selector, keepData ); + }); + }; +} + +$.widget = function( name, base, prototype ) { + var namespace = name.split( "." )[ 0 ], + fullName; + name = name.split( "." )[ 1 ]; + fullName = namespace + "-" + name; + + if ( !prototype ) { + prototype = base; + base = $.Widget; + } + + // create selector for plugin + $.expr[ ":" ][ fullName ] = function( elem ) { + return !!$.data( elem, name ); + }; + + $[ namespace ] = $[ namespace ] || {}; + $[ namespace ][ name ] = function( options, element ) { + // allow instantiation without initializing for simple inheritance + if ( arguments.length ) { + this._createWidget( options, element ); + } + }; + + var basePrototype = new base(); + // we need to make the options hash a property directly on the new instance + // otherwise we'll modify the options hash on the prototype that we're + // inheriting from +// $.each( basePrototype, function( key, val ) { +// if ( $.isPlainObject(val) ) { +// basePrototype[ key ] = $.extend( {}, val ); +// } +// }); + basePrototype.options = $.extend( true, {}, basePrototype.options ); + $[ namespace ][ name ].prototype = $.extend( true, basePrototype, { + namespace: namespace, + widgetName: name, + widgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name, + widgetBaseClass: fullName + }, prototype ); + + $.widget.bridge( name, $[ namespace ][ name ] ); +}; + +$.widget.bridge = function( name, object ) { + $.fn[ name ] = function( options ) { + var isMethodCall = typeof options === "string", + args = Array.prototype.slice.call( arguments, 1 ), + returnValue = this; + + // allow multiple hashes to be passed on init + options = !isMethodCall && args.length ? + $.extend.apply( null, [ true, options ].concat(args) ) : + options; + + // prevent calls to internal methods + if ( isMethodCall && options.charAt( 0 ) === "_" ) { + return returnValue; + } + + if ( isMethodCall ) { + this.each(function() { + var instance = $.data( this, name ); + if ( !instance ) { + throw "cannot call methods on " + name + " prior to initialization; " + + "attempted to call method '" + options + "'"; + } + if ( !$.isFunction( instance[options] ) ) { + throw "no such method '" + options + "' for " + name + " widget instance"; + } + var methodValue = instance[ options ].apply( instance, args ); + if ( methodValue !== instance && methodValue !== undefined ) { + returnValue = methodValue; + return false; + } + }); + } else { + this.each(function() { + var instance = $.data( this, name ); + if ( instance ) { + instance.option( options || {} )._init(); + } else { + $.data( this, name, new object( options, this ) ); + } + }); + } + + return returnValue; + }; +}; + +$.Widget = function( options, element ) { + // allow instantiation without initializing for simple inheritance + if ( arguments.length ) { + this._createWidget( options, element ); + } +}; + +$.Widget.prototype = { + widgetName: "widget", + widgetEventPrefix: "", + options: { + disabled: false + }, + _createWidget: function( options, element ) { + // $.widget.bridge stores the plugin instance, but we do it anyway + // so that it's stored even before the _create function runs + $.data( element, this.widgetName, this ); + this.element = $( element ); + this.options = $.extend( true, {}, + this.options, + this._getCreateOptions(), + options ); + + var self = this; + this.element.bind( "remove." + this.widgetName, function() { + self.destroy(); + }); + + this._create(); + this._trigger( "create" ); + this._init(); + }, + _getCreateOptions: function() { + var options = {}; + if ( $.metadata ) { + options = $.metadata.get( element )[ this.widgetName ]; + } + return options; + }, + _create: function() {}, + _init: function() {}, + + destroy: function() { + this.element + .unbind( "." + this.widgetName ) + .removeData( this.widgetName ); + this.widget() + .unbind( "." + this.widgetName ) + .removeAttr( "aria-disabled" ) + .removeClass( + this.widgetBaseClass + "-disabled " + + "ui-state-disabled" ); + }, + + widget: function() { + return this.element; + }, + + option: function( key, value ) { + var options = key; + + if ( arguments.length === 0 ) { + // don't return a reference to the internal hash + return $.extend( {}, this.options ); + } + + if (typeof key === "string" ) { + if ( value === undefined ) { + return this.options[ key ]; + } + options = {}; + options[ key ] = value; + } + + this._setOptions( options ); + + return this; + }, + _setOptions: function( options ) { + var self = this; + $.each( options, function( key, value ) { + self._setOption( key, value ); + }); + + return this; + }, + _setOption: function( key, value ) { + this.options[ key ] = value; + + if ( key === "disabled" ) { + this.widget() + [ value ? "addClass" : "removeClass"]( + this.widgetBaseClass + "-disabled" + " " + + "ui-state-disabled" ) + .attr( "aria-disabled", value ); + } + + return this; + }, + + enable: function() { + return this._setOption( "disabled", false ); + }, + disable: function() { + return this._setOption( "disabled", true ); + }, + + _trigger: function( type, event, data ) { + var callback = this.options[ type ]; + + event = $.Event( event ); + event.type = ( type === this.widgetEventPrefix ? + type : + this.widgetEventPrefix + type ).toLowerCase(); + data = data || {}; + + // copy original event properties over to the new event + // this would happen if we could call $.event.fix instead of $.Event + // but we don't have a way to force an event to be fixed multiple times + if ( event.originalEvent ) { + for ( var i = $.event.props.length, prop; i; ) { + prop = $.event.props[ --i ]; + event[ prop ] = event.originalEvent[ prop ]; + } + } + + this.element.trigger( event, data ); + + return !( $.isFunction(callback) && + callback.call( this.element[0], event, data ) === false || + event.isDefaultPrevented() ); + } +}; + +})( jQuery ); +(function( $ ) { + +$.widget( "mobile.widget", { + _getCreateOptions: function() { + var elem = this.element, + options = {}; + $.each( this.options, function( option ) { + var value = elem.data( option.replace( /[A-Z]/g, function( c ) { + return "-" + c.toLowerCase(); + } ) ); + if ( value !== undefined ) { + options[ option ] = value; + } + }); + return options; + } +}); + +})( jQuery ); +/* +Possible additions: + scollTop + CSS Matrix +*/ + +// test whether a CSS media type or query applies +$.media = (function() { + // TODO: use window.matchMedia once at least one UA implements it + var cache = {}, + $html = $( "html" ), + testDiv = $( "
" ), + fakeBody = $( "" ).append( testDiv ); + + return function( query ) { + if ( !( query in cache ) ) { + var styleBlock = $( "" ); + $html.prepend( fakeBody ).prepend( styleBlock ); + cache[ query ] = testDiv.css( "position" ) === "absolute"; + fakeBody.add( styleBlock ).remove(); + } + return cache[ query ]; + }; +})(); + +var fakeBody = $( "" ).prependTo( "html" ), + fbCSS = fakeBody[0].style, + vendors = ['webkit','moz','o'], + webos = window.palmGetResource || window.PalmServiceBridge, //only used to rule out scrollTop + bb = window.blackberry; //only used to rule out box shadow, as it's filled opaque on BB + +//thx Modernizr +function propExists( prop ){ + var uc_prop = prop.charAt(0).toUpperCase() + prop.substr(1), + props = (prop + ' ' + vendors.join(uc_prop + ' ') + uc_prop).split(' '); + for(var v in props){ + if( fbCSS[ v ] !== undefined ){ + return true; + } + } +}; + +$.extend( $.support, { + orientation: "orientation" in window, + touch: "ontouchend" in document, + WebKitAnimationEvent: typeof WebKitTransitionEvent === "object", + pushState: !!history.pushState, + mediaquery: $.media('only all'), + cssPseudoElement: !!propExists('content'), + boxShadow: !!propExists('boxShadow') && !bb, + scrollTop: ("pageXOffset" in window || "scrollTop" in document.documentElement || "scrollTop" in fakeBody[0]) && !webos +}); + +fakeBody.remove(); + +//for ruling out shadows via css +if( !$.support.boxShadow ){ $('html').addClass('ui-mobile-nosupport-boxshadow'); }// add new event shortcuts +$.each( "touchstart touchmove touchend orientationchange tap taphold swipe swipeleft swiperight scrollstart scrollstop".split( " " ), function( i, name ) { + $.fn[ name ] = function( fn ) { + return fn ? this.bind( name, fn ) : this.trigger( name ); + }; + $.attrFn[ name ] = true; +}); + +var supportTouch = $.support.touch, + scrollEvent = "touchmove scroll", + touchStartEvent = supportTouch ? "touchstart" : "mousedown", + touchStopEvent = supportTouch ? "touchend" : "mouseup", + touchMoveEvent = supportTouch ? "touchmove" : "mousemove"; + +// also handles scrollstop +$.event.special.scrollstart = { + enabled: true, + + setup: function() { + var thisObject = this, + $this = $( thisObject ), + scrolling, + timer; + + function trigger( event, state ) { + scrolling = state; + var originalType = event.type; + event.type = scrolling ? "scrollstart" : "scrollstop"; + $.event.handle.call( thisObject, event ); + event.type = originalType; + } + + // iPhone triggers scroll after a small delay; use touchmove instead + $this.bind( scrollEvent, function( event ) { + if ( !$.event.special.scrollstart.enabled ) { + return; + } + + if ( !scrolling ) { + trigger( event, true ); + } + + clearTimeout( timer ); + timer = setTimeout(function() { + trigger( event, false ); + }, 50 ); + }); + } +}; + +// also handles taphold +$.event.special.tap = { + setup: function() { + var thisObject = this, + $this = $( thisObject ); + + $this + .bind( touchStartEvent, function( event ) { + if ( event.which && event.which !== 1 ) { + return; + } + + var moved = false, + touching = true, + originalType, + timer; + + function moveHandler() { + moved = true; + } + + timer = setTimeout(function() { + if ( touching && !moved ) { + originalType = event.type; + event.type = "taphold"; + $.event.handle.call( thisObject, event ); + event.type = originalType; + } + }, 750 ); + + $this + .one( touchMoveEvent, moveHandler) + .one( touchStopEvent, function( event ) { + $this.unbind( touchMoveEvent, moveHandler ); + clearTimeout( timer ); + touching = false; + + if ( !moved ) { + originalType = event.type; + event.type = "tap"; + $.event.handle.call( thisObject, event ); + event.type = originalType; + } + }); + }); + } +}; + +// also handles swipeleft, swiperight +$.event.special.swipe = { + setup: function() { + var thisObject = this, + $this = $( thisObject ); + + $this + .bind( touchStartEvent, function( event ) { + var data = event.originalEvent.touches ? + event.originalEvent.touches[ 0 ] : + event, + start = { + time: (new Date).getTime(), + coords: [ data.pageX, data.pageY ], + origin: $( event.target ) + }, + stop; + + function moveHandler( event ) { + if ( !start ) { + return; + } + + var data = event.originalEvent.touches ? + event.originalEvent.touches[ 0 ] : + event; + stop = { + time: (new Date).getTime(), + coords: [ data.pageX, data.pageY ] + }; + + // prevent scrolling + if ( Math.abs( start.coords[0] - stop.coords[0] ) > 10 ) { + event.preventDefault(); + } + } + + $this + .bind( touchMoveEvent, moveHandler ) + .one( touchStopEvent, function( event ) { + $this.unbind( touchMoveEvent, moveHandler ); + if ( start && stop ) { + if ( stop.time - start.time < 1000 && + Math.abs( start.coords[0] - stop.coords[0]) > 30 && + Math.abs( start.coords[1] - stop.coords[1]) < 20 ) { + start.origin + .trigger( "swipe" ) + .trigger( start.coords[0] > stop.coords[0] ? "swipeleft" : "swiperight" ); + } + } + start = stop = undefined; + }); + }); + } +}; + +$.event.special.orientationchange = { + orientation: function( elem ) { + return document.body && elem.width() / elem.height() < 1.1 ? "portrait" : "landscape"; + }, + + setup: function() { + var thisObject = this, + $this = $( thisObject ), + orientation = $.event.special.orientationchange.orientation( $this ); + + function handler() { + var newOrientation = $.event.special.orientationchange.orientation( $this ); + + if ( orientation !== newOrientation ) { + $.event.handle.call( thisObject, "orientationchange", { + orientation: newOrientation + } ); + orientation = newOrientation; + } + } + + if ( $.support.orientation ) { + thisObject.addEventListener( "orientationchange", handler, false ); + } else { + $this.bind( "resize", handler ); + } + } +}; + +$.each({ + scrollstop: "scrollstart", + taphold: "tap", + swipeleft: "swipe", + swiperight: "swipe" +}, function( event, sourceEvent ) { + $.event.special[ event ] = { + setup: function() { + $( this ).bind( sourceEvent, $.noop ); + } + }; +}); +/*! + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ + +// Script: jQuery hashchange event +// +// *Version: 1.3, Last updated: 7/21/2010* +// +// Project Home - http://benalman.com/projects/jquery-hashchange-plugin/ +// GitHub - http://github.com/cowboy/jquery-hashchange/ +// Source - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.js +// (Minified) - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.min.js (0.8kb gzipped) +// +// About: License +// +// Copyright (c) 2010 "Cowboy" Ben Alman, +// Dual licensed under the MIT and GPL licenses. +// http://benalman.com/about/license/ +// +// About: Examples +// +// These working examples, complete with fully commented code, illustrate a few +// ways in which this plugin can be used. +// +// hashchange event - http://benalman.com/code/projects/jquery-hashchange/examples/hashchange/ +// document.domain - http://benalman.com/code/projects/jquery-hashchange/examples/document_domain/ +// +// About: Support and Testing +// +// Information about what version or versions of jQuery this plugin has been +// tested with, what browsers it has been tested in, and where the unit tests +// reside (so you can test it yourself). +// +// jQuery Versions - 1.2.6, 1.3.2, 1.4.1, 1.4.2 +// Browsers Tested - Internet Explorer 6-8, Firefox 2-4, Chrome 5-6, Safari 3.2-5, +// Opera 9.6-10.60, iPhone 3.1, Android 1.6-2.2, BlackBerry 4.6-5. +// Unit Tests - http://benalman.com/code/projects/jquery-hashchange/unit/ +// +// About: Known issues +// +// While this jQuery hashchange event implementation is quite stable and +// robust, there are a few unfortunate browser bugs surrounding expected +// hashchange event-based behaviors, independent of any JavaScript +// window.onhashchange abstraction. See the following examples for more +// information: +// +// Chrome: Back Button - http://benalman.com/code/projects/jquery-hashchange/examples/bug-chrome-back-button/ +// Firefox: Remote XMLHttpRequest - http://benalman.com/code/projects/jquery-hashchange/examples/bug-firefox-remote-xhr/ +// WebKit: Back Button in an Iframe - http://benalman.com/code/projects/jquery-hashchange/examples/bug-webkit-hash-iframe/ +// Safari: Back Button from a different domain - http://benalman.com/code/projects/jquery-hashchange/examples/bug-safari-back-from-diff-domain/ +// +// Also note that should a browser natively support the window.onhashchange +// event, but not report that it does, the fallback polling loop will be used. +// +// About: Release History +// +// 1.3 - (7/21/2010) Reorganized IE6/7 Iframe code to make it more +// "removable" for mobile-only development. Added IE6/7 document.title +// support. Attempted to make Iframe as hidden as possible by using +// techniques from http://www.paciellogroup.com/blog/?p=604. Added +// support for the "shortcut" format $(window).hashchange( fn ) and +// $(window).hashchange() like jQuery provides for built-in events. +// Renamed jQuery.hashchangeDelay to and +// lowered its default value to 50. Added +// and properties plus document-domain.html +// file to address access denied issues when setting document.domain in +// IE6/7. +// 1.2 - (2/11/2010) Fixed a bug where coming back to a page using this plugin +// from a page on another domain would cause an error in Safari 4. Also, +// IE6/7 Iframe is now inserted after the body (this actually works), +// which prevents the page from scrolling when the event is first bound. +// Event can also now be bound before DOM ready, but it won't be usable +// before then in IE6/7. +// 1.1 - (1/21/2010) Incorporated document.documentMode test to fix IE8 bug +// where browser version is incorrectly reported as 8.0, despite +// inclusion of the X-UA-Compatible IE=EmulateIE7 meta tag. +// 1.0 - (1/9/2010) Initial Release. Broke out the jQuery BBQ event.special +// window.onhashchange functionality into a separate plugin for users +// who want just the basic event & back button support, without all the +// extra awesomeness that BBQ provides. This plugin will be included as +// part of jQuery BBQ, but also be available separately. + +(function($,window,undefined){ + '$:nomunge'; // Used by YUI compressor. + + // Reused string. + var str_hashchange = 'hashchange', + + // Method / object references. + doc = document, + fake_onhashchange, + special = $.event.special, + + // Does the browser support window.onhashchange? Note that IE8 running in + // IE7 compatibility mode reports true for 'onhashchange' in window, even + // though the event isn't supported, so also test document.documentMode. + doc_mode = doc.documentMode, + supports_onhashchange = 'on' + str_hashchange in window && ( doc_mode === undefined || doc_mode > 7 ); + + // Get location.hash (or what you'd expect location.hash to be) sans any + // leading #. Thanks for making this necessary, Firefox! + function get_fragment( url ) { + url = url || location.href; + return '#' + url.replace( /^[^#]*#?(.*)$/, '$1' ); + }; + + // Method: jQuery.fn.hashchange + // + // Bind a handler to the window.onhashchange event or trigger all bound + // window.onhashchange event handlers. This behavior is consistent with + // jQuery's built-in event handlers. + // + // Usage: + // + // > jQuery(window).hashchange( [ handler ] ); + // + // Arguments: + // + // handler - (Function) Optional handler to be bound to the hashchange + // event. This is a "shortcut" for the more verbose form: + // jQuery(window).bind( 'hashchange', handler ). If handler is omitted, + // all bound window.onhashchange event handlers will be triggered. This + // is a shortcut for the more verbose + // jQuery(window).trigger( 'hashchange' ). These forms are described in + // the section. + // + // Returns: + // + // (jQuery) The initial jQuery collection of elements. + + // Allow the "shortcut" format $(elem).hashchange( fn ) for binding and + // $(elem).hashchange() for triggering, like jQuery does for built-in events. + $.fn[ str_hashchange ] = function( fn ) { + return fn ? this.bind( str_hashchange, fn ) : this.trigger( str_hashchange ); + }; + + // Property: jQuery.fn.hashchange.delay + // + // The numeric interval (in milliseconds) at which the + // polling loop executes. Defaults to 50. + + // Property: jQuery.fn.hashchange.domain + // + // If you're setting document.domain in your JavaScript, and you want hash + // history to work in IE6/7, not only must this property be set, but you must + // also set document.domain BEFORE jQuery is loaded into the page. This + // property is only applicable if you are supporting IE6/7 (or IE8 operating + // in "IE7 compatibility" mode). + // + // In addition, the property must be set to the + // path of the included "document-domain.html" file, which can be renamed or + // modified if necessary (note that the document.domain specified must be the + // same in both your main JavaScript as well as in this file). + // + // Usage: + // + // jQuery.fn.hashchange.domain = document.domain; + + // Property: jQuery.fn.hashchange.src + // + // If, for some reason, you need to specify an Iframe src file (for example, + // when setting document.domain as in ), you can + // do so using this property. Note that when using this property, history + // won't be recorded in IE6/7 until the Iframe src file loads. This property + // is only applicable if you are supporting IE6/7 (or IE8 operating in "IE7 + // compatibility" mode). + // + // Usage: + // + // jQuery.fn.hashchange.src = 'path/to/file.html'; + + $.fn[ str_hashchange ].delay = 50; + /* + $.fn[ str_hashchange ].domain = null; + $.fn[ str_hashchange ].src = null; + */ + + // Event: hashchange event + // + // Fired when location.hash changes. In browsers that support it, the native + // HTML5 window.onhashchange event is used, otherwise a polling loop is + // initialized, running every milliseconds to + // see if the hash has changed. In IE6/7 (and IE8 operating in "IE7 + // compatibility" mode), a hidden Iframe is created to allow the back button + // and hash-based history to work. + // + // Usage as described in : + // + // > // Bind an event handler. + // > jQuery(window).hashchange( function(e) { + // > var hash = location.hash; + // > ... + // > }); + // > + // > // Manually trigger the event handler. + // > jQuery(window).hashchange(); + // + // A more verbose usage that allows for event namespacing: + // + // > // Bind an event handler. + // > jQuery(window).bind( 'hashchange', function(e) { + // > var hash = location.hash; + // > ... + // > }); + // > + // > // Manually trigger the event handler. + // > jQuery(window).trigger( 'hashchange' ); + // + // Additional Notes: + // + // * The polling loop and Iframe are not created until at least one handler + // is actually bound to the 'hashchange' event. + // * If you need the bound handler(s) to execute immediately, in cases where + // a location.hash exists on page load, via bookmark or page refresh for + // example, use jQuery(window).hashchange() or the more verbose + // jQuery(window).trigger( 'hashchange' ). + // * The event can be bound before DOM ready, but since it won't be usable + // before then in IE6/7 (due to the necessary Iframe), recommended usage is + // to bind it inside a DOM ready handler. + + // Override existing $.event.special.hashchange methods (allowing this plugin + // to be defined after jQuery BBQ in BBQ's source code). + special[ str_hashchange ] = $.extend( special[ str_hashchange ], { + + // Called only when the first 'hashchange' event is bound to window. + setup: function() { + // If window.onhashchange is supported natively, there's nothing to do.. + if ( supports_onhashchange ) { return false; } + + // Otherwise, we need to create our own. And we don't want to call this + // until the user binds to the event, just in case they never do, since it + // will create a polling loop and possibly even a hidden Iframe. + $( fake_onhashchange.start ); + }, + + // Called only when the last 'hashchange' event is unbound from window. + teardown: function() { + // If window.onhashchange is supported natively, there's nothing to do.. + if ( supports_onhashchange ) { return false; } + + // Otherwise, we need to stop ours (if possible). + $( fake_onhashchange.stop ); + } + + }); + + // fake_onhashchange does all the work of triggering the window.onhashchange + // event for browsers that don't natively support it, including creating a + // polling loop to watch for hash changes and in IE 6/7 creating a hidden + // Iframe to enable back and forward. + fake_onhashchange = (function(){ + var self = {}, + timeout_id, + + // Remember the initial hash so it doesn't get triggered immediately. + last_hash = get_fragment(), + + fn_retval = function(val){ return val; }, + history_set = fn_retval, + history_get = fn_retval; + + // Start the polling loop. + self.start = function() { + timeout_id || poll(); + }; + + // Stop the polling loop. + self.stop = function() { + timeout_id && clearTimeout( timeout_id ); + timeout_id = undefined; + }; + + // This polling loop checks every $.fn.hashchange.delay milliseconds to see + // if location.hash has changed, and triggers the 'hashchange' event on + // window when necessary. + function poll() { + var hash = get_fragment(), + history_hash = history_get( last_hash ); + + if ( hash !== last_hash ) { + history_set( last_hash = hash, history_hash ); + + $(window).trigger( str_hashchange ); + + } else if ( history_hash !== last_hash ) { + location.href = location.href.replace( /#.*/, '' ) + history_hash; + } + + timeout_id = setTimeout( poll, $.fn[ str_hashchange ].delay ); + }; + + // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + // vvvvvvvvvvvvvvvvvvv REMOVE IF NOT SUPPORTING IE6/7/8 vvvvvvvvvvvvvvvvvvv + // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + $.browser.msie && !supports_onhashchange && (function(){ + // Not only do IE6/7 need the "magical" Iframe treatment, but so does IE8 + // when running in "IE7 compatibility" mode. + + var iframe, + iframe_src; + + // When the event is bound and polling starts in IE 6/7, create a hidden + // Iframe for history handling. + self.start = function(){ + if ( !iframe ) { + iframe_src = $.fn[ str_hashchange ].src; + iframe_src = iframe_src && iframe_src + get_fragment(); + + // Create hidden Iframe. Attempt to make Iframe as hidden as possible + // by using techniques from http://www.paciellogroup.com/blog/?p=604. + iframe = $('