From ebf1e980217c7b60df26fdc83b8f3cfab48a973a Mon Sep 17 00:00:00 2001 From: planemad Date: Wed, 1 May 2013 04:27:44 +0530 Subject: [PATCH 01/10] Initital commit --- chaloBEST/templates/poster/.DS_Store | Bin 0 -> 6148 bytes .../_settings.scssc | Bin 0 -> 73229 bytes .../style.scssc | Bin 0 -> 6643 bytes chaloBEST/templates/poster/css/_settings.scss | 1192 ++ chaloBEST/templates/poster/css/app.scss | 45 + chaloBEST/templates/poster/css/main.css | 300 + chaloBEST/templates/poster/css/normalize.css | 527 + chaloBEST/templates/poster/css/normalize.scss | 402 + chaloBEST/templates/poster/css/style.css | 30 + chaloBEST/templates/poster/css/style.scss | 52 + chaloBEST/templates/poster/img/.gitignore | 0 .../templates/poster/javascripts/.DS_Store | Bin 0 -> 6148 bytes .../poster/javascripts/vendor/.DS_Store | Bin 0 -> 6148 bytes chaloBEST/templates/poster/js/.DS_Store | Bin 0 -> 6148 bytes chaloBEST/templates/poster/js/main.js | 1 + chaloBEST/templates/poster/js/plugins.js | 24 + .../templates/poster/stop-routes-poster.html | 227 + .../_settings.scssc | Bin 0 -> 72187 bytes .../app.scssc | Bin 0 -> 4686 bytes .../normalize.scssc | Bin 0 -> 29267 bytes .../_variables.scssc | Bin 0 -> 72187 bytes .../foundation.scssc | Bin 0 -> 4315 bytes .../_alert-boxes.scssc | Bin 0 -> 15301 bytes .../_block-grid.scssc | Bin 0 -> 8877 bytes .../_breadcrumbs.scssc | Bin 0 -> 14941 bytes .../_button-groups.scssc | Bin 0 -> 15274 bytes .../_buttons.scssc | Bin 0 -> 36583 bytes .../_clearing.scssc | Bin 0 -> 23147 bytes .../_custom-forms.scssc | Bin 0 -> 35385 bytes .../_dropdown-buttons.scssc | Bin 0 -> 19818 bytes .../_dropdown.scssc | Bin 0 -> 20603 bytes .../_flex-video.scssc | Bin 0 -> 5310 bytes .../_forms.scssc | Bin 0 -> 56608 bytes .../_global.scssc | Bin 0 -> 41878 bytes .../_grid.scssc | Bin 0 -> 24773 bytes .../_inline-lists.scssc | Bin 0 -> 6304 bytes .../_joyride.scssc | Bin 0 -> 26572 bytes .../_keystrokes.scssc | Bin 0 -> 7563 bytes .../_labels.scssc | Bin 0 -> 10897 bytes .../_magellan.scssc | Bin 0 -> 2512 bytes .../_orbit.scssc | Bin 0 -> 23902 bytes .../_pagination.scssc | Bin 0 -> 13716 bytes .../_panels.scssc | Bin 0 -> 12766 bytes .../_pricing-tables.scssc | Bin 0 -> 16385 bytes .../_progress-bars.scssc | Bin 0 -> 8904 bytes .../_reveal.scssc | Bin 0 -> 18087 bytes .../_section.scssc | Bin 0 -> 38912 bytes .../_side-nav.scssc | Bin 0 -> 7891 bytes .../_split-buttons.scssc | Bin 0 -> 26637 bytes .../_sub-nav.scssc | Bin 0 -> 8650 bytes .../_switch.scssc | Bin 0 -> 42612 bytes .../_tables.scssc | Bin 0 -> 9825 bytes .../_thumbs.scssc | Bin 0 -> 6750 bytes .../_tooltips.scssc | Bin 0 -> 14965 bytes .../_top-bar.scssc | Bin 0 -> 57434 bytes .../_type.scssc | Bin 0 -> 54372 bytes .../_visibility.scssc | Bin 0 -> 49318 bytes .../templates/poster/test/MIT-LICENSE.txt | 20 + chaloBEST/templates/poster/test/config.rb | 26 + chaloBEST/templates/poster/test/humans.txt | 8 + chaloBEST/templates/poster/test/index.html | 140 + .../foundation/foundation.alerts.js | 50 + .../foundation/foundation.clearing.js | 516 + .../foundation/foundation.cookie.js | 74 + .../foundation/foundation.dropdown.js | 159 + .../foundation/foundation.forms.js | 429 + .../foundation/foundation.joyride.js | 829 ++ .../test/javascripts/foundation/foundation.js | 401 + .../foundation/foundation.magellan.js | 130 + .../foundation/foundation.orbit.js | 373 + .../foundation/foundation.placeholder.js | 159 + .../foundation/foundation.reveal.js | 277 + .../foundation/foundation.section.js | 407 + .../foundation/foundation.tooltips.js | 200 + .../foundation/foundation.topbar.js | 245 + .../javascripts/vendor/custom.modernizr.js | 4 + .../poster/test/javascripts/vendor/jquery.js | 9597 +++++++++++++++++ .../poster/test/javascripts/vendor/zepto.js | 1884 ++++ chaloBEST/templates/poster/test/robots.txt | 4 + .../templates/poster/test/sass/_settings.scss | 1192 ++ chaloBEST/templates/poster/test/sass/app.scss | 45 + .../templates/poster/test/sass/normalize.scss | 402 + .../templates/poster/test/stylesheets/app.css | 5840 ++++++++++ .../poster/test/stylesheets/normalize.css | 413 + chaloBEST/templates/poster/vendor/.DS_Store | Bin 0 -> 6148 bytes .../poster/vendor/custom.modernizr.js | 4 + chaloBEST/templates/poster/vendor/d3/LICENSE | 26 + chaloBEST/templates/poster/vendor/d3/d3.v3.js | 7806 ++++++++++++++ .../templates/poster/vendor/d3/d3.v3.min.js | 4 + .../vendor/foundation-4/css/foundation.css | 3841 +++++++ .../foundation-4/css/foundation.min.css | 1 + .../vendor/foundation-4/css/normalize.css | 396 + .../poster/vendor/foundation-4/humans.txt | 8 + .../poster/vendor/foundation-4/img/.gitkeep | 1 + .../poster/vendor/foundation-4/index.html | 143 + .../vendor/foundation-4/js/foundation.min.js | 15 + .../js/foundation/foundation.alerts.js | 50 + .../js/foundation/foundation.clearing.js | 512 + .../js/foundation/foundation.cookie.js | 74 + .../js/foundation/foundation.dropdown.js | 139 + .../js/foundation/foundation.forms.js | 427 + .../js/foundation/foundation.joyride.js | 833 ++ .../foundation-4/js/foundation/foundation.js | 378 + .../js/foundation/foundation.magellan.js | 130 + .../js/foundation/foundation.orbit.js | 367 + .../js/foundation/foundation.placeholder.js | 159 + .../js/foundation/foundation.reveal.js | 272 + .../js/foundation/foundation.section.js | 291 + .../js/foundation/foundation.tooltips.js | 199 + .../js/foundation/foundation.topbar.js | 242 + .../js/vendor/custom.modernizr.js | 4 + .../vendor/foundation-4/js/vendor/jquery.js | 9597 +++++++++++++++++ .../vendor/foundation-4/js/vendor/zepto.js | 1884 ++++ .../poster/vendor/foundation-4/robots.txt | 4 + chaloBEST/templates/poster/vendor/jquery.js | 9597 +++++++++++++++++ .../poster/vendor/jquery/jquery.i18n.min.js | 4 + .../templates/poster/vendor/jquery/jquery.js | 4 + .../poster/vendor/leaflet/images/layers.png | Bin 0 -> 973 bytes .../vendor/leaflet/images/marker-icon.png | Bin 0 -> 1747 bytes .../vendor/leaflet/images/marker-icon@2x.png | Bin 0 -> 4033 bytes .../vendor/leaflet/images/marker-shadow.png | Bin 0 -> 797 bytes .../poster/vendor/leaflet/leaflet-src.js | 8339 ++++++++++++++ .../poster/vendor/leaflet/leaflet.css | 457 + .../poster/vendor/leaflet/leaflet.ie.css | 57 + .../poster/vendor/leaflet/leaflet.js | 8 + chaloBEST/templates/poster/vendor/zepto.js | 1884 ++++ 126 files changed, 74781 insertions(+) create mode 100644 chaloBEST/templates/poster/.DS_Store create mode 100644 chaloBEST/templates/poster/css/.sass-cache/53f7d6d6f30bd8642f02dfb0d3b1a756d852ec58/_settings.scssc create mode 100644 chaloBEST/templates/poster/css/.sass-cache/53f7d6d6f30bd8642f02dfb0d3b1a756d852ec58/style.scssc create mode 100644 chaloBEST/templates/poster/css/_settings.scss create mode 100644 chaloBEST/templates/poster/css/app.scss create mode 100755 chaloBEST/templates/poster/css/main.css create mode 100755 chaloBEST/templates/poster/css/normalize.css create mode 100644 chaloBEST/templates/poster/css/normalize.scss create mode 100644 chaloBEST/templates/poster/css/style.css create mode 100755 chaloBEST/templates/poster/css/style.scss create mode 100755 chaloBEST/templates/poster/img/.gitignore create mode 100644 chaloBEST/templates/poster/javascripts/.DS_Store create mode 100644 chaloBEST/templates/poster/javascripts/vendor/.DS_Store create mode 100644 chaloBEST/templates/poster/js/.DS_Store create mode 100755 chaloBEST/templates/poster/js/main.js create mode 100755 chaloBEST/templates/poster/js/plugins.js create mode 100755 chaloBEST/templates/poster/stop-routes-poster.html create mode 100644 chaloBEST/templates/poster/test/.sass-cache/3e7b873473e622432962155175dc5182d706021e/_settings.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/3e7b873473e622432962155175dc5182d706021e/app.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/3e7b873473e622432962155175dc5182d706021e/normalize.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/64ce552eeceb2858911b452c9816742834355c70/_variables.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/a395424642730ba8a0bd4b9fac978b407c791f0b/foundation.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_alert-boxes.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_block-grid.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_breadcrumbs.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_button-groups.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_buttons.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_clearing.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_custom-forms.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_dropdown-buttons.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_dropdown.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_flex-video.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_forms.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_global.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_grid.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_inline-lists.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_joyride.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_keystrokes.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_labels.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_magellan.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_orbit.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_pagination.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_panels.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_pricing-tables.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_progress-bars.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_reveal.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_section.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_side-nav.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_split-buttons.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_sub-nav.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_switch.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_tables.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_thumbs.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_tooltips.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_top-bar.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_type.scssc create mode 100644 chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_visibility.scssc create mode 100644 chaloBEST/templates/poster/test/MIT-LICENSE.txt create mode 100644 chaloBEST/templates/poster/test/config.rb create mode 100644 chaloBEST/templates/poster/test/humans.txt create mode 100644 chaloBEST/templates/poster/test/index.html create mode 100644 chaloBEST/templates/poster/test/javascripts/foundation/foundation.alerts.js create mode 100644 chaloBEST/templates/poster/test/javascripts/foundation/foundation.clearing.js create mode 100644 chaloBEST/templates/poster/test/javascripts/foundation/foundation.cookie.js create mode 100644 chaloBEST/templates/poster/test/javascripts/foundation/foundation.dropdown.js create mode 100644 chaloBEST/templates/poster/test/javascripts/foundation/foundation.forms.js create mode 100644 chaloBEST/templates/poster/test/javascripts/foundation/foundation.joyride.js create mode 100644 chaloBEST/templates/poster/test/javascripts/foundation/foundation.js create mode 100644 chaloBEST/templates/poster/test/javascripts/foundation/foundation.magellan.js create mode 100644 chaloBEST/templates/poster/test/javascripts/foundation/foundation.orbit.js create mode 100644 chaloBEST/templates/poster/test/javascripts/foundation/foundation.placeholder.js create mode 100644 chaloBEST/templates/poster/test/javascripts/foundation/foundation.reveal.js create mode 100644 chaloBEST/templates/poster/test/javascripts/foundation/foundation.section.js create mode 100644 chaloBEST/templates/poster/test/javascripts/foundation/foundation.tooltips.js create mode 100644 chaloBEST/templates/poster/test/javascripts/foundation/foundation.topbar.js create mode 100644 chaloBEST/templates/poster/test/javascripts/vendor/custom.modernizr.js create mode 100644 chaloBEST/templates/poster/test/javascripts/vendor/jquery.js create mode 100644 chaloBEST/templates/poster/test/javascripts/vendor/zepto.js create mode 100644 chaloBEST/templates/poster/test/robots.txt create mode 100644 chaloBEST/templates/poster/test/sass/_settings.scss create mode 100644 chaloBEST/templates/poster/test/sass/app.scss create mode 100644 chaloBEST/templates/poster/test/sass/normalize.scss create mode 100644 chaloBEST/templates/poster/test/stylesheets/app.css create mode 100644 chaloBEST/templates/poster/test/stylesheets/normalize.css create mode 100644 chaloBEST/templates/poster/vendor/.DS_Store create mode 100644 chaloBEST/templates/poster/vendor/custom.modernizr.js create mode 100644 chaloBEST/templates/poster/vendor/d3/LICENSE create mode 100644 chaloBEST/templates/poster/vendor/d3/d3.v3.js create mode 100644 chaloBEST/templates/poster/vendor/d3/d3.v3.min.js create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/css/foundation.css create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/css/foundation.min.css create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/css/normalize.css create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/humans.txt create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/img/.gitkeep create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/index.html create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/js/foundation.min.js create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/js/foundation/foundation.alerts.js create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/js/foundation/foundation.clearing.js create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/js/foundation/foundation.cookie.js create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/js/foundation/foundation.dropdown.js create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/js/foundation/foundation.forms.js create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/js/foundation/foundation.joyride.js create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/js/foundation/foundation.js create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/js/foundation/foundation.magellan.js create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/js/foundation/foundation.orbit.js create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/js/foundation/foundation.placeholder.js create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/js/foundation/foundation.reveal.js create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/js/foundation/foundation.section.js create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/js/foundation/foundation.tooltips.js create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/js/foundation/foundation.topbar.js create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/js/vendor/custom.modernizr.js create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/js/vendor/jquery.js create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/js/vendor/zepto.js create mode 100644 chaloBEST/templates/poster/vendor/foundation-4/robots.txt create mode 100644 chaloBEST/templates/poster/vendor/jquery.js create mode 100644 chaloBEST/templates/poster/vendor/jquery/jquery.i18n.min.js create mode 100644 chaloBEST/templates/poster/vendor/jquery/jquery.js create mode 100755 chaloBEST/templates/poster/vendor/leaflet/images/layers.png create mode 100755 chaloBEST/templates/poster/vendor/leaflet/images/marker-icon.png create mode 100755 chaloBEST/templates/poster/vendor/leaflet/images/marker-icon@2x.png create mode 100755 chaloBEST/templates/poster/vendor/leaflet/images/marker-shadow.png create mode 100755 chaloBEST/templates/poster/vendor/leaflet/leaflet-src.js create mode 100755 chaloBEST/templates/poster/vendor/leaflet/leaflet.css create mode 100755 chaloBEST/templates/poster/vendor/leaflet/leaflet.ie.css create mode 100755 chaloBEST/templates/poster/vendor/leaflet/leaflet.js create mode 100644 chaloBEST/templates/poster/vendor/zepto.js diff --git a/chaloBEST/templates/poster/.DS_Store b/chaloBEST/templates/poster/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 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 literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/css/.sass-cache/53f7d6d6f30bd8642f02dfb0d3b1a756d852ec58/style.scssc b/chaloBEST/templates/poster/css/.sass-cache/53f7d6d6f30bd8642f02dfb0d3b1a756d852ec58/style.scssc new file mode 100644 index 0000000000000000000000000000000000000000..310614ce8c64bb88a9239a519161b26f9fcebcd7 GIT binary patch literal 6643 zcmcIo-A?037N*fCBzAy?frjoGw!MLF!Zv0?0t{5CTUJlcNRf70qXq4ca)F$vWHg4xQG1>!^9rJUKXF7mcHy_C?tz&rj_zB;+h$ zjF3P0e)Q3Im_`1G7 ziIl!SqovLaoENd-$h9NZAe!ZJkMR`7R41Ghhy$PZxc%F0m>Bzw=!`sL-Vbh-gPq5Z+Ws8OZsQ ze-Nz?mhrenDqWQQ9noxeG_ZLIn3RzTT~$2AYeA7e@+8D>C`&c)#~uh8E6fi1 zVW-@gOKhxUQWhxVrpnJOh{TR(7VZwho)7Y!OS2?jQJe;xMSmlA4gBC20r@2yk-X%I z^uTubI8w}d76WM{7 zl^i&VVk)FUwK~_^wNjos!BGSS1_A1-nE|wph|zsXK0OX z#?n?Z(t_q!%uCkLo}qb)E$l?8zMzqG)7LH_yJ12nR14ean-<-;?H>uV9&D{(ZL z5Dy-Ng>d7IPALrn-5x@~iQqy1%D$%ltxfXpMfC6TVVY%xdsAV4NLR}_%L~S-u^wa! z?)J0*_G!jgaQ50=*P4>SQh~uzp23TPH%yF~&w*Gj@K}y5wn(>fM$*H9?f92>ZKL%t z@rrdYP3BEl<{4&Wx^`2c>-?BLhu;hMeI+vQs$f;>K#EuPSc!FZWoFnd`D87h>wnL~ z2oCO4d@54g%p}u46Q<7;n3%Y9Kk-s!ViXfKk{DShyF#hcPb*c4!fAwj|OiKc8w1_U_I;_-<~vf4beKi z-QE(ByuDMyV8&8kpVZ>?!(7ms9}x1L zKOEYp?5|_y^;j7?*CE697+T<@bv#Xo6uI+Cf9+$uo*t#cnE} zjyA*^9<8dvn=0K!X};Wq>K!rDg_Qixg}e^UIqo%mx+kH~1_CepbU%J?#y}R+ono8L zU(!~)reMH}_2ggBxV*!!$#(K}QGegNYzRIIeW>Vfr4W#6v9T68wgI}3r%iYeZH7Vv z+OeUvy%z;2QlU7A`DM2pBBxpw1iV5c*1%|UPuhmAH{f)%oh1Vi$mWhc6|vQ zHw<`jSGXyo?&!hpDK20WyZ$ZAkGbKCew&=WB~Mo+d9`czKJ`V51`V1j^+}hMAIqTX ziG_1Dr=ct9{8ho7UgcTnLztkrC$tU+i;4yVP*U1w;$h`Aid_PC0yh_VM^OBGQi&F% z6|Q=47slVt8XsP)S%St_Pr})hW;5MF8i|(!9x=gw zawKj`VtBD;Kcd9yDVIDZNnF`v>>+{cLg9FzOdUcS$z$zK zLYW&+1xJw!EN`+{;KiElA{O;j>gZ`Ayw|T~O8gwGU1^6$#o)yD)GYQWnGiJP;mT18 z@gW7QLdRmr!REfKy_Y|xIr&5Y4{IQ@Sk4^mDy_duSXkRcVhFwuV2 zMDSwG{tZo}o^k=Qf2KZ$%3Bj2koGpdY9eY61=_olJCY-ZTeU4upTCw-v=8vOEy%C#KI&U?U?&*bI~lnZ zp!oY_DM2W?U3|_9HQ|6;4Y0;~l=F67&H%*NY>7Xqy24OS3^0m;=?7DX+>vLfCbs)1 z)0yr*igX4d#{Xl)L3!n{LX2O3KA{?@7AFeh#*i6@7^20d27XBUUg(%_G)j`FeDOo0Q6G+vl+(P1g R=mZ3CD>AbV(}_&s{{h4$rHKFl literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/css/_settings.scss b/chaloBEST/templates/poster/css/_settings.scss new file mode 100644 index 0000000..eca9300 --- /dev/null +++ b/chaloBEST/templates/poster/css/_settings.scss @@ -0,0 +1,1192 @@ +// +// Foundation Variables +// + +//// The default font-size is set to 100% of the browser style sheet (usually 16px) +//// for compatibility with brower-based text zoom or user-set defaults. +$base-font-size: 100% !default; + +//// $base-line-height is 24px while $base-font-size is 16px +//// $base-line-height: 150%; + +//// This is the default html and body font-size for the base em value. + +//// Since the typical default browser font-size is 16px, that makes the calculation for grid size. +//// If you want your base font-size to be a different size and not have it effect grid size too, +//// set the value of $em-base to $base-font-size ($em-base: $base-font-size;) +$em-base: 16px !default; + +//// Working in ems is annoying. Think in pixels by using this handy function, emCalc(#px) +@function emCalc($pxWidth) { + @return $pxWidth / $em-base * 1em; +} + +//// Various global styles + +// $body-bg: #fff; +// $body-font-color: #222; +// $body-font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; +// $body-font-weight: normal; +// $body-font-style: normal; + +//// Font-smoothing + +// $font-smoothing: antialiased; + +//// Text direction settings + +// $text-direction: ltr; + +//// Colors + +// $primary-color: #2ba6cb; +// $secondary-color: #e9e9e9; +// $alert-color: #c60f13; +// $success-color: #5da423; + +//// Make sure border radius matches unless we want it different. + +// $global-radius: 3px; +// $global-rounded: 1000px; + +//// Inset shadow shiny edges and depressions. + +// $shiny-edge-size: 0 1px 0; +// $shiny-edge-color: rgba(#fff, .5); +// $shiny-edge-active-color: rgba(#000, .2); + +//// Control whether or not CSS classes come through in the CSS files. + +// $include-html-classes: true; +// $include-print-styles: true; +// $include-html-grid-classes: $include-html-classes; +// $include-html-visibility-classes: $include-html-classes; +// $include-html-button-classes: $include-html-classes; +// $include-html-form-classes: $include-html-classes; +// $include-html-media-classes: $include-html-classes; +// $include-html-section-classes: $include-html-classes; +// $include-html-reveal-classes: $include-html-classes; +// $include-html-alert-classes: $include-html-classes; +// $include-html-nav-classes: $include-html-classes; +// $include-html-label-classes: $include-html-classes; +// $include-html-panel-classes: $include-html-classes; +// $include-html-pricing-classes: $include-html-classes; +// $include-html-progress-classes: $include-html-classes; +// $include-html-magellan-classes: $include-html-classes; + +//// Media Queries + +// $small-screen: emCalc(768px); +// $medium-screen: emCalc(1280px); +// $large-screen: emCalc(1440px); + +// $screen: "only screen"; +// $small: "only screen and (min-width:"#{$small-screen}")"; +// $medium: "only screen and (min-width:"#{$medium-screen}")"; +// $large: "only screen and (min-width:"#{$large-screen}")"; +// $landscape: "only screen and (orientation: landscape)"; +// $portrait: "only screen and (orientation: portrait)"; + +// +// Grid Variables +// + +// $row-width: emCalc(1000px); +// $column-gutter: emCalc(30px); +// $total-columns: 12; + +// +// Block Grid Variables +// + +//// Maximum number of block grid elements per row + +// $block-grid-elements: 12; +// $block-grid-default-spacing: 10px; + +//// Enables media queries for block-grid classes. Set to false if writing semantic HTML. + +// $block-grid-media-queries: true; + +// +// Typography Variables +// + +//// Heading font styles + +// $header-font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; +// $header-font-weight: bold; +// $header-font-style: normal; +// $header-font-color: #222; +// $header-line-height: 1.4; +// $header-top-margin: .2em; +// $header-bottom-margin: .5em; +// $header-text-rendering: optimizeLegibility; + +//// Heading font sizes + +// $h1-font-size: emCalc(44px); +// $h2-font-size: emCalc(37px); +// $h3-font-size: emCalc(27px); +// $h4-font-size: emCalc(23px); +// $h5-font-size: emCalc(18px); +// $h6-font-size: 1em; + +//// Subheaders + +// $subheader-line-height: 1.4; +// $subheader-font-color: lighten($header-font-color, 30%); +// $subheader-font-weight: 300; +// $subheader-top-margin: .2em; +// $subheader-bottom-margin: .5em; + +//// styling + +// $small-font-size: 60%; +// $small-font-color: lighten($header-font-color, 30%); + +//// Paragraphs + +// $paragraph-font-family: inherit; +// $paragraph-font-weight: normal; +// $paragraph-font-size: 1em; +// $paragraph-line-height: 1.6; +// $paragraph-margin-bottom: emCalc(20px); +// $paragraph-aside-font-size: emCalc(14px); +// $paragraph-aside-line-height: 1.35; +// $paragraph-aside-font-style: italic; + +//// tags + +// $code-color: darken($alert-color, 15%); +// $code-font-family: Consolas, 'Liberation Mono', Courier, monospace; +// $code-font-weight: bold; + +//// Anchors + +// $anchor-text-decoration: none; +// $anchor-font-color: $primary-color; +// $anchor-font-color-hover: darken($primary-color, 5%); + +////
element + +// $hr-border-width: 1px; +// $hr-border-style: solid; +// $hr-border-color: #ddd; +// $hr-margin: emCalc(20px); + +//// Lists + +// $list-style-position: outside; +// $list-side-margin: emCalc(18px); +// $definition-list-header-weight: bold; +// $definition-list-header-margin-bottom: .3em; +// $definition-list-margin-bottom: emCalc(12px); + +//// Blockquotes + +// $blockquote-font-color: lighten($header-font-color, 30%); +// $blockquote-padding: emCalc(9px) emCalc(20px) 0 emCalc(19px); +// $blockquote-border: 1px solid #ddd; +// $blockquote-cite-font-size: emCalc(13px); +// $blockquote-cite-font-color: lighten($header-font-color, 20%); +// $blockquote-cite-link-color: $blockquote-cite-font-color; + +//// Acronym + +// $acronym-underline: 1px dotted #ddd; + +//// Padding and margin + +// $microformat-padding: emCalc(10px) emCalc(12px); +// $microformat-margin: 0 0 emCalc(20px) 0; + +//// Border styles + +// $microformat-border-width: 1px; +// $microformat-border-style: solid; +// $microformat-border-color: #ddd; + +//// Full name font styles + +// $microformat-fullname-font-weight: bold; +// $microformat-fullname-font-size: emCalc(15px); + +//// Summary font styles + +// $microformat-summary-font-weight: bold; + +//// padding + +// $microformat-abbr-padding: 0 emCalc(1px); + +//// font styles + +// $microformat-abbr-font-weight: bold; +// $microformat-abbr-font-decoration: none; + +// +// Form Variables +// + +//// Base for lots of form spacing and positioning styles + +// $form-spacing: emCalc(16px); + +//// Labels + +// $label-pointer: pointer; +// $label-font-size: emCalc(14px); +// $label-font-weight: 500; +// $label-font-color: lighten(#000, 30%); +// $label-bottom-margin: emCalc(3px); +// $input-font-family: inherit; +// $input-font-color: rgba(0,0,0,0.75); +// $input-font-size: emCalc(14px); +// $input-bg-color: #fff; +// $input-focus-bg-color: darken(#fff, 2%); +// $input-border-color: darken(#fff, 20%); +// $input-focus-border-color: darken(#fff, 40%); +// $input-border-style: solid; +// $input-border-width: 1px; +// $input-disabled-bg: #ddd; +// $input-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1); + +//// Fieldset border and spacing. + +// $fieldset-border-style: solid; +// $fieldset-border-width: 1px; +// $fieldset-border-color: #ddd; +// $fieldset-padding: emCalc(20px); +// $fieldset-margin: emCalc(18px) 0; + +//// Legends + +// $legend-bg: #fff; +// $legend-font-weight: bold; +// $legend-padding: 0 emCalc(3px); + +//// Prefix and postfix input elements + +// $input-prefix-bg: darken(#fff, 5%); +// $input-prefix-border-color: darken(#fff, 20%); +// $input-prefix-border-size: 1px; +// $input-prefix-border-type: solid; +// $input-prefix-overflow: hidden; +// $input-prefix-font-color: #333; +// $input-prefix-font-color-alt: #fff; + +//// Error states for inputs and labels + +// $input-error-message-padding: emCalc(6px) emCalc(4px); +// $input-error-message-top: -($form-spacing) - emCalc(5px); +// $input-error-message-font-size: emCalc(12px); +// $input-error-message-font-weight: bold; +// $input-error-message-font-color: #fff; +// $input-error-message-font-color-alt: #333; + +//// Padding for buttons. + +// $button-tny: emCalc(7px); +// $button-sml: emCalc(9px); +// $button-med: emCalc(12px); +// $button-lrg: emCalc(16px); + +//// Display property. + +// $button-display: inline-block; +// $button-margin-bottom: emCalc(20px); + +//// Button text styles. + +// $button-font-family: inherit; +// $button-font-color: #fff; +// $button-font-color-alt: #333; +// $button-font-med: emCalc(16px); +// $button-font-tny: emCalc(11px); +// $button-font-sml: emCalc(13px); +// $button-font-lrg: emCalc(20px); +// $button-font-weight: bold; +// $button-font-align: center; + +//// Various hover effects. + +// $button-function-factor: 10%; + +//// Button border styles. + +// $button-border-width: 1px; +// $button-border-style: solid; +// $button-border-color: darken($primary-color, $button-function-factor); + +//// Radius used throughout the core. + +// $button-radius: $global-radius; + +//// Opacity for disabled buttons. + +// $button-disabled-opacity: 0.6; + +// +// Dropdown Button Variables +// + +// Color of the pip in dropdown buttons + +// $dropdown-button-pip-color: #fff; +// $dropdown-button-pip-color-alt: #333; + +//// Tiny dropdown buttons + +// $dropdown-button-padding-tny: $button-tny * 5; +// $dropdown-button-pip-size-tny: $button-tny; +// $dropdown-button-pip-right-tny: $button-tny * 2; +// $dropdown-button-pip-top-tny: -$button-tny / 2 + emCalc(1px); + +//// Small dropdown buttons + +// $dropdown-button-padding-sml: $button-sml * 5; +// $dropdown-button-pip-size-sml: $button-sml; +// $dropdown-button-pip-right-sml: $button-sml * 2; +// $dropdown-button-pip-top-sml: -$button-sml / 2 + emCalc(1px); + +//// Medium dropdown buttons + +// $dropdown-button-padding-med: $button-med * 4 + emCalc(3px); +// $dropdown-button-pip-size-med: $button-med - emCalc(3px); +// $dropdown-button-pip-right-med: $button-med * 2; +// $dropdown-button-pip-top-med: -$button-med / 2 + emCalc(2px); + +//// Large dropdown buttons + +// $dropdown-button-padding-lrg: $button-lrg * 4; +// $dropdown-button-pip-size-lrg: $button-lrg - emCalc(6px); +// $dropdown-button-pip-right-lrg: $button-lrg + emCalc(12px); +// $dropdown-button-pip-top-lrg: -$button-lrg / 2 + emCalc(3px); + +// +// Split Button Variables +// + +//// Shared styles for Split Buttons + +// $split-button-function-factor: 15%; +// $split-button-pip-color: #fff; +// $split-button-pip-color-alt: #333; +// $split-button-active-bg-tint: rgba(0,0,0,0.1); + +//// Tiny split buttons + +// $split-button-padding-tny: $button-tny * 9; +// $split-button-span-width-tny: $button-tny * 6.5; +// $split-button-pip-size-tny: $button-tny; +// $split-button-pip-top-tny: $button-tny * 2; +// $split-button-pip-left-tny: emCalc(-5px); + +//// Small split buttons + +// $split-button-padding-sml: $button-sml * 7; +// $split-button-span-width-sml: $button-sml * 5; +// $split-button-pip-size-sml: $button-sml; +// $split-button-pip-top-sml: $button-sml * 1.5; +// $split-button-pip-left-sml: emCalc(-9px); + +//// Medium split buttons + +// $split-button-padding-med: $button-med * 6.4; +// $split-button-span-width-med: $button-med * 4; +// $split-button-pip-size-med: $button-med - emCalc(3px); +// $split-button-pip-top-med: $button-med * 1.5; +// $split-button-pip-left-med: emCalc(-9px); + +//// Large split buttons + +// $split-button-padding-lrg: $button-lrg * 6; +// $split-button-span-width-lrg: $button-lrg * 3.75; +// $split-button-pip-size-lrg: $button-lrg - emCalc(6px); +// $split-button-pip-top-lrg: $button-lrg + emCalc(5px); +// $split-button-pip-left-lrg: emCalc(-9px); + +// +// Alert Variables +// + +//// Alert padding. + +// $alert-padding-top: emCalc(11px); +// $alert-padding-left: $alert-padding-top; +// $alert-padding-right: $alert-padding-top + emCalc(10px); +// $alert-padding-bottom: $alert-padding-top + emCalc(1px); + +//// Text style. + +// $alert-font-weight: bold; +// $alert-font-size: emCalc(14px); +// $alert-font-color: #fff; +// $alert-font-color-alt: darken($secondary-color, 60%); + +//// Close hover effect. + +// $alert-function-factor: 10%; + +//// Border styles. + +// $alert-border-style: solid; +// $alert-border-width: 1px; +// $alert-border-color: darken($primary-color, $alert-function-factor); +// $alert-bottom-margin: emCalc(20px); + +//// Close buttons + +// $alert-close-color: #333; +// $alert-close-position: emCalc(5px); +// $alert-close-font-size: emCalc(22px); +// $alert-close-opacity: 0.3; +// $alert-close-opacity-hover: 0.5; +// $alert-close-padding: 5px 4px 4px; + +//// Border radius + +// $alert-radius: $global-radius; + +// +// Breadcrumb Variables +// + +//// Background color for the breadcrumb container. + +// $crumb-bg: lighten($secondary-color, 5%); + +//// Padding around the breadcrumbs. + +// $crumb-padding: emCalc(6px) emCalc(14px) emCalc(9px); +// $crumb-side-padding: emCalc(12px); + +//// Border styles. + +// $crumb-function-factor: 10%; +// $crumb-border-size: 1px; +// $crumb-border-style: solid; +// $crumb-border-color: darken($crumb-bg, $crumb-function-factor); +// $crumb-radius: $global-radius; + +//// Various text styles for breadcrumbs. + +// $crumb-font-size: emCalc(11px); +// $crumb-font-color: $primary-color; +// $crumb-font-color-current: #333; +// $crumb-font-color-unavailable: #999; +// $crumb-font-transform: uppercase; +// $crumb-link-decor: underline; + +//// Slash between breadcrumbs + +// $crumb-slash-color: #aaa; +// $crumb-slash: "/"; + +// +// Clearing Variables +// + +//// Background colors for parts of Clearing. + +// $clearing-bg: #111; +// $clearing-caption-bg: $clearing-bg; +// $clearing-carousel-bg: #111; +// $clearing-img-bg: $clearing-bg; + +//// Close button + +// $clearing-close-color: #fff; +// $clearing-close-size: 40px; + +//// Style the arrows + +// $clearing-arrow-size: 16px; +// $clearing-arrow-color: $clearing-close-color; + +//// Style captions + +// $clearing-caption-font-color: #fff; +// $clearing-caption-padding: 10px 30px; + +//// Make the image and carousel height and style + +// $clearing-active-img-height: 75%; +// $clearing-carousel-height: 150px; +// $clearing-carousel-thumb-width: 175px; +// $clearing-carousel-thumb-active-border: 4px solid rgb(255,255,255); + +// +// Custom Form Variables +// + +//// Basic form styles input styles + +// $custom-form-border-color: #ccc; +// $custom-form-bg: #fff; +// $custom-form-bg-disabled: #ddd; +// $custom-form-check-color: #222; + +//// Custom select form element. + +// $custom-select-bg: #fff; +// $custom-select-fade-to-color: #f3f3f3; +// $custom-select-border-color: #ddd; +// $custom-select-triangle-color: #aaa; +// $custom-select-triangle-color-open: #222; +// $custom-select-height: emCalc(13px) + ($form-spacing * 1.5); +// $custom-select-margin-bottom: emCalc(20px); +// $custom-select-font-color-selected: #141414; +// $custom-select-disabled-color: #888; + +//// Custom select dropdown element. + +// $custom-dropdown-height: 200px; +// $custom-dropdown-bg: #fff; +// $custom-dropdown-border-color: darken(#fff, 20%); +// $custom-dropdown-border-width: 1px; +// $custom-dropdown-border-style: solid; +// $custom-dropdown-font-color: #555; +// $custom-dropdown-font-size: emCalc(14px); +// $custom-dropdown-color-selected: #eeeeee; +// $custom-dropdown-font-color-selected: #000; +// $custom-dropdown-shadow: 0 2px 2px 0px rgba(0,0,0,0.1); +// $custom-dropdown-offset-top: none; +// $custom-dropdown-list-padding: emCalc(4px); +// $custom-dropdown-left-padding: emCalc(6px); +// $custom-dropdown-right-padding: emCalc(38px); +// $custom-dropdown-list-item-min-height: emCalc(24px); + +// +// Dropdown Variables +// + +//// Height and width styles. + +// $f-dropdown-max-width: 200px; +// $f-dropdown-height: auto; +// $f-dropdown-max-height: none; +// $f-dropdown-margin-top: 2px; + +//// Background color + +// $f-dropdown-bg: #fff; + +//// Border styles for dropdowns. + +// $f-dropdown-border-style: solid; +// $f-dropdown-border-width: 1px; +// $f-dropdown-border-color: darken(#fff, 20%); + +//// Triangle pip. + +// $f-dropdown-triangle-size: 6px; +// $f-dropdown-triangle-color: #fff; +// $f-dropdown-triangle-side-offset: 10px; + +//// List elements. + +// $f-dropdown-list-style: none; +// $f-dropdown-font-color: #555; +// $f-dropdown-font-size: emCalc(14px); +// $f-dropdown-list-padding: emCalc(5px) emCalc(10px); +// $f-dropdown-line-height: emCalc(18px); +// $f-dropdown-list-hover-bg: #eeeeee; +// $dropdown-mobile-left: 0; + +//// When the dropdown has custom content. + +// $f-dropdown-content-padding: emCalc(20px); + +// +// Flex Video Variables +// + +//// Video container padding and margins + +// $flex-video-padding-top: emCalc(25px); +// $flex-video-padding-bottom: 67.5%; +// $flex-video-margin-bottom: emCalc(16px); + +//// Widescreen bottom padding + +// $flex-video-widescreen-padding-bottom: 57.25%; + +// +// Inline List Variables +// + +//// Margins and padding of the inline list. + +// $inline-list-margin-bottom: emCalc(17px) emCalc(-22px ); +// $inline-list-margin: 0 0; +// $inline-list-padding: 0; + +//// Overflow of the inline list. + +// $inline-list-overflow: hidden; + +//// List items + +// $inline-list-display: block; + +//// Elments within list items + +// $inline-list-children-display: block; + +// +// Joyride Variables +// + +//// Joyride styles + +// $joyride-tip-bg: rgb(0,0,0); +// $joyride-tip-default-width: 300px; +// $joyride-tip-padding: emCalc(18px) emCalc(20px) emCalc(24px); +// $joyride-tip-border: solid 1px #555; +// $joyride-tip-radius: 4px; +// $joyride-tip-position-offset: 22px; + +//// Tip font styles + +// $joyride-tip-font-color: #fff; +// $joyride-tip-font-size: emCalc(14px); +// $joyride-tip-header-weight: bold; + +//// Changes the nub size + +// $joyride-tip-nub-size: 14px; + +//// Adjusts the styles for the timer when its enabled + +// $joyride-tip-timer-width: 50px; +// $joyride-tip-timer-height: 3px; +// $joyride-tip-timer-color: #666; + +//// Changes up the styles for the close button + +// $joyride-tip-close-color: #777; +// $joyride-tip-close-size: 30px; +// $joyride-tip-close-weight: normal; + +//// When Joyride is filling the screen, style for the bg + +// $joyride-screenfill: rgba(0,0,0,0.5); + +// +// Keystroke Variables +// + +//// Text styles. + +// $keystroke-font: "Consolas", "Menlo", "Courier", monospace; +// $keystroke-font-size: emCalc(15px); +// $keystroke-font-color: #222; +// $keystroke-font-color-alt: #fff; +// $keystroke-function-factor: 7%; + +//// Keystroke padding. + +// $keystroke-padding: emCalc(2px) emCalc(4px) emCalc(0px); + +//// Background and border styles. + +// $keystroke-bg: darken(#fff, $keystroke-function-factor); +// $keystroke-border-style: solid; +// $keystroke-border-width: 1px; +// $keystroke-border-color: darken($keystroke-bg, $keystroke-function-factor); +// $keystroke-radius: $global-radius; + +// +// Label Variables +// + +//// Style the labels + +// $label-padding: emCalc(3px) emCalc(10px) emCalc(4px); +// $label-radius: $global-radius; + +//// We use these to style the label text + +// $label-font-sizing: emCalc(14px); +// $label-font-weight: bold; +// $label-font-color: #333; +// $label-font-color-alt: #fff; + +// +// Magellan Variables +// + +//// Basic visual styles + +// $magellan-bg: #fff; +// $magellan-padding: 10px; + +// +// Orbit Settings +// + +//// Caption styles + +// $orbit-container-bg: #f5f5f5; +// $orbit-caption-bg-old-browser: #000; +// $orbit-caption-bg-old: rgb(0,0,0); +// $orbit-caption-bg: rgba(0,0,0,0.6); +// $orbit-caption-font-color: #fff; + +//// Left/right nav styles + +// $orbit-nav-bg-old: rgb(0,0,0); +// $orbit-nav-bg: rgba(0,0,0,0.6); + +//// Timer styles + +// $orbit-timer-bg-old: rgb(0,0,0); +// $orbit-timer-bg: rgba(0,0,0,0.6); + +//// Bullet nav styles + +// $orbit-bullet-nav-color: #999; +// $orbit-bullet-nav-color-active: #222; + +//// Slide numbers + +// $orbit-slide-number-bg: rgb(0,0,0); +// $orbit-slide-number-font-color: #fff; +// $orbit-slide-number-padding: emCalc(5px); + +//// Margin for when Orbit is stacked on small screens + +// $stack-on-small-margin-bottom: emCalc(20px); // Doesn't quite work yet + +// +// Pagination Variables +// + +//// Pagination container + +// $pagination-height: emCalc(24px); +// $pagination-margin: emCalc(-5px); + +//// List-item properties + +// $pagination-li-float: $default-float; +// $pagination-li-height: emCalc(24px); +// $pagination-li-font-color: #222; +// $pagination-li-font-size: emCalc(14px); +// $pagination-li-margin: emCalc(5px); + +//// Pagination anchor links + +// $pagination-link-pad: emCalc(1px) emCalc(7px) emCalc(1px); +// $pagination-link-font-color: #999; +// $pagination-link-active-bg: darken(#fff, 10%); + +//// Disabled anchor links + +// $pagination-link-unavailable-cursor: default; +// $pagination-link-unavailable-font-color: #999; +// $pagination-link-unavailable-bg-active: transparent; + +//// Currently selected anchor links + +// $pagination-link-current-background: $primary-color; +// $pagination-link-current-font-color: #fff; +// $pagination-link-current-font-weight: bold; +// $pagination-link-current-cursor: default; +// $pagination-link-current-active-bg: $primary-color; + +// +// Panel Variables +// + +//// Background and border styles + +// $panel-bg: darken(#fff, 5%); +// $panel-border-style: solid; +// $panel-border-size: 1px; + +//// Control how much we darken things on hover + +// $panel-function-factor: 10%; +// $panel-border-color: darken($panel-bg, $panel-function-factor); + +//// Inner padding and bottom margin + +// $panel-margin-bottom: emCalc(20px); +// $panel-padding: emCalc(20px); + +//// Font colors + +// $panel-font-color: #333; +// $panel-font-color-alt: #fff; + +// +// Pricing Table Variables +// + +//// Border color + +// $price-table-border: solid 1px #ddd; + +//// Bottom margin of the pricing table + +// $price-table-margin-bottom: emCalc(20px); + +//// Control the title styles + +// $price-title-bg: #ddd; +// $price-title-padding: emCalc(15px) emCalc(20px); +// $price-title-align: center; +// $price-title-color: #333; +// $price-title-weight: bold; +// $price-title-size: emCalc(16px); + +//// Control the price styles + +// $price-money-bg: #eee; +// $price-money-padding: emCalc(15px) emCalc(20px); +// $price-money-align: center; +// $price-money-color: #333; +// $price-money-weight: normal; +// $price-money-size: emCalc(20px); + +//// Description styles + +// $price-bg: #fff; +// $price-desc-color: #777; +// $price-desc-padding: emCalc(15px); +// $price-desc-align: center; +// $price-desc-font-size: emCalc(12px); +// $price-desc-weight: normal; +// $price-desc-line-height: 1.4; +// $price-desc-bottom-border: dotted 1px #ddd; + +//// List item styles + +// $price-item-color: #333; +// $price-item-padding: emCalc(15px); +// $price-item-align: center; +// $price-item-font-size: emCalc(14px); +// $price-item-weight: normal; +// $price-item-bottom-border: dotted 1px #ddd; + +//// CTA area styles + +// $price-cta-bg: #f5f5f5; +// $price-cta-align: center; +// $price-cta-padding: emCalc(20px) emCalc(20px) 0; + +// +// Progress Bar Variables +// + +//// Progress bar height + +// $progress-bar-height: emCalc(25px); +// $progress-bar-color: transparent; + +//// Border styles + +// $progress-bar-border-color: darken(#fff, 20%); +// $progress-bar-border-size: 1px; +// $progress-bar-border-style: solid; +// $progress-bar-border-radius: $global-radius; + +//// Margin & padding + +// $progress-bar-pad: emCalc(2px); +// $progress-bar-margin-bottom: emCalc(10px); + +//// Meter colors + +// $progress-meter-color: $primary-color; +// $progress-meter-secondary-color: $secondary-color; +// $progress-meter-success-color: $success-color; +// $progress-meter-alert-color: $alert-color; + +// +// Reveal Variables +// + +//// Reveal overlay. + +// $reveal-overlay-bg: rgba(#000, .45); +// $reveal-overlay-bg-old: #000; + +//// Modal itself. + +// $reveal-modal-bg: #fff; +// $reveal-position-top: 50px; +// $reveal-default-width: 80%; +// $reveal-modal-padding: emCalc(20px); +// $reveal-box-shadow: 0 0 10px rgba(#000,.4); + +//// Reveal close button + +// $reveal-close-font-size: emCalc(22px); +// $reveal-close-top: emCalc(8px); +// $reveal-close-side: emCalc(11px); +// $reveal-close-color: #aaa; +// $reveal-close-weight: bold; + +//// Modal border + +// $reveal-border-style: solid; +// $reveal-border-width: 1px; +// $reveal-border-color: #666; + +// +// Section Variables +// + +//// Padding and hover factor + +// $section-padding: emCalc(15px); +// $section-function-factor: 10%; + +//// Titles + +// $section-title-color: #333; +// $section-title-bg: #efefef; +// $section-title-bg-active: darken($section-title-bg, $section-function-factor); +// $section-title-bg-active-tabs: #fff; + +//// Border size + +// $section-border-size: 1px; +// $section-border-style: solid; +// $section-border-color: #ccc; + +//// Color of the background and some size options + +// $section-content-bg: #fff; +// $section-vertical-nav-min-width: emCalc(200px); +// $section-vertical-tabs-title-width: emCalc(200px); +// $section-bottom-margin: emCalc(20px); + +// +// Side Nav Variables +// + +//// Padding + +// $side-nav-padding: emCalc(14px) 0; + +//// List styles + +// $side-nav-list-type: none; +// $side-nav-list-position: inside; +// $side-nav-list-margin: 0 0 emCalc(7px) 0; + +//// Link styles + +// $side-nav-link-color: $primary-color; +// $side-nav-link-color-active: lighten(#000, 30%); +// $side-nav-font-size: emCalc(14px); +// $side-nav-font-weight: bold; + +//// Border styles + +// $side-nav-divider-size: 1px; +// $side-nav-divider-style: solid; +// $side-nav-divider-color: darken(#fff, 10%); + +// +// Sub Nav Variables +// + +//// Margin and padding + +// $sub-nav-list-margin: emCalc(-4px) 0 emCalc(18px); +// $sub-nav-list-padding-top: emCalc(4px); + +//// Definition + +// $sub-nav-font-size: emCalc(14px); +// $sub-nav-font-color: #999; +// $sub-nav-font-weight: normal; +// $sub-nav-text-decoration: none; +// $sub-nav-border-radius: 1000px; + +//// Active item styles + +// $sub-nav-active-font-weight: bold; +// $sub-nav-active-bg: $primary-color; +// $sub-nav-active-color: #fff; +// $sub-nav-active-padding: emCalc(3px) emCalc(9px); +// $sub-nav-active-cursor: default; + +// +// Switch Variables +// + +//// Border styles and background colors for the switch container + +// $switch-border-color: darken(#fff, 20%); +// $switch-border-style: solid; +// $switch-border-width: 1px; +// $switch-bg: #fff; + +//// Switch heights for our default classes + +// $switch-height-tny: 22px; +// $switch-height-sml: 28px; +// $switch-height-med: 36px; +// $switch-height-lrg: 44px; +// $switch-bottom-margin: emCalc(20px); + +//// Font sizes for our classes. + +// $switch-font-size-tny: 11px; +// $switch-font-size-sml: 12px; +// $switch-font-size-med: 14px; +// $switch-font-size-lrg: 17px; +// $switch-label-side-padding: 6px; + +//// Switch-paddle + +// $switch-paddle-bg: #fff; +// $switch-paddle-fade-to-color: darken($switch-paddle-bg, 10%); +// $switch-paddle-border-color: darken($switch-paddle-bg, 35%); +// $switch-paddle-border-width: 1px; +// $switch-paddle-border-style: solid; +// $switch-paddle-transition-speed: .1s; +// $switch-paddle-transition-ease: ease-out; +// $switch-positive-color: lighten($success-color, 50%); +// $switch-negative-color: #f5f5f5; + +//// Outline Style for tabbing through switches + +// $switch-label-outline: 1px dotted #888; + +// +// Table Variables +// + +//// Background color for the table and even rows + +// $table-bg: #fff; +// $table-even-row-bg: #f9f9f9; + +//// Table cell border style + +// $table-border-style: solid; +// $table-border-size: 1px; +// $table-border-color: #ddd; + +//// Table head styles + +// $table-head-bg: #f5f5f5; +// $table-head-font-size: emCalc(14px); +// $table-head-font-color: #222; +// $table-head-font-weight: bold; +// $table-head-padding: emCalc(8px) emCalc(10px) emCalc(10px); + +//// Row padding and font styles + +// $table-row-padding: emCalc(9px) emCalc(10px); +// $table-row-font-size: emCalc(14px); +// $table-row-font-color: #222; +// $table-line-height: emCalc(18px); + +//// Display and margin of tables + +// $table-display: table-cell; +// $table-margin-bottom: emCalc(20px); + +// +// Image Thumbnail Variables +// + +//// Border styles + +// $thumb-border-style: solid; +// $thumb-border-width: 4px; +// $thumb-border-color: #fff; +// $thumb-box-shadow: 0 0 0 1px rgba(#000,.2); +// $thumb-box-shadow-hover: 0 0 6px 1px rgba($primary-color,0.5); + +//// Radius and transition speed for thumbs + +// $thumb-radius: $global-radius; +// $thumb-transition-speed: 200ms; + +// +// Tooltip Variables +// + +// $has-tip-border-bottom: dotted 1px #ccc; +// $has-tip-font-weight: bold; +// $has-tip-font-color: #333; +// $has-tip-border-bottom-hover: dotted 1px darken($primary-color, 20%); +// $has-tip-font-color-hover: $primary-color; +// $has-tip-cursor-type: help; + +// $tooltip-padding: emCalc(8px); +// $tooltip-bg: #000; +// $tooltip-font-size: emCalc(15px); +// $tooltip-font-weight: bold; +// $tooltip-font-color: #fff; +// $tooltip-line-height: 1.3; +// $tooltip-close-font-size: emCalc(10px); +// $tooltip-close-font-weight: normal; +// $tooltip-close-font-color: #888; +// $tooltip-font-size-sml: emCalc(14px); +// $tooltip-radius: $global-radius; +// $tooltip-pip-size: 5px; + +// +// Top Bar Variables +// + +//// Background color for the top bar + +// $topbar-bg: #111; + +//// Height and margin + +// $topbar-height: 45px; +// $topbar-margin-bottom: emCalc(30px); + +//// Input height for top bar + +// $topbar-input-height: 2.45em; + +//// Title in the top bar + +// $topbar-title-weight: bold; +// $topbar-title-font-size: emCalc(17px); + +//// Link colors and styles for top-level nav + +// $topbar-link-color: #fff; +// $topbar-link-weight: bold; +// $topbar-link-font-size: emCalc(13px); +// $topbar-link-hover-lightness: -30% !default; // Darken by 30% + +//// Top bar dropdown elements + +// $topbar-dropdown-bg: #333; +// $topbar-dropdown-link-color: #fff; +// $topbar-dropdown-toggle-size: 5px; +// $topbar-dropdown-toggle-color: #fff; +// $topbar-dropdown-toggle-alpha: 0.5; +// $dropdown-label-color: #555; + +//// Top menu icon styles + +// $topbar-menu-link-transform: uppercase; +// $topbar-menu-link-font-size: emCalc(13px); +// $topbar-menu-link-weight: bold; +// $topbar-menu-link-color: #fff; +// $topbar-menu-icon-color: #fff; +// $topbar-menu-link-color-toggled: #888; +// $topbar-menu-icon-color-toggled: #888; + +//// Transitions and breakpoint styles + +// $topbar-transition-speed: 300ms; +// $topbar-breakpoint: emCalc(940px); // Change to 9999px for always mobile layout +// $topbar-media-query: "only screen and (min-width "#{$topbar-breakpoint}")"; \ No newline at end of file diff --git a/chaloBEST/templates/poster/css/app.scss b/chaloBEST/templates/poster/css/app.scss new file mode 100644 index 0000000..11f7984 --- /dev/null +++ b/chaloBEST/templates/poster/css/app.scss @@ -0,0 +1,45 @@ +// Global Foundation Settings +@import "settings"; + +// Comment out this import if you are customizing you imports below +@import "foundation"; + +// Import specific parts of Foundation by commenting the import "foundation" +// and uncommenting what you want below. You must uncomment the following if customizing + +// @import "foundation/components/global"; // *always required +// @import "foundation/components/grid"; +// @import "foundation/components/visibility"; +// @import "foundation/components/block-grid"; +// @import "foundation/components/type"; +// @import "foundation/components/buttons"; +// @import "foundation/components/forms"; // *requires components/buttons +// @import "foundation/components/custom-forms"; // *requires components/buttons, components/forms +// @import "foundation/components/button-groups"; // *requires components/buttons +// @import "foundation/components/dropdown-buttons"; // *requires components/buttons +// @import "foundation/components/split-buttons"; // *requires components/buttons +// @import "foundation/components/flex-video"; +// @import "foundation/components/section"; +// @import "foundation/components/top-bar"; // *requires components/grid +// @import "foundation/components/orbit"; +// @import "foundation/components/reveal"; +// @import "foundation/components/joyride"; +// @import "foundation/components/clearing"; +// @import "foundation/components/alert-boxes"; +// @import "foundation/components/breadcrumbs"; +// @import "foundation/components/keystrokes"; +// @import "foundation/components/labels"; +// @import "foundation/components/inline-lists"; +// @import "foundation/components/pagination"; +// @import "foundation/components/panels"; +// @import "foundation/components/pricing-tables"; +// @import "foundation/components/progress-bars"; +// @import "foundation/components/side-nav"; +// @import "foundation/components/sub-nav"; +// @import "foundation/components/switch"; +// @import "foundation/components/magellan"; +// @import "foundation/components/tables"; +// @import "foundation/components/thumbs"; +// @import "foundation/components/tooltips"; +// @import "foundation/components/dropdown"; + diff --git a/chaloBEST/templates/poster/css/main.css b/chaloBEST/templates/poster/css/main.css new file mode 100755 index 0000000..b6e2f1c --- /dev/null +++ b/chaloBEST/templates/poster/css/main.css @@ -0,0 +1,300 @@ +/* + * HTML5 Boilerplate + * + * What follows is the result of much research on cross-browser styling. + * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal, + * Kroc Camen, and the H5BP dev community and team. + */ + +/* ========================================================================== + Base styles: opinionated defaults + ========================================================================== */ + +html, +button, +input, +select, +textarea { + color: #222; +} + +body { + font-size: 1em; + line-height: 1.4; +} + +/* + * Remove text-shadow in selection highlight: h5bp.com/i + * These selection declarations have to be separate. + * Customize the background color to match your design. + */ + +::-moz-selection { + background: #b3d4fc; + text-shadow: none; +} + +::selection { + background: #b3d4fc; + text-shadow: none; +} + +/* + * A better looking default horizontal rule + */ + +hr { + display: block; + height: 1px; + border: 0; + border-top: 1px solid #ccc; + margin: 1em 0; + padding: 0; +} + +/* + * Remove the gap between images and the bottom of their containers: h5bp.com/i/440 + */ + +img { + vertical-align: middle; +} + +/* + * Remove default fieldset styles. + */ + +fieldset { + border: 0; + margin: 0; + padding: 0; +} + +/* + * Allow only vertical resizing of textareas. + */ + +textarea { + resize: vertical; +} + +/* ========================================================================== + Chrome Frame prompt + ========================================================================== */ + +.chromeframe { + margin: 0.2em 0; + background: #ccc; + color: #000; + padding: 0.2em 0; +} + +/* ========================================================================== + Author's custom styles + ========================================================================== */ + + + + + + + + + + + + + + + + + +/* ========================================================================== + Helper classes + ========================================================================== */ + +/* + * Image replacement + */ + +.ir { + background-color: transparent; + border: 0; + overflow: hidden; + /* IE 6/7 fallback */ + *text-indent: -9999px; +} + +.ir:before { + content: ""; + display: block; + width: 0; + height: 150%; +} + +/* + * Hide from both screenreaders and browsers: h5bp.com/u + */ + +.hidden { + display: none !important; + visibility: hidden; +} + +/* + * Hide only visually, but have it available for screenreaders: h5bp.com/v + */ + +.visuallyhidden { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} + +/* + * Extends the .visuallyhidden class to allow the element to be focusable + * when navigated to via the keyboard: h5bp.com/p + */ + +.visuallyhidden.focusable:active, +.visuallyhidden.focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; +} + +/* + * Hide visually and from screenreaders, but maintain layout + */ + +.invisible { + visibility: hidden; +} + +/* + * Clearfix: contain floats + * + * For modern browsers + * 1. The space content is one way to avoid an Opera bug when the + * `contenteditable` attribute is included anywhere else in the document. + * Otherwise it causes space to appear at the top and bottom of elements + * that receive the `clearfix` class. + * 2. The use of `table` rather than `block` is only necessary if using + * `:before` to contain the top-margins of child elements. + */ + +.clearfix:before, +.clearfix:after { + content: " "; /* 1 */ + display: table; /* 2 */ +} + +.clearfix:after { + clear: both; +} + +/* + * For IE 6/7 only + * Include this rule to trigger hasLayout and contain floats. + */ + +.clearfix { + *zoom: 1; +} + +/* ========================================================================== + EXAMPLE Media Queries for Responsive Design. + Theses examples override the primary ('mobile first') styles. + Modify as content requires. + ========================================================================== */ + +@media only screen and (min-width: 35em) { + /* Style adjustments for viewports that meet the condition */ +} + +@media print, + (-o-min-device-pixel-ratio: 5/4), + (-webkit-min-device-pixel-ratio: 1.25), + (min-resolution: 120dpi) { + /* Style adjustments for high resolution devices */ +} + +/* ========================================================================== + Print styles. + Inlined to avoid required HTTP connection: h5bp.com/r + ========================================================================== */ + +@media print { + * { + background: transparent !important; + color: #000 !important; /* Black prints faster: h5bp.com/s */ + box-shadow: none !important; + text-shadow: none !important; + } + + a, + a:visited { + text-decoration: underline; + } + + a[href]:after { + content: " (" attr(href) ")"; + } + + abbr[title]:after { + content: " (" attr(title) ")"; + } + + /* + * Don't show links for images, or javascript/internal links + */ + + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + + thead { + display: table-header-group; /* h5bp.com/t */ + } + + tr, + img { + page-break-inside: avoid; + } + + img { + max-width: 100% !important; + } + + @page { + margin: 0.5cm; + } + + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + + h2, + h3 { + page-break-after: avoid; + } +} diff --git a/chaloBEST/templates/poster/css/normalize.css b/chaloBEST/templates/poster/css/normalize.css new file mode 100755 index 0000000..4d4d01d --- /dev/null +++ b/chaloBEST/templates/poster/css/normalize.css @@ -0,0 +1,527 @@ +/*! normalize.css v1.1.0 | MIT License | git.io/normalize */ + +/* ========================================================================== + HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined in IE 6/7/8/9 and Firefox 3. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +/** + * Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. + */ + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address styling not present in IE 7/8/9, Firefox 3, and Safari 4. + * Known issue: no IE 6 support. + */ + +[hidden] { + display: none; +} + +/* ========================================================================== + Base + ========================================================================== */ + +/** + * 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using + * `em` units. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-size: 100%; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ + -ms-text-size-adjust: 100%; /* 2 */ +} + +/** + * Address `font-family` inconsistency between `textarea` and other form + * elements. + */ + +html, +button, +input, +select, +textarea { + font-family: sans-serif; +} + +/** + * Address margins handled incorrectly in IE 6/7. + */ + +body { + margin: 0; +} + +/* ========================================================================== + Links + ========================================================================== */ + +/** + * Address `outline` inconsistency between Chrome and other browsers. + */ + +a:focus { + outline: thin dotted; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* ========================================================================== + Typography + ========================================================================== */ + +/** + * Address font sizes and margins set differently in IE 6/7. + * Address font sizes within `section` and `article` in Firefox 4+, Safari 5, + * and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +h2 { + font-size: 1.5em; + margin: 0.83em 0; +} + +h3 { + font-size: 1.17em; + margin: 1em 0; +} + +h4 { + font-size: 1em; + margin: 1.33em 0; +} + +h5 { + font-size: 0.83em; + margin: 1.67em 0; +} + +h6 { + font-size: 0.67em; + margin: 2.33em 0; +} + +/** + * Address styling not present in IE 7/8/9, Safari 5, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +blockquote { + margin: 1em 40px; +} + +/** + * Address styling not present in Safari 5 and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address differences between Firefox and other browsers. + * Known issue: no IE 6/7 normalization. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Address styling not present in IE 6/7/8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address margins set differently in IE 6/7. + */ + +p, +pre { + margin: 1em 0; +} + +/** + * Correct font family set oddly in IE 6, Safari 4/5, and Chrome. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, serif; + _font-family: 'courier new', monospace; + font-size: 1em; +} + +/** + * Improve readability of pre-formatted text in all browsers. + */ + +pre { + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; +} + +/** + * Address CSS quotes not supported in IE 6/7. + */ + +q { + quotes: none; +} + +/** + * Address `quotes` property not supported in Safari 4. + */ + +q:before, +q:after { + content: ''; + content: none; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* ========================================================================== + Lists + ========================================================================== */ + +/** + * Address margins set differently in IE 6/7. + */ + +dl, +menu, +ol, +ul { + margin: 1em 0; +} + +dd { + margin: 0 0 0 40px; +} + +/** + * Address paddings set differently in IE 6/7. + */ + +menu, +ol, +ul { + padding: 0 0 0 40px; +} + +/** + * Correct list images handled incorrectly in IE 7. + */ + +nav ul, +nav ol { + list-style: none; + list-style-image: none; +} + +/* ========================================================================== + Embedded content + ========================================================================== */ + +/** + * 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3. + * 2. Improve image quality when scaled in IE 7. + */ + +img { + border: 0; /* 1 */ + -ms-interpolation-mode: bicubic; /* 2 */ +} + +/** + * Correct overflow displayed oddly in IE 9. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* ========================================================================== + Figures + ========================================================================== */ + +/** + * Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11. + */ + +figure { + margin: 0; +} + +/* ========================================================================== + Forms + ========================================================================== */ + +/** + * Correct margin displayed oddly in IE 6/7. + */ + +form { + margin: 0; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct color not being inherited in IE 6/7/8/9. + * 2. Correct text not wrapping in Firefox 3. + * 3. Correct alignment displayed oddly in IE 6/7. + */ + +legend { + border: 0; /* 1 */ + padding: 0; + white-space: normal; /* 2 */ + *margin-left: -7px; /* 3 */ +} + +/** + * 1. Correct font size not being inherited in all browsers. + * 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5, + * and Chrome. + * 3. Improve appearance and consistency in all browsers. + */ + +button, +input, +select, +textarea { + font-size: 100%; /* 1 */ + margin: 0; /* 2 */ + vertical-align: baseline; /* 3 */ + *vertical-align: middle; /* 3 */ +} + +/** + * Address Firefox 3+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +button, +input { + line-height: normal; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+. + * Correct `select` style inheritance in Firefox 4+ and Opera. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + * 4. Remove inner spacing in IE 7 without affecting normal text inputs. + * Known issue: inner spacing remains in IE 6. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ + *overflow: visible; /* 4 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * 1. Address box sizing set to content-box in IE 8/9. + * 2. Remove excess padding in IE 8/9. + * 3. Remove excess padding in IE 7. + * Known issue: excess padding remains in IE 6. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ + *height: 13px; /* 3 */ + *width: 13px; /* 3 */ +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari 5 and Chrome + * on OS X. + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Remove inner padding and border in Firefox 3+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * 1. Remove default vertical scrollbar in IE 6/7/8/9. + * 2. Improve readability and alignment in all browsers. + */ + +textarea { + overflow: auto; /* 1 */ + vertical-align: top; /* 2 */ +} + +/* ========================================================================== + Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/chaloBEST/templates/poster/css/normalize.scss b/chaloBEST/templates/poster/css/normalize.scss new file mode 100644 index 0000000..6d24a38 --- /dev/null +++ b/chaloBEST/templates/poster/css/normalize.scss @@ -0,0 +1,402 @@ +/*! normalize.css v2.1.1 | MIT License | git.io/normalize */ + +/* ========================================================================== + HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined in IE 8/9. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +/** + * Correct `inline-block` display not defined in IE 8/9. + */ + +audio, +canvas, +video { + display: inline-block; +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +[hidden] { + display: none; +} + +/* ========================================================================== + Base + ========================================================================== */ + +/** + * 1. Prevent system color scheme's background color being used in Firefox, IE, + * and Opera. + * 2. Prevent system color scheme's text color being used in Firefox, IE, and + * Opera. + * 3. Set default font family to sans-serif. + * 4. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + background: #fff; /* 1 */ + color: #000; /* 2 */ + font-family: sans-serif; /* 3 */ + -ms-text-size-adjust: 100%; /* 4 */ + -webkit-text-size-adjust: 100%; /* 4 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* ========================================================================== + Links + ========================================================================== */ + +/** + * Address `outline` inconsistency between Chrome and other browsers. + */ + +a:focus { + outline: thin dotted; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* ========================================================================== + Typography + ========================================================================== */ + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari 5, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9, Safari 5, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari 5 and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Correct font family set oddly in Safari 5 and Chrome. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, serif; + font-size: 1em; +} + +/** + * Improve readability of pre-formatted text in all browsers. + */ + +pre { + white-space: pre-wrap; +} + +/** + * Set consistent quote types. + */ + +q { + quotes: "\201C" "\201D" "\2018" "\2019"; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* ========================================================================== + Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9. + */ + +img { + border: 0; +} + +/** + * Correct overflow displayed oddly in IE 9. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* ========================================================================== + Figures + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari 5. + */ + +figure { + margin: 0; +} + +/* ========================================================================== + Forms + ========================================================================== */ + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * 1. Correct font family not being inherited in all browsers. + * 2. Correct font size not being inherited in all browsers. + * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. + */ + +button, +input, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +button, +input { + line-height: normal; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. + * Correct `select` style inheritance in Firefox 4+ and Opera. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * 1. Address box sizing set to `content-box` in IE 8/9. + * 2. Remove excess padding in IE 8/9. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari 5 and Chrome + * on OS X. + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * 1. Remove default vertical scrollbar in IE 8/9. + * 2. Improve readability and alignment in all browsers. + */ + +textarea { + overflow: auto; /* 1 */ + vertical-align: top; /* 2 */ +} + +/* ========================================================================== + Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/chaloBEST/templates/poster/css/style.css b/chaloBEST/templates/poster/css/style.css new file mode 100644 index 0000000..f9c1cb4 --- /dev/null +++ b/chaloBEST/templates/poster/css/style.css @@ -0,0 +1,30 @@ +#map { + height: 400px; } + +#route-list > li header { + -moz-box-shadow: 0px 1px 2px #333333; + -webkit-box-shadow: 0px 1px 2px #333333; + box-shadow: 0px 1px 2px #333333; + -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=90, Color='$color')"; + filter: progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=90, Color='$color'); + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + background-color: #d43b39; + margin: 0 -3px; } + #route-list > li header h2 { + color: white; } + #route-list > li header h2 small { + color: #eee; } +#route-list > li ul { + background-color: #eee; + border-radius: 0px; + -moz-border-radius: 0px; + -webkit-border-radius: 0px; + margin: 1px 5px; + padding: 2px 30px; } + #route-list > li ul li { + list-style-type: none; + line-height: 70%; } + #route-list > li ul li:nth-child(2) { + list-style-type: none; } diff --git a/chaloBEST/templates/poster/css/style.scss b/chaloBEST/templates/poster/css/style.scss new file mode 100755 index 0000000..1f97916 --- /dev/null +++ b/chaloBEST/templates/poster/css/style.scss @@ -0,0 +1,52 @@ +@import "_settings"; +$block-grid-default-spacing: 10px; +$best-red:#D43B39; + +@mixin rounded($vert, $horz, $radius: 10px) { + border-#{$vert}-#{$horz}-radius: $radius; + -moz-border-radius-#{$vert}#{$horz}: $radius; + -webkit-border-#{$vert}-#{$horz}-radius: $radius; +} +@mixin rounded-corners($amount: 5px){ + border-radius: $amount; + -moz-border-radius: $amount; + -webkit-border-radius: $amount; + } + + @mixin shadow($color: #333333) { + -moz-box-shadow: 0px 1px 2px $color; + -webkit-box-shadow: 0px 1px 2px $color; + box-shadow: 0px 1px 2px $color; + -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=90, Color='$color')"; + filter: progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=90, Color='$color'); +} + +#map { height: 400px; } + +#route-list>li{ + + +header{ +@include shadow; +@include rounded-corners(10px); + background-color:$best-red; + margin:0 -3px; + h2{color:white; + small{color:#eee;} + } +} +ul{ +background-color:#eee; +@include rounded-corners(0px); +margin:1px 5px; +padding:2px 30px; + +li{ + list-style-type:none; + line-height:70%; +} +li:nth-child(2){ + list-style-type:none; +} +} +} \ No newline at end of file diff --git a/chaloBEST/templates/poster/img/.gitignore b/chaloBEST/templates/poster/img/.gitignore new file mode 100755 index 0000000..e69de29 diff --git a/chaloBEST/templates/poster/javascripts/.DS_Store b/chaloBEST/templates/poster/javascripts/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 + + + + + + Page Not Found :( + + + + + + + +
+
+

+
+ नेहरु तारांगण +
+
+ NEHRU PLANETARIUM +
+

+

+ + डॉ. अॅन्नी बेझंट मार्ग + + + Dr.Annie Besant Marg (Worli) + +

+
+
+
+
+ +
+
+

+ + बस मार्गों + + + Bus Routes + +

+
    +
  • +
    +

    + 21 + + LTD + +

    +
    + + Every 20 minutes + +
    +
    +
      +
    • +

      + मंत्रालय +

      +
    • +
    • + + via + + Worli, Santa Cruz, Dadar, Bandra, Worli +
    • +
    • +

      + मंत्रालय +

      +
    • +
    +
      +
    • +

      + Mantralaya +

      +
    • +
    • + + via + + Worli, Santa Cruz, Dadar, Bandra, Worli +
    • +
    • +

      + Worl Trade Center +

      +
    • +
    +
  • + +
  • +
    +

    + 21 + + LTD + +

    +
    + + Every 20 minutes + +
    +
    +
      +
    • +

      + मंत्रालय +

      +
    • +
    • + + via + + Worli, Santa Cruz, Dadar, Bandra, Worli +
    • +
    • +

      + मंत्रालय +

      +
    • +
    +
      +
    • +

      + Mantralaya +

      +
    • +
    • + + via + + Worli, Santa Cruz, Dadar, Bandra, Worli +
    • +
    • +

      + Worl Trade Center +

      +
    • +
    +
  • + +
  • +
    +

    + 21 + + LTD + +

    +
    + + Every 20 minutes + +
    +
    +
      +
    • +

      + मंत्रालय +

      +
    • +
    • + + via + + Worli, Santa Cruz, Dadar, Bandra, Worli +
    • +
    • +

      + मंत्रालय +

      +
    • +
    +
      +
    • +

      + Mantralaya +

      +
    • +
    • + + via + + Worli, Santa Cruz, Dadar, Bandra, Worli +
    • +
    • +

      + Worl Trade Center +

      +
    • +
    +
  • + +
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/chaloBEST/templates/poster/test/.sass-cache/3e7b873473e622432962155175dc5182d706021e/_settings.scssc b/chaloBEST/templates/poster/test/.sass-cache/3e7b873473e622432962155175dc5182d706021e/_settings.scssc new file mode 100644 index 0000000000000000000000000000000000000000..162896cc2f162dbdf15ac83bb46f7a53a4294515 GIT binary patch literal 72187 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 literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/3e7b873473e622432962155175dc5182d706021e/normalize.scssc b/chaloBEST/templates/poster/test/.sass-cache/3e7b873473e622432962155175dc5182d706021e/normalize.scssc new file mode 100644 index 0000000000000000000000000000000000000000..62f75652e16d079528221b8314c1987878e82963 GIT binary patch literal 29267 zcmeG_TZ|;vRqnDgo~fDHS$q9p{Vb2Y_U?LSc6RpZY8-04UMHLEI&1GHahO={>h9{9 z@^*K%tEy*qyor#AEkFceL;?~Y0V(1YA|YX9l7Bk==)C`ds9i4P<35hOkkF%lne z&bjy8s#~w=ne7Q6Vt-7z@B6&Zx#wJ;SXx;+YaPDqwSCvR?1tBmm~Qi|ck0v$@5HHA zYo*<3bxxdWuADu2=G5s<(>;Cm#52z{&#rXZr_DPi1N-1rH;QcgTIhMU{c;e*F9vPT zwD&o!b-&vVz5eQF0{fwKr}IIt=k;a3X=lUj4!zZhi}TL0qgFo%dv4c%(_3mqk+re1 zbbRT!^#$wl#cS3jzvcBK5B_V-kC*)5nCfdCJvL!aT)1YNPP{en?5S=rY}Y4NZ-XDY ze&6#a>{%xm#D36^Zr&Eu?=+$FP*a5el+O1TUOia_%B)c*QG zEcWQNEx&JFykMO@_RJEDkh9nK$$4jJ-VCmXT@P_R15gg(8zJhsVeGfM-h$~yejEO@ zz1a1;(Sq6W*IF*2fWC(zG_uMx9T?>QZV8QIUet*I2yBiB;1ltC*!N;)I zbHgn>HKN&VM*eN~-Oj)bBd`4$t{(;VydblyUKfT1p=~3nxmUe6hF-trO#&74yk64_ zqt&|t`{8V7?l)1tXLTa5AJ4V>y+POGUZ&_JDLYy6Lf1p;o`PNW-5x<@MnZ))KSw`D z1GnWZ1I8W%PU-kv5Bpx6zYV&)0Nad)&DY@w%lH`#!xkQH@~Rh4z^vZ%21i?;zb7WK>;07rC+ zcz_nM!G1Wr$_u=DBu5ee9@0)s5_bkEt)!F0k|K$~elV+fuSDLk9hhM5n5{0Dn*!pK zuskklPdRS5hJ-qoYz7)$08GKOPVKu{M9N=P^TaCbtQwJ1{h%)ti&==kV*)@t$+Uni zK?E2>5W~bW{de&M%aQ_?auje{Qoy-3nA3o^DBc3@UISY>wg&JEQbncpc0xzq?CQGT z1|jq+!6?nbS$u&6d?bsDb1?|E<}mgo-A{|jXs(0HV9f*rFLc5BTCPtn+tW^`>#jv; zcbrie&Y}ZaoZ1gX7yKB3ueL+SSqaTEIcU~?XY5A*b8h7Ak$tZ$@VdYuyDr9+nxu;3 zOBRcUXe)}n9&mg&2(75K4u5x4-5sC{YLs+ifE2 z$c+F9LhH>S=;8cXiT6`F(@d?$y)LnDHNz+Ymkc0{a

9p~W%osR8-(*Tm{vB97(~ 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 o0(s0dOt`<$JEI9nY)1co-xdK3NGeb$NsNsO5 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 cQmkKp)?HieJR|Uma&CZvX%Q literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_clearing.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_clearing.scssc new file mode 100644 index 0000000000000000000000000000000000000000..404b313da93a24a174c9762bd049114e43ad883d GIT binary patch literal 23147 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 d@H`O!&QuyuWJt@j{|{6c0d4>Q literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_custom-forms.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_custom-forms.scssc new file mode 100644 index 0000000000000000000000000000000000000000..c9f2fdb859d64a0aeece98b6f73508bff68de55d GIT binary patch literal 35385 zcmcgVX^>oJahk#GF}tgkC9Ngl>uJ}LR>!PXE3G8IN5X)x%1SUM$R<@@$TBrvIauiCnBurxncTRMGu`Q%bRXzJ{card-?dO<NxJaGOmXu ze`}?-8a3*zu(@zJ_HQ#Aor%}h!lrCDQn^@dbi;*#bCdgz9x8cGtcLji*sI0OPAhI;fwxp`M>TI55w<&50Gk&z*Sj753*Zfg z9|%gp2;vGxqf#(d8HxSd%|S7xIQkKwr&(PK&rRN5qrsFBc6ljo)x%b~7B}J+LWEY~ z<@HwV?-qd0*ILnf$M?@*gW+Ik)*q=aai50{Ij^@0V79&rSR_yaa5cqH1G( zwHgfoVIxQw@L;7|1yuEOlVf}9;c~Ux=+FoR_0%X1wvGhj=O%Yp1g=oCZE-XG8}8&jCPlKw{aNhlMJ&E>%)=iIj#kNsQKOhmEk-5gG+QQQK!weQh<` zhG?1o3CSqYwY=1?C~nT9ohliFXJc5d*28iq&gN3#XDE)Jp*Vgf8MQqR8C5c}J8fjH z>bnvFfxDvLk%x;a8P{GLR|iZ+bEOgHjO=m5_Bf90aXGS`dDy6uvF*>pR*u)hW}0rh zDmRgbk18489vk0k7_F>|>AX$ZRkj@WuZOKFnm@F^KuW9HtRIX07uojZY`0mfHX1bl zN5Zu;)kY0T26I$xt+W>gluc)_uk5ZZg{_fbDBA8%RGQs2#1gj_yUnNr?axgPu3shy zyDIgt8Lvf6qZ$q7El5r)T7injxyj*U$Ep2UO^Z{n+Xo~`NQjtuKs(5k)+YF zh@F|a24aYs;4V7g2U(e37kC#)dd%YE}*W*h~FWbW3ij?rsZj}?6`<1P!EF@X@OqwWfLs6FI zW=&aU=+$i|#$7JPzP-xrc`T$#9u*5rjVjI5OXaOYbScf_tqX%aql`PmSa3$NiVy6g z`5>m{9W*WHX0eQ>rB-n28f5TD!W98f7X6o^dS{gP2GToC!DJyN zZIehjux2BC9{gH!1>!PLg?8MCLV3ywXs5}cmfJZv)x zds1P${1S#B zAu$)KvaA*LV}T|nZM?kP4m%LXuS=l@(_|ustKCjaMWx^%pxB?MGgQea61J%UYEfRV z*6T8+!q`1;#tx^6?f}`z)Cqeak2I=e(hj*3NG@*6%Z<2tT{MoQ(Kt;sp45t~g*Tl? zBULhu`&=61_4T+Nb;9dm;o&s$4wBJ3emaf5gL(8(CDV7%rH{l5^sSX4Zg*mmJTc#% zM&lu(aV}NPhw^BoN~V$HVda|08JF8@uxep7Czo7!YZ?)Uk%-c<<0cguUimQ6#Ap+m zFVL<*=B2CRaDn%K)9@Z4ymRw?;5}mE%@}S2mI2B|658V571HpQ3Ga!1##?oo822}Ugs53-bnBevBkY*X6XE+snN0Km0gw_N@nRsp zbtw{g!7B$E4H%f$2$wrv+)c~a97nWWU;0gv@;tYUDZk>@2X7i$fOM$LbaK>|u_Dh} z#Hz$0kEFcXS!%mgRUv7Bp>T%e@w{*P`gP$h~lhZ=^>773EA%=v2X6%tK@H zUlzxWAy}1Dj`l40krTm4MI{$-`8(7M-^k^&;Cz_@f;ncYHyB5cei%e`Mr3%;V3uwv zzU)Dk!h3bK9>v}{%)7Rwyn#ZI=xu_|RU1I3N-1Mf;UtoxauqWF+--y?j#22_g5QX7 z8>;M#Fnee{5Nvg+9c}TqSHKmwAuoVU+p#|>;~~o4!Pp=ZyS7$6AHK00Hf!M!aBnTd zObF#jWcK&GYRv5hXl3qCxxmgxYwL}WTa}>IpyHN>a*s$CVjKpv4mAZ1v8G{ll*Hw3DCAVe6F84AIV;C37_ zWGwbddTvg19F6V{ymON@m|$`?n2LkD27-M=0@PG++~Us(oN3m^!>eF1PJ)NQ4xXDF zl{pk-9W3@KB-(C83s@7BU;wgokzxoc1+@Z9elV_Z@N^Jsupvw}jg{}lf5;g>5bUs) zVF&=Y;NM(W z=5+4<8cuK7U=i);q8R0(+JHl`-hGHcd>OX1i;d4X3|VHdVD2qV2$O+9UgOBygW zs1*L#HNMadOI7s*?h(jM1>tw^!%$J$-*b~A2(sHomVg_Pn+ic0GT2e^e_jyGpyQBR z2EkD>i1!Aw(Cyf)N^t^LK=^4p1HyvdD`j_YaM&?Wc*123^u$tCjjU15acsZ86oTgAOztH%LCCLaLQ>?|4!iZZ1kR>JF`e}58ihZM z%tki}a4LmQxWvj*Rc%{XOnZZ#pwz(iNgp&gIY|ZSM)4IwOY@C%sh4%W&xW#%OnRDq zg~ZC~9BN)^!^tqwVs(~f81J`XqcnwXSxcBEmI5)D#e`zZKy}d zAW0OXkcg*xcaC$hZg7JpX~7`$G#H=Y?u6Y5e6%^xuu_~ZxCC*rZZNU1)d=i1V0K<> z3pYJB>}hshXG2Mw>O&&gmZfCBVM9nYI6Xit3J@n?C1Cl@U>+Swp38iFipva6!eZ&v ztXvzs-XR0-ENi1>XIro;tj zN?eet5lMXjEm_q+U!s4WQVO%ZBywgmI%g&lMc)15kRxTzUM|leaM}z^^iF93-Y7=O zs|Ys}MigeRB!WBKEL3nO8v2$YSJpv$i4QF*#U~O1(&lsf8KN`;&9t zos&+2L{vHf?GzHnEU=>yw5b%IP7uk(y1~Q(oC{J~mzs#^>1;Z-&fS1P?Anl$1~E6h zx@h-yT$WJ&>=S3;3}oe^IR3L}gz3WaU2@d^l8tbC@^BLbWCAbmg9y;&WJ^FV+c0|3 z1{U_}sFa}MvO~pXn~HG>JDD~So6A|w--P!QC2PToLH1cg9Q8DGTDK{|OjGK8W{6fNtZxoPYos%gOA>pD%eRJ%`+k? z5QVJPqA;qZ9Nyyc?k$K~49QJXjX`ML!d-x#A+@nXJ8Jd;PW?_cKcT8p{43%o|Fp6^ zusmqB#jPj3mL4_lCS|bmtu{NiU0TJXRJ09FLs8Rhq#0joRmCZ|3|PPGz)Hz8Zz%=9 z05M-~C=7#Is<9@AkYoM5p${mZuSg zdOF&vPcgI!y59!3()ct#@e1)-EfvD7MD(g2e@-lb zFgP06uzmX@L&;!QG%GLA#}*H4(1Hv!N%q2W<4X5#R=VY(Ik*)?dRHm_fNcG{$y!0N zp?m5+RN>tuF_eZruObRHm7AY{D7?qjocGv_*{D5uuL*{gTuleK*?N65<$c-_=4NaP z?=$g&b4VmD^1J_u=*|(<=zhPtEVdozOSO&e8(KULEr4$L%eNyDN2A8c4DzVro& zV2jIP^6<}zg;A{o>51I@o#(=z*<9JEP~R`Wi2awFYwdQKuaA=3p$r9C+)}E${s2vY z`Q*VAK1(cfSq#+PSdoo5nZ=Egp7#TM@xq?v76o^7*_PbsCocJ0dW&+8*IGVf3N{V<(27xxSk{yrhjdWJTn@BMwQ|}Cr8cY zKp_9L2)up+|Cm8eu7QV!mEto=lDHg5;-5s)My={&Syt7#jm!p9-bj|>rDMIaWx8oy zR4rxH`dF5IeT*i7wW|(8IBSvTnQ@SW1*^2 z{4oWn{L@Nkq^$xSAH~>meH1rJ`lt`NVb_O{PkMI`^iogkJPs%W@nJPwC-Bg4gn@vD z5S`zYU<#K5>-Z<099L0$N_JeFyx!JB zdGhFCzC=2Y=bH}DUdA?gkON-45QNI$_Mb=vY~w4+h-+>nGP-|;ZwRIf9}wEY|5%Ff zOBx1XffkkGa#H$SZZxr!ek-PZEuM*-2=8<7wyS7k+-!tMTDH-tUxKs9bkPAx)SHjF zw%}vLFRF2QGq!(5U1RK%IZviAXT$&kc%Vt8_(+mFTy8Y!i#zO)9PTKj z(QPDeo^pBf6!Ye(1aClh;F&VGqn8Nn*{UWc*2hzrGhzUNp+gfm0hHtpmm5ti?$~K9 z;jVY$c?oYX+^>sUovPgA$Z**o=Yf7aF;F#~KFbRy?fKqX#%co^REnRz zN!QwDMph>R7}bq0&!sz=9^KJca1$#iOj`EMw^E;QHSH59fH>&s6~JM%@VPw4DNuJ_ zQp=2oD5FujhHpa3RG5eB66z;=2^AVtiq9EBb}8?kH7m(w9^>*Sdbv zmFp*OOs>@3k*g@9ak_Hlxk{Gpy2Sc)FR?;{N^#cP6^{l^RpEY{0S#4dppI=5CrZ*7iWkg1@OYDYA zf1{&z-0h?)zBsC@WEk~KAal9TAo1?(p+YTaGnXs;Y_HdRfB@MpovmvCP^vzf3f44!TB%1{5H+-zM@CA3=U$9Zy*SZ5b^9M1jK${2$r2gwS=s@m? z#g@E6ts6<{f3X)>J$G`z>PG#7)rVAa!0JW}Rvv~dd=VMua*+!4yv;gKHwsTC!OPL& zj2~c!zb~r4OGICCVShPg#S=pE#b4Es#1LFh3Itn zr{#3gGL;Eylsq1kutw|AtR%{HG0Pn>_!oo?lZo zEit(o?jvex>WYmP%{v8Bi@xfP=c_gyJD3jRU^NoE!-3p}0wwe^}Bva}6u1n8%ksfs2-%hNHuYVKudxq4k&3$(h6&hBGFG)&{ z%Yh#LX-RHEzky@y9D{1gqcg^%&-3~&*XE1$`|@b)usEn?UGge?A5Rnvp1@0W;*6}^ zRf0i%pSZo-K88buIt2VhtHcjnmG}Xx#P<>^0U1u7%YAOJtF-kG4c*|(Nn%Drqe^iF zQvA8vBU>frJ(mNc`Dd>!cwzT9UqOE4GWAEuR4wEUM}g)5A&N<@oDHeWMRNt6~Po0obu&2~_(#;Ro?9N%PfxqOrVKJSo2Mv~1?CKe9!u4 zs#dFc{7t05>9*oD);;m1pzLmnnQs57dcB_2&3I=e(QR&S&ghoL8j1nUXL*GSu)jE@ zh9?gpFJ%odV|cQgbE2d~VIUIt@iH~Uzh(Q&F;t!87hyU~|; zMBgc!pAL~?F=Sw2v5Q+<)A+HPgWh3p`YwD!kglHLGsTBI_#Vu`Y-+663ry$|EPj|J zr@PL*s80jP!5lk*|7IiRnJa=Z1M}4B)2EGYX=;TBarmQXLdE*~@`=(kK9nJsmF<(n)u+Ai?(O|0Z@Jolcj>Q| zN}i|V*E2a!rb9#YP;%#7^z=OIeQqcec366+sjGKcx_!;}_*v^fw&bU&eUI-Ta*cj! z+V{lk(xT=Xk_?DNNTyJNU&05ReR!juE?(2CpbSeIU3`O?i`XxlWttd%IgVSyeyET3 zg#Rw~seDh^VYK1wYRHSry)Lq6s*8Hd*LNDP1Y$@Y+;O4Ta=oiwg+DbQ-nyL@Z`U3S zJUM)9OEDgtUs61PLir-BQRLCLNa1e2?@dlJF~~v1F^g4LW87T#J$Mw=?4|eymccA% z7CXiIbyD9G50aXlG{ar#BN@c>S+jkLLRt0X^@RJv2RzNLBn#g|U#*L;Ni8&(N&?__ z^9(j_4re8oz$j}XJdb(m6ldvxBpO+ylVgrj8S%e~Ni*ElaK&(lN6j87EVo*uu#olg z`nf3H)-%ydv01Y#b!?gr90~r7gsN@Zd3vxq^JzQiV4F7tlQ<@HRq{T4?qqYPfhK!Z2lSiy1PvnsmMay>j+YkqiT4o<=CDs4e82cNYDg59@AG;HVn z5Sz)K#|*K<4OIE`*^Z2&FR7-ONP97V)SJ^(=uW)Rs_*tgfRs9B?ycD^SOVWpx+$J0zQgUud8=TYkiH$;o#X8cwPCiivOfrl7EzT6-dBvZSG<7%Cz|V74rd6dJV4Bg# z+eKTZ}eCdzu#d>6}gTuP9{U?m~1FZ9z_G&MVmGxGiP zrIuz_ac2i;Ho_6(qK&oMvF^^`F!|bGuVJRKQZCSdxwNEWJ`fIdm!mHv%#Z8EBDjVg zxsQ=Z#`TFq>O>-VHQax;Nt2Q=BLbz+X0RgM7{rvUvnh74ES<6BHi72mWYyT&DgD&> zH*S{}G$p!;G$41ODMKfLQ&hulniz$Sl@+vNr%Ohs7*mA2QTv73Cc~@DBrKa z8+m7@M@4*qOCAwb0bV0A?2uz*6;J{|l?)P>KJZkVSU4w0RCT(!3^lw&Y{$p*(xq#r zNi{I;BjW574(4}D(YwSDtSl5~Sd$cFg(?YnDxi_HYf$?9Th>6FT&wPy8u}`!rR8aL z--I4}UXL&vKDsM66~wGo;hsM4Vd#?Wa1;C>ZBluEO;*AQtKn!ROzFms34Jo1Bg&wJ z_n_oHOb@b-cqjDg5-oo336f8nb1)`@$P_)uVV8*ElN0L(sWrm{IFtcSM;UbyrO04F ww$oXYl6G>t5((0lWLuWkwrq$}Y+141@gtbahHHDhrzFm$A|=@>?M4fdkc16M zFa#J!r^{csKX^Z8x4UP0FaQCNlAKg3sj^4{jh=pfGw7bl_S)9kGkf{9*YaKawcG#h zq19-(n;&j}`1slO_SRGH@X&qw;nUWWXHOd52aPT7Y4h=6Yjb0>d1(Ev6gYp_b;Hnc z_WGXZI9~=q^m)+oEaytSdF;1aeXqN}5IA>Cq8CA@<8>8XrT&B49(el`JGGVd70X_+ zU-pAuD|pkjpAVua=-OYqecx@gy%2A%tWP)-f8KMfdUVqBoJ#1oft8rpzXX@se%JFS zoXho~7x_UqJiQc%NlTQF`Cryo>~B1K5PEiW?BU9?lQAg$!rzISfxRcC6IYP z_WFTyQ*zpE_WfSuI4@ADvM6mhmAV^6{qVHxl=|SNcmCyAM_}$Qek(V?dUVNc_l{kE z0wk-TWMGD)f!l9+t)1HCg_d{d4%!i^AjK!5KwPPashwIaSHe|SJvAMO8I(p`JuQoC z{xfkM{>{R_8#HDW#}sqfW6{mn7f-T$5uLQbDSr244AWmB(<|9Ey|%8~YWdxx)u?+y z`cCWkW7Gb3&+EGwA{eIu{^+(g1LtRhf`Ia+V?+!XBSkONhbp0rVpq{I@yl&9(yXIA9+V_v( zMti3=@fZ|+MP66>01wBC{EinQaglH6Cda`-Rvd)>|9FNm#jPxZh}+smDgCGOqGHh^<}WjjIhCWTWmYAAZm2AAd+WH znTI0}@;VCOpN>2s#ihT_LNdO->bm_C9g1bbEegdmt9Ml_I2HuS0KI*cyq%@*)wI4& zspbD*JmTC+O89EfZMy9?K}5ytyl~r1%qT!Cw|^AwPbiyCfK35nCwo6qzTG2uq`^v? zbd5vvJMZL8&~E`S1Ez(&wi|8e(HER@uWcxh10|$g3?)xE8obK^hRE~ z-Y^YSoUS~`d95|4t!1X`TsnLyUFV9dMK{@6IvDgsq0)6oT7-!Y9+^p)r`eV@1 zmdsD9TV}LqdTn`?R=_TqR$0l#L`KN+C7E2eb-0v`-|*@biZJjtIUGu>pFheK6?#E`i8Ai<=${<*6_;w}f{(9-1Y zkQxXQn!d=lXpN!SnD~{pvVvDKmBA~&=h%sE#vqYD^|oPk;AunVV}yV=s zq+ou!Gik0zmsGkhk%(Dqf~CxK*Yri{o;g<$zicR%Ol7*u?>Tm&n{m3|&#unA_J8!d zsxp(TkK9LXJCdi5+6SAfqa? zLZc?DG9=?m?+~jpReYJho_g6Nd|BQv?N7pbuY?rUol>=QHk|s3kF7Nyc3NP?y z7XQf7ON!@I!wtPvvJXp7mk#1fq`+MAUGI4iv`eD2$3o%?a$B1e)?s`XV?GFpcW`&X98!|%T$zr z>d}M%7OH@$A4vv8NmSv1z6YZai~`w)trSpI~_b-PDU zeZ$fxmN_T)#1&myy#{admcJ>7Oqk`%LE9s-ytdcGDizc@I~{k|`+necn_dZA(($k+hUEoL<6TY6bQ9th-d{{J+x0uW zw#QT!P))|Mqq%(HLR~tV1iiMvwue|lrb6u{lsbz(^aicK0;^cfHk7*|F~Go;SW~Br z6_E{ODDKwpffC`M@lQ~21HT4?eiKzM?RwD!80**#kKq+f5$n%u`RFAQRO< zT$Z5(F%q-~5rvYtBBszUXlF4at_ta^ZSs}oRBZ;`2-GFNYDSZ_nsjs~iw}}4tT%ou zI!-c}*eH1Zaq{`fvF9Hhrz9w3@FdBg+VZhn1od2qO|65~Xa~*j3dDGtrP6!2@G9 z01EWA<$nml0DO09(-9P|Lr5?7E{YEKrKoR*#+j;z9t?r?XUBrUnjR043Oh9{2XF}r zp-Fd@9&fx?U|~n8w*`;^8FIk=BT_q_hCT*Z+c~t~cn|vUj^Vig+DG;qKRTAp16AjH zWORD+mI{BQSx0QVyZL)L$EYq9`%jl<$LkV6VoMa!YlYltNK;@j)o51%3z~yIE@~O5 zl?G2dupq{+2~PF!ICaI$sio?FEGl)a0eW%L`yM8Fy1aq#m;m*7u7lMO&UNZ74Eci- zXn`}Q>+&tX4&Q+gsR7foc-JdsgvR8M5(S3HpcL$Oe= zjW>}gVsJ1$ByPeAN?fnX#w&xannEBZGK9k&^y}DLr)7I*6;?Kq1Cccoy%S?@1m8NWsJ^r`4>iKW37~n&fILu3@e4sOe4dG-V?@M zFYi&<|Mt-NtGA8LU!4V=i5N0jeqJ1%*};YA%tSH@zD|M5*CxJQ7@fZv7oAzCk?72X zQu=RF(tl%0e;#yZ_L*s<(3xqZ2!Bn9@K+Q8eOipp`RirbHa)|7`ELx#zqSb`|dYOe9iO5VSrFT=(yQcK# zL1bp1nMMkcnMR7xNQuxu5zwc_i0r|78IA^E?-E-j{h+N60#JE>4ez%6R`)?fRpoYY z}?ut;@q0D**MPb zY#wc3r7=pcpR12IJy!X1y0H9d`NwJSDC*<8HmrF(Hh$%qT=TtNdV83n4Na;&}1tqtC-a4(~Y zbR)540rkOdvsfsLOlsJKdj^{9b`lLCE@w8s#XL2jB?*i)l*`x@gN+qK*Ktb$GD${e zZtKbU`9@XD(PoDGYpRX-O5B7-3ZAhk2{fL#Ga*0cE%+?jPEqy0M~r}76s9e>J&92Y z_v_oj-Vh6cfc*!Hr`V~H7x{A*hg^c@QMPj8J@luV#L{pE8@G70J#j68W5^y?1NToM z)>HeTU^5_W`jYY?&4UfFyOa!n!lOgrf*~*1cGdf9T=5@eJh40p{Q4PY(oF-D0|@G` z({_><`Q|uw5)bL9mSzn`5i7)gv?=;zE^P|=69<1^mV`|0`TcD??ZYhXV-{5(2_ZaU{lhy(Y;*BBW+Q2m4|?sk26bRO}tVe2u!V1sFj<&Mw!Ajirg$P#?ew( z;cF_M9QDSR13rK%Q!xruP$xIPfGje!BXsWDqRCpVpt(>KaB#*}Jp~++1W9GQfFFD6 zD}Zw3!6r4>lDAWP_y4EX*RA#Sp_!M@o`!JKLV}B&UAC5Z?&1XtSXUlEc5M7_@ep?3 z@)==KK#r$@9eZ(md)pw-6fgfcZw7nSXoTK5%CjUVPdr5lC%zvWBW3Er$5Y`^^T`qF z==Kl|YCgDPZ;cvKo$*9rSItM);nDYPc~Ej0jy^s#80A|j`=nyNnV?BznhAc6Z6^6B zi;Pc>YbJWqd~i%N$q{2S;h5($6I5Tbj-KV)2_7)*1V6z}AH)uVqg5ho9Pm2C|08=T25-b|xDapnccT8lduX3pmTk*P1EBSS+x3A}-9I!( z0sc5^@HTkI=Kbvg$EA_ayz!hKDaiSHW52E?Hgt?b5pQm(>~zTEvn2oc4mChJ=j98H{#}fXPyv{jtx6u+fP{<#WS&#Z^$FcTFTa$CgBO0 zH6DL-Se0lwVP0ki@#eQIk>d?-l76&FM{G>Xu&I3F^kPPZsZUCHZlh`ruw)zCrKV90 z24fjj(~mal_?^U2aYY5;_$sOgfXf99tT~+5zy^b{46Nx#8(7ZWa%~(A@7T$( zs(j*tQ45ph1&yjXoY$xZgRzXN=}n{ld>tNbd48!L0TTpH z5-?3zg!Kg#XnWx!n@-t*2=Gv5Nf)lCE3x(|%p$U`trv&tRZ;n#ih~7Y%UC>oWUfR= zjE7Qq+g25_A`XPHg)CG&=gPWF1cfYgbw$-`K%kUwQtPky|J8->zNTODzO%oqpH!uI KLTv6~%kSRB literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_dropdown.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_dropdown.scssc new file mode 100644 index 0000000000000000000000000000000000000000..4cf006bcd90ae7f837ff64070e98f832c602b137 GIT binary patch literal 20603 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 Dr}bU9 literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_flex-video.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_flex-video.scssc new file mode 100644 index 0000000000000000000000000000000000000000..81d2bff3641d08bb54323ca9f1f2f80fca207ec1 GIT binary patch literal 5310 zcmcIoTT>HB6vj)1Fd=erQ4xhUA~y{LScp#7R!yxdRe8|0#Bv{aNDY~e>2)$4XC{b6 z`4{$Y?62DYvgh<=ZUmwB;)5jJr%!+9>vPTS=FaAGvi6#J+$FEw@YA}rv)6Fc5 zW6kYu^EqpHo#u}Fi|1_L?Y!9AZ8q7ib+at&`9n8~Z2Nu4m~FokB7P%0X4$u# zPLKOu$bzFOVL!+Uy%haE3$$FtIdT0VJ1VtmPqsEJvOx}fc1k{Qj|uX@4Y_;lvk2EW zwn}#C)qC4=;;#c{S0e6%7Fs$QgC(B_jF;@HBL*=SL3B1I=(t78sP|xNgZ#$GFk&R` zG5lYUjtJsV_~b<1gWp`x5R!rGc|7a9mkPl+pJ{Sfa*Y_)Qs#UA7 z{!7>IXmNlO9hDNs&4D+={xJ(Hw9FUnIVTwQS?Ik0nA5wz__+HnFoOUWgs6&D1Sv)-8FI^~x{cl~D&GDj*7M;+N-qaVl%cO0Om_a zx01L}ndogO2KqeuQgt9Aj+sH8O4F7JqQf|ZurJdxh=vTDoS!f$YS~lp7(vXtoP~%L z^N)KR@iBYGf$$x)qpy%WPVI8QzUcgLSMjj`*zxY^LgZ7pejy+9CVNbvwckq`cbsA1 zu`ue0ka_J)l4;8%)7DqDb&^3K;FkC3A|InmlxTqW@&IoefEfoV3;IZ+xg>6Dt(uf5 z+@H~;Aj}sa%;zCgdW?VUspJ7yKaej`YN#im52YP>8}8>7%$^VK#DwqX0I)y`XbY5{ z_BjI<3I;6X@2`pz7IuB{MLU=_q0-|XxX*X&cp&u@%IMH%(s{wzLimhcG_$gqhBW9q zKs@%WGjPKQTmi)*Vb`=@F`spy2-r3jTlbKC9*(8wB9B1FMa4B$|_c-3O0fc z`qViC+|ls(cd)5}AH^{2pta>g7MFmdo*VTb1#98tZwV8*iNfzX`PCCAc#9O)-jc#i zLhqdCEEYUxQF=47GmFUErcrvYJnHczUB(BWT-iL~eJ0FX(kYaoC^R(<$r&8O)nq%z+KAkBmEc^`CN9zKf>o=$ z8-h1Hvj`FLLGcs1q=z455|hD#!EOwm5P5^aHFZOoy6!8VVN(ey3%RSPTTqidC3~@G z;C2|6=;ef^A`!6TT>DesH4goUB^_3g44$-Olq=v8=B`!=2mh%$OIrV*X-g@*6q{lL zp_h)VG*XJSQa^YVs-EzNv960FlkyYg!Y1a*rVL#zrLSa9oBA`W`^q{bS63AXh(WX3 zPFGc(S%vC)6%Sp_-UXc{1ajPykC2?7*lski_rcbGR0Uegs~B0rF4M7&I^;X3K!J~U zbj%FxyDI;xhNdOkq3bg@ZkCUrfiMA}r-ok#*!4qygOiuQFM+q6=4LIGv>A{yRZd>w zLB}6@tlo?Je!Y)FV7-I+m_=&Z8r5)^Lv1|NmWSHr5Jp^P3WJN}XjV^Q?FeI-X}*3I z!Y{*gAt%8DprB4GPGSg_F=(znoAm}3oeKv_75{V4TOXuzr0SXhi<%q*5%ygl5Sh#i zP2?os!b=NX%&iOX9&HRlwm28OTl1As~YJb(*AF< L9#8U;E|Px(y|B-! literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_forms.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_forms.scssc new file mode 100644 index 0000000000000000000000000000000000000000..996ffd3ebe950bf65d0c99fd4f329caa7a72f00b GIT binary patch literal 56608 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 R$s6>+21*A%W=y=CFO5#ZtDV=S`-t^A& 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 Z-LD7DR_Cxfc{Rn+)fB*lv%$eKnjzqW7i@0ab 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 literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_inline-lists.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_inline-lists.scssc new file mode 100644 index 0000000000000000000000000000000000000000..f31d51586a3e6aa8f41146e158302b66827541ce GIT binary patch literal 6304 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 Ay8r+H literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_joyride.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_joyride.scssc new file mode 100644 index 0000000000000000000000000000000000000000..340f06c7a14fe13e4fc849f3f9442ae0a3e93687 GIT binary patch literal 26572 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 W^Ihm9{*BQt9gS7se|sR($o~sBm~-#| literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_keystrokes.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_keystrokes.scssc new file mode 100644 index 0000000000000000000000000000000000000000..2698ba7f31ec5d94754fe0945d341d8d6833bb6a GIT binary patch literal 7563 zcmb^$YjfMiQE@XA1?pibmLaM&sJ;M4I-4K5#(bNFfGs z3;@=4HTj?Y3H{n%(C+Txa0im0lenI-2D-g{KW=yR?ZM%}slEG#`+;k}apQM;R`>Mu zm>-|M z9Jt+(CwTm{S#c`gUpiJh{W#=KEeS#(!YWsDa1;g+4=T=5TMW}cM9IyZVDlEMBH3p1 zsr`3uj}mUD*BpNe+Y=G624NDWMxZAdPeY#y<>W;cQ6s3oj0aspI@PNYVw6Y#}$Df?T9=5cL6eUSB!` zB}C{ZQX_rU5{s6RstVP8uS21 z(Q;PW2_L$#n~K=6Jn)>GgO=L;ksJHm2YDa)yyuQW(mb#EGa1ysOih>mG zpV#MyABe(68}t){AVO_2F#35BqE*B}9{}Nbec|~r-G7Ca1_((0Uc^4clv8Ub!_ZAz zh=WkJFVtlHJ>ly@ua0XXdhkH`sSW?n&IbfO=bi5?_o zp69aIL)Z5q%cf-es-z~Jb~ndpWEe{7RWQ(1Rj|$R0A*Vcn^LKHsZBDQrBRbr=n*U^MuM=J8UNI$A!C$~KHan=D zyKT^c$B8E(XFKv~&?uc=mIoap53q_X2J1Q&NQyF}N)fZda?enmOxB>6Oc^12BH$Sb zd^)q(9bk1AwJf7gK$XFh^xp@5dadYF`c|gJ&;~{Nb0daI>g0y$$w_u*rBwMg?$ama zm&qvDJ+JG-P8J%{*qee$EbW?xa*bJ{fP}s=!+D$9d7HD0OF(7Zb?v;^^@EXo>7go0 z(boE*=(=IUfPpyKX~#H~Ds7cHbW2)TW#Oao7VAy$A&69eRqTH56;V&k1cvH5KuoH! zF?UmL=lYZk=y6C=n>4QSrn#I9+XGY zfbv0E?e-fvJ(WVTPAwPD=^2qxpp-1?3rSqpAy-E(Yy*|SUWR_nTO`?)|1}oF%)a>6 zu4~yFI>q2g`vlW%Xu(pqn*?*tY8yJ+VJGOGBmO>Pzb$os3a&&}tFo3C*_2f0 zPjKH+^68xXtgPM9Cfp$tJ`3j9K5Jx((3uX7w=()&|Ho01QUG9|4|4?cYj)R7xNi%{ z1_+uiG?H1=OoYmmAbEnkM`}or{yL{@xb?4FUt*`Bh9@;9`~`y1#dZpZEP=m7{&P|K zY~?dbF#>6pn)Y77wN4=*&8Z5A(WtenSs&)XrUcCTacE&_v(7(gB3*rEO#FpT+CS$YpXN|O$}kWbl|{Ci-BrE*o}Je+BX#eM|>oCeAA z8O1uUYoH-Bl`yb6TL0IGNUjoWyg=yAC9gx1{eZp%1yO@LvdDBaSU!r+STUuaO|MP5 zshPoAUz*BVgC*HhP5-G~wC=$4h!2`X@AP7Ga zRxbLKO#}mx^)dO7aHOaQW1J3(oR*1GKCb6{N(XvireQK*a%{=5ImWSB2rzaBX)4>-@p667Tt$IM95C*g^#Gt)}2Lh2w=hmbl72{$2A%EVEjAdjt_{vIJgTpAE_5 zhf&C>M*-XzzOf$PJ;-~(eap7rb#ab)rK`5W z8u7^ERj}KD|y(XVE0kFc_)8e8}$O*)HQh<=|2nUe4>cl1j5_HJe6MtHD2kV+%pQWQlBT=OIg*V8=H8 z)zwzFzHirQb&DU_mKHwqeXOn4scf7cElw3txg6caedXQ^6zVZDoX3ZUho8EN>p-~v zxYz5ITrKYN9Q$O)xL7dNr`B+$ep&Ta+SzudAFRyw)Hm$9@^4sDnQ9mK{+bPwDMPof z*^}qwzF`-Qv2UBsE!w~o#JH7>Kh&8JVcNzR#+tlKtpweL1h($ literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_labels.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_labels.scssc new file mode 100644 index 0000000000000000000000000000000000000000..5791bce1284229cb1ca3d8eaaa9a7d008dbd7b41 GIT binary patch literal 10897 zcmb^%O?TVIQFc>`1gQ_p-;N!xX<3mJOQI}0jO z7+clL>!G*)hW?=bjoy0gz3;U%`vELKfMU}4Ad|bZvoo{vJ>1)Vu>BcXf5m#-C9mA@ z?S|ER@}%|fLFcpHF6-^}9zSWddXL<_{=?lTd+hPTob6??%6Mllck=yWci^A@cl z%1?GS$sZXRM~uYB4F3isicdW8m3VklgxG2AkXp2k7-@rBbit_y_AQfWO%HNchg*Gj z$o88n0>#$I?e(}nKs2z$-jBk-zA8^2bVELhZTlsU;u;VI61$Pzc|P{LuIJV1(tfkf zhEH9us}Q;2AUdifBG#zB84o)wtkWv5+Ls-FJY=C82Vr~c^BCawoAaah0>f3O$NXT( zePbK>tHbLAAs@hox8JPp3GnC0G;F+OC+~u=2V%7APBik|xP?cANa#wQN_r6pq?eGG zC3@MooL&*4tkbLe&Dw4&y@Fmlouk)h#91rFS$$ZF(q3{RHgbhfY%3bMU8XqzEg6j6 zu*Z7)&4oKX)_2EVEM8x}ykc`vuz5i~Zs_*-I1)h1f&F3j@w8gh@by*(UeIy9t@MO_ z#TolO7DnA5WWBah8VS};!BDtBVuRi+CaWQ(ueEyTY^^3Sdmm3~_M${2`MVj!?k z74bhS1*Xfv)Mvg}^dw92nG4@!NpM%fnb-{IBth>O9~{f40jVn|qb=Yd4uM)QC(x}< z;Pu4gSoRVJeUEvcvk;`YJndewsqejP2%;N!L8u@5TK2J@;vU@E0?TmYIE+qfb`{>0 ze`Z?)@P9shsCB@b;ezXpj$K{>LM}`rL~Lq8uICBaa+P|*qujxpY4fy3@A7m1rK|Yo z9{yPqx2#ONMQo;S@s{anU-9?c*KRiJ2rnVd^w{U7-tmYG@g%y`Zphr25tk^7lAe`x z+=y*YD&aMOHS1ml5zkm3-D?AFX-SF#QHa;L2<`;DM&+oHXoCzn--f|RokI7sEY#W1 zo@zjE3F|b~-Pr$VzbSXxc(QHmNTa-gQOE5>e9pe$fMXxEqZ2=N-`iE6y;A|>hLqDf zP>wV#q4B}f@qsUB2NG^qQCaI<&`&1S%c4ZQ*an}YoAeWf>BB6hO9E4mf%|YVxMk7R z{J@veDMofPi)&)d)-k{y? zr)BC7(O+pixKSn(jHp2I?@D|hn+lF61d|t!=8xtrYfg8=1o~l#^=HnGhVeL#QEb2@E6cTXc@zQW=Y2>w~IJyv_!oVZo zg1g5MUb}AxVE_px5v0K1A&a2UfwjT$WZb=vs8RDye>%^W1mG48Lf!(=#SE6v`Q*1i?@*0v`%S3N`Y=eESIJ}!i!x_ zrK2?#47H&hnI>R@mIu>JR$c!Me z5+}7)KOJ45i|Uexcu8TjIRB6HQe{;mK^x8=Kt)7igbjxPzxch~@*)iwl_gmAtxHuL zz}m(GLv?R-8336GFOSlzA0!W?2~@SZcBcGAam8M_hrY=!E7-*qX~F)uh2YO=-AUMn z`rn@SVsIdjaJf*3=l+Q@Y)y#+NQl{I=hZeh$ zPp2tn*2WwBQ{a1HN}w10AjK6{IZNPOMFm-2bXogNxoOba))g5@8KwPmNEA<#I`zl7 z7>9+Fa`0#{GK8S{h!9p3>7Hnh9{sxJq2pDlVQ2tU+5(fXGbWMigo$9M4FdcVwt z{h*hN75U#Y#xG6g*?bf$AQiTv+`r5mMWHI|O;CD$0p?4VllA?^o~ZqFN&r4t#sCUZ zD(JRl72Dzz!BMfx=m3YF+$9>2nhvSolWi=}Yq@B)prk(I%biJ+dNO#U&56YA(WFvi zdDQg+=)QKwaSR<=Y#F#73*&;`>+j6u%@Ufg(zaTfUZpuW7&7EnneUijsgnO^mPbx{ zgPHBhJIrhsR*YMIVR>ZSCPK5kMt?N$>x5GWbqT0fC(=*@ub~zwCiAPnzpau^2icKH zXWE~h(D#zAjOypg2I`kmFgs->u6~)!ixs>e=+;vWJIh-jyzVSZN}igO6jcEly_Pso zp+BND8vL1tFy%HWMuf~>{Y;3n!5w8Cm~;Q7`l}`|x4GZ-#yx1~#6xdO);L`cCNV53 z&)D^$HXdq=Lv4Mi#FKwLvnR*mna}v$4#|x9BOKR-vvB!jihO;4j#%!j(op_QoV6QkZB#59bk5ExyH&wTnd8~{1 zl#PQb_kjH{W`37dAB=I(@)X|? ztWu<43C$qF7r=TS$6jLYG>7>g5EP9&e*$7#_%RqmwFGQb4_I6QE}@fk45Jn}N^d*2 zlK(FsEldq1xyCCX65(X7I55C40Izr{-hr+*Fw!XuNhj$ZfUE%}AGZ|rD-(LcG$+8n zk>FPv^eT#FVQpK7Qpka?LHqQ2KyOrqKetHW94Em5=@HaJim);+tIiSE&^wn zXBm!Eo$m`cZkR|K96+3Nf6X(kR+H@+*Qvi`l$J-jo|`ZBN%GZeoE z&AgeJe^bExVirw<1CVp>?|JssYO*~e`N%1*3Qnvk1b#om(TjmgtaPSlm6j@P4J)m?ZP_zoM1zL#=(E`1*XFr zL=WAmMj?H<#6VUv6LbT32BJg{&;umLn&x@(plAN=_|8GHjT1%b6wxkaRF<6FG}a zR?{J)O>nM=8^*xUCcC&|4F3=e=Y6=W26;9yXLq=vhjKR2b2w`KlvOd4>*7gTmS4;( z)>qYV%g!p|eX^R&we*&u3L8RB4(}6vo}3bmDOscBC!kzFCCC6y<6*XO3Bu0CkDONI zSi!~h)y}|P&5Rm=4P_R6*NYgE4HQYc)GeY}W&oOv&Ol-iIR1}rJK!S($W8m?cG|8- zJ~k*4N{nW&^kg8i&Oq&D+4x1RV{wOgAd?pIIf2e7yp*z2(*(p48m4?)cwYGB7nn^c ztb~K7)pD1=Ap>PSt4#+d1ZnaG$roRcI2_|uj;h&IXK!86C*d}f)(NsuLDlhsW5$63 z-NW8WdBY{6f4|U*Ks#sD*o5QMQ=wDHEoThcv|!MtNnmXm literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_magellan.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_magellan.scssc new file mode 100644 index 0000000000000000000000000000000000000000..204b1ae3fc7ee98c925d6377fa4053808f9cb70d GIT binary patch literal 2512 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 z z8ZpWvLDMcf1#OzUkY1I#GTiA})90gc)qB*+C6KWZc~q z6U9kS3`u;&u*67=pn#L7?y;Xmv{7rtBrQS+`-#oMVFOUH<^676_<#{^35dsIA#R%scqTwS8rSK@<8TpwX|EIKgOx%3Qf z78x9A&4c0zeOeQwb|p>RDUILVh-GU}rH{Xq4S#kk8|GC#ZCLg~*?bXLnpN|j+Bg;i3d`$flUMm&~V$l;z8LYa#=dsashl4odV8X(%T)#WaLE55E&^1NIrNj-S}2u zd?aJFtjqW?{(o+KOSdvUUUfI)qjd9*#WxW7JNHIdR*5(XZbFQG~{N4$g$l17H1GG`;S`gXD5mm)N=dP(Q5)*Y1mzMgP)PB1$^)<=9b(1bieP7$SwG6Xp zZanQY&)a6T*eaHbf58pfD|GsRXH zSH(K`CpIMOMmrAtoVdpOQh`O239hBLtTq!&5?joMBx?>7YYxOVxA)q%wFBGoaTyVs zHOHn~X1cfDsyWo54Pan&Aw=zT?xv$<)wZ(dY-JH!XSxbX78>E984HtU#v(3g#p@lP zxT~2~+krJNdP)K_#e4tgI!ElFPaGwGAfrI+my0|3e=`VKxb+1>mTrB4ki}bHAY}P= zBZxMuCdeqX4UffCg=LNESLq^Giy|e4GB72B>z#C1NM;tg zk_5gd)3<^a9NBk``g>esm+P&Hep$oO3$JEe*@u>oaZKl(8^FDFy-)ZJ-4M3K$|qm` z`e*G(K2}I=)xyjAmb_k7nDxGB)0;}P3736v!zH~5#aF!9p!;1#ty7H(x|QkfO0=)?l(OD(yjxx zZfbD8_az+|MSAr%D5%&sy~06qG>EM7QBHPRhT@=kNfG^)f>=QO zM}2rjbvX86P=8L-ZQ=3|KbC58N*$S9w`Yuw(_pxUWC`0t9?8cGW5S4&>Bvx?> z3MEPWktALoFplR2PPi4+?27l6_fThG^$J|c<0X>&#-TyHiNN(gSp#((qlMLmJDh zCwS9nnTdb$N!r>{wOZXY4_4Mq{iIJsTVmJuyqTZp^bf+avB@` z+)F)!v&`MXO6(L(ro@@M&WwyAQ%_%Pn(Au@yg2;{j8h&W-S7}hW1P4@CuC$Ewnopk z;>Rh3RMjq7NTTYo{3h($SI&XPgodO?P|%n5_xHP**Iq^sny{3VBeskbkxqY2A3$cXfJ9abw-QG7Qr!B0a$d{2<2QTl~fA6Zoxtbx4~eskfaS+z-f*!1HmG!B)SFEA_WI)>eeGL0x(i@1qWW8vgsh`PC5K Kp{|}%iS<8Rs*@xD literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_pricing-tables.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_pricing-tables.scssc new file mode 100644 index 0000000000000000000000000000000000000000..add8825a8cbda6c7dbe819fca4d738aa465c87ce GIT binary patch literal 16385 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 Ja`}qf{{a>~zN`QM literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_progress-bars.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_progress-bars.scssc new file mode 100644 index 0000000000000000000000000000000000000000..f99fa209dd8e7f4b217c19da2dd2aac19e4346ba GIT binary patch literal 8904 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 F_dn*_#25eo literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_reveal.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_reveal.scssc new file mode 100644 index 0000000000000000000000000000000000000000..38a71b1721e25ba111336fa432a559c8e49a6eaf GIT binary patch literal 18087 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 UowlDh_}&7S;R^l{4r$o^UxzkjTL1t6 literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_section.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_section.scssc new file mode 100644 index 0000000000000000000000000000000000000000..438b1ec0a4f6135c644fcc0c252c123fdad7ca38 GIT binary patch literal 38912 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 literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_side-nav.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_side-nav.scssc new file mode 100644 index 0000000000000000000000000000000000000000..4fb2e76fd2c20941c389f80f8f04f8f639e3a55c GIT binary patch literal 7891 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 WnWvN#2ZDnI=PR+{NobQuI`&@xC3J59 literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_split-buttons.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_split-buttons.scssc new file mode 100644 index 0000000000000000000000000000000000000000..718484b00568724f08568fec9f03c93e04f43bf0 GIT binary patch literal 26637 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 D_v3iL literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_sub-nav.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_sub-nav.scssc new file mode 100644 index 0000000000000000000000000000000000000000..bbc66fdeca3ac8487bbc800a23071a8b8898cf8a GIT binary patch literal 8650 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 bPGG^*6zq&y{b{PC>#tPHH{r2IRfzusX(dfn literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_switch.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_switch.scssc new file mode 100644 index 0000000000000000000000000000000000000000..7aba95747b65d7f6d32211494431e062a65dc657 GIT binary patch literal 42612 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 V3zQWxo;P9ayy<49Jz);}{9oN5Pq+X8 literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_tables.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_tables.scssc new file mode 100644 index 0000000000000000000000000000000000000000..7a05e714d402bbc5d8be60910c397bd6bd938226 GIT binary patch literal 9825 zcmd5?|8LaD6%SFh+4Tkz;2?a*Y_34UZL$eTNIX5A?`T~=3C31@T1y(OJ85r^i}=P>bYG1 zvlTe_5#rG5dd;XkJ2W&iIvI1L89FX7V6~$e7;+ttJ2m6H>5n7F_rlW|pUr8kjx6`r zf!{F?x!(7^DDYi9I_7%M>c1HV{=~Ck*!2T_0RJN)B4`W7`CIPkf&VTGI`dB@3+nqzjkkk9AK2c9|yj1O)Na<2hKP$jHf6;gVj4m z)3l-}2u~YEJpgZ<`;Vaw!Kxm9HF{tq8nWE+vE|f2kR}QOdJiX7U~?Pr?%8}`P27ki z7ShrrpIvCOh5go5ArLCp2IZt=Y|&>IQ37`9w81Vr=l;#U!yi}h$5n!wM<}*b3_--i z=39j}7pCoV*VTJIh#Tl(bOL^!GVcX4uM~JmT98(>X$9%F7{{G5<3SWS-Vn6dZ)u_L zI=1kdvEbMcD$c;+0hnx|N)ICDOeJJ(htA)53Gl1QsKRN?UkGW+FZx&?B<+QAqggbFTS?qm6F+ZW0pQM=IRf$PN<+JN4_5;ZG zjN5Kx)9(4i>szi%Y0>1PruyZssxGac6ie z$^{gGYm`2Xp6|-+Vb?*0r7HGBRP1H8l6%LNZ9_t;q*=;Z|4&XB0oYO9XLs^0V0UBd zpD(ihHMD+xH!(ibPiNRYwDvU=wVLHZDa*!2=l{ynSTI9Awy0VdS~#})T&Yl2X{CN@ zciSyYN+|5Qw7!m88D>IhdfpHg%WMz0Gi2SzTIj5~YRg_Ivg}QA)?SfeZ+@k-h-Hbh zh$mZS--9K^cgdb5!G+$}L|UNU`LaLsw;`3HjDiKkok}PGhNM|kvx2qtC zs32rBfbCQJI8z6zQgW%t%Xfs%g*kbrN+2R8yUepVpsj#YS0>vw5OPQzn(bg|J)yuJ zL8W#)-5-d)tzh%fMTiM6%gsk}P%oqYi<@+qgItjL`qYu?kracssz z*s4@KAHHQUC@8G9D3Hqp2{eVX`u*R_!9z!DoOWC%0?q5FJKuPEJ zTQv<=`)pIl#2&}sv9-1clGd@E4twIW-5T3Vaf{hPbVAsvT$s*LnFs})I)s84?V`7` zX}F#X{`G9|FVeP}YBuA@uj)tvP>=;6^5~{`i1_Q|kUIkThk4dU2hBx+3MaPav-LW; zRhSlf{Jcrkbh76r+um=H=khiMiaD#F1EZ?18uqLT^kQ_3!HoY!qLaqFQ1H-3k!K6x zk4ajB-ztR%iaFak_xT8!lkkckuFC5onSn0qt9H~#B4j?@3C3-3XyK{1kEE8Ml6 zbJun@P%dQquNbfVWCw_XmulDxlZ4_x08br9gxXg3)ZFuOUJU4%hLLgj>N(p5KbhjM(A8R~OQ zekMVyLO&g<5TfOwDiVuA>&Mbi1&TR4z)VqJH9SYCOj%Hw@(p?NQzE}tR4x2b zBxBHS_}LyqCP)4@I!O+sbTNc7E&q#L=)91j^CGEkKTbu_b86J|2=DphMl;Y8P&&Eab)GI3Q)}1e?pw(S*UWX*5j-%Se)u3 zBt+?A%8pNZYD>5rCC#Z-j|y}w1Q_sCZE*Hee#Xb@uiadcBA9Wnm~0@ z9-|IKRj2v%eNfVfiTj{54a$-{{-j4m!}Tgxl3rzZ&&B*5TZ|)1V4j|oK%_vU8Q;=Z z;E{%LgZD5lf$FySB3`c1lWP3vW;8uN7+J2ovUn}TR?S)J&gYCxVQK}1`9W#j1ByBO zmsyZmec_&=wq5atePjT5e#^WcGD`Q@nu&ocUC77b#UZkZYG(4e{qDirFZN_S`sKsWB=PRq}#b!%Yr>smHWRD`PzvlX0 znLw6T359_oGK?ZW0h3B+E^}#(G#K8Wr(*?ko!mly;~}oYVZXz1*)Z{Wu=d&q=YA7bp7ndRsFOm*ist= z0|k|mX#LcA1#f;+zkdGs0$_1sNn^<0nVv~-NlcBQ7@(Y%?jOWXPj)sPukTK5`PWlS P`#=r$JpA2|Xh!}EN}dgi literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_thumbs.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_thumbs.scssc new file mode 100644 index 0000000000000000000000000000000000000000..44cda088538e101a7b521fcf0813a983afe341d7 GIT binary patch literal 6750 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 literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_tooltips.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_tooltips.scssc new file mode 100644 index 0000000000000000000000000000000000000000..700a103cf16fd4005f058bbf56b7b6dd18556119 GIT binary patch literal 14965 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 literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_type.scssc b/chaloBEST/templates/poster/test/.sass-cache/d77263c49e63c20526102d52cffc0fec6099ef91/_type.scssc new file mode 100644 index 0000000000000000000000000000000000000000..f47da4844da1d2cfa1cfb65a42e548846cbec4a5 GIT binary patch literal 54372 zcmd6Qd5k32c^{`F&CxS^a&KP6*@MgF^z0lvOR|fiYq{h~OYyR}l5DM{anE$mbelb0 zqwbzPOh|!YK!KygfOP|P)FNLIVwu5~%v*l2cT#mV$Wy|dN4K6-Wf^!am@_*{JL z_GY%;t8cb$$M3E8+Vz!Avrq5Oogb}@K6kBFNe8z#o3+V)yMtbm(d+l%Rj1u;wnuAw z(rk0k&bs~A@5z#}N-|FUE}cIYzpoi@^_%ga)ujJs@oLr`^s-LeYStUgUc82%aer_d zpa@PfaV@DNlhk)I)vhFa(#fp$fK7wKjHsOi{BC`td3E}z=&nlLRoChp?apoL3+2sQ zo4u@dRCMv`YOlRHsMTI*_XiWev7*_iN?slG+TC@OU7f!7oz2dT=AgY=k6&tTH3e>< zo@)TRNyaWY$d&i%%94hAx2sXx*KUA~?X`BZ=hv-V0{c6%r$c_}zJ9&iulAe0_L^U% zwlD2BH|xFnAnVmCtB`kHwT6h+x9Yt{vvGBL&%=%8T79cC;P!&qlAOJh$v%&tH=FJC zmZ-Wvlk`rkWSxcueTtZo91VBPg;^rHK4OcCCC}aHo+rCmZ^I#ePg&nw80>pB>tsFI zckP&~0GFu@f}5*NruD&~*MEJYHr|6NK2oc!!=k!)m{@^%(2II!vsG`8f{}a6FyTUl ziBd>1k7~ zdJA;+!P>K4dmROxtJBmR&-kzdo8JB*yl<HWZK6sIjK=Q7eeg_qqg|CK`lA; z`aQ{M!sSRAE?j7ES=<>eaR`^AjLSk0m!oC4aG}BF!p?BHKZMIMfy-iuFUQJo;X;GU z(#~)>8p7o`<1+t52$$n!xNxDt67oCZ*>x6Dq%{z8BH+JH{{+=XGABV<1AduePGe2O% zId0%^L}L$S(xRq1G$=QP%RYI1EUVq;x(5{~P0)C*T)o>{?MS*sPO-n5VeDHLp_Ht; zOjVZ+U>e@1+7C*na#9Fr^t9zu9%ND%=jfdn6|~(xSf&$PsC2^OFyrdR9;_VE%!tL{ zha}WF4YeQ$d8mNFI~@IDf;Zgg7uyi;HzM8n0Qj&3I>Z3@umGw;@KaF!OYwTMi;$ud zKh;NM)p?q=9V200+fUjkAL7~tCVDBL0jF3N7cC7aki{t*%wY?R(Kp0{V(7>zdUB>j zrISarvWGSJbcqI^mbw(s;M0V0QGCmV#^F2`2n0CLjVUtc8CGEYf5hg=30+gL-%M!| z9Vkz=yDbDXA}|->%Gok3xlr4g2f(#65gO$q@kh)0=R(#0F|U6sjuBx=(8Zr)0Sw{d z&lNDM#4BI4oW^4U&g{kQoW^4|ocj$;B3!NtOJ*Oa_0elAa+n zCKl#G!{|&ItGQ6I`ay$My^lF%-eAjOuzN#@RT;5)D?BtYShWl>E>wsab*~D#rjf)*E)h@@h-2lY;yqh%TApD!bd3l&ih7$A2(t(YqV z$A!k5%oKW)r&h5B@^n0?uLs=8g3XzIRI?gzu9FQcJXt}6^sW2ron~)fHGo$Y?{X2r zqV%VSgdRB&!J;s;rGP(OEaLzdDuy3s+&LILV@hR)n`z&hV4lf8E z2%#T(p^bTVoffI$7qf0A>(M%mQ*Y{Ww$;O$Oi@33H_*7hSzi@OWkE^~Cr4CoMMH%I zCBjLIw2=Sx*I1Uyc*ccBYt9yGO})F?%6b8fdEC~R`$V-W>v*Gy0FgQ8+R;Qe>)Kp+ zq6|SUR6;!>yLaPJ8r#I+esHtbhL64Ns-SwCQ^F^U*!`qU)BQQ1)mC;xO4|7Eut_M` zLt<2uW>E>4MUBj2EMyh6G6r&?k??$>gt68dKh^3z9XC5oTJOz=c~9AFIn?T5Aj867 zuX?lH7_^j(otc<3ZoOUDwKZ%N#CdNofD>5utH5~M_KM=uWxU`*rA!t9j*B}+3w+7( z*C&z_?U6rC?xX+QPycy<7xR9o3;-7@0DHk9cY&;IL=6u0DGzDkp*}4`gbR(-&lF0% zgEj4dRX<~k;22e^GWV;SS-(xrP>EZ3$*F8>KtY7%{VtcG$AyYdheh`kgWM&%o-JY5 zvt{^jp~7bxtK4m@p@K@x*Fm{l4;;qXK34{X3l)?{3!nsJL^7(i@wwSW8Fo1<99M{H z%qDaG}xJ;s|D?ldZn?;jL^C zS`fWTAQXuwOjQxzI+p&X%oLw5nJGR`tQilkbv$3j87@>b9kpoMtT!6g+O&#o%4D`T zB(rxhVo!!d_AbHCvMz(Ji@PkCrN};csJI9Cs0g0hjOsNRHJ1<1jgA!(GBICFNpiSW z;V=v#7o$-W14ta@?vurHG3Y7($1ES0GFP)x#~xl_-p(7|s@O9(cD*22z0Cl`wGcF( z1qI@{U>KF%2?`#xC|GR|b~xQT7~=Jd!q9_D%P*FxGZ!j#ekh38n{THtNtsFIb!H$h zvB(yz6)Ek(UMeGu3kwOuJoYs!4%AWWb{xPg%Br$V(hDzAy04P097 zW!>8wg`4O`0(og?jrS{Y+y&PX~%Bw7BIKbf379K5MkPjzLNogjTd5wfIlHsD)sOmCR)qeKZU=CfN!I(RlOhOQsGMMk zB*(XJW9-+d*&m?wq#8K^;(g5k?L(75GpY>RhOp zbg~$by#QWj5po^PT_|1_{$$C79%emuxePllG>m=HW^B7}=VOtI_qR6S25y&gwr+Fw zlufW~K0ISr%24M*gZgYS>h+bC9@d&UfX;jShK;YI#ni6I<>wqs(|3GjLJWqF+{3sP zJ{lP|nGqrq6wd|zn+pw77PesuEw2@NtaY0)58Hxd#ss!s#S($PEZHiPA{Q$2aO}_k z8FqQGT?U8?4QH_a>7_Kj(!r8#3t4N}@0MAOZnj~E`JvLYWM1V~r%9QHQ^>06;hD0b zDyKWhT}0e;1uqBnm45r4+QAgt0)6bEQ>A`Zo0fa=SbS+`iwxtA$)qX4K!)F2{Y)Y4@blJ+L6f)joS`0(B*pM|` zq`|60P_R@$EKaZiKvNi=o!#)@-EiUU_dTbEYADH#kuIIo!?G2c2s&?iaBsSB_sLa1 zB($)$Xt0K!s+a8I5{trRYZ@Sc-tvIna)BO{K&_o{4YxGq1)xp&vS^-%e%ph7o1n9T z{g6~|6~5n(q0mZT?;+jXS`M$tTn1?}9}z?-(|CWQePgE5=-_XFzs5{u3(pz;I_;TC zYaV|K_*=x^1^g}H@8V2lv)7!d(8LjsGZnM=F;f||@F(WOwv`>rd@IvlP`m!;#Fh;* zT*zj}ff&gWY2D1XIGoOIqBlYQYd1R_6=TmXk-N`$)!jsLOm1@T5|(4q*ALa5^xo`iN3Ub7RPo=W zHT2@O2>p1attjvt`RDFfJY_Fm4%x-OaJ$&sX!j8Rt8HODl;11zK%7F1;QV^oZ6gNg zk)QEKZoH5sA5Z+T`$3G|&x!*{@e5d6k6-l;gr#!a9{E{!;2y2BTG)duLRdePRRf-^ zEyVPR;t>=@X_UT|B&8mmKsFRm79_NQN3tXwN{)QeXVWKLfgB1Y;ApXwW$6I4EMBHQ zmc3cF6vn4~_@8p&7tczj{Pa`m(Vdx$eA*S)(K9tpxS6TM@tN9Mwz@^xTJBT?%k7T* zti*O5B)x)+{qA6l1oU%Sj3xoz)ay658d)W&;3yn2!}=nqs;H!&E42waD#PIq`bnde zx8}kh`Mw~U0Xo&~hzISI&6cx4zMk{-rml;&c}HG~wdG?@vqm*tk)Ei1Y? zau&cmdHo#8OOz-ZRWb5-dqbR@8q(NwePM2&(Q?YM7)5FHPubkmqeK0qwNIwAC#nxLnTb9&z0;(>P)PCNF`FR&+$oI(w3r$b%9FWWB@Pft27ktQHa3Pn@ zstxS?+?xzvm&@t2oLuurDJlP=5C4lUd@E19|G+Bf2wJ7lf6n`T^&U<`J(5#Whpfcv@N>6t z0IQ+S-S;K5>tmR6pQeG$thip|HA0H3>YXbpnE5hMOm6AR+AS&Sr_RKjGM^hBRd@rk z)k>WhfqqewpL4J%N~7;%a8fN)KvXd>gqM~zi+UhjRTU?8EwavSjwV1?OpRqmCTyv{ z(#G$}yf7!?4mt8FOiA8RG-auQ-b_WxHgQ?>1LH8v!t8X}zhbO^#Vs+bwG9)g zdQRX5O;vg}=B!8j+hR>cQ5rq;wz8h=r3hI)r>;YEV=qD6MK|`+!(DV^FFD*rH}+D) zHrt3Ir+y0A*e?~+>)09clm zjNHHO1OIgwc;P;TqBg$?p*S1dff)G>AK-7e0L!AK;!7t$t1K+seHi&oAM$UykVE6n z6P4siwaui|mj)F377)NzCQ~rh{8oY!BxNZEk>BF%p%1C>XS_K!0@E)an zLr&amo{5)PqTGLlPv>&*XnT7Vhv45_RAE|(sN%Pa9X^WE=(BGlZ=@cF3M_(0lfhN- zJ{&~+jxWsLafKN&(D2!001^cPP|iGm*N61GE~Jp!471+%?^%M(D=|G6UfiFmtKoJ? zd8z6`SYIm^7K+m74HlMqbSCQgDA2Zr{FNqPBVLAu^|kHvKbUtp@->kt6->NDAsayQ zE@GSb;px73$)$OwipXPVrrLqZ8^ugTQ5yX>W~zGJ5mWsuSD2{_VWz%uXH0#gjHz$f zOcg&orizzf>Ki&NRnBFsCE~E5nQDh^zgNsu6s6Hy>BgoJ^|&LZ`gg}LQy0Tb{k`p& zDvtoV8GXQuPLKqXN>FAgs`%mYRJ>&J@`@^g(xG{3$FN^7<|&HO2-8{sRgXL3secC! z^YlWPr(eG_o_@WAr(d^uDt>r86)%~*JWoZ0J~U75fc_iBJVj9&U16T8$8C5j)}Icv z{9AmOn@eGCe#0M*zQMczrQZlxWPWB>GS-jDiJ%xezFABuiqhzVOsRStl2ZSUAg1(U zn9^_hlzvlD`pq1r`)2LTrfb}?Bp>P>p?s)oWDVacrW!?QG+?ULBUAm(N^;d+CUTOj zt|iawC8BRB{J)jMf2`HpNmQn)3rT&u7-tlv(N8nZ>e1Q#@|NTIqyScuKu*}RvNncojIHX)VU*t}PbWv2hg?=z=7ljfIZZhIh?ijO54b?z%ifH@59 z;$YrO9KItDAlV1tM!rM7sPv$OUqw;!oe(Ab(oll^tY%%vA0&v_5qY_CUpt&9IPwS7 zvFXFxaCZ6N9eD-^@Ft(1HS&ic+W*j}-Hro??s>a0Aedx5!mz_x)+i&1B_aS6KSa*8 zEb+95YgqiU5)U=g%Qxu%0|SJQ__j7*wIW9cxp8OcCXOT6d24bT+&aju_n!Vph)=~% zl_nC;MB0!&EWs2Dm*M1LW8nh+xYz}tD2@J9x&5)?6tYn}ZArGut;VVMV1s(3d||!2 z8CZ!C3O(sv(?Y`YMD!nBl`fuGO%1VI{hySy{#Z*(F?%m=ea*V-Nb}42+!BV#jlACrT*3GT~p8uEKCbz7OySBZHG2`#*|>j-oWmhHz42PJ*m#mh)1>cjx3P zZ_^!Vi>l&;u0=L&5(RdiMDW+XAphD`lhBYPJc&uixU(dJ@B5Iy??NtH7B@)(@}?I1 zDm!ScDKAbU_!}So-?;FP67Ib;z6TeYW8%|n6dLjW5~wR99+TE+8*hovR@H^a{`+F% zMNu04HhXOKIC>ou0u5JYp$`k!Nm~DhVz?+uqi-`@^~kee1(%&xjQ>fWVZ&FhCNNgH zbpK;9d=#b8cU4bg#o?^$v}CiK(^Bu@Wz^#+-9yJoQs{k3rsdGMt2F%}?g*m$_N!~1 ztd0c%B$z|T)!SwBR%+4@5^W^mOO?=?3zq4!rog=H2fmX2z%`Gsa~Nh5;(xmx<$bE? zL|)Wfn7jOcL^sM%=+4xaaTi+;a# z(CBX$j@fP`iVTBu{G+loS^{5kec15}_d)dvJ0SE`X99hd;JD9>S!|?$CDeI{`6G2H z%$J_TNFW)dh6Tl?JxU*Qn&)jX<`Mz7=v*99P4KRfHMhYaCW`pSz- zz0vR@d!}wB@puZ*YiY3U-wWv-4bp4%0#c|>8m;H))dhB?ozSb{6w(V2l3qOd^dfmt z+tX0gj)kaoY?5lE(MR*N>H^TJpLam3f>KB+I+c{-$)|Mxnb~euUBR6iI3(`7(L&*l zhsfRQb_8;$S{i*iPqQwtD>*b58uE6D;{;Taizh)Y4Jv=HNmoPGF&eVUBfDslJ2UQ4 zMHppD0j}x9IeQirO&PA`TpN|8(O1UF;pk`Pi1Ing&khUPam#y3KvNm=0vNP@c0lh& zfEVp6L4nHB=#SK}?T@U5998Xd?9>Hdr+zl;LjbS~QC_rvVf2G(s$?$)Yq)8 z-f^H89ngjV4roJ&AY$_as-`@GGK>3Q7FflW_ih%=d7>k}Wdv3%eE(s~(OwXUj+W>K zm8H==6J#0snMJ8Bqah;lVJ$;e=lNE2tOPWbrO|!{t)Gn+;edBoI%0M_{Jo->3|N(M zOG1BuTN3KD+a~5B`6B?)@to%1jiWiCC1QbD?!M9dy{bUTs^y@RTWX6=4d>I zrC~;14GvF+mY1k5K}Sg^eGvooxe$;+Zw+%_9Lo?+DzTq%?gFz{>}ZzNan zWQ-76tyrXtkjADodwOXT zhWAgSY0p3kr@l|}eUpU&)k&|P&`R>5m8@}FtVWtWZx|K77b{cdy;O=*IfcO+$D|L+ z4e-!y9Y?}fLjtBM!I$UYQYc}SWi6qe&OyZ+2kPYNR_Gu(?5 zsM2rc0*uBD=>$vzp-E>;RFuln=%?5X=x4_blq%D<5$2-v3rvbGaE8rTMa%ZFd}%c2b4G(V#%SObr=+QpiQM5T zVl-#Pmq*N13i7spHa;?MQzCP8Z1YAR9&hl*(Z310$CjH6sd=V>(7A;Youjfe`UBQE z{p>jQDa^F-twQnDM(tk2eLRd+fqz-F84lgedvhV=ZSGqJ1Fag?oxXZ=Sc?2Yj*)m{ zL=Fr>t{#%}%WxZ5eZ{1YesS)5wL2d6)PPb6Q6KQK49FgIN$>c^Q- z8cNW=a=6NU91W=6Rl5)2q3l4r zOEGtq^}o!`z0;F{7mdl7#lGlO%sshJNWi`iJinzFUCpr{ZyceAQiI{H1z_ju-CQCr zz}pp6vap|P8$CZ#)}P5OF6hrxka|u1L$c`7-?eslDar(|Ix**@NTS;zy% z2h^0WP%IgrT@xQd8q(^=WOelR!zB!%vNZbF%n<$TFr;{q&ABYO@X~T9gk5o2RTM5X zztr~boOa-iW5h*q@Gy6q0~@=Vhm9W*zna4ZZ=@Z8TP7NSxAX-zHG89ZLxqGx3T@JA z0>QnnL~vA=M&Dt<>1P(4(wIFsKEk)9?_{u;vfBWKA1OhB%F^gh7zO?81a8H;Gt{;0 z5SCqUS>jftIl#g5Wq2c{g(qJ?X2E3}>8QBZG!V1G_m}X7%F^h6GH>*=Gb;?PIZeqd zoU%dmx@QjM7qHp3S1r8J+&5CHDA*jllr8!|j@5YM7-_NSx4+08*w~ep4K{gq@xdG> zc;jH=jrqc(Z@UEcA+MM4`idP92=3ZTDWJoyAn33wNabA4(SSFy49a8N3=CarvARG= zT=Vl{v(c`LTi_>C+~D53O&KpDs^LXRdBNkE>^+4 zD!5kVE^bwcnkD8!Woh&nb_I)8@W)!#ab@m{>gVPh!*paF(Y?ElF0h#jXP^Mz5k}Tw z%)7(Lx?g4cjwsC6XuE!!!+G~Kkqpk|Mw(v%s#Shp1VQq=Gu}uY#FOux)tUbxeY2`A zgt1nlYE*^{aY~1c^s_^KQGBtZ`vItLk6yfy^x`Q`uh8$I>9x&ay@XyWOQVl5z501b zdUtSiKSJLgy?7((#Z#W%J3m+-wMyuvGVB2`z501bdUtTDo^bH!#T!X4p7QhxZ!xrd zZRgT1p_j_i=&MYxejbwE9h`WN(6>h~-bi}!Bjc2eF%7j+ocR_&>R~^Nl7p8LCL%rtfrC!BTuXhzVWo_s>(;m(fcbJkH`*km?;@ z?X~+Y{tn$cuf6!fQv6JYudVd3Q!!}9XIq1f&eDo`Ll7RVoWt-8`tem6WMHaK7U1SU z^+gYSUbE7Ux+BR%I^lh9<=ue~)$E@Y2xia?)$yDAxthatMdG%ftKnKF{Lj_MD;i;2 zI5g!VPE-#@zzFAqHDg!kD>d7Hu!b8a$J6^nH~fUJD|ievAFN>v%qqhe4*Bc4O8Z|O zK=epFox+YheFQyz7@y?HdIK04aXQ&k+lNHg#=$ zB=wq(d=xp)6ak4n$@#FH1z*tv^L*YFX0l-9Xwe}BDH3kz`2QdE@#&LDn}Miy5n&~Eh}InxJ;yC0 zvaxBxfI_C=Cde`cj%fOzw*_G;j49= zKi~xvZmi>c(LiG5^JM=3Y4xP1{0SA0Gx@k#b7o9LAkr27YzbSaERC)Wp`YTjEWknV zS~bimrY-=Z^|Lb`-@PKCUuoTV@|mU)9a4>SeL>hKOSna4xR#HVNIyHY?cJ!~s><9G z@JbuUq4~MF(?d=m(X*ruPm($nWs6z-v*L4FH~0&~a++DehlJP3Bx%}i%_(%^gpE#R zZgy!EpKrsv0!99`MgmVhi;v*5m86#RaZCOeYsToxX1E&Xfr%RDm8YXDHPjaD{+A`} zrm{5p)DX(ayHHM_)Gnu+JLyo6WRNWFknC4=4)$AKcq;2{;tm2{pET+)Dta&A{b!^T zQJ!}a3YFd5Q5XM8iw|h|;@ejuw=%CnTYZ|zpDPg@m8H?whZ3C4XVoqzI9&if>t{#J z4_l*?nKEko+kS9Dx6fPOj8ZD9J(zC^B0gWjJt|A1@3EKB z&knKSp=u{9LFiXfizlC2fBDxj>=IG~i?3fOp_9te=m$)vejb9(!yL5@=}ghFBot3R zp@)Q6F?ZUzT<>MMx=kV2FP0EYWjNItk+;y#LlC?Z!J=PDFP`%B(u@&@!|sIMKvU51 zr4o9nERD`Ez500wdXLI07l#xvx|Ss4Nsvq&-cmoXz%pp!yZ6{XxjG#ke(e1D%K7v5 z)tPEXs*m>-Dtliu-oieZ*bT$B44oqAWt~_=fqcD;+#RZ%l98cxAykcqMDKsoxUus_ zbI@L`$1gRvn$t6}d4nIibSA!p-LcM0+{c(v?KgYagnL*fA0;j@k#iFQwvu%kMXh*m zFVrZ;Wm6kiB`AQ#`KrNoCl?kL0dDy7CQY zmx8T$?OT6gEZ2;75;t&#&x5Epanvhi(O&p+X}wl454Zawb^ zmo1w&v9--&iA>+u-H)*|Buuw4TRElQ+xO_@KzXWa8nMk67)GbP-onYFvyOk@x-;?O z+-ZkRUXKNay+}Jy#ub=GWk%y$jA>P7G@iu}Q!mBq&2F;?2k{i&SNb$_5zFG>BHTu2 zTLr&J^B)U+)2M)hWEVT&V#p-f*_n^D!4mZ+4h6pAve2Bw_4s4(^%@q)DDOkPc9hAS z0~g1x5?ff7dC~dVi#A6MB9N1Db!RG*3G zms}&~uC|F1;`lO>S2BEZawdM{h4u>UjnY}-7qf2m$P5a%ddLcxi8t`Ozgb^J_JGk) z1E4@T8CfqjD7Knx*ebfEPd2>OCD}kCzgHFjDvA8E3JGlFq%3O)Q=VCKcFpsQaXZ0j;Nb$4oj2iewu)_-jth=w#t7Tzb& zsu-MN}kGKFu2GyP-d%9cH%5#6Si%x`)Yvom!OjMq3!S$2H3^ZE_V59jV9BEj< zI~d*U9%ZI_h{F==Ckbgs1?JSxc`mcG&_Y$5tqb+b8ZWmEJbkp+Lu;w6aVcEJ>Sb+c2dZ%MmC_!NIe4%X^@Il zrDQqxPpDf*p63p-=8q=#b`?eP+}?y6G~_ z^QVDE0mmxT(bD8Vvz#WyI}ryRiHj-c)SdC$aMY}!7x@t)!Vcpb<1PKpG4}+nwA*e$P zih~N9*W|N3LL6l`t^5GS3tMRQhgfj!_GY%;t8cb$$FFn{XSKj3Br#IyY5KT${5tkM z7!4sjD`MAgArr28pS-Z5iv8_+kzAoQ!Xu!R9aigdn6ZLqjGyHzp59ED&^6L+qH4oVE487Rgw1&TIIwX}7wmMqN2%lN!@|lvqURS(!8?lES7@ zT{Zdjl~=qcyj>mA-PvwLS1UGz90x3b7H6oM)JCmn2BcF$RsE@-)u~$~7(FY@Hcp$j zuq@Mv*^DJC&%`|cWX=?swLL?{9G)=nO~odU8o(9D+SYq`<}XSe30y`+yTi-p7-$u zB5PT4h^yKsvquJSUcCy4-doioJPpBCp{Cb^&JKvh*qVo-3TE=^kFy+XFq)^>jWn{g z;McbnfJ5~c{rc9Duc^;t5OsgSuWqgJ2C6Ul)vZNcM)#s$!CJRv3p3wKL``jgdeq}O ztscujO+l=QIBOdeP|wUY$K8O^s=)~uh+ zc+?gLE^E}CaIn~}Df#@G_`aGkMJAvYi*+nQ!BR-P?zXVYGvKcEx57+g73NTQQ{I*q zR82eSjx9x{H>Ew$0+Q)Kj}B&Csc2v@HH`C6u7S&>#02vw)0$nF8vh%4w2j}_c9TQh z@}L$&shTrZK+>i+r$qGFmj}+OX1yb{3PP0`7tI&btMy)KNdD6;2zQvd_{_oU>`RDz z@+sI?6fZR5Cts&U3iH*EkAMb$eTDF$|2Y(~ii-D|Z#7z6PGW=wLwqHJJN*d$OMmK9 z100>?K7ApP=C3xutj)raQEBdlgB8`4Q;|OxP>aQv2*?STFKmSBiJSFRJ-Q`7REyrL zI{I38r(%uQDyfdpNB<`FiWJEI6F~`H3q%l$`gdO=US>Ww29n*LxO0nHa>#S42~}Z* zP~N1dov~j+3=5C1`wEt8>4MT+y@WZTeTQ&`=3x4cV5Wux0e!D-E!J1*62g}L;!<3C zqdbatzbzHXfk20ixiuPY&v(h<*cF^NnJFO@#DjxrsT|KZ7phtl5N;`Ght=W#WnM@bQX}LgmKfj&RqD-Qo(<6~bg8kx;;JUpzb#U9scv|b zP^lr`tXPYk%M?Xrws~BPC>)%=AJJ;t!FiQ9ha3F3T&q+4h)CEl!JY%gVlHDjf5+Eb z@2NMfK88@%F=uRg(Y^JpB5rkKyfvTgOVy}jr3B83gLp~BI-;=`fb7U6b{fhO8T16& zNPNvq*KM!03ZS(IQz&vg1iKdZo?0qH){cv;q<~ykVdD^5?h>N1?A4*iZK3pzeXqQT ziGiv+k>GHOp$As6$c+PcZOf3eG;=wE3hda`*lRxyj?`MrX-yT2D(y6FPM9{vXBuG( z7ec0JOh4CJi%L%SD(ME@7Zbw`aM<<{=1lIU7aq)TtDlNW)zr+^cOFbj=N)2Eo4n|E8VQC!lwKS|7dO z+<$BxvWHByQHmu=eJWhASgHn}AeL5oPW}t6(}$sJarpeR&}Qufz0=Gb9X^9~&hjJ5 z#9RDtMIS^Kk(8CCr@*keiDShDbqYs_{JNSx^_q~Eg00&}Siv|m5XEPwV>*3#mJXag z8c#nuP0SOGVB*f{#&APEq3E`R;@8s2o+BLF kk^q2|-Ahm&27sHVYq!v8O`dZh2hCSzP2sET;*OaA3k+zpMxBoy*TVp%~5A%YMRK_QkE1jHim zRo8n}-PP4qJ=?cu+15#}t$O`l)$je@>#FMNo}&jB51wk?`e4%Sb(#-$Mt^kM+>yH$ zPb_xMcaNXy9$P$i?BwE!lZTI-SUlP}e)#C&6DK;$$z4Z|9X)<>?yA{gYwwxPc-(3& zjgq9*dT2PD{NAve%(ZsN<&|E)J4yy;w+vfvwT12(uC68nEw@cR-s!I=XJ<|yIC$vx zx#sQ7`-ba-ZfDXP4w?`5#=Y~sesA(r^PWDKNyaE}`=OcE%)LvkIXQW1Eop5V_xhl& zJ#+R7sOt9yNpGgLT@Ke!#rT;k)?3%v)=yu+4vG(d>Z;kZ(0$#rGs~mi+N9Nb_gXSi zws8bQ{A18PGHhL+Y9OhHJELCbd_UO=1_zzhrD?X64paA=HMO$Qf;G(_s)Zx4t4*_OukzV>`? zYkQmIAx(y(*6bj8jOq`cJ<33&ezaZG-igjxIOOxpJC`1OfZT(=!TyqK2E);6r*D(t z3NX42JCkS5dOtzO%)_-KD5K4L4~|!cPb^#*juytCrhn&LvuUbUfwAkW3*F%pgKR^; zGrE|ldg#l2*q6@vaqo)O)pD&f8UygCe>`j*&`wSI$udIH!clk5B#*5pgXLrvKwnK( z&x5;=CpYAUNp7Zn{n?pe>t?6Dx4PC(NNO&X+LxD7w4QCx;&89Yjutx)VC?|(E+E4d z&#q8I+AhcI=O2Y$ABIkjhwGzd9M9~TWHJN8UFnQhoTF47NsU($qpttS4!}h*e@b8@V^Nj1?UF?U{ws!5V_D!b` zC_d#K0WI?WFmJBQ>4mNu)$;x+wVEg}1D)@wE={R%H}^B;VJ+P>pjr+o>n9K=9Rw1) zean0yiQB)S2)k=A93&1~+ixR|wtusIt0v_xRfoE7b9lG{>{i(`^}AwMu8!!%)rN=J zDo4;7b}SEBV}^(OygY;!+4z$PBIXnuBBmPhyouF&4ePb3xG|l(vpVbQ>MmAm`DMOW z)>j~;ZjNB2H-#3Ga-SyUK8KX|9^{UiTRKz%|m>rZ^ff6A6lPB(h_ z1}(DjLYQxRxnEX?jdswHXI!l2J*+u5;`v^xqF6DwQa4AqvO;pXQTy>m_T$xa>2&Z` zm=2y+(&5w~LB#&mlQQ&^DEf`&1D zPY0H2lPv(rZH(HGr-eoB&8TM@<8h9KxSj9nB{f7mP)c)y@pIsWfEMyM*KOhUOUBUu3j77OjoZNnj(fdnG*-2pXiTfpR#j214AhU;r_3)Q1K4<0pn@D83<($s5ia(>uNcXaFtj5{f` z@*rQK^5Aif@_hJ0ixmHkd5}tP&OCTGBNWPmASuQ7ojjCKt`?q`HT=?^5Ocv$3t)YXCX$5JuruU<91ZxCd@MFuU;em^jEK);`CRq4R89Z*NpK?CjFHgfy6)p5$SI)r@y$_-~BrA-ER`# zJDkL~ebU9fuE~m%{$SfEw=2jKz%7$>-K^5zyEwS>Q41|n{DbgBElet5BCp{=JZZ%JyIJNdwHY`iLgNBkX(PyerKQu%_G4~u<#ht+N!~lyIeovIp@UyTBP`km|)3i zrjE_`w2FMNP_+?=K(_*i&S_}RF|?E?r+AXxL1iYBS&xABSXrtd!f1|ZU7@C#=e>wS zixgi%)=^2}LSgU*;iv{!9f;#1ihO$%~$h3!+lIcxB$t zy4sU&EjxIzG2&0Y_1ZBL7X!?EuiOUsh6ExwYq`God10cNnrNmf*Vq5N@FKf1?;>cC z;uWMEl`bdc9_4--Hh3rpqEcLORen6WIzTy=qPw7P;Tl+Hjip5 zK5D3Vk@F{|pp8GW>9dRTu7egS4qXMqrPAf3;*k3pq#}q)akoQ7T^*nzONFUeubpBl zmfHZ|kU#_#r`t6jY90;^5Bm-eX&XH97EI#m{`(kvHqSt4k)n?bq|)VN;Dq}bWFUx2 z@wCH0T^(Q`ONAL&ubpBBmfHZ|kU#_jt8QFQH1{TkdyhHX+nH`$ZfNWB3HEKCgU}+y zXRq@345pbht;}p)>Z?4;05lS~oP>Uw2OT6dh)VHK4xx3m2OOGEvQ(JR_1Y;Wbh!=i z4GBaLy7KPP)0)vw8%952iVrinX@P_rNe|#FRn|Vzk;PMo(~YEK$FSgRBz+K#4BHFy z?Sp2wXdCazsO=*A&vd`&*^>RDJI#)Ubt*PjN$X7eCQ!0lWOh326ON5PW>)5-2b-k$ zWl1a&!Mrb>kP4q_@IH$~xWC#C187c>hC+T#aoAv)*<;|hXY@L<@DzRt$e!7H<5@q- z&?Lq6Z}9}RwJBG2Y#0ro76)jm2cW4K0d$4U22iU}ezpK*UVCRy&eihki$bA;}5j4s_2rr0%W{3)udbK9)(XMW(J zNs4FRg4vXc3LRRuUbJ@3EPiA*&WIuf`(}3RW?sQ4OOji4LW2aR-od5WN#i3t4l@n% z+?zmDia&Rgny&YxOxqG(Zp`@aQ*~Q1PtsD1D0=F)Q}%WiB3%X_(uG7Kf+@I}2g>xF z;3GPOQbOkMy&FIO-}oqV$jKDYB*j0gSfJwTHx@p|<1i%k!~%#)@sb-0x;_*OEEb-# z)osZa3w7HmjfH?QWGab7#KP3Oj9^5^$j7W0`6%CVC}VGYqp|UE=9Uv9&?Lpq85}ef zU%xT(2_8oiSTOuvj=o>bB&Ik-F`a#z?>z(uG7KVr07QPq3f^k*h6aejX$3blbbTl^SS%bG zbzAa zaB~(l;$=Q{2p);Neq-%33`;Q9KvasqcgL&iL$StU;aIENk}uZkwo@8w0b@uP5{Zbl z%3H>uTnF1{tYG`JDVu#R+91GP<3|=A$nP5;JB-`K@KLoUyf^6V8aF2oE!#@CunO+LRF`rrf~`7=A0*0lij^UQlEexXT<|5Nu$Dn>Y@;;z^8 z)VfhF0Q$O!eRj zDn@`@W#{Yjgz)DJ5YBD_YJ{_u)e+8KPkSR@@FNUOQY^+GoK~;KnBFe%+h%FAqb$w{&!D7TN^F&wmoFcVuGbLYw3Ju8~bp(sUo0wlA z?tVpc7cG35c}z5@VH5MK>{!QN&;+L-6bY$#c}e&J_ccsHkcH{5OF~^AA|ZiQ5lSu8-#y3Lf4GhhqJNg@&CoO0XlMPlZQ7Bj!*Fq8J- zB56tDDJQ?qes(wsO;X%Ei({qY<>llzxUXSOf~*urW}QLl`Vc2sEWpXS&6II6U<>_3 zA`zUdykGVWV&gX~Hh$eEZXrv#(gu z!o6VqYTi8Q!$z4>N~?^Qm|adJK$8^Dmjo8E#GEwBbPhbDRrpk+^GGDZc@=j9ULw!E z#2%uBh4uC$BcfpDC0}MFd#w3g8O+wcNDk(g{V+q56yJ=2xwvzHp;qC*O!byX1k6=7 zAzmhoUuKLc3Z~hF_>XKfSPMzp1*KDL{8liKd#RmHXTI$R9-5^1Z#A8vVkXlsWSjqh-mOhPx`QD8n&go3yfuemv0*N1XCi*dAiX%w)8(Mlo_G_ssm z{9Ym`)BEk;vC`?cnMf3@HS7X>mmzmz1e&DSzZC~Z#Z6(s_qa<@EC6wMac!&9eO(`7 z0gHuM5U_+mkw^p!reB7CkJ#}&iyhxBV8@1+;ooOhIPgM~6lWAWsJJQY_yKn*iX9*> zMaN}_t`D(;#lq|eSVDG?NCZ2kTnGPvsPO}f8sB%QK?~c+dk2Z9H;x~&2OLsBlN8S> zQc!VINbw`?QWPmbT#CPRNuldQq+qcyDFT*|6eJQsipmSo9}yjXWYOV=4jnfBF|fvu z*#izKpb0i)=|Fb$GE`sYQ-{!z$fj`YCp^L^j)Axo|LSr~*M~U9VquO2EFn-N62Y%gB7$$nyy?8i*9?0acD>{*;TWRR=T6Q7^v4;sJ^E6}vZdV7ks%D%DjcAx9)PA|1khEMgRc_GuQJLTSq}a$sxuK`ttf04 zR9O!G%nv*?N%404IkpBBGa2`o^-Ma)lg#7ij5q9l=BdI9!k=@etenf#V_UQ!1aT=I zm~-5#>pje|t>NXylz;msU2Yr!w_x=P{fi8a)f2`c$tRzo+(GrWV*E> znn)*CSW4fDLw^3sVF@kw>=a#cDl6hV3T zMFy85)DWVGkqc9VWF5q~0TAPI1VyT@6j8Y*2b7o`=%w@zGuNo&sil}T-f+f@ZBoo^ z^8gG?EPQUMbmDbhg-AP6p8bmSC7Z#BIWy2G+M&D@H@btM1`jGUiBSeofwAVD#jvb{ z7#TyvxEw*d%8N(Tu6YL~!#i*j|Izp+-^-M)lxEBq4n-)#4ROBS$-v%on_iN zF+Xj!mXh8ji1;-_2nTj-lj3v<^C^}1pNc30sKl!sol2Hses- zwHj~FtUeZRUZ|2A^_oCjU4l2ZNzseJ+tWROl9V`jbAv4u5kwW1m1tap4J8750}D&B zODQzj-ddX2t|*xfSXZPof@@1WfNk)RfNjW0E_-JLkiE=RD+a!c_V6SZkBL5Z_3x`l{U-!fC|HQ+l# z#5O7ZQIUenn?#E1O}}DDf#Op9i%SY>2$90bMUaAo9mKc+NWtX@QcS(zL@SysP%>lz zce!NQ=$cd9V4UI%9owY%A4L`}ZxUHsJVC6_8q$%}naDa7bxW2rykPPrVUANgy9`7wD&61O>;!b7D%&Dy(44I%Vm|;f0 zCv9F2HkSfe3&!0JsMsdOU#aZJnMI%JbRfwSi_9y4=295% z!IJS}8ywG74fy6h?TD|eCc|n^-6iS3B<*lX;V)dJ0wMFtVgNQ>SY?ERSoOPj(R(gRo zqMRyu>%s&K07imdV>mrwp;}M{Z5mZ5m>m>iB^n-m`|BxDY4BN`wi33`noAzA3sK@BD})KJPpy?Zj+02Q;_ zB6k^pgFHl8DL&`&kQ)FTE=Pbr7HxxTkaZ|4#ecf2;|73*%Mq|t-wXil z8W$+#abenZYopz78F(BrU>khatdMs0q{qkwXh(uxOGrBwx+M65c8xET^7!tatZXRT zrQ0XzUH5JSY>;;-E5%!PIJj^F;KJogf(vNZxIih73-fNJHr~D6z~hV>+oU+Y!(Do0 zz78OaT!42Z=(U8rW1&leFKE~JLMg?!wL?yl)wO663%%tgvZj9?$#r2kf=y%C zLLR3aP-S3F6aKT#({r~nwYi>U+DzvVz|0{D19w5SMm*EPpu4q2;x6=RR4D`hkQpu=8H z`u)Oj!=NGCJ(zTR>#NpJ*quCaD*Xk!#glibU$6r?iOHzby!n}1REqn6hRWP!>|~X% zh2&#r-jW1w-$|7r`#RqZ%Koa1b5Xf5zDH!bpR3Jv-`|b6TL&-=ZzLK)Ow~M}uzOL^ zz)3ul-<=^_S-hzx6WL5&pg6tt6f{(^Se{b3CstZ5Fj!Ad{P~T$K{@VH_Q44{wyqM6 zm2xgwFA8Hn?S`Ia0%;$}e~aAt4a-ahNLlKp0BibTD4ou4rb+;IG#G_xt@>7T)#Q*- zm=E&&{4g?c*n?)3MT5SCX~XJ6hDg*66I9$o8w$K8*WkcgC8umwcQ%-CHm#e}W~0sQ z;FPIq)4CXy$HKp=kjZ1J^KKe*mqq2NfbZTG7$#k*N++EB$-qRSt&YR9SY3Gs`C@lu z{(fwDE|VH7NIllLGMT4%XjKwVohCP!Tx#vgv`=o#la} zY*|ZyjrD)Q9~sIJP4YKx#i72^pWipw5N?IcMl%5opY6qT zULoJT;XK5p|q(P3D7&`PvCG{|VdNzsa$icUegD*Q1+ zJ;B>lX!s>FE$8@KVIQ1GBJ26%VR2VGr=Q%*3d4!4=1&JjUhW)ziM)=?<`0KNT|V~# db$WWfH`BUWu5`xdmREZH?kE{7wYSS{{|}&LqgDU_ literal 0 HcmV?d00001 diff --git a/chaloBEST/templates/poster/test/MIT-LICENSE.txt b/chaloBEST/templates/poster/test/MIT-LICENSE.txt new file mode 100644 index 0000000..1fc5997 --- /dev/null +++ b/chaloBEST/templates/poster/test/MIT-LICENSE.txt @@ -0,0 +1,20 @@ +Copyright (c) 2011 ZURB, http://www.zurb.com/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/chaloBEST/templates/poster/test/config.rb b/chaloBEST/templates/poster/test/config.rb new file mode 100644 index 0000000..d48a051 --- /dev/null +++ b/chaloBEST/templates/poster/test/config.rb @@ -0,0 +1,26 @@ +require 'zurb-foundation' +# Require any additional compass plugins here. + + +# Set this to the root of your project when deployed: +http_path = "/" +css_dir = "stylesheets" +sass_dir = "sass" +images_dir = "images" +javascripts_dir = "javascripts" + +# You can select your preferred output style here (can be overridden via the command line): +# output_style = :expanded or :nested or :compact or :compressed + +# To enable relative paths to assets via compass helper functions. Uncomment: +# relative_assets = true + +# To disable debugging comments that display the original location of your selectors. Uncomment: +# line_comments = false + + +# If you prefer the indented syntax, you might want to regenerate this +# project again passing --syntax sass, or you can uncomment this: +# preferred_syntax = :sass +# and then run: +# sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass diff --git a/chaloBEST/templates/poster/test/humans.txt b/chaloBEST/templates/poster/test/humans.txt new file mode 100644 index 0000000..b6f305b --- /dev/null +++ b/chaloBEST/templates/poster/test/humans.txt @@ -0,0 +1,8 @@ +/* Foundation was made by ZURB, an interaction design and design strategy firm in Campbell, CA */ +/* zurb.com */ +/* humanstxt.org */ + +/* SITE */ + Standards: HTML5, CSS3 + Components: jQuery, Orbit, Reveal + Software: Coda, Textmate, Git \ No newline at end of file diff --git a/chaloBEST/templates/poster/test/index.html b/chaloBEST/templates/poster/test/index.html new file mode 100644 index 0000000..5ff67f7 --- /dev/null +++ b/chaloBEST/templates/poster/test/index.html @@ -0,0 +1,140 @@ + + + + + + + + + Foundation 4 + + + + + + + + + + + +

+ +
+ + +
+

Getting Started

+

We're stoked you want to try Foundation! To get going, this file (index.html) includes some basic styles you can modify, play around with, or totally destroy to get going.

+ +

Other Resources

+

Once you've exhausted the fun in this document, you should check out:

+
    +
  • Foundation Documentation
    Everything you need to know about using the framework.
  • +
  • Foundation on Github
    Latest code, issue reports, feature requests and more.
  • +
  • @foundationzurb
    Ping us on Twitter if you have questions. If you build something with this we'd love to see it (and send you a totally boss sticker).
  • +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/chaloBEST/templates/poster/test/javascripts/foundation/foundation.alerts.js b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.alerts.js new file mode 100644 index 0000000..62dc007 --- /dev/null +++ b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.alerts.js @@ -0,0 +1,50 @@ +/*jslint unparam: true, browser: true, indent: 2 */ + +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs.alerts = { + name : 'alerts', + + version : '4.0.0', + + settings : { + speed: 300, // fade out speed + callback: function (){} + }, + + init : function (scope, method, options) { + this.scope = scope || this.scope; + + if (typeof method === 'object') { + $.extend(true, this.settings, method); + } + + if (typeof method != 'string') { + if (!this.settings.init) this.events(); + + return this.settings.init; + } else { + return this[method].call(this, options); + } + }, + + events : function () { + var self = this; + + $(this.scope).on('click.fndtn.alerts', '[data-alert] a.close', function (e) { + e.preventDefault(); + $(this).closest("[data-alert]").fadeOut(self.speed, function () { + $(this).remove(); + self.settings.callback(); + }); + }); + + this.settings.init = true; + }, + + off : function () { + $(this.scope).off('.fndtn.alerts'); + } + }; +}(Foundation.zj, this, this.document)); \ No newline at end of file diff --git a/chaloBEST/templates/poster/test/javascripts/foundation/foundation.clearing.js b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.clearing.js new file mode 100644 index 0000000..dfe9fce --- /dev/null +++ b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.clearing.js @@ -0,0 +1,516 @@ +/*jslint unparam: true, browser: true, indent: 2 */ + +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs.clearing = { + name : 'clearing', + + version : '4.1.3', + + settings : { + templates : { + viewing : '×' + + '' + }, + + // comma delimited list of selectors that, on click, will close clearing, + // add 'div.clearing-blackout, div.visible-img' to close on background click + close_selectors : '.clearing-close', + + // event initializers and locks + init : false, + locked : false + }, + + init : function (scope, method, options) { + var self = this; + Foundation.inherit(this, 'set_data get_data remove_data throttle data_options'); + + if (typeof method === 'object') { + options = $.extend(true, this.settings, method); + } + + if (typeof method != 'string') { + $(this.scope).find('ul[data-clearing]').each(function () { + var $el = $(this), + options = options || {}, + lis = $el.find('li'), + settings = self.get_data($el); + + if (!settings && lis.length > 0) { + options.$parent = $el.parent(); + + self.set_data($el, $.extend({}, self.settings, options, self.data_options($el))); + + self.assemble($el.find('li')); + + if (!self.settings.init) { + self.events().swipe_events(); + } + } + }); + + return this.settings.init; + } else { + // fire method + return this[method].call(this, options); + } + }, + + // event binding and initial setup + + events : function () { + var self = this; + + $(this.scope) + .on('click.fndtn.clearing', 'ul[data-clearing] li', + function (e, current, target) { + var current = current || $(this), + target = target || current, + next = current.next('li'), + settings = self.get_data(current.parent()), + image = $(e.target); + + e.preventDefault(); + if (!settings) self.init(); + + // if clearing is open and the current image is + // clicked, go to the next image in sequence + if (target.hasClass('visible') + && current[0] === target[0] + && next.length > 0 && self.is_open(current)) { + target = next; + image = target.find('img'); + } + + // set current and target to the clicked li if not otherwise defined. + self.open(image, current, target); + self.update_paddles(target); + }) + + .on('click.fndtn.clearing', '.clearing-main-next', + function (e) { this.nav(e, 'next') }.bind(this)) + .on('click.fndtn.clearing', '.clearing-main-prev', + function (e) { this.nav(e, 'prev') }.bind(this)) + .on('click.fndtn.clearing', this.settings.close_selectors, + function (e) { Foundation.libs.clearing.close(e, this) }) + .on('keydown.fndtn.clearing', + function (e) { this.keydown(e) }.bind(this)); + + $(window).on('resize.fndtn.clearing', + function () { this.resize() }.bind(this)); + + this.settings.init = true; + return this; + }, + + swipe_events : function () { + var self = this; + + $(this.scope) + .on('touchstart.fndtn.clearing', '.visible-img', function(e) { + if (!e.touches) { e = e.originalEvent; } + var data = { + start_page_x: e.touches[0].pageX, + start_page_y: e.touches[0].pageY, + start_time: (new Date()).getTime(), + delta_x: 0, + is_scrolling: undefined + }; + + $(this).data('swipe-transition', data); + e.stopPropagation(); + }) + .on('touchmove.fndtn.clearing', '.visible-img', function(e) { + if (!e.touches) { e = e.originalEvent; } + // Ignore pinch/zoom events + if(e.touches.length > 1 || e.scale && e.scale !== 1) return; + + var data = $(this).data('swipe-transition'); + + if (typeof data === 'undefined') { + data = {}; + } + + data.delta_x = e.touches[0].pageX - data.start_page_x; + + if ( typeof data.is_scrolling === 'undefined') { + data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) ); + } + + if (!data.is_scrolling && !data.active) { + e.preventDefault(); + var direction = (data.delta_x < 0) ? 'next' : 'prev'; + data.active = true; + self.nav(e, direction); + } + }) + .on('touchend.fndtn.clearing', '.visible-img', function(e) { + $(this).data('swipe-transition', {}); + e.stopPropagation(); + }); + }, + + assemble : function ($li) { + var $el = $li.parent(); + $el.after('
'); + + var holder = $('#foundationClearingHolder'), + settings = this.get_data($el), + grid = $el.detach(), + data = { + grid: '', + viewing: settings.templates.viewing + }, + wrapper = '
' + data.viewing + + data.grid + '
'; + + return holder.after(wrapper).remove(); + }, + + // event callbacks + + open : function ($image, current, target) { + var root = target.closest('.clearing-assembled'), + container = root.find('div').first(), + visible_image = container.find('.visible-img'), + image = visible_image.find('img').not($image); + + if (!this.locked()) { + // set the image to the selected thumbnail + image + .attr('src', this.load($image)) + .css('visibility', 'hidden'); + + this.loaded(image, function () { + image.css('visibility', 'visible'); + // toggle the gallery + root.addClass('clearing-blackout'); + container.addClass('clearing-container'); + visible_image.show(); + this.fix_height(target) + .caption(visible_image.find('.clearing-caption'), $image) + .center(image) + .shift(current, target, function () { + target.siblings().removeClass('visible'); + target.addClass('visible'); + }); + }.bind(this)); + } + }, + + close : function (e, el) { + e.preventDefault(); + + var root = (function (target) { + if (/blackout/.test(target.selector)) { + return target; + } else { + return target.closest('.clearing-blackout'); + } + }($(el))), container, visible_image; + + if (el === e.target && root) { + container = root.find('div').first(); + visible_image = container.find('.visible-img'); + this.settings.prev_index = 0; + root.find('ul[data-clearing]') + .attr('style', '').closest('.clearing-blackout') + .removeClass('clearing-blackout'); + container.removeClass('clearing-container'); + visible_image.hide(); + } + + return false; + }, + + is_open : function (current) { + return current.parent().attr('style').length > 0; + }, + + keydown : function (e) { + var clearing = $('.clearing-blackout').find('ul[data-clearing]'); + + if (e.which === 39) this.go(clearing, 'next'); + if (e.which === 37) this.go(clearing, 'prev'); + if (e.which === 27) $('a.clearing-close').trigger('click'); + }, + + nav : function (e, direction) { + var clearing = $('.clearing-blackout').find('ul[data-clearing]'); + + e.preventDefault(); + this.go(clearing, direction); + }, + + resize : function () { + var image = $('.clearing-blackout .visible-img').find('img'); + + if (image.length) { + this.center(image); + } + }, + + // visual adjustments + fix_height : function (target) { + var lis = target.parent().children(), + self = this; + + lis.each(function () { + var li = $(this), + image = li.find('img'); + + if (li.height() > self.outerHeight(image)) { + li.addClass('fix-height'); + } + }) + .closest('ul') + .width(lis.length * 100 + '%'); + + return this; + }, + + update_paddles : function (target) { + var visible_image = target + .closest('.carousel') + .siblings('.visible-img'); + + if (target.next().length > 0) { + visible_image + .find('.clearing-main-next') + .removeClass('disabled'); + } else { + visible_image + .find('.clearing-main-next') + .addClass('disabled'); + } + + if (target.prev().length > 0) { + visible_image + .find('.clearing-main-prev') + .removeClass('disabled'); + } else { + visible_image + .find('.clearing-main-prev') + .addClass('disabled'); + } + }, + + center : function (target) { + if (!this.rtl) { + target.css({ + marginLeft : -(this.outerWidth(target) / 2), + marginTop : -(this.outerHeight(target) / 2) + }); + } else { + target.css({ + marginRight : -(this.outerWidth(target) / 2), + marginTop : -(this.outerHeight(target) / 2) + }); + } + return this; + }, + + // image loading and preloading + + load : function ($image) { + if ($image[0].nodeName === "A") { + var href = $image.attr('href'); + } else { + var href = $image.parent().attr('href'); + } + + this.preload($image); + + if (href) return href; + return $image.attr('src'); + }, + + preload : function ($image) { + this + .img($image.closest('li').next()) + .img($image.closest('li').prev()); + }, + + loaded : function (image, callback) { + // based on jquery.imageready.js + // @weblinc, @jsantell, (c) 2012 + + function loaded () { + callback(); + } + + function bindLoad () { + this.one('load', loaded); + + if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) { + var src = this.attr( 'src' ), + param = src.match( /\?/ ) ? '&' : '?'; + + param += 'random=' + (new Date()).getTime(); + this.attr('src', src + param); + } + } + + if (!image.attr('src')) { + loaded(); + return; + } + + if (image[0].complete || image[0].readyState === 4) { + loaded(); + } else { + bindLoad.call(image); + } + }, + + img : function (img) { + if (img.length) { + var new_img = new Image(), + new_a = img.find('a'); + + if (new_a.length) { + new_img.src = new_a.attr('href'); + } else { + new_img.src = img.find('img').attr('src'); + } + } + return this; + }, + + // image caption + + caption : function (container, $image) { + var caption = $image.data('caption'); + + if (caption) { + container + .text(caption) + .show(); + } else { + container + .text('') + .hide(); + } + return this; + }, + + // directional methods + + go : function ($ul, direction) { + var current = $ul.find('.visible'), + target = current[direction](); + + if (target.length) { + target + .find('img') + .trigger('click', [current, target]); + } + }, + + shift : function (current, target, callback) { + var clearing = target.parent(), + old_index = this.settings.prev_index || target.index(), + direction = this.direction(clearing, current, target), + left = parseInt(clearing.css('left'), 10), + width = this.outerWidth(target), + skip_shift; + + // we use jQuery animate instead of CSS transitions because we + // need a callback to unlock the next animation + if (target.index() !== old_index && !/skip/.test(direction)){ + if (/left/.test(direction)) { + this.lock(); + clearing.animate({left : left + width}, 300, this.unlock()); + } else if (/right/.test(direction)) { + this.lock(); + clearing.animate({left : left - width}, 300, this.unlock()); + } + } else if (/skip/.test(direction)) { + // the target image is not adjacent to the current image, so + // do we scroll right or not + skip_shift = target.index() - this.settings.up_count; + this.lock(); + + if (skip_shift > 0) { + clearing.animate({left : -(skip_shift * width)}, 300, this.unlock()); + } else { + clearing.animate({left : 0}, 300, this.unlock()); + } + } + + callback(); + }, + + direction : function ($el, current, target) { + var lis = $el.find('li'), + li_width = this.outerWidth(lis) + (this.outerWidth(lis) / 4), + up_count = Math.floor(this.outerWidth($('.clearing-container')) / li_width) - 1, + target_index = lis.index(target), + response; + + this.settings.up_count = up_count; + + if (this.adjacent(this.settings.prev_index, target_index)) { + if ((target_index > up_count) + && target_index > this.settings.prev_index) { + response = 'right'; + } else if ((target_index > up_count - 1) + && target_index <= this.settings.prev_index) { + response = 'left'; + } else { + response = false; + } + } else { + response = 'skip'; + } + + this.settings.prev_index = target_index; + + return response; + }, + + adjacent : function (current_index, target_index) { + for (var i = target_index + 1; i >= target_index - 1; i--) { + if (i === current_index) return true; + } + return false; + }, + + // lock management + + lock : function () { + this.settings.locked = true; + }, + + unlock : function () { + this.settings.locked = false; + }, + + locked : function () { + return this.settings.locked; + }, + + // plugin management/browser quirks + + outerHTML : function (el) { + // support FireFox < 11 + return el.outerHTML || new XMLSerializer().serializeToString(el); + }, + + off : function () { + $(this.scope).off('.fndtn.clearing'); + $(window).off('.fndtn.clearing'); + this.remove_data(); // empty settings cache + this.settings.init = false; + }, + + reflow : function () { + this.init(); + } + }; + +}(Foundation.zj, this, this.document)); diff --git a/chaloBEST/templates/poster/test/javascripts/foundation/foundation.cookie.js b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.cookie.js new file mode 100644 index 0000000..b196e76 --- /dev/null +++ b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.cookie.js @@ -0,0 +1,74 @@ +/*! + * jQuery Cookie Plugin v1.3 + * https://github.com/carhartl/jquery-cookie + * + * Copyright 2011, Klaus Hartl + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://www.opensource.org/licenses/mit-license.php + * http://www.opensource.org/licenses/GPL-2.0 + * + * Modified to work with Zepto.js by ZURB + */ +(function ($, document, undefined) { + + var pluses = /\+/g; + + function raw(s) { + return s; + } + + function decoded(s) { + return decodeURIComponent(s.replace(pluses, ' ')); + } + + var config = $.cookie = function (key, value, options) { + + // write + if (value !== undefined) { + options = $.extend({}, config.defaults, options); + + if (value === null) { + options.expires = -1; + } + + if (typeof options.expires === 'number') { + var days = options.expires, t = options.expires = new Date(); + t.setDate(t.getDate() + days); + } + + value = config.json ? JSON.stringify(value) : String(value); + + return (document.cookie = [ + encodeURIComponent(key), '=', config.raw ? value : encodeURIComponent(value), + options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE + options.path ? '; path=' + options.path : '', + options.domain ? '; domain=' + options.domain : '', + options.secure ? '; secure' : '' + ].join('')); + } + + // read + var decode = config.raw ? raw : decoded; + var cookies = document.cookie.split('; '); + for (var i = 0, l = cookies.length; i < l; i++) { + var parts = cookies[i].split('='); + if (decode(parts.shift()) === key) { + var cookie = decode(parts.join('=')); + return config.json ? JSON.parse(cookie) : cookie; + } + } + + return null; + }; + + config.defaults = {}; + + $.removeCookie = function (key, options) { + if ($.cookie(key) !== null) { + $.cookie(key, null, options); + return true; + } + return false; + }; + +})(Foundation.zj, document); \ No newline at end of file diff --git a/chaloBEST/templates/poster/test/javascripts/foundation/foundation.dropdown.js b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.dropdown.js new file mode 100644 index 0000000..1ccec66 --- /dev/null +++ b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.dropdown.js @@ -0,0 +1,159 @@ +/*jslint unparam: true, browser: true, indent: 2 */ + +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs.dropdown = { + name : 'dropdown', + + version : '4.1.3', + + settings : { + activeClass: 'open', + opened: function(){}, + closed: function(){} + }, + + init : function (scope, method, options) { + this.scope = scope || this.scope; + Foundation.inherit(this, 'throttle scrollLeft'); + + if (typeof method === 'object') { + $.extend(true, this.settings, method); + } + + if (typeof method != 'string') { + + if (!this.settings.init) { + this.events(); + } + + return this.settings.init; + } else { + return this[method].call(this, options); + } + }, + + events : function () { + var self = this; + + $(this.scope) + .on('click.fndtn.dropdown', '[data-dropdown]', function (e) { + e.preventDefault(); + self.toggle($(this)); + }) + .on('opened.fndtn.dropdown', '[data-dropdown-content]', this.settings.opened) + .on('closed.fndtn.dropdown', '[data-dropdown-content]', this.settings.closed); + + $('body').on('click.fndtn.dropdown', function (e) { + var parent = $(e.target).closest('[data-dropdown-content]'); + + if ($(e.target).data('dropdown')) { + return; + } + if (parent.length > 0 && ($(e.target).is('[data-dropdown-content]') || $.contains(parent.first()[0], e.target))) { + e.stopPropagation(); + return; + } + + self.close.call(self, $('[data-dropdown-content]')); + }); + + $(window).on('resize.fndtn.dropdown', self.throttle(function () { + self.resize.call(self); + }, 50)).trigger('resize'); + + this.settings.init = true; + }, + + close: function (dropdown) { + var self = this; + dropdown.each(function () { + if ($(this).hasClass(self.settings.activeClass)) { + $(this) + .css(Foundation.rtl ? 'right':'left', '-99999px') + .removeClass(self.settings.activeClass); + $(this).trigger('closed'); + } + }); + }, + + open: function (dropdown, target) { + this + .css(dropdown + .addClass(this.settings.activeClass), target); + dropdown.trigger('opened'); + }, + + toggle : function (target) { + var dropdown = $('#' + target.data('dropdown')); + + this.close.call(this, $('[data-dropdown-content]').not(dropdown)); + + if (dropdown.hasClass(this.settings.activeClass)) { + this.close.call(this, dropdown); + } else { + this.open.call(this, dropdown, target); + } + }, + + resize : function () { + var dropdown = $('[data-dropdown-content].open'), + target = $("[data-dropdown='" + dropdown.attr('id') + "']"); + + if (dropdown.length && target.length) { + this.css(dropdown, target); + } + }, + + css : function (dropdown, target) { + // temporary workaround until 4.2 + if (/body/i.test(dropdown.offsetParent()[0].nodeName)) { + var position = target.offset(); + position.top -= dropdown.offsetParent().offset().top; + position.left -= dropdown.offsetParent().offset().left; + } else { + var position = target.position(); + } + + if (this.small()) { + dropdown.css({ + position : 'absolute', + width: '95%', + left: '2.5%', + 'max-width': 'none', + top: position.top + this.outerHeight(target) + }); + } else { + if (!Foundation.rtl && $(window).width() > this.outerWidth(dropdown) + target.offset().left) { + var left = position.left; + } else { + if (!dropdown.hasClass('right')) { + dropdown.addClass('right'); + } + var left = position.left - (this.outerWidth(dropdown) - this.outerWidth(target)); + } + + dropdown.attr('style', '').css({ + position : 'absolute', + top: position.top + this.outerHeight(target), + left: left + }); + } + + return dropdown; + }, + + small : function () { + return $(window).width() < 768 || $('html').hasClass('lt-ie9'); + }, + + off: function () { + $(this.scope).off('.fndtn.dropdown'); + $('html, body').off('.fndtn.dropdown'); + $(window).off('.fndtn.dropdown'); + $('[data-dropdown-content]').off('.fndtn.dropdown'); + this.settings.init = false; + } + }; +}(Foundation.zj, this, this.document)); diff --git a/chaloBEST/templates/poster/test/javascripts/foundation/foundation.forms.js b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.forms.js new file mode 100644 index 0000000..e2f646e --- /dev/null +++ b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.forms.js @@ -0,0 +1,429 @@ +/*jslint unparam: true, browser: true, indent: 2 */ + +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs.forms = { + name : 'forms', + + version : '4.0.4', + + settings : { + disable_class: 'no-custom' + }, + + init : function (scope, method, options) { + this.scope = scope || this.scope; + + if (typeof method === 'object') { + $.extend(true, this.settings, method); + } + + if (typeof method != 'string') { + if (!this.settings.init) { + this.events(); + } + + this.assemble(); + + return this.settings.init; + } else { + return this[method].call(this, options); + } + }, + + assemble : function () { + $('form.custom input[type="radio"]', $(this.scope)).not('[data-customforms="disabled"]') + .each(this.append_custom_markup); + $('form.custom input[type="checkbox"]', $(this.scope)).not('[data-customforms="disabled"]') + .each(this.append_custom_markup); + $('form.custom select', $(this.scope)) + .not('[data-customforms="disabled"]') + .not('[multiple=multiple]') + .each(this.append_custom_select); + }, + + events : function () { + var self = this; + + $(this.scope) + .on('click.fndtn.forms', 'form.custom span.custom.checkbox', function (e) { + e.preventDefault(); + e.stopPropagation(); + self.toggle_checkbox($(this)); + }) + .on('click.fndtn.forms', 'form.custom span.custom.radio', function (e) { + e.preventDefault(); + e.stopPropagation(); + self.toggle_radio($(this)); + }) + .on('change.fndtn.forms', 'form.custom select:not([data-customforms="disabled"])', function (e) { + self.refresh_custom_select($(this)); + }) + .on('click.fndtn.forms', 'form.custom label', function (e) { + var $associatedElement = $('#' + self.escape($(this).attr('for')) + ':not([data-customforms="disabled"])'), + $customCheckbox, + $customRadio; + if ($associatedElement.length !== 0) { + if ($associatedElement.attr('type') === 'checkbox') { + e.preventDefault(); + $customCheckbox = $(this).find('span.custom.checkbox'); + //the checkbox might be outside after the label or inside of another element + if ($customCheckbox.length == 0) { + $customCheckbox = $associatedElement.add(this).siblings('span.custom.checkbox').first(); + } + self.toggle_checkbox($customCheckbox); + } else if ($associatedElement.attr('type') === 'radio') { + e.preventDefault(); + $customRadio = $(this).find('span.custom.radio'); + //the radio might be outside after the label or inside of another element + if ($customRadio.length == 0) { + $customRadio = $associatedElement.add(this).siblings('span.custom.radio').first(); + } + self.toggle_radio($customRadio); + } + } + }) + .on('click.fndtn.forms', 'form.custom div.custom.dropdown a.current, form.custom div.custom.dropdown a.selector', function (e) { + var $this = $(this), + $dropdown = $this.closest('div.custom.dropdown'), + $select = $dropdown.prev(); + + // make sure other dropdowns close + if(!$dropdown.hasClass('open')) + $(self.scope).trigger('click'); + + e.preventDefault(); + if (false === $select.is(':disabled')) { + $dropdown.toggleClass('open'); + + if ($dropdown.hasClass('open')) { + $(self.scope).on('click.fndtn.forms.customdropdown', function () { + $dropdown.removeClass('open'); + $(self.scope).off('.fndtn.forms.customdropdown'); + }); + } else { + $(self.scope).on('.fndtn.forms.customdropdown'); + } + return false; + } + }) + .on('click.fndtn.forms touchend.fndtn.forms', 'form.custom div.custom.dropdown li', function (e) { + var $this = $(this), + $customDropdown = $this.closest('div.custom.dropdown'), + $select = $customDropdown.prev(), + selectedIndex = 0; + + e.preventDefault(); + e.stopPropagation(); + + if ( ! $(this).hasClass('disabled')) { + $('div.dropdown').not($customDropdown).removeClass('open'); + + var $oldThis= $this + .closest('ul') + .find('li.selected'); + $oldThis.removeClass('selected'); + + $this.addClass('selected'); + + $customDropdown + .removeClass('open') + .find('a.current') + .html($this.html()); + + $this.closest('ul').find('li').each(function (index) { + if ($this[0] == this) { + selectedIndex = index; + } + + }); + $select[0].selectedIndex = selectedIndex; + + //store the old value in data + $select.data('prevalue', $oldThis.html()); + $select.trigger('change'); + } + }); + + $(window).on('keydown', function (e) { + var focus = document.activeElement, + dropdown = $('.custom.dropdown.open'); + + if (dropdown.length > 0) { + e.preventDefault(); + + if (e.which === 13) { + dropdown.find('li.selected').trigger('click'); + } + + if (e.which === 38) { + var current = dropdown.find('li.selected'), + prev = current.prev(':not(.disabled)'); + + if (prev.length > 0) { + current.removeClass('selected'); + prev.addClass('selected'); + } + } else if (e.which === 40) { + var current = dropdown.find('li.selected'), + next = current.next(':not(.disabled)'); + + if (next.length > 0) { + current.removeClass('selected'); + next.addClass('selected'); + } + } + } + }); + + this.settings.init = true; + }, + + append_custom_markup : function (idx, sel) { + var $this = $(sel).addClass('hidden-field'), + type = $this.attr('type'), + $span = $this.next('span.custom.' + type); + + if ($span.length === 0) { + $span = $('').insertAfter($this); + } + + $span.toggleClass('checked', $this.is(':checked')); + $span.toggleClass('disabled', $this.is(':disabled')); + }, + + append_custom_select : function (idx, sel) { + var self = Foundation.libs.forms, + $this = $( sel ), + $customSelect = $this.next( 'div.custom.dropdown' ), + $customList = $customSelect.find( 'ul' ), + $selectCurrent = $customSelect.find( ".current" ), + $selector = $customSelect.find( ".selector" ), + $options = $this.find( 'option' ), + $selectedOption = $options.filter( ':selected' ), + copyClasses = $this.attr('class') ? $this.attr('class').split(' ') : [], + maxWidth = 0, + liHtml = '', + $listItems, + $currentSelect = false; + + if ($this.hasClass(self.settings.disable_class)) return; + + if ($customSelect.length === 0) { + var customSelectSize = $this.hasClass( 'small' ) ? 'small' : + $this.hasClass( 'medium' ) ? 'medium' : + $this.hasClass( 'large' ) ? 'large' : + $this.hasClass( 'expand' ) ? 'expand' : ''; + + $customSelect = $('
    '); + $selector = $customSelect.find(".selector"); + $customList = $customSelect.find("ul"); + liHtml = $options.map(function() { return "
  • " + $( this ).html() + "
  • "; } ).get().join( '' ); + $customList.append(liHtml); + $currentSelect = $customSelect.prepend('' + $selectedOption.html() + '' ).find( ".current" ); + $this + .after( $customSelect ) + .addClass('hidden-field'); + + } else { + liHtml = $options.map(function() { + return "
  • " + $( this ).html() + "
  • "; + }) + .get().join(''); + $customList + .html('') + .append(liHtml); + + } // endif $customSelect.length === 0 + $customSelect.toggleClass('disabled', $this.is( ':disabled' ) ); + $listItems = $customList.find( 'li' ); + + $options.each( function ( index ) { + if ( this.selected ) { + $listItems.eq( index ).addClass( 'selected' ); + + if ($currentSelect) { + $currentSelect.html( $( this ).html() ); + } + + } + if ($(this).is(':disabled')) { + $listItems.eq( index ).addClass( 'disabled' ); + } + }); + + // + // If we're not specifying a predetermined form size. + // + if (!$customSelect.is('.small, .medium, .large, .expand')) { + + // ------------------------------------------------------------------------------------ + // This is a work-around for when elements are contained within hidden parents. + // For example, when custom-form elements are inside of a hidden reveal modal. + // + // We need to display the current custom list element as well as hidden parent elements + // in order to properly calculate the list item element's width property. + // ------------------------------------------------------------------------------------- + + $customSelect.addClass( 'open' ); + // + // Quickly, display all parent elements. + // This should help us calcualate the width of the list item's within the drop down. + // + var self = Foundation.libs.forms; + self.hidden_fix.adjust( $customList ); + + maxWidth = ( self.outerWidth($listItems) > maxWidth ) ? self.outerWidth($listItems) : maxWidth; + + Foundation.libs.forms.hidden_fix.reset(); + + $customSelect.removeClass( 'open' ); + + } // endif + + }, + + refresh_custom_select : function ($select) { + var self = this; + var maxWidth = 0, + $customSelect = $select.next(), + $options = $select.find('option'); + + $customSelect.find('ul').html(''); + + $options.each(function () { + var $li = $('
  • ' + $(this).html() + '
  • '); + $customSelect.find('ul').append($li); + }); + + // re-populate + $options.each(function (index) { + if (this.selected) { + $customSelect.find('li').eq(index).addClass('selected'); + $customSelect.find('.current').html($(this).html()); + } + if ($(this).is(':disabled')) { + $customSelect.find('li').eq(index).addClass('disabled'); + } + }); + + // fix width + $customSelect.removeAttr('style') + .find('ul').removeAttr('style'); + $customSelect.find('li').each(function () { + $customSelect.addClass('open'); + if (self.outerWidth($(this)) > maxWidth) { + maxWidth = self.outerWidth($(this)); + } + $customSelect.removeClass('open'); + }); + }, + + toggle_checkbox : function ($element) { + var $input = $element.prev(), + input = $input[0]; + + if (false === $input.is(':disabled')) { + input.checked = ((input.checked) ? false : true); + $element.toggleClass('checked'); + + $input.trigger('change'); + } + }, + + toggle_radio : function ($element) { + var $input = $element.prev(), + $form = $input.closest('form.custom'), + input = $input[0]; + + if (false === $input.is(':disabled')) { + $form.find('input[type="radio"][name="' + this.escape($input.attr('name')) + '"]').next().not($element).removeClass('checked'); + if ( !$element.hasClass('checked') ) { + $element.toggleClass('checked'); + } + input.checked = $element.hasClass('checked'); + + $input.trigger('change'); + } + }, + + escape : function (text) { + return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); + }, + + hidden_fix : { + /** + * Sets all hidden parent elements and self to visibile. + * + * @method adjust + * @param {jQuery Object} $child + */ + + // We'll use this to temporarily store style properties. + tmp : [], + + // We'll use this to set hidden parent elements. + hidden : null, + + adjust : function( $child ) { + // Internal reference. + var _self = this; + + // Set all hidden parent elements, including this element. + _self.hidden = $child.parents().andSelf().filter( ":hidden" ); + + // Loop through all hidden elements. + _self.hidden.each( function() { + + // Cache the element. + var $elem = $( this ); + + // Store the style attribute. + // Undefined if element doesn't have a style attribute. + _self.tmp.push( $elem.attr( 'style' ) ); + + // Set the element's display property to block, + // but ensure it's visibility is hidden. + $elem.css( { 'visibility' : 'hidden', 'display' : 'block' } ); + }); + + }, // end adjust + + /** + * Resets the elements previous state. + * + * @method reset + */ + reset : function() { + // Internal reference. + var _self = this; + // Loop through our hidden element collection. + _self.hidden.each( function( i ) { + // Cache this element. + var $elem = $( this ), + _tmp = _self.tmp[ i ]; // Get the stored 'style' value for this element. + + // If the stored value is undefined. + if( _tmp === undefined ) + // Remove the style attribute. + $elem.removeAttr( 'style' ); + else + // Otherwise, reset the element style attribute. + $elem.attr( 'style', _tmp ); + + }); + // Reset the tmp array. + _self.tmp = []; + // Reset the hidden elements variable. + _self.hidden = null; + + } // end reset + + }, + + off : function () { + $(this.scope).off('.fndtn.forms'); + } + }; +}(Foundation.zj, this, this.document)); \ No newline at end of file diff --git a/chaloBEST/templates/poster/test/javascripts/foundation/foundation.joyride.js b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.joyride.js new file mode 100644 index 0000000..2a1a7ae --- /dev/null +++ b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.joyride.js @@ -0,0 +1,829 @@ +/*jslint unparam: true, browser: true, indent: 2 */ + +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs.joyride = { + name: 'joyride', + + version : '4.1.2', + + defaults : { + expose : false, // turn on or off the expose feature + modal : false, // Whether to cover page with modal during the tour + tipLocation : 'bottom', // 'top' or 'bottom' in relation to parent + nubPosition : 'auto', // override on a per tooltip bases + scrollSpeed : 300, // Page scrolling speed in milliseconds, 0 = no scroll animation + timer : 0, // 0 = no timer , all other numbers = timer in milliseconds + startTimerOnClick : true, // true or false - true requires clicking the first button start the timer + startOffset : 0, // the index of the tooltip you want to start on (index of the li) + nextButton : true, // true or false to control whether a next button is used + tipAnimation : 'fade', // 'pop' or 'fade' in each tip + pauseAfter : [], // array of indexes where to pause the tour after + exposed : [], // array of expose elements + tipAnimationFadeSpeed: 300, // when tipAnimation = 'fade' this is speed in milliseconds for the transition + cookieMonster : false, // true or false to control whether cookies are used + cookieName : 'joyride', // Name the cookie you'll use + cookieDomain : false, // Will this cookie be attached to a domain, ie. '.notableapp.com' + cookieExpires : 365, // set when you would like the cookie to expire. + tipContainer : 'body', // Where will the tip be attached + postRideCallback : function (){}, // A method to call once the tour closes (canceled or complete) + postStepCallback : function (){}, // A method to call after each step + preStepCallback : function (){}, // A method to call before each step + preRideCallback : function (){}, // A method to call before the tour starts (passed index, tip, and cloned exposed element) + postExposeCallback : function (){}, // A method to call after an element has been exposed + template : { // HTML segments for tip layout + link : '×', + timer : '
    ', + tip : '
    ', + wrapper : '
    ', + button : '', + modal : '
    ', + expose : '
    ', + exposeCover: '
    ' + } + }, + + settings : {}, + + init : function (scope, method, options) { + this.scope = scope || this.scope; + Foundation.inherit(this, 'throttle data_options scrollTo scrollLeft delay'); + + if (typeof method === 'object') { + $.extend(true, this.settings, this.defaults, method); + } else { + $.extend(true, this.settings, this.defaults, options); + } + + if (typeof method != 'string') { + if (!this.settings.init) this.events(); + + return this.settings.init; + } else { + return this[method].call(this, options); + } + }, + + events : function () { + var self = this; + + $(this.scope) + .on('click.joyride', '.joyride-next-tip, .joyride-modal-bg', function (e) { + e.preventDefault(); + + if (this.settings.$li.next().length < 1) { + this.end(); + } else if (this.settings.timer > 0) { + clearTimeout(this.settings.automate); + this.hide(); + this.show(); + this.startTimer(); + } else { + this.hide(); + this.show(); + } + + }.bind(this)) + + .on('click.joyride', '.joyride-close-tip', function (e) { + e.preventDefault(); + this.end(); + }.bind(this)); + + $(window).on('resize.fndtn.joyride', self.throttle(function () { + if ($('[data-joyride]').length > 0 && self.settings.$next_tip) { + if (self.settings.exposed.length > 0) { + var $els = $(self.settings.exposed); + + $els.each(function () { + var $this = $(this); + self.un_expose($this); + self.expose($this); + }); + } + + if (self.is_phone()) { + self.pos_phone(); + } else { + self.pos_default(false, true); + } + } + }, 100)); + + this.settings.init = true; + }, + + start : function () { + var self = this, + $this = $(this.scope).find('[data-joyride]'), + integer_settings = ['timer', 'scrollSpeed', 'startOffset', 'tipAnimationFadeSpeed', 'cookieExpires'], + int_settings_count = integer_settings.length; + + if (!this.settings.init) this.init(); + + // non configureable settings + this.settings.$content_el = $this; + this.settings.$body = $(this.settings.tipContainer); + this.settings.body_offset = $(this.settings.tipContainer).position(); + this.settings.$tip_content = this.settings.$content_el.find('> li'); + this.settings.paused = false; + this.settings.attempts = 0; + + this.settings.tipLocationPatterns = { + top: ['bottom'], + bottom: [], // bottom should not need to be repositioned + left: ['right', 'top', 'bottom'], + right: ['left', 'top', 'bottom'] + }; + + // can we create cookies? + if (typeof $.cookie !== 'function') { + this.settings.cookieMonster = false; + } + + // generate the tips and insert into dom. + if (!this.settings.cookieMonster || this.settings.cookieMonster && $.cookie(this.settings.cookieName) === null) { + this.settings.$tip_content.each(function (index) { + var $this = $(this); + $.extend(true, self.settings, self.data_options($this)); + // Make sure that settings parsed from data_options are integers where necessary + for (var i = int_settings_count - 1; i >= 0; i--) { + self.settings[integer_settings[i]] = parseInt(self.settings[integer_settings[i]], 10); + } + self.create({$li : $this, index : index}); + }); + + // show first tip + if (!this.settings.startTimerOnClick && this.settings.timer > 0) { + this.show('init'); + this.startTimer(); + } else { + this.show('init'); + } + + } + }, + + resume : function () { + this.set_li(); + this.show(); + }, + + tip_template : function (opts) { + var $blank, content; + + opts.tip_class = opts.tip_class || ''; + + $blank = $(this.settings.template.tip).addClass(opts.tip_class); + content = $.trim($(opts.li).html()) + + this.button_text(opts.button_text) + + this.settings.template.link + + this.timer_instance(opts.index); + + $blank.append($(this.settings.template.wrapper)); + $blank.first().attr('data-index', opts.index); + $('.joyride-content-wrapper', $blank).append(content); + + return $blank[0]; + }, + + timer_instance : function (index) { + var txt; + + if ((index === 0 && this.settings.startTimerOnClick && this.settings.timer > 0) || this.settings.timer === 0) { + txt = ''; + } else { + txt = this.outerHTML($(this.settings.template.timer)[0]); + } + return txt; + }, + + button_text : function (txt) { + if (this.settings.nextButton) { + txt = $.trim(txt) || 'Next'; + txt = this.outerHTML($(this.settings.template.button).append(txt)[0]); + } else { + txt = ''; + } + return txt; + }, + + create : function (opts) { + var buttonText = opts.$li.attr('data-button') || opts.$li.attr('data-text'), + tipClass = opts.$li.attr('class'), + $tip_content = $(this.tip_template({ + tip_class : tipClass, + index : opts.index, + button_text : buttonText, + li : opts.$li + })); + + $(this.settings.tipContainer).append($tip_content); + }, + + show : function (init) { + var $timer = null; + + // are we paused? + if (this.settings.$li === undefined + || ($.inArray(this.settings.$li.index(), this.settings.pauseAfter) === -1)) { + + // don't go to the next li if the tour was paused + if (this.settings.paused) { + this.settings.paused = false; + } else { + this.set_li(init); + } + + this.settings.attempts = 0; + + if (this.settings.$li.length && this.settings.$target.length > 0) { + if (init) { //run when we first start + this.settings.preRideCallback(this.settings.$li.index(), this.settings.$next_tip); + if (this.settings.modal) { + this.show_modal(); + } + } + + this.settings.preStepCallback(this.settings.$li.index(), this.settings.$next_tip); + + if (this.settings.modal && this.settings.expose) { + this.expose(); + } + + this.settings.tipSettings = $.extend(this.settings, this.data_options(this.settings.$li)); + + this.settings.timer = parseInt(this.settings.timer, 10); + + this.settings.tipSettings.tipLocationPattern = this.settings.tipLocationPatterns[this.settings.tipSettings.tipLocation]; + + // scroll if not modal + if (!/body/i.test(this.settings.$target.selector)) { + this.scroll_to(); + } + + if (this.is_phone()) { + this.pos_phone(true); + } else { + this.pos_default(true); + } + + $timer = this.settings.$next_tip.find('.joyride-timer-indicator'); + + if (/pop/i.test(this.settings.tipAnimation)) { + + $timer.width(0); + + if (this.settings.timer > 0) { + + this.settings.$next_tip.show(); + + this.delay(function () { + $timer.animate({ + width: $timer.parent().width() + }, this.settings.timer, 'linear'); + }.bind(this), this.settings.tipAnimationFadeSpeed); + + } else { + this.settings.$next_tip.show(); + + } + + + } else if (/fade/i.test(this.settings.tipAnimation)) { + + $timer.width(0); + + if (this.settings.timer > 0) { + + this.settings.$next_tip + .fadeIn(this.settings.tipAnimationFadeSpeed) + .show(); + + this.delay(function () { + $timer.animate({ + width: $timer.parent().width() + }, this.settings.timer, 'linear'); + }.bind(this), this.settings.tipAnimationFadeSpeed); + + } else { + this.settings.$next_tip.fadeIn(this.settings.tipAnimationFadeSpeed); + + } + } + + this.settings.$current_tip = this.settings.$next_tip; + + // skip non-existant targets + } else if (this.settings.$li && this.settings.$target.length < 1) { + + this.show(); + + } else { + + this.end(); + + } + } else { + + this.settings.paused = true; + + } + + }, + + is_phone : function () { + if (Modernizr) { + return Modernizr.mq('only screen and (max-width: 767px)') || $('.lt-ie9').length > 0; + } + + return (this.settings.$window.width() < 767); + }, + + hide : function () { + if (this.settings.modal && this.settings.expose) { + this.un_expose(); + } + + if (!this.settings.modal) { + $('.joyride-modal-bg').hide(); + } + this.settings.$current_tip.hide(); + this.settings.postStepCallback(this.settings.$li.index(), + this.settings.$current_tip); + }, + + set_li : function (init) { + if (init) { + this.settings.$li = this.settings.$tip_content.eq(this.settings.startOffset); + this.set_next_tip(); + this.settings.$current_tip = this.settings.$next_tip; + } else { + this.settings.$li = this.settings.$li.next(); + this.set_next_tip(); + } + + this.set_target(); + }, + + set_next_tip : function () { + this.settings.$next_tip = $(".joyride-tip-guide[data-index='" + this.settings.$li.index() + "']"); + this.settings.$next_tip.data('closed', ''); + }, + + set_target : function () { + var cl = this.settings.$li.attr('data-class'), + id = this.settings.$li.attr('data-id'), + $sel = function () { + if (id) { + return $(document.getElementById(id)); + } else if (cl) { + return $('.' + cl).first(); + } else { + return $('body'); + } + }; + + this.settings.$target = $sel(); + }, + + scroll_to : function () { + var window_half, tipOffset; + + window_half = $(window).height() / 2; + tipOffset = Math.ceil(this.settings.$target.offset().top - window_half + this.outerHeight(this.settings.$next_tip)); + if (tipOffset > 0) { + this.scrollTo($('html, body'), tipOffset, this.settings.scrollSpeed); + } + }, + + paused : function () { + return ($.inArray((this.settings.$li.index() + 1), this.settings.pauseAfter) === -1); + }, + + restart : function () { + this.hide(); + this.settings.$li = undefined; + this.show('init'); + }, + + pos_default : function (init, resizing) { + var half_fold = Math.ceil($(window).height() / 2), + tip_position = this.settings.$next_tip.offset(), + $nub = this.settings.$next_tip.find('.joyride-nub'), + nub_width = Math.ceil(this.outerWidth($nub) / 2), + nub_height = Math.ceil(this.outerHeight($nub) / 2), + toggle = init || false; + + // tip must not be "display: none" to calculate position + if (toggle) { + this.settings.$next_tip.css('visibility', 'hidden'); + this.settings.$next_tip.show(); + } + + if (typeof resizing === 'undefined') { + resizing = false; + } + + if (!/body/i.test(this.settings.$target.selector)) { + + if (this.bottom()) { + var leftOffset = this.settings.$target.offset().left; + if (Foundation.rtl) { + leftOffset = this.settings.$target.offset().width - this.settings.$next_tip.width() + leftOffset; + } + this.settings.$next_tip.css({ + top: (this.settings.$target.offset().top + nub_height + this.outerHeight(this.settings.$target)), + left: leftOffset}); + + this.nub_position($nub, this.settings.tipSettings.nubPosition, 'top'); + + } else if (this.top()) { + var leftOffset = this.settings.$target.offset().left; + if (Foundation.rtl) { + leftOffset = this.settings.$target.offset().width - this.settings.$next_tip.width() + leftOffset; + } + this.settings.$next_tip.css({ + top: (this.settings.$target.offset().top - this.outerHeight(this.settings.$next_tip) - nub_height), + left: leftOffset}); + + this.nub_position($nub, this.settings.tipSettings.nubPosition, 'bottom'); + + } else if (this.right()) { + + this.settings.$next_tip.css({ + top: this.settings.$target.offset().top, + left: (this.outerWidth(this.settings.$target) + this.settings.$target.offset().left + nub_width)}); + + this.nub_position($nub, this.settings.tipSettings.nubPosition, 'left'); + + } else if (this.left()) { + + this.settings.$next_tip.css({ + top: this.settings.$target.offset().top, + left: (this.settings.$target.offset().left - this.outerWidth(this.settings.$next_tip) - nub_width)}); + + this.nub_position($nub, this.settings.tipSettings.nubPosition, 'right'); + + } + + if (!this.visible(this.corners(this.settings.$next_tip)) && this.settings.attempts < this.settings.tipSettings.tipLocationPattern.length) { + + $nub.removeClass('bottom') + .removeClass('top') + .removeClass('right') + .removeClass('left'); + + this.settings.tipSettings.tipLocation = this.settings.tipSettings.tipLocationPattern[this.settings.attempts]; + + this.settings.attempts++; + + this.pos_default(); + + } + + } else if (this.settings.$li.length) { + + this.pos_modal($nub); + + } + + if (toggle) { + this.settings.$next_tip.hide(); + this.settings.$next_tip.css('visibility', 'visible'); + } + + }, + + pos_phone : function (init) { + var tip_height = this.outerHeight(this.settings.$next_tip), + tip_offset = this.settings.$next_tip.offset(), + target_height = this.outerHeight(this.settings.$target), + $nub = $('.joyride-nub', this.settings.$next_tip), + nub_height = Math.ceil(this.outerHeight($nub) / 2), + toggle = init || false; + + $nub.removeClass('bottom') + .removeClass('top') + .removeClass('right') + .removeClass('left'); + + if (toggle) { + this.settings.$next_tip.css('visibility', 'hidden'); + this.settings.$next_tip.show(); + } + + if (!/body/i.test(this.settings.$target.selector)) { + + if (this.top()) { + + this.settings.$next_tip.offset({top: this.settings.$target.offset().top - tip_height - nub_height}); + $nub.addClass('bottom'); + + } else { + + this.settings.$next_tip.offset({top: this.settings.$target.offset().top + target_height + nub_height}); + $nub.addClass('top'); + + } + + } else if (this.settings.$li.length) { + this.pos_modal($nub); + } + + if (toggle) { + this.settings.$next_tip.hide(); + this.settings.$next_tip.css('visibility', 'visible'); + } + }, + + pos_modal : function ($nub) { + this.center(); + $nub.hide(); + + this.show_modal(); + }, + + show_modal : function () { + if (!this.settings.$next_tip.data('closed')) { + if ($('.joyride-modal-bg').length < 1) { + $('body').append(this.settings.template.modal).show(); + } + + if (/pop/i.test(this.settings.tipAnimation)) { + $('.joyride-modal-bg').show(); + } else { + $('.joyride-modal-bg').fadeIn(this.settings.tipAnimationFadeSpeed); + } + } + }, + + expose : function () { + var expose, + exposeCover, + el, + origCSS, + randId = 'expose-'+Math.floor(Math.random()*10000); + + if (arguments.length > 0 && arguments[0] instanceof $) { + el = arguments[0]; + } else if(this.settings.$target && !/body/i.test(this.settings.$target.selector)){ + el = this.settings.$target; + } else { + return false; + } + + if(el.length < 1){ + if(window.console){ + console.error('element not valid', el); + } + return false; + } + + expose = $(this.settings.template.expose); + this.settings.$body.append(expose); + expose.css({ + top: el.offset().top, + left: el.offset().left, + width: this.outerWidth(el, true), + height: this.outerHeight(el, true) + }); + + exposeCover = $(this.settings.template.exposeCover); + + origCSS = { + zIndex: el.css('z-index'), + position: el.css('position') + }; + + el.css('z-index',expose.css('z-index')*1+1); + + if (origCSS.position == 'static') { + el.css('position','relative'); + } + + el.data('expose-css',origCSS); + + exposeCover.css({ + top: el.offset().top, + left: el.offset().left, + width: this.outerWidth(el, true), + height: this.outerHeight(el, true) + }); + + this.settings.$body.append(exposeCover); + expose.addClass(randId); + exposeCover.addClass(randId); + el.data('expose', randId); + this.settings.postExposeCallback(this.settings.$li.index(), this.settings.$next_tip, el); + this.add_exposed(el); + }, + + un_expose : function () { + var exposeId, + el, + expose , + origCSS, + clearAll = false; + + if (arguments.length > 0 && arguments[0] instanceof $) { + el = arguments[0]; + } else if(this.settings.$target && !/body/i.test(this.settings.$target.selector)){ + el = this.settings.$target; + } else { + return false; + } + + if(el.length < 1){ + if (window.console) { + console.error('element not valid', el); + } + return false; + } + + exposeId = el.data('expose'); + expose = $('.' + exposeId); + + if (arguments.length > 1) { + clearAll = arguments[1]; + } + + if (clearAll === true) { + $('.joyride-expose-wrapper,.joyride-expose-cover').remove(); + } else { + expose.remove(); + } + + origCSS = el.data('expose-css'); + + if (origCSS.zIndex == 'auto') { + el.css('z-index', ''); + } else { + el.css('z-index', origCSS.zIndex); + } + + if (origCSS.position != el.css('position')) { + if(origCSS.position == 'static') {// this is default, no need to set it. + el.css('position', ''); + } else { + el.css('position', origCSS.position); + } + } + + el.removeData('expose'); + el.removeData('expose-z-index'); + this.remove_exposed(el); + }, + + add_exposed: function(el){ + this.settings.exposed = this.settings.exposed || []; + if (el instanceof $ || typeof el === 'object') { + this.settings.exposed.push(el[0]); + } else if (typeof el == 'string') { + this.settings.exposed.push(el); + } + }, + + remove_exposed: function(el){ + var search, count; + if (el instanceof $) { + search = el[0] + } else if (typeof el == 'string'){ + search = el; + } + + this.settings.exposed = this.settings.exposed || []; + count = this.settings.exposed.length; + + for (var i=0; i < count; i++) { + if (this.settings.exposed[i] == search) { + this.settings.exposed.splice(i, 1); + return; + } + } + }, + + center : function () { + var $w = $(window); + + this.settings.$next_tip.css({ + top : ((($w.height() - this.outerHeight(this.settings.$next_tip)) / 2) + $w.scrollTop()), + left : ((($w.width() - this.outerWidth(this.settings.$next_tip)) / 2) + this.scrollLeft($w)) + }); + + return true; + }, + + bottom : function () { + return /bottom/i.test(this.settings.tipSettings.tipLocation); + }, + + top : function () { + return /top/i.test(this.settings.tipSettings.tipLocation); + }, + + right : function () { + return /right/i.test(this.settings.tipSettings.tipLocation); + }, + + left : function () { + return /left/i.test(this.settings.tipSettings.tipLocation); + }, + + corners : function (el) { + var w = $(window), + window_half = w.height() / 2, + //using this to calculate since scroll may not have finished yet. + tipOffset = Math.ceil(this.settings.$target.offset().top - window_half + this.settings.$next_tip.outerHeight()), + right = w.width() + this.scrollLeft(w), + offsetBottom = w.height() + tipOffset, + bottom = w.height() + w.scrollTop(), + top = w.scrollTop(); + + if (tipOffset < top) { + if (tipOffset < 0) { + top = 0; + } else { + top = tipOffset; + } + } + + if (offsetBottom > bottom) { + bottom = offsetBottom; + } + + return [ + el.offset().top < top, + right < el.offset().left + el.outerWidth(), + bottom < el.offset().top + el.outerHeight(), + this.scrollLeft(w) > el.offset().left + ]; + }, + + visible : function (hidden_corners) { + var i = hidden_corners.length; + + while (i--) { + if (hidden_corners[i]) return false; + } + + return true; + }, + + nub_position : function (nub, pos, def) { + if (pos === 'auto') { + nub.addClass(def); + } else { + nub.addClass(pos); + } + }, + + startTimer : function () { + if (this.settings.$li.length) { + this.settings.automate = setTimeout(function () { + this.hide(); + this.show(); + this.startTimer(); + }.bind(this), this.settings.timer); + } else { + clearTimeout(this.settings.automate); + } + }, + + end : function () { + if (this.settings.cookieMonster) { + $.cookie(this.settings.cookieName, 'ridden', { expires: this.settings.cookieExpires, domain: this.settings.cookieDomain }); + } + + if (this.settings.timer > 0) { + clearTimeout(this.settings.automate); + } + + if (this.settings.modal && this.settings.expose) { + this.un_expose(); + } + + this.settings.$next_tip.data('closed', true); + + $('.joyride-modal-bg').hide(); + this.settings.$current_tip.hide(); + this.settings.postStepCallback(this.settings.$li.index(), this.settings.$current_tip); + this.settings.postRideCallback(this.settings.$li.index(), this.settings.$current_tip); + }, + + outerHTML : function (el) { + // support FireFox < 11 + return el.outerHTML || new XMLSerializer().serializeToString(el); + }, + + off : function () { + $(this.scope).off('.joyride'); + $(window).off('.joyride'); + $('.joyride-close-tip, .joyride-next-tip, .joyride-modal-bg').off('.joyride'); + $('.joyride-tip-guide, .joyride-modal-bg').remove(); + clearTimeout(this.settings.automate); + this.settings = {}; + } + }; +}(Foundation.zj, this, this.document)); \ No newline at end of file diff --git a/chaloBEST/templates/poster/test/javascripts/foundation/foundation.js b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.js new file mode 100644 index 0000000..c0aa514 --- /dev/null +++ b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.js @@ -0,0 +1,401 @@ +/* + * Foundation Responsive Library + * http://foundation.zurb.com + * Copyright 2013, ZURB + * Free to use under the MIT license. + * http://www.opensource.org/licenses/mit-license.php +*/ + +/*jslint unparam: true, browser: true, indent: 2 */ + +// Accommodate running jQuery or Zepto in noConflict() mode by +// using an anonymous function to redefine the $ shorthand name. +// See http://docs.jquery.com/Using_jQuery_with_Other_Libraries +// and http://zeptojs.com/ +var libFuncName = null; + +if (typeof jQuery === "undefined" && + typeof Zepto === "undefined" && + typeof $ === "function") { + libFuncName = $; +} else if (typeof jQuery === "function") { + libFuncName = jQuery; +} else if (typeof Zepto === "function") { + libFuncName = Zepto; +} else { + throw new TypeError(); +} + +(function ($, window, document, undefined) { + 'use strict'; + + // add dusty browser stuff + if (!Array.prototype.filter) { + Array.prototype.filter = function(fun /*, thisp */) { + "use strict"; + + if (this == null) { + throw new TypeError(); + } + + var t = Object(this), + len = t.length >>> 0; + if (typeof fun != "function") { + return; + } + + var res = [], + thisp = arguments[1]; + for (var i = 0; i < len; i++) { + if (i in t) { + var val = t[i]; // in case fun mutates this + if (fun && fun.call(thisp, val, i, t)) { + res.push(val); + } + } + } + + return res; + } + } + + if (!Function.prototype.bind) { + Function.prototype.bind = function (oThis) { + if (typeof this !== "function") { + // closest thing possible to the ECMAScript 5 internal IsCallable function + throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable"); + } + + var aArgs = Array.prototype.slice.call(arguments, 1), + fToBind = this, + fNOP = function () {}, + fBound = function () { + return fToBind.apply(this instanceof fNOP && oThis + ? this + : oThis, + aArgs.concat(Array.prototype.slice.call(arguments))); + }; + + fNOP.prototype = this.prototype; + fBound.prototype = new fNOP(); + + return fBound; + }; + } + + if (!Array.prototype.indexOf) { + Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) { + "use strict"; + if (this == null) { + throw new TypeError(); + } + var t = Object(this); + var len = t.length >>> 0; + if (len === 0) { + return -1; + } + var n = 0; + if (arguments.length > 1) { + n = Number(arguments[1]); + if (n != n) { // shortcut for verifying if it's NaN + n = 0; + } else if (n != 0 && n != Infinity && n != -Infinity) { + n = (n > 0 || -1) * Math.floor(Math.abs(n)); + } + } + if (n >= len) { + return -1; + } + var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0); + for (; k < len; k++) { + if (k in t && t[k] === searchElement) { + return k; + } + } + return -1; + } + } + + // fake stop() for zepto. + $.fn.stop = $.fn.stop || function() { + return this; + }; + + window.Foundation = { + name : 'Foundation', + + version : '4.1.5', + + // global Foundation cache object + cache : {}, + + init : function (scope, libraries, method, options, response, /* internal */ nc) { + var library_arr, + args = [scope, method, options, response], + responses = [], + nc = nc || false; + + // disable library error catching, + // used for development only + if (nc) this.nc = nc; + + // check RTL + this.rtl = /rtl/i.test($('html').attr('dir')); + + // set foundation global scope + this.scope = scope || this.scope; + + if (libraries && typeof libraries === 'string') { + if (/off/i.test(libraries)) return this.off(); + + library_arr = libraries.split(' '); + + if (library_arr.length > 0) { + for (var i = library_arr.length - 1; i >= 0; i--) { + responses.push(this.init_lib(library_arr[i], args)); + } + } + } else { + for (var lib in this.libs) { + responses.push(this.init_lib(lib, args)); + } + } + + // if first argument is callback, add to args + if (typeof libraries === 'function') { + args.unshift(libraries); + } + + return this.response_obj(responses, args); + }, + + response_obj : function (response_arr, args) { + for (var i = 0, len = args.length; i < len; i++) { + if (typeof args[i] === 'function') { + return args[i]({ + errors: response_arr.filter(function (s) { + if (typeof s === 'string') return s; + }) + }); + } + } + + return response_arr; + }, + + init_lib : function (lib, args) { + return this.trap(function () { + if (this.libs.hasOwnProperty(lib)) { + this.patch(this.libs[lib]); + return this.libs[lib].init.apply(this.libs[lib], args); + } + }.bind(this), lib); + }, + + trap : function (fun, lib) { + if (!this.nc) { + try { + return fun(); + } catch (e) { + return this.error({name: lib, message: 'could not be initialized', more: e.name + ' ' + e.message}); + } + } + + return fun(); + }, + + patch : function (lib) { + this.fix_outer(lib); + lib.scope = this.scope; + lib.rtl = this.rtl; + }, + + inherit : function (scope, methods) { + var methods_arr = methods.split(' '); + + for (var i = methods_arr.length - 1; i >= 0; i--) { + if (this.lib_methods.hasOwnProperty(methods_arr[i])) { + this.libs[scope.name][methods_arr[i]] = this.lib_methods[methods_arr[i]]; + } + } + }, + + random_str : function (length) { + var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'.split(''); + + if (!length) { + length = Math.floor(Math.random() * chars.length); + } + + var str = ''; + for (var i = 0; i < length; i++) { + str += chars[Math.floor(Math.random() * chars.length)]; + } + return str; + }, + + libs : {}, + + // methods that can be inherited in libraries + lib_methods : { + set_data : function (node, data) { + // this.name references the name of the library calling this method + var id = [this.name,+new Date(),Foundation.random_str(5)].join('-'); + + Foundation.cache[id] = data; + node.attr('data-' + this.name + '-id', id); + return data; + }, + + get_data : function (node) { + return Foundation.cache[node.attr('data-' + this.name + '-id')]; + }, + + remove_data : function (node) { + if (node) { + delete Foundation.cache[node.attr('data-' + this.name + '-id')]; + node.attr('data-' + this.name + '-id', ''); + } else { + $('[data-' + this.name + '-id]').each(function () { + delete Foundation.cache[$(this).attr('data-' + this.name + '-id')]; + $(this).attr('data-' + this.name + '-id', ''); + }); + } + }, + + throttle : function(fun, delay) { + var timer = null; + return function () { + var context = this, args = arguments; + clearTimeout(timer); + timer = setTimeout(function () { + fun.apply(context, args); + }, delay); + }; + }, + + // parses data-options attribute on nodes and turns + // them into an object + data_options : function (el) { + var opts = {}, ii, p, + opts_arr = (el.attr('data-options') || ':').split(';'), + opts_len = opts_arr.length; + + function isNumber (o) { + return ! isNaN (o-0) && o !== null && o !== "" && o !== false && o !== true; + } + + function trim(str) { + if (typeof str === 'string') return $.trim(str); + return str; + } + + // parse options + for (ii = opts_len - 1; ii >= 0; ii--) { + p = opts_arr[ii].split(':'); + + if (/true/i.test(p[1])) p[1] = true; + if (/false/i.test(p[1])) p[1] = false; + if (isNumber(p[1])) p[1] = parseInt(p[1], 10); + + if (p.length === 2 && p[0].length > 0) { + opts[trim(p[0])] = trim(p[1]); + } + } + + return opts; + }, + + delay : function (fun, delay) { + return setTimeout(fun, delay); + }, + + // animated scrolling + scrollTo : function (el, to, duration) { + if (duration < 0) return; + var difference = to - $(window).scrollTop(); + var perTick = difference / duration * 10; + + this.scrollToTimerCache = setTimeout(function() { + if (!isNaN(parseInt(perTick, 10))) { + window.scrollTo(0, $(window).scrollTop() + perTick); + this.scrollTo(el, to, duration - 10); + } + }.bind(this), 10); + }, + + // not supported in core Zepto + scrollLeft : function (el) { + if (!el.length) return; + return ('scrollLeft' in el[0]) ? el[0].scrollLeft : el[0].pageXOffset; + }, + + // test for empty object or array + empty : function (obj) { + if (obj.length && obj.length > 0) return false; + if (obj.length && obj.length === 0) return true; + + for (var key in obj) { + if (hasOwnProperty.call(obj, key)) return false; + } + + return true; + } + }, + + fix_outer : function (lib) { + lib.outerHeight = function (el, bool) { + if (typeof Zepto === 'function') { + return el.height(); + } + + if (typeof bool !== 'undefined') { + return el.outerHeight(bool); + } + + return el.outerHeight(); + }; + + lib.outerWidth = function (el) { + if (typeof Zepto === 'function') { + return el.width(); + } + + if (typeof bool !== 'undefined') { + return el.outerWidth(bool); + } + + return el.outerWidth(); + }; + }, + + error : function (error) { + return error.name + ' ' + error.message + '; ' + error.more; + }, + + // remove all foundation events. + off: function () { + $(this.scope).off('.fndtn'); + $(window).off('.fndtn'); + return true; + }, + + zj : function () { + try { + return Zepto; + } catch (e) { + return jQuery; + } + }() + }; + + $.fn.foundation = function () { + var args = Array.prototype.slice.call(arguments, 0); + + return this.each(function () { + Foundation.init.apply(Foundation, [this].concat(args)); + return this; + }); + }; + +}(libFuncName, this, this.document)); \ No newline at end of file diff --git a/chaloBEST/templates/poster/test/javascripts/foundation/foundation.magellan.js b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.magellan.js new file mode 100644 index 0000000..60e2d09 --- /dev/null +++ b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.magellan.js @@ -0,0 +1,130 @@ +/*jslint unparam: true, browser: true, indent: 2 */ + +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs.magellan = { + name : 'magellan', + + version : '4.0.0', + + settings : { + activeClass: 'active' + }, + + init : function (scope, method, options) { + this.scope = scope || this.scope; + Foundation.inherit(this, 'data_options'); + + if (typeof method === 'object') { + $.extend(true, this.settings, method); + } + + if (typeof method != 'string') { + if (!this.settings.init) { + this.fixed_magellan = $("[data-magellan-expedition]"); + this.set_threshold(); + this.last_destination = $('[data-magellan-destination]').last(); + this.events(); + } + + return this.settings.init; + } else { + return this[method].call(this, options); + } + }, + + events : function () { + var self = this; + $(this.scope).on('arrival.fndtn.magellan', '[data-magellan-arrival]', function (e) { + var $destination = $(this), + $expedition = $destination.closest('[data-magellan-expedition]'), + activeClass = $expedition.attr('data-magellan-active-class') + || self.settings.activeClass; + + $destination + .closest('[data-magellan-expedition]') + .find('[data-magellan-arrival]') + .not($destination) + .removeClass(activeClass); + $destination.addClass(activeClass); + }); + + this.fixed_magellan + .on('update-position.fndtn.magellan', function(){ + var $el = $(this); + // $el.data("magellan-fixed-position",""); + //$el.data("magellan-top-offset", ""); + }) + .trigger('update-position'); + + $(window) + .on('resize.fndtn.magellan', function() { + this.fixed_magellan.trigger('update-position'); + }.bind(this)) + + .on('scroll.fndtn.magellan', function() { + var windowScrollTop = $(window).scrollTop(); + self.fixed_magellan.each(function() { + var $expedition = $(this); + if (typeof $expedition.data('magellan-top-offset') === 'undefined') { + $expedition.data('magellan-top-offset', $expedition.offset().top); + } + if (typeof $expedition.data('magellan-fixed-position') === 'undefined') { + $expedition.data('magellan-fixed-position', false) + } + var fixed_position = (windowScrollTop + self.settings.threshold) > $expedition.data("magellan-top-offset"); + var attr = $expedition.attr('data-magellan-top-offset'); + + if ($expedition.data("magellan-fixed-position") != fixed_position) { + $expedition.data("magellan-fixed-position", fixed_position); + if (fixed_position) { + $expedition.css({position:"fixed", top:0}); + } else { + $expedition.css({position:"", top:""}); + } + if (fixed_position && typeof attr != 'undefined' && attr != false) { + $expedition.css({position:"fixed", top:attr + "px"}); + } + } + }); + }); + + + if (this.last_destination.length > 0) { + $(window).on('scroll.fndtn.magellan', function (e) { + var windowScrollTop = $(window).scrollTop(), + scrolltopPlusHeight = windowScrollTop + $(window).height(), + lastDestinationTop = Math.ceil(self.last_destination.offset().top); + + $('[data-magellan-destination]').each(function () { + var $destination = $(this), + destination_name = $destination.attr('data-magellan-destination'), + topOffset = $destination.offset().top - windowScrollTop; + + if (topOffset <= self.settings.threshold) { + $("[data-magellan-arrival='" + destination_name + "']").trigger('arrival'); + } + // In large screens we may hit the bottom of the page and dont reach the top of the last magellan-destination, so lets force it + if (scrolltopPlusHeight >= $(self.scope).height() && lastDestinationTop > windowScrollTop && lastDestinationTop < scrolltopPlusHeight) { + $('[data-magellan-arrival]').last().trigger('arrival'); + } + }); + }); + } + + this.settings.init = true; + }, + + set_threshold : function () { + if (!this.settings.threshold) { + this.settings.threshold = (this.fixed_magellan.length > 0) ? + this.outerHeight(this.fixed_magellan, true) : 0; + } + }, + + off : function () { + $(this.scope).off('.fndtn.magellan'); + } + }; +}(Foundation.zj, this, this.document)); \ No newline at end of file diff --git a/chaloBEST/templates/poster/test/javascripts/foundation/foundation.orbit.js b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.orbit.js new file mode 100644 index 0000000..8c805e3 --- /dev/null +++ b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.orbit.js @@ -0,0 +1,373 @@ +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs = Foundation.libs || {}; + + Foundation.libs.orbit = { + name: 'orbit', + + version: '4.1.0', + + settings: { + timer_speed: 10000, + animation_speed: 500, + bullets: true, + stack_on_small: true, + navigation_arrows: true, + slide_number: true, + container_class: 'orbit-container', + stack_on_small_class: 'orbit-stack-on-small', + next_class: 'orbit-next', + prev_class: 'orbit-prev', + timer_container_class: 'orbit-timer', + timer_paused_class: 'paused', + timer_progress_class: 'orbit-progress', + slides_container_class: 'orbit-slides-container', + bullets_container_class: 'orbit-bullets', + bullets_active_class: 'active', + slide_number_class: 'orbit-slide-number', + caption_class: 'orbit-caption', + active_slide_class: 'active', + orbit_transition_class: 'orbit-transitioning' + }, + + init: function (scope, method, options) { + var self = this; + Foundation.inherit(self, 'data_options'); + + if (typeof method === 'object') { + $.extend(true, self.settings, method); + } + + $('[data-orbit]', scope).each(function(idx, el) { + var scoped_self = $.extend(true, {}, self); + scoped_self._init(idx, el); + }); + }, + + _container_html: function() { + var self = this; + return '
    '; + }, + + _bullets_container_html: function($slides) { + var self = this, + $list = $('
      '); + $slides.each(function(idx, slide) { + var $item = $('
    1. '); + if (idx === 0) { + $item.addClass(self.settings.bullets_active_class); + } + $list.append($item); + }); + return $list; + }, + + _slide_number_html: function(slide_number, total_slides) { + var self = this, + $container = $('
      '); + $container.append('' + slide_number + ' of ' + total_slides + ''); + return $container; + }, + + _timer_html: function() { + var self = this; + if (typeof self.settings.timer_speed === 'number' && self.settings.timer_speed > 0) { + return '
      '; + } else { + return ''; + } + }, + + _next_html: function() { + var self = this; + return 'Next '; + }, + + _prev_html: function() { + var self = this; + return 'Prev '; + }, + + _init: function (idx, slider) { + var self = this, + $slides_container = $(slider), + $container = $slides_container.wrap(self._container_html()).parent(), + $slides = $slides_container.children(); + + $.extend(true, self.settings, self.data_options($slides_container)); + + if (self.settings.navigation_arrows) { + $container.append(self._prev_html()); + $container.append(self._next_html()); + } + $slides_container.addClass(self.settings.slides_container_class); + if (self.settings.stack_on_small) { + $container.addClass(self.settings.stack_on_small_class); + } + if (self.settings.slide_number) { + $container.append(self._slide_number_html(1, $slides.length)); + } + $container.append(self._timer_html()); + if (self.settings.bullets) { + $container.after(self._bullets_container_html($slides)); + } + // To better support the "sliding" effect it's easier + // if we just clone the first and last slides + $slides_container.append($slides.first().clone().attr('data-orbit-slide','')); + $slides_container.prepend($slides.last().clone().attr('data-orbit-slide','')); + // Make the first "real" slide active + $slides_container.css('marginLeft', '-100%'); + $slides.first().addClass(self.settings.active_slide_class); + + self._init_events($slides_container); + self._init_dimensions($slides_container); + self._start_timer($slides_container); + }, + + _init_events: function ($slides_container) { + var self = this, + $container = $slides_container.parent(); + + $(window) + .on('load.fndtn.orbit', function() { + $slides_container.height(''); + $slides_container.height($slides_container.height($container.height())); + $slides_container.trigger('orbit:ready'); + }) + .on('resize.fndtn.orbit', function() { + $slides_container.height(''); + $slides_container.height($slides_container.height($container.height())); + }); + + $(document).on('click.fndtn.orbit', '[data-orbit-link]', function(e) { + e.preventDefault(); + var id = $(e.currentTarget).attr('data-orbit-link'), + $slide = $slides_container.find('[data-orbit-slide=' + id + ']').first(); + + if ($slide.length === 1) { + self._reset_timer($slides_container, true); + self._goto($slides_container, $slide.index(), function() {}); + } + }); + + $container.siblings('.' + self.settings.bullets_container_class) + .on('click.fndtn.orbit', '[data-orbit-slide-number]', function(e) { + e.preventDefault(); + self._reset_timer($slides_container, true); + self._goto($slides_container, $(e.currentTarget).data('orbit-slide-number'),function() {}); + }); + + $container + .on('orbit:after-slide-change.fndtn.orbit', function(e, orbit) { + var $slide_number = $container.find('.' + self.settings.slide_number_class); + + if ($slide_number.length === 1) { + $slide_number.replaceWith(self._slide_number_html(orbit.slide_number, orbit.total_slides)); + } + }) + .on('orbit:next-slide.fndtn.orbit click.fndtn.orbit', '.' + self.settings.next_class, function(e) { + e.preventDefault(); + self._reset_timer($slides_container, true); + self._goto($slides_container, 'next', function() {}); + }) + .on('orbit:prev-slide.fndtn.orbit click.fndtn.orbit', '.' + self.settings.prev_class, function(e) { + e.preventDefault(); + self._reset_timer($slides_container, true); + self._goto($slides_container, 'prev', function() {}); + }) + .on('orbit:toggle-play-pause.fndtn.orbit click.fndtn.orbit touchstart.fndtn.orbit', '.' + self.settings.timer_container_class, function(e) { + e.preventDefault(); + var $timer = $(e.currentTarget).toggleClass(self.settings.timer_paused_class), + $slides_container = $timer.closest('.' + self.settings.container_class) + .find('.' + self.settings.slides_container_class); + + if ($timer.hasClass(self.settings.timer_paused_class)) { + self._stop_timer($slides_container); + } else { + self._start_timer($slides_container); + } + }) + .on('touchstart.fndtn.orbit', function(e) { + if (!e.touches) { e = e.originalEvent; } + var data = { + start_page_x: e.touches[0].pageX, + start_page_y: e.touches[0].pageY, + start_time: (new Date()).getTime(), + delta_x: 0, + is_scrolling: undefined + }; + $container.data('swipe-transition', data); + e.stopPropagation(); + }) + .on('touchmove.fndtn.orbit', function(e) { + if (!e.touches) { e = e.originalEvent; } + // Ignore pinch/zoom events + if(e.touches.length > 1 || e.scale && e.scale !== 1) return; + + var data = $container.data('swipe-transition'); + if (typeof data === 'undefined') { + data = {}; + } + + data.delta_x = e.touches[0].pageX - data.start_page_x; + + if ( typeof data.is_scrolling === 'undefined') { + data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) ); + } + + if (!data.is_scrolling && !data.active) { + e.preventDefault(); + self._stop_timer($slides_container); + var direction = (data.delta_x < 0) ? 'next' : 'prev'; + data.active = true; + self._goto($slides_container, direction, function() {}); + } + }) + .on('touchend.fndtn.orbit', function(e) { + $container.data('swipe-transition', {}); + e.stopPropagation(); + }); + }, + + _init_dimensions: function ($slides_container) { + var $container = $slides_container.parent(), + $slides = $slides_container.children(); + + $slides_container.css('width', $slides.length * 100 + '%'); + $slides.css('width', 100 / $slides.length + '%'); + $slides_container.height($container.height()); + $slides_container.css('width', $slides.length * 100 + '%'); + }, + + _start_timer: function ($slides_container) { + var self = this, + $container = $slides_container.parent(); + + var callback = function() { + self._reset_timer($slides_container, false); + self._goto($slides_container, 'next', function() { + self._start_timer($slides_container); + }); + }; + + var $timer = $container.find('.' + self.settings.timer_container_class), + $progress = $timer.find('.' + self.settings.timer_progress_class), + progress_pct = ($progress.width() / $timer.width()), + delay = self.settings.timer_speed - (progress_pct * self.settings.timer_speed); + + $progress.animate({'width': '100%'}, delay, 'linear', callback); + $slides_container.trigger('orbit:timer-started'); + }, + + _stop_timer: function ($slides_container) { + var self = this, + $container = $slides_container.parent(), + $timer = $container.find('.' + self.settings.timer_container_class), + $progress = $timer.find('.' + self.settings.timer_progress_class), + progress_pct = $progress.width() / $timer.width(); + self._rebuild_timer($container, progress_pct * 100 + '%'); + // $progress.stop(); + $slides_container.trigger('orbit:timer-stopped'); + $timer = $container.find('.' + self.settings.timer_container_class); + $timer.addClass(self.settings.timer_paused_class); + }, + + _reset_timer: function($slides_container, is_paused) { + var self = this, + $container = $slides_container.parent(); + self._rebuild_timer($container, '0%'); + if (typeof is_paused === 'boolean' && is_paused) { + var $timer = $container.find('.' + self.settings.timer_container_class); + $timer.addClass(self.settings.timer_paused_class); + } + }, + + _rebuild_timer: function ($container, width_pct) { + // Zepto is unable to stop animations since they + // are css-based. This is a workaround for that + // limitation, which rebuilds the dom element + // thus stopping the animation + var self = this, + $timer = $container.find('.' + self.settings.timer_container_class), + $new_timer = $(self._timer_html()), + $new_timer_progress = $new_timer.find('.' + self.settings.timer_progress_class); + + if (typeof Zepto === 'function') { + $timer.remove(); + $container.append($new_timer); + $new_timer_progress.css('width', width_pct); + } else if (typeof jQuery === 'function') { + var $progress = $timer.find('.' + self.settings.timer_progress_class); + $progress.css('width', width_pct); + $progress.stop(); + } + }, + + _goto: function($slides_container, index_or_direction, callback) { + var self = this, + $container = $slides_container.parent(), + $slides = $slides_container.children(), + $active_slide = $slides_container.find('.' + self.settings.active_slide_class), + active_index = $active_slide.index(), + margin_position = Foundation.rtl ? 'marginRight' : 'marginLeft'; + + if ($container.hasClass(self.settings.orbit_transition_class)) { + return false; + } + + if (index_or_direction === 'prev') { + if (active_index === 0) { + active_index = $slides.length - 1; + } + else { + active_index--; + } + } + else if (index_or_direction === 'next') { + active_index = (active_index+1) % $slides.length; + } + else if (typeof index_or_direction === 'number') { + active_index = (index_or_direction % $slides.length); + } + if (active_index === ($slides.length - 1) && index_or_direction === 'next') { + $slides_container.css(margin_position, '0%'); + active_index = 1; + } + else if (active_index === 0 && index_or_direction === 'prev') { + $slides_container.css(margin_position, '-' + ($slides.length - 1) * 100 + '%'); + active_index = $slides.length - 2; + } + // Start transition, make next slide active + $container.addClass(self.settings.orbit_transition_class); + $active_slide.removeClass(self.settings.active_slide_class); + $($slides[active_index]).addClass(self.settings.active_slide_class); + // Make next bullet active + var $bullets = $container.siblings('.' + self.settings.bullets_container_class); + if ($bullets.length === 1) { + $bullets.children().removeClass(self.settings.bullets_active_class); + $($bullets.children()[active_index-1]).addClass(self.settings.bullets_active_class); + } + var new_margin_left = '-' + (active_index * 100) + '%'; + // Check to see if animation will occur, otherwise perform + // callbacks manually + $slides_container.trigger('orbit:before-slide-change'); + if ($slides_container.css(margin_position) === new_margin_left) { + $container.removeClass(self.settings.orbit_transition_class); + $slides_container.trigger('orbit:after-slide-change', [{slide_number: active_index, total_slides: $slides_container.children().length - 2}]); + callback(); + } else { + var properties = {}; + properties[margin_position] = new_margin_left; + + $slides_container.animate(properties, self.settings.animation_speed, 'linear', function() { + $container.removeClass(self.settings.orbit_transition_class); + $slides_container.trigger('orbit:after-slide-change', [{slide_number: active_index, total_slides: $slides_container.children().length - 2}]); + callback(); + }); + } + } + }; +}(Foundation.zj, this, this.document)); diff --git a/chaloBEST/templates/poster/test/javascripts/foundation/foundation.placeholder.js b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.placeholder.js new file mode 100644 index 0000000..2de28a8 --- /dev/null +++ b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.placeholder.js @@ -0,0 +1,159 @@ +/*! http://mths.be/placeholder v2.0.7 by @mathias + Modified to work with Zepto.js by ZURB +*/ +;(function(window, document, $) { + + var isInputSupported = 'placeholder' in document.createElement('input'), + isTextareaSupported = 'placeholder' in document.createElement('textarea'), + prototype = $.fn, + valHooks = $.valHooks, + hooks, + placeholder; + + if (isInputSupported && isTextareaSupported) { + + placeholder = prototype.placeholder = function() { + return this; + }; + + placeholder.input = placeholder.textarea = true; + + } else { + + placeholder = prototype.placeholder = function() { + var $this = this; + $this + .filter((isInputSupported ? 'textarea' : ':input') + '[placeholder]') + .not('.placeholder') + .bind({ + 'focus.placeholder': clearPlaceholder, + 'blur.placeholder': setPlaceholder + }) + .data('placeholder-enabled', true) + .trigger('blur.placeholder'); + return $this; + }; + + placeholder.input = isInputSupported; + placeholder.textarea = isTextareaSupported; + + hooks = { + 'get': function(element) { + var $element = $(element); + return $element.data('placeholder-enabled') && $element.hasClass('placeholder') ? '' : element.value; + }, + 'set': function(element, value) { + var $element = $(element); + if (!$element.data('placeholder-enabled')) { + return element.value = value; + } + if (value == '') { + element.value = value; + // Issue #56: Setting the placeholder causes problems if the element continues to have focus. + if (element != document.activeElement) { + // We can't use `triggerHandler` here because of dummy text/password inputs :( + setPlaceholder.call(element); + } + } else if ($element.hasClass('placeholder')) { + clearPlaceholder.call(element, true, value) || (element.value = value); + } else { + element.value = value; + } + // `set` can not return `undefined`; see http://jsapi.info/jquery/1.7.1/val#L2363 + return $element; + } + }; + + isInputSupported || (valHooks.input = hooks); + isTextareaSupported || (valHooks.textarea = hooks); + + $(function() { + // Look for forms + $(document).delegate('form', 'submit.placeholder', function() { + // Clear the placeholder values so they don't get submitted + var $inputs = $('.placeholder', this).each(clearPlaceholder); + setTimeout(function() { + $inputs.each(setPlaceholder); + }, 10); + }); + }); + + // Clear placeholder values upon page reload + $(window).bind('beforeunload.placeholder', function() { + $('.placeholder').each(function() { + this.value = ''; + }); + }); + + } + + function args(elem) { + // Return an object of element attributes + var newAttrs = {}, + rinlinejQuery = /^jQuery\d+$/; + $.each(elem.attributes, function(i, attr) { + if (attr.specified && !rinlinejQuery.test(attr.name)) { + newAttrs[attr.name] = attr.value; + } + }); + return newAttrs; + } + + function clearPlaceholder(event, value) { + var input = this, + $input = $(input); + if (input.value == $input.attr('placeholder') && $input.hasClass('placeholder')) { + if ($input.data('placeholder-password')) { + $input = $input.hide().next().show().attr('id', $input.removeAttr('id').data('placeholder-id')); + // If `clearPlaceholder` was called from `$.valHooks.input.set` + if (event === true) { + return $input[0].value = value; + } + $input.focus(); + } else { + input.value = ''; + $input.removeClass('placeholder'); + input == document.activeElement && input.select(); + } + } + } + + function setPlaceholder() { + var $replacement, + input = this, + $input = $(input), + $origInput = $input, + id = this.id; + if (input.value == '') { + if (input.type == 'password') { + if (!$input.data('placeholder-textinput')) { + try { + $replacement = $input.clone().attr({ 'type': 'text' }); + } catch(e) { + $replacement = $('').attr($.extend(args(this), { 'type': 'text' })); + } + $replacement + .removeAttr('name') + .data({ + 'placeholder-password': true, + 'placeholder-id': id + }) + .bind('focus.placeholder', clearPlaceholder); + $input + .data({ + 'placeholder-textinput': $replacement, + 'placeholder-id': id + }) + .before($replacement); + } + $input = $input.removeAttr('id').hide().prev().attr('id', id).show(); + // Note: `$input[0] != input` now! + } + $input.addClass('placeholder'); + $input[0].value = $input.attr('placeholder'); + } else { + $input.removeClass('placeholder'); + } + } + +}(this, document, Foundation.zj)); \ No newline at end of file diff --git a/chaloBEST/templates/poster/test/javascripts/foundation/foundation.reveal.js b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.reveal.js new file mode 100644 index 0000000..56f7d28 --- /dev/null +++ b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.reveal.js @@ -0,0 +1,277 @@ +/*jslint unparam: true, browser: true, indent: 2 */ + +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs.reveal = { + name: 'reveal', + + version : '4.1.3', + + locked : false, + + settings : { + animation: 'fadeAndPop', + animationSpeed: 250, + closeOnBackgroundClick: true, + dismissModalClass: 'close-reveal-modal', + bgClass: 'reveal-modal-bg', + open: function(){}, + opened: function(){}, + close: function(){}, + closed: function(){}, + bg : $('.reveal-modal-bg'), + css : { + open : { + 'opacity': 0, + 'visibility': 'visible', + 'display' : 'block' + }, + close : { + 'opacity': 1, + 'visibility': 'hidden', + 'display': 'none' + } + } + }, + + init : function (scope, method, options) { + this.scope = scope || this.scope; + Foundation.inherit(this, 'data_options delay'); + + if (typeof method === 'object') { + $.extend(true, this.settings, method); + } else if (typeof options !== 'undefined') { + $.extend(true, this.settings, options); + } + + if (typeof method != 'string') { + this.events(); + + return this.settings.init; + } else { + return this[method].call(this, options); + } + }, + + events : function () { + var self = this; + + $(this.scope) + .off('.fndtn.reveal') + .on('click.fndtn.reveal', '[data-reveal-id]', function (e) { + e.preventDefault(); + if (!self.locked) { + self.locked = true; + self.open.call(self, $(this)); + } + }) + .on('click.fndtn.reveal touchend.click.fndtn.reveal', this.close_targets(), function (e) { + e.preventDefault(); + if (!self.locked) { + var settings = $.extend({}, self.settings, self.data_options($('.reveal-modal.open'))); + if ($(e.target)[0] === $('.' + settings.bgClass)[0] && !settings.closeOnBackgroundClick) { + return; + } + + self.locked = true; + self.close.call(self, $(this).closest('.reveal-modal')); + } + }) + .on('open.fndtn.reveal', '.reveal-modal', this.settings.open) + .on('opened.fndtn.reveal', '.reveal-modal', this.settings.opened) + .on('opened.fndtn.reveal', '.reveal-modal', this.open_video) + .on('close.fndtn.reveal', '.reveal-modal', this.settings.close) + .on('closed.fndtn.reveal', '.reveal-modal', this.settings.closed) + .on('closed.fndtn.reveal', '.reveal-modal', this.close_video); + + return true; + }, + + open : function (target) { + if (target) { + var modal = $('#' + target.data('reveal-id')); + } else { + var modal = $(this.scope); + } + + if (!modal.hasClass('open')) { + var open_modal = $('.reveal-modal.open'); + + if (typeof modal.data('css-top') === 'undefined') { + modal.data('css-top', parseInt(modal.css('top'), 10)) + .data('offset', this.cache_offset(modal)); + } + + modal.trigger('open'); + + if (open_modal.length < 1) { + this.toggle_bg(modal); + } + this.hide(open_modal, this.settings.css.close); + this.show(modal, this.settings.css.open); + } + }, + + close : function (modal) { + + var modal = modal || $(this.scope), + open_modals = $('.reveal-modal.open'); + + if (open_modals.length > 0) { + this.locked = true; + modal.trigger('close'); + this.toggle_bg(modal); + this.hide(open_modals, this.settings.css.close); + } + }, + + close_targets : function () { + var base = '.' + this.settings.dismissModalClass; + + if (this.settings.closeOnBackgroundClick) { + return base + ', .' + this.settings.bgClass; + } + + return base; + }, + + toggle_bg : function (modal) { + if ($('.reveal-modal-bg').length === 0) { + this.settings.bg = $('
      ', {'class': this.settings.bgClass}) + .appendTo('body'); + } + + if (this.settings.bg.filter(':visible').length > 0) { + this.hide(this.settings.bg); + } else { + this.show(this.settings.bg); + } + }, + + show : function (el, css) { + // is modal + if (css) { + if (/pop/i.test(this.settings.animation)) { + css.top = $(window).scrollTop() - el.data('offset') + 'px'; + var end_css = { + top: $(window).scrollTop() + el.data('css-top') + 'px', + opacity: 1 + }; + + return this.delay(function () { + return el + .css(css) + .animate(end_css, this.settings.animationSpeed, 'linear', function () { + this.locked = false; + el.trigger('opened'); + }.bind(this)) + .addClass('open'); + }.bind(this), this.settings.animationSpeed / 2); + } + + if (/fade/i.test(this.settings.animation)) { + var end_css = {opacity: 1}; + + return this.delay(function () { + return el + .css(css) + .animate(end_css, this.settings.animationSpeed, 'linear', function () { + this.locked = false; + el.trigger('opened'); + }.bind(this)) + .addClass('open'); + }.bind(this), this.settings.animationSpeed / 2); + } + + return el.css(css).show().css({opacity: 1}).addClass('open').trigger('opened'); + } + + // should we animate the background? + if (/fade/i.test(this.settings.animation)) { + return el.fadeIn(this.settings.animationSpeed / 2); + } + + return el.show(); + }, + + hide : function (el, css) { + // is modal + if (css) { + if (/pop/i.test(this.settings.animation)) { + var end_css = { + top: - $(window).scrollTop() - el.data('offset') + 'px', + opacity: 0 + }; + + return this.delay(function () { + return el + .animate(end_css, this.settings.animationSpeed, 'linear', function () { + this.locked = false; + el.css(css).trigger('closed'); + }.bind(this)) + .removeClass('open'); + }.bind(this), this.settings.animationSpeed / 2); + } + + if (/fade/i.test(this.settings.animation)) { + var end_css = {opacity: 0}; + + return this.delay(function () { + return el + .animate(end_css, this.settings.animationSpeed, 'linear', function () { + this.locked = false; + el.css(css).trigger('closed'); + }.bind(this)) + .removeClass('open'); + }.bind(this), this.settings.animationSpeed / 2); + } + + return el.hide().css(css).removeClass('open').trigger('closed'); + } + + // should we animate the background? + if (/fade/i.test(this.settings.animation)) { + return el.fadeOut(this.settings.animationSpeed / 2); + } + + return el.hide(); + }, + + close_video : function (e) { + var video = $(this).find('.flex-video'), + iframe = video.find('iframe'); + + if (iframe.length > 0) { + iframe.attr('data-src', iframe[0].src); + iframe.attr('src', 'about:blank'); + video.fadeOut(100).hide(); + } + }, + + open_video : function (e) { + var video = $(this).find('.flex-video'), + iframe = video.find('iframe'); + + if (iframe.length > 0) { + var data_src = iframe.attr('data-src'); + if (typeof data_src === 'string') { + iframe[0].src = iframe.attr('data-src'); + } + video.show().fadeIn(100); + } + }, + + cache_offset : function (modal) { + var offset = modal.show().height() + parseInt(modal.css('top'), 10); + + modal.hide(); + + return offset; + }, + + off : function () { + $(this.scope).off('.fndtn.reveal'); + } + }; +}(Foundation.zj, this, this.document)); \ No newline at end of file diff --git a/chaloBEST/templates/poster/test/javascripts/foundation/foundation.section.js b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.section.js new file mode 100644 index 0000000..469da8f --- /dev/null +++ b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.section.js @@ -0,0 +1,407 @@ +/*jslint unparam: true, browser: true, indent: 2 */ + +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs.section = { + name: 'section', + + version : '4.1.3', + + settings : { + deep_linking: false, + one_up: true, + section_selector : '[data-section]', + region_selector : 'section, .section, [data-section-region]', + title_selector : '.title, [data-section-title]', + active_region_selector : 'section.active, .section.active, .active[data-section-region]', + content_selector : '.content, [data-section-content]', + nav_selector : '[data-section="vertical-nav"], [data-section="horizontal-nav"]', + callback: function (){} + }, + + init : function (scope, method, options) { + var self = this; + Foundation.inherit(this, 'throttle data_options position_right offset_right'); + + if (typeof method === 'object') { + $.extend(true, self.settings, method); + } + + if (typeof method != 'string') { + this.set_active_from_hash(); + this.events(); + + return true; + } else { + return this[method].call(this, options); + } + }, + + events : function () { + var self = this; + + $(this.scope) + .on('click.fndtn.section', '[data-section] .title, [data-section] [data-section-title]', function (e) { + var $this = $(this), + section = $this.closest(self.settings.section_selector); + + self.toggle_active.call(this, e, self); + self.reflow(); + }); + + $(window) + .on('resize.fndtn.section', self.throttle(function () { + self.resize.call(this); + }, 30)) + .on('hashchange', function () { + if (!self.settings.toggled){ + self.set_active_from_hash(); + $(this).trigger('resize'); + } + }).trigger('resize'); + + $(document) + .on('click.fndtn.section', function (e) { + if ($(e.target).closest(self.settings.title_selector).length < 1) { + $(self.settings.nav_selector) + .children(self.settings.region_selector) + .removeClass('active') + .attr('style', ''); + } + }); + + }, + + toggle_active : function (e, self) { + var $this = $(this), + self = Foundation.libs.section, + region = $this.closest(self.settings.region_selector), + content = $this.siblings(self.settings.content_selector), + parent = region.parent(), + settings = $.extend({}, self.settings, self.data_options(parent)), + prev_active_section = parent + .children(self.settings.active_region_selector); + + self.settings.toggled = true; + + if (!settings.deep_linking && content.length > 0) { + e.preventDefault(); + } + + if (region.hasClass('active')) { + // this is causing the style flash. + if (self.small(parent) + || self.is_vertical_nav(parent) + || self.is_horizontal_nav(parent) + || self.is_accordion(parent)) { + if (prev_active_section[0] !== region[0] + || (prev_active_section[0] === region[0] && !settings.one_up)) { + region + .removeClass('active') + .attr('style', ''); + } + } + } else { + var prev_active_section = parent + .children(self.settings.active_region_selector), + title_height = self.outerHeight(region + .children(self.settings.title_selector)); + + if (self.small(parent) || settings.one_up) { + + if (self.small(parent)) { + prev_active_section.attr('style', ''); + } else { + prev_active_section.attr('style', + 'visibility: hidden; padding-top: '+title_height+'px;'); + } + } + + if (self.small(parent)) { + region.attr('style', ''); + } else { + region.css('padding-top', title_height); + } + + region.addClass('active'); + + if (prev_active_section.length > 0) { + prev_active_section + .removeClass('active') + .attr('style', ''); + } + + // Toggle the content display attribute. This is done to + // ensure accurate outerWidth measurements that account for + // the scrollbar. + if (self.is_vertical_tabs(parent)) { + content.css('display', 'block'); + + if (prev_active_section !== null) { + prev_active_section + .children(self.settings.content_selector) + .css('display', 'none'); + } + } + } + + setTimeout(function () { + self.settings.toggled = false; + }, 300); + + settings.callback(); + }, + + resize : function () { + var self = Foundation.libs.section, + sections = $(self.settings.section_selector); + + sections.each(function() { + var $this = $(this), + active_section = $this + .children(self.settings.active_region_selector), + settings = $.extend({}, self.settings, self.data_options($this)); + + if (active_section.length > 1) { + active_section + .not(':first') + .removeClass('active') + .attr('style', ''); + } else if (active_section.length < 1 + && !self.is_vertical_nav($this) + && !self.is_horizontal_nav($this) + && !self.is_accordion($this)) { + + var first = $this.children(self.settings.region_selector).first(); + + if (settings.one_up || !self.small($this)) { + first.addClass('active'); + } + + if (self.small($this)) { + first.attr('style', ''); + } else { + first.css('padding-top', self.outerHeight(first + .children(self.settings.title_selector))); + } + } + + if (self.small($this)) { + active_section.attr('style', ''); + } else { + active_section.css('padding-top', self.outerHeight(active_section + .children(self.settings.title_selector))); + } + + self.position_titles($this); + + if ( (self.is_horizontal_nav($this) && !self.small($this)) + || self.is_vertical_tabs($this)) { + self.position_content($this); + } else { + self.position_content($this, false); + } + }); + }, + + is_vertical_nav : function (el) { + return /vertical-nav/i.test(el.data('section')); + }, + + is_horizontal_nav : function (el) { + return /horizontal-nav/i.test(el.data('section')); + }, + + is_accordion : function (el) { + return /accordion/i.test(el.data('section')); + }, + + is_horizontal_tabs : function (el) { + return /^tabs$/i.test(el.data('section')); + }, + + is_vertical_tabs : function (el) { + return /vertical-tabs/i.test(el.data('section')); + }, + + set_active_from_hash : function () { + var hash = window.location.hash.substring(1), + sections = $('[data-section]'), + self = this; + + sections.each(function () { + var section = $(this), + settings = $.extend({}, self.settings, self.data_options(section)); + + if (hash.length > 0 && settings.deep_linking) { + var regions = section + .children(self.settings.region_selector) + .attr('style', '') + .removeClass('active'); + regions + .map(function () { + return $(this).children('.content[data-slug="' + hash + '"], [data-section-content][data-slug="' + hash + '"]'); + }) + .parent() + .addClass('active'); + } + }); + }, + + position_titles : function (section, off) { + var self = this, + titles = section + .children(this.settings.region_selector) + .map(function () { + return $(this).children(self.settings.title_selector); + }), + previous_width = 0, + previous_height = 0, + self = this; + + if (typeof off === 'boolean') { + titles.attr('style', ''); + + } else { + titles.each(function () { + if (self.is_vertical_tabs(section)) { + $(this).css('top', previous_height); + previous_height += self.outerHeight($(this)); + } else { + if (!self.rtl) { + $(this).css('left', previous_width); + } else { + $(this).css('right', previous_width); + } + previous_width += self.outerWidth($(this)); + } + }); + } + }, + + position_content : function (section, off) { + var self = this, + regions = section.children(self.settings.region_selector), + titles = regions + .map(function () { + return $(this).children(self.settings.title_selector); + }), + content = regions + .map(function () { + return $(this).children(self.settings.content_selector); + }); + + if (typeof off === 'boolean') { + content.attr('style', ''); + section.attr('style', ''); + } else { + if (self.is_vertical_tabs(section) + && !self.small(section)) { + var content_min_height = 0, + content_min_width = Number.MAX_VALUE, + title_width = null; + + regions.each(function () { + var region = $(this), + title = region.children(self.settings.title_selector), + content = region.children(self.settings.content_selector), + content_width = 0; + + title_width = self.outerWidth(title); + content_width = self.outerWidth(section) - title_width; + if (content_width < content_min_width) { + content_min_width = content_width; + } + + // Increment the minimum height of the content region + // to align with the height of the titles. + content_min_height += self.outerHeight(title); + + // Set all of the inactive tabs to 'display: none' + // The CSS sets all of the tabs as 'display: block' + // in order to account for scrollbars when measuring the width + // of the content regions. + if (!$(this).hasClass('active')) { + content.css('display', 'none'); + } + }); + + regions.each(function () { + var content = $(this).children(self.settings.content_selector); + content.css('minHeight', content_min_height); + + // Remove 2 pixels to account for the right-shift in the CSS + content.css('maxWidth', content_min_width - 2); + }); + + // Adjust the outer section container width to match + // the width of the title and content + section.css('maxWidth', title_width + content_min_width); + } else { + regions.each(function () { + var region = $(this), + title = region.children(self.settings.title_selector), + content = region.children(self.settings.content_selector); + if (!self.rtl) { + content + .css({left: title.position().left - 1, + top: self.outerHeight(title) - 2}); + } else { + content + .css({right: self.position_right(title) + 1, + top: self.outerHeight(title) - 2}); + } + }); + + // temporary work around for Zepto outerheight calculation issues. + if (typeof Zepto === 'function') { + section.height(this.outerHeight(titles.first())); + } else { + section.height(this.outerHeight(titles.first()) - 2); + } + } + } + }, + + position_right : function (el) { + var self = this, + section = el.closest(this.settings.section_selector), + regions = section.children(this.settings.region_selector), + section_width = el.closest(this.settings.section_selector).width(), + offset = regions + .map(function () { + return $(this).children(self.settings.title_selector); + }).length; + return (section_width - el.position().left - el.width() * (el.index() + 1) - offset); + }, + + reflow : function (scope) { + var scope = scope || document; + $(this.settings.section_selector, scope).trigger('resize'); + }, + + small : function (el) { + var settings = $.extend({}, this.settings, this.data_options(el)); + if (this.is_horizontal_tabs(el)) { + return false; + } + if (el && this.is_accordion(el)) { + return true; + } + if ($('html').hasClass('lt-ie9')) { + return true; + } + if ($('html').hasClass('ie8compat')) { + return true; + } + return $(this.scope).width() < 768; + }, + + off : function () { + $(this.scope).off('.fndtn.section'); + $(window).off('.fndtn.section'); + $(document).off('.fndtn.section') + } + }; +}(Foundation.zj, this, this.document)); diff --git a/chaloBEST/templates/poster/test/javascripts/foundation/foundation.tooltips.js b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.tooltips.js new file mode 100644 index 0000000..1db73c1 --- /dev/null +++ b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.tooltips.js @@ -0,0 +1,200 @@ +/*jslint unparam: true, browser: true, indent: 2 */ + +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs.tooltips = { + name: 'tooltips', + + version : '4.1.3', + + settings : { + selector : '.has-tip', + additionalInheritableClasses : [], + tooltipClass : '.tooltip', + appendTo: 'body', + tipTemplate : function (selector, content) { + return '' + content + ''; + } + }, + + cache : {}, + + init : function (scope, method, options) { + var self = this; + this.scope = scope || this.scope; + + if (typeof method === 'object') { + $.extend(true, this.settings, method); + } + + if (typeof method != 'string') { + if (Modernizr.touch) { + $(this.scope) + .on('click.fndtn.tooltip touchstart.fndtn.tooltip touchend.fndtn.tooltip', + '[data-tooltip]', function (e) { + e.preventDefault(); + $(self.settings.tooltipClass).hide(); + self.showOrCreateTip($(this)); + }) + .on('click.fndtn.tooltip touchstart.fndtn.tooltip touchend.fndtn.tooltip', + this.settings.tooltipClass, function (e) { + e.preventDefault(); + $(this).fadeOut(150); + }); + } else { + $(this.scope) + .on('mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip', + '[data-tooltip]', function (e) { + var $this = $(this); + + if (e.type === 'mouseover' || e.type === 'mouseenter') { + self.showOrCreateTip($this); + } else if (e.type === 'mouseout' || e.type === 'mouseleave') { + self.hide($this); + } + }); + } + + // $(this.scope).data('fndtn-tooltips', true); + } else { + return this[method].call(this, options); + } + + }, + + showOrCreateTip : function ($target) { + var $tip = this.getTip($target); + + if ($tip && $tip.length > 0) { + return this.show($target); + } + + return this.create($target); + }, + + getTip : function ($target) { + var selector = this.selector($target), + tip = null; + + if (selector) { + tip = $('span[data-selector=' + selector + ']' + this.settings.tooltipClass); + } + + return (typeof tip === 'object') ? tip : false; + }, + + selector : function ($target) { + var id = $target.attr('id'), + dataSelector = $target.attr('data-tooltip') || $target.attr('data-selector'); + + if ((id && id.length < 1 || !id) && typeof dataSelector != 'string') { + dataSelector = 'tooltip' + Math.random().toString(36).substring(7); + $target.attr('data-selector', dataSelector); + } + + return (id && id.length > 0) ? id : dataSelector; + }, + + create : function ($target) { + var $tip = $(this.settings.tipTemplate(this.selector($target), $('
      ').html($target.attr('title')).html())), + classes = this.inheritable_classes($target); + + $tip.addClass(classes).appendTo(this.settings.appendTo); + if (Modernizr.touch) { + $tip.append('tap to close '); + } + $target.removeAttr('title').attr('title',''); + this.show($target); + }, + + reposition : function (target, tip, classes) { + var width, nub, nubHeight, nubWidth, column, objPos; + + tip.css('visibility', 'hidden').show(); + + width = target.data('width'); + nub = tip.children('.nub'); + nubHeight = this.outerHeight(nub); + nubWidth = this.outerHeight(nub); + + objPos = function (obj, top, right, bottom, left, width) { + return obj.css({ + 'top' : (top) ? top : 'auto', + 'bottom' : (bottom) ? bottom : 'auto', + 'left' : (left) ? left : 'auto', + 'right' : (right) ? right : 'auto', + 'width' : (width) ? width : 'auto' + }).end(); + }; + + objPos(tip, (target.offset().top + this.outerHeight(target) + 10), 'auto', 'auto', target.offset().left, width); + + if ($(window).width() < 767) { + objPos(tip, (target.offset().top + this.outerHeight(target) + 10), 'auto', 'auto', 12.5, $(this.scope).width()); + tip.addClass('tip-override'); + objPos(nub, -nubHeight, 'auto', 'auto', target.offset().left); + } else { + var left = target.offset().left; + if (Foundation.rtl) { + left = target.offset().left + target.offset().width - this.outerWidth(tip); + } + objPos(tip, (target.offset().top + this.outerHeight(target) + 10), 'auto', 'auto', left, width); + tip.removeClass('tip-override'); + if (classes && classes.indexOf('tip-top') > -1) { + objPos(tip, (target.offset().top - this.outerHeight(tip)), 'auto', 'auto', left, width) + .removeClass('tip-override'); + } else if (classes && classes.indexOf('tip-left') > -1) { + objPos(tip, (target.offset().top + (this.outerHeight(target) / 2) - nubHeight*2.5), 'auto', 'auto', (target.offset().left - this.outerWidth(tip) - nubHeight), width) + .removeClass('tip-override'); + } else if (classes && classes.indexOf('tip-right') > -1) { + objPos(tip, (target.offset().top + (this.outerHeight(target) / 2) - nubHeight*2.5), 'auto', 'auto', (target.offset().left + this.outerWidth(target) + nubHeight), width) + .removeClass('tip-override'); + } + } + + tip.css('visibility', 'visible').hide(); + }, + + inheritable_classes : function (target) { + var inheritables = ['tip-top', 'tip-left', 'tip-bottom', 'tip-right', 'noradius'].concat(this.settings.additionalInheritableClasses), + classes = target.attr('class'), + filtered = classes ? $.map(classes.split(' '), function (el, i) { + if ($.inArray(el, inheritables) !== -1) { + return el; + } + }).join(' ') : ''; + + return $.trim(filtered); + }, + + show : function ($target) { + var $tip = this.getTip($target); + + this.reposition($target, $tip, $target.attr('class')); + $tip.fadeIn(150); + }, + + hide : function ($target) { + var $tip = this.getTip($target); + + $tip.fadeOut(150); + }, + + // deprecate reload + reload : function () { + var $self = $(this); + + return ($self.data('fndtn-tooltips')) ? $self.foundationTooltips('destroy').foundationTooltips('init') : $self.foundationTooltips('init'); + }, + + off : function () { + $(this.scope).off('.fndtn.tooltip'); + $(this.settings.tooltipClass).each(function (i) { + $('[data-tooltip]').get(i).attr('title', $(this).text()); + }).remove(); + } + }; +}(Foundation.zj, this, this.document)); diff --git a/chaloBEST/templates/poster/test/javascripts/foundation/foundation.topbar.js b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.topbar.js new file mode 100644 index 0000000..3b98cbc --- /dev/null +++ b/chaloBEST/templates/poster/test/javascripts/foundation/foundation.topbar.js @@ -0,0 +1,245 @@ +/*jslint unparam: true, browser: true, indent: 2 */ + +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs.topbar = { + name : 'topbar', + + version : '4.1.2', + + settings : { + index : 0, + stickyClass : 'sticky', + custom_back_text: true, + back_text: 'Back', + init : false + }, + + init : function (section, method, options) { + var self = this; + + if (typeof method === 'object') { + $.extend(true, this.settings, method); + } + + if (typeof method != 'string') { + + $('.top-bar').each(function () { + self.settings.$w = $(window); + self.settings.$topbar = $(this); + self.settings.$section = self.settings.$topbar.find('section'); + self.settings.$titlebar = self.settings.$topbar.children('ul').first(); + + + self.settings.$topbar.data('index', 0); + + var breakpoint = $("
      ").insertAfter(self.settings.$topbar); + self.settings.breakPoint = breakpoint.width(); + breakpoint.remove(); + + self.assemble(); + + if (self.settings.$topbar.parent().hasClass('fixed')) { + $('body').css('padding-top', self.outerHeight(self.settings.$topbar)); + } + }); + + if (!self.settings.init) { + this.events(); + } + + return this.settings.init; + } else { + // fire method + return this[method].call(this, options); + } + }, + + events : function () { + var self = this; + var offst = this.outerHeight($('.top-bar')); + $(this.scope) + .on('click.fndtn.topbar', '.top-bar .toggle-topbar', function (e) { + var topbar = $(this).closest('.top-bar'), + section = topbar.find('section, .section'), + titlebar = topbar.children('ul').first(); + + if (!topbar.data('height')) self.largestUL(); + + e.preventDefault(); + + if (self.breakpoint()) { + topbar + .toggleClass('expanded') + .css('min-height', ''); + } + + if (!topbar.hasClass('expanded')) { + if (!self.rtl) { + section.css({left: '0%'}); + section.find('>.name').css({left: '100%'}); + } else { + section.css({right: '0%'}); + section.find('>.name').css({right: '100%'}); + } + section.find('li.moved').removeClass('moved'); + topbar.data('index', 0); + + if (topbar.hasClass('fixed')) { + topbar.parent().addClass('fixed'); + topbar.removeClass('fixed'); + $('body').css('padding-top',offst); + } + } else if (topbar.parent().hasClass('fixed')) { + topbar.parent().removeClass('fixed'); + topbar.addClass('fixed'); + $('body').css('padding-top','0'); + window.scrollTo(0,0); + } + }) + + .on('click.fndtn.topbar', '.top-bar .has-dropdown>a', function (e) { + var topbar = $(this).closest('.top-bar'), + section = topbar.find('section, .section'), + titlebar = topbar.children('ul').first(), + dropdownHeight = $(this).next('.dropdown').outerHeight(); + + if (Modernizr.touch || self.breakpoint()) { + e.preventDefault(); + } + + if (self.breakpoint()) { + var $this = $(this), + $selectedLi = $this.closest('li'); + + topbar.data('index', topbar.data('index') + 1); + $selectedLi.addClass('moved'); + if (!self.rtl) { + section.css({left: -(100 * topbar.data('index')) + '%'}); + section.find('>.name').css({left: 100 * topbar.data('index') + '%'}); + } else { + section.css({right: -(100 * topbar.data('index')) + '%'}); + section.find('>.name').css({right: 100 * topbar.data('index') + '%'}); + } + + $('.top-bar').css('min-height', dropdownHeight); + + $this.siblings('ul') + .height(topbar.data('height') + self.outerHeight(titlebar, true)); + topbar + .css('min-height', topbar.data('height') + self.outerHeight(titlebar, true) * 2) + } + }); + + $(window).on('resize.fndtn.topbar', function () { + if (!self.breakpoint()) { + $('.top-bar') + .css('min-height', '') + .removeClass('expanded'); + } + }.bind(this)); + + // Go up a level on Click + $(this.scope).on('click.fndtn', '.top-bar .has-dropdown .back', function (e) { + e.preventDefault(); + + var $this = $(this), + topbar = $this.closest('.top-bar'), + section = topbar.find('section, .section'), + $movedLi = $this.closest('li.moved'), + $previousLevelUl = $movedLi.parent(); + + topbar.data('index', topbar.data('index') - 1); + if (!self.rtl) { + section.css({left: -(100 * topbar.data('index')) + '%'}); + section.find('>.name').css({left: 100 * topbar.data('index') + '%'}); + } else { + section.css({right: -(100 * topbar.data('index')) + '%'}); + section.find('>.name').css({right: 100 * topbar.data('index') + '%'}); + } + + if (topbar.data('index') === 0) { + topbar.css('min-height', 0); + } + + setTimeout(function () { + $movedLi.removeClass('moved'); + }, 300); + }); + }, + + breakpoint : function () { + return $(window).width() <= this.settings.breakPoint || $('html').hasClass('lt-ie9'); + }, + + assemble : function () { + var self = this; + // Pull element out of the DOM for manipulation + this.settings.$section.detach(); + + this.settings.$section.find('.has-dropdown>a').each(function () { + var $link = $(this), + $dropdown = $link.siblings('.dropdown'), + $titleLi = $('
    2. '); + + // Copy link to subnav + if (self.settings.custom_back_text == true) { + $titleLi.find('h5>a').html('« ' + self.settings.back_text); + } else { + $titleLi.find('h5>a').html('« ' + $link.html()); + } + $dropdown.prepend($titleLi); + }); + + // Put element back in the DOM + this.settings.$section.appendTo(this.settings.$topbar); + + // check for sticky + this.sticky(); + }, + + largestUL : function () { + var uls = this.settings.$topbar.find('section ul ul'), + largest = uls.first(), + total = 0, + self = this; + + uls.each(function () { + if ($(this).children('li').length > largest.children('li').length) { + largest = $(this); + } + }); + + largest.children('li').each(function () { total += self.outerHeight($(this), true); }); + + this.settings.$topbar.data('height', total); + }, + + sticky : function () { + var klass = '.' + this.settings.stickyClass; + if ($(klass).length > 0) { + var distance = $(klass).length ? $(klass).offset().top: 0, + $window = $(window); + var offst = this.outerHeight($('.top-bar')); + + $window.scroll(function() { + if ($window.scrollTop() >= (distance)) { + $(klass).addClass("fixed"); + $('body').css('padding-top',offst); + } + + else if ($window.scrollTop() < distance) { + $(klass).removeClass("fixed"); + $('body').css('padding-top','0'); + } + }); + } + }, + + off : function () { + $(this.scope).off('.fndtn.topbar'); + $(window).off('.fndtn.topbar'); + } + }; +}(Foundation.zj, this, this.document)); diff --git a/chaloBEST/templates/poster/test/javascripts/vendor/custom.modernizr.js b/chaloBEST/templates/poster/test/javascripts/vendor/custom.modernizr.js new file mode 100644 index 0000000..4eb3d06 --- /dev/null +++ b/chaloBEST/templates/poster/test/javascripts/vendor/custom.modernizr.js @@ -0,0 +1,4 @@ +/* Modernizr 2.6.2 (Custom Build) | MIT & BSD + * Build: http://modernizr.com/download/#-inlinesvg-svg-svgclippaths-touch-shiv-mq-cssclasses-teststyles-prefixes-ie8compat-load + */ +;window.Modernizr=function(a,b,c){function y(a){j.cssText=a}function z(a,b){return y(m.join(a+";")+(b||""))}function A(a,b){return typeof a===b}function B(a,b){return!!~(""+a).indexOf(b)}function C(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:A(f,"function")?f.bind(d||b):f}return!1}var d="2.6.2",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n={svg:"http://www.w3.org/2000/svg"},o={},p={},q={},r=[],s=r.slice,t,u=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["­",'"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},v=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return u("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},w={}.hasOwnProperty,x;!A(w,"undefined")&&!A(w.call,"undefined")?x=function(a,b){return w.call(a,b)}:x=function(a,b){return b in a&&A(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=s.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(s.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(s.call(arguments)))};return e}),o.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:u(["@media (",m.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},o.svg=function(){return!!b.createElementNS&&!!b.createElementNS(n.svg,"svg").createSVGRect},o.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="",(a.firstChild&&a.firstChild.namespaceURI)==n.svg},o.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(l.call(b.createElementNS(n.svg,"clipPath")))};for(var D in o)x(o,D)&&(t=D.toLowerCase(),e[t]=o[D](),r.push((e[t]?"":"no-")+t));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)x(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},y(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=m,e.mq=v,e.testStyles=u,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+r.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f type pairs + class2type = {}, + + // List of deleted data cache ids, so we can reuse them + core_deletedIds = [], + + core_version = "1.9.1", + + // Save a reference to some core methods + core_concat = core_deletedIds.concat, + core_push = core_deletedIds.push, + core_slice = core_deletedIds.slice, + core_indexOf = core_deletedIds.indexOf, + core_toString = class2type.toString, + core_hasOwn = class2type.hasOwnProperty, + core_trim = core_version.trim, + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }, + + // Used for matching numbers + core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + + // Used for splitting on whitespace + core_rnotwhite = /\S+/g, + + // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE) + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/, + + // Match a standalone tag + rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, + + // JSON RegExp + rvalidchars = /^[\],:{}\s]*$/, + rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, + rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, + rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }, + + // The ready event handler + completed = function( event ) { + + // readyState === "complete" is good enough for us to call the dom ready in oldIE + if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { + detach(); + jQuery.ready(); + } + }, + // Clean-up method for dom ready events + detach = function() { + if ( document.addEventListener ) { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); + + } else { + document.detachEvent( "onreadystatechange", completed ); + window.detachEvent( "onload", completed ); + } + }; + +jQuery.fn = jQuery.prototype = { + // The current version of jQuery being used + jquery: core_version, + + constructor: jQuery, + init: function( selector, context, rootjQuery ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + + // scripts is true for back-compat + jQuery.merge( this, jQuery.parseHTML( + match[1], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }, + + // Start with an empty selector + selector: "", + + // The default length of a jQuery object is 0 + length: 0, + + // The number of elements contained in the matched element set + size: function() { + return this.length; + }, + + toArray: function() { + return core_slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num == null ? + + // Return a 'clean' array + this.toArray() : + + // Return just the object + ( num < 0 ? this[ this.length + num ] : this[ num ] ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + ret.context = this.context; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + ready: function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; + }, + + slice: function() { + return this.pushStack( core_slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: core_push, + sort: [].sort, + splice: [].splice +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +jQuery.extend = jQuery.fn.extend = function() { + var src, copyIsArray, copy, name, options, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + noConflict: function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; + }, + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger("ready").off("ready"); + } + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + isWindow: function( obj ) { + return obj != null && obj == obj.window; + }, + + isNumeric: function( obj ) { + return !isNaN( parseFloat(obj) ) && isFinite( obj ); + }, + + type: function( obj ) { + if ( obj == null ) { + return String( obj ); + } + return typeof obj === "object" || typeof obj === "function" ? + class2type[ core_toString.call(obj) ] || "object" : + typeof obj; + }, + + isPlainObject: function( obj ) { + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + try { + // Not own constructor property must be Object + if ( obj.constructor && + !core_hasOwn.call(obj, "constructor") && + !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + } catch ( e ) { + // IE8,9 Will throw exceptions on certain host objects #9897 + return false; + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + + var key; + for ( key in obj ) {} + + return key === undefined || core_hasOwn.call( obj, key ); + }, + + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; + }, + + error: function( msg ) { + throw new Error( msg ); + }, + + // data: string of html + // context (optional): If specified, the fragment will be created in this context, defaults to document + // keepScripts (optional): If true, will include scripts passed in the html string + parseHTML: function( data, context, keepScripts ) { + if ( !data || typeof data !== "string" ) { + return null; + } + if ( typeof context === "boolean" ) { + keepScripts = context; + context = false; + } + context = context || document; + + var parsed = rsingleTag.exec( data ), + scripts = !keepScripts && []; + + // Single tag + if ( parsed ) { + return [ context.createElement( parsed[1] ) ]; + } + + parsed = jQuery.buildFragment( [ data ], context, scripts ); + if ( scripts ) { + jQuery( scripts ).remove(); + } + return jQuery.merge( [], parsed.childNodes ); + }, + + parseJSON: function( data ) { + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + return window.JSON.parse( data ); + } + + if ( data === null ) { + return data; + } + + if ( typeof data === "string" ) { + + // Make sure leading/trailing whitespace is removed (IE can't handle it) + data = jQuery.trim( data ); + + if ( data ) { + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( rvalidchars.test( data.replace( rvalidescape, "@" ) + .replace( rvalidtokens, "]" ) + .replace( rvalidbraces, "")) ) { + + return ( new Function( "return " + data ) )(); + } + } + } + + jQuery.error( "Invalid JSON: " + data ); + }, + + // Cross-browser xml parsing + parseXML: function( data ) { + var xml, tmp; + if ( !data || typeof data !== "string" ) { + return null; + } + try { + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + } catch( e ) { + xml = undefined; + } + if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; + }, + + noop: function() {}, + + // Evaluates a script in a global context + // Workarounds based on findings by Jim Driscoll + // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context + globalEval: function( data ) { + if ( data && jQuery.trim( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + } )( data ); + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + // args is for internal usage only + each: function( obj, callback, args ) { + var value, + i = 0, + length = obj.length, + isArray = isArraylike( obj ); + + if ( args ) { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } + } + + return obj; + }, + + // Use native String.trim function wherever possible + trim: core_trim && !core_trim.call("\uFEFF\xA0") ? + function( text ) { + return text == null ? + "" : + core_trim.call( text ); + } : + + // Otherwise use our own trimming functionality + function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArraylike( Object(arr) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + core_push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + var len; + + if ( arr ) { + if ( core_indexOf ) { + return core_indexOf.call( arr, elem, i ); + } + + len = arr.length; + i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; + + for ( ; i < len; i++ ) { + // Skip accessing in sparse arrays + if ( i in arr && arr[ i ] === elem ) { + return i; + } + } + } + + return -1; + }, + + merge: function( first, second ) { + var l = second.length, + i = first.length, + j = 0; + + if ( typeof l === "number" ) { + for ( ; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, inv ) { + var retVal, + ret = [], + i = 0, + length = elems.length; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { + ret.push( elems[ i ] ); + } + } + + return ret; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, + i = 0, + length = elems.length, + isArray = isArraylike( elems ), + ret = []; + + // Go through the array, translating each of the items to their + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + } + + // Flatten any nested arrays + return core_concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var args, proxy, tmp; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = core_slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + // Multifunctional method to get and set values of a collection + // The value/s can optionally be executed if it's a function + access: function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + length = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < length; i++ ) { + fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + length ? fn( elems[0], key ) : emptyGet; + }, + + now: function() { + return ( new Date() ).getTime(); + } +}); + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // we once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + + // Standards-based browsers support DOMContentLoaded + } else if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); + + // If IE event model is used + } else { + // Ensure firing before onload, maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", completed ); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", completed ); + + // If IE and not a frame + // continually check to see if the document is ready + var top = false; + + try { + top = window.frameElement == null && document.documentElement; + } catch(e) {} + + if ( top && top.doScroll ) { + (function doScrollCheck() { + if ( !jQuery.isReady ) { + + try { + // Use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + top.doScroll("left"); + } catch(e) { + return setTimeout( doScrollCheck, 50 ); + } + + // detach all dom ready events + detach(); + + // and execute any waiting functions + jQuery.ready(); + } + })(); + } + } + } + return readyList.promise( obj ); +}; + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +function isArraylike( obj ) { + var length = obj.length, + type = jQuery.type( obj ); + + if ( jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.nodeType === 1 && length ) { + return true; + } + + return type === "array" || type !== "function" && + ( length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj ); +} + +// All jQuery objects should point back to these +rootjQuery = jQuery(document); +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + }); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // First callback to fire (used internally by add and fireWith) + firingStart, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); + }, + // Remove all callbacks from the list + empty: function() { + list = []; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( list && ( !fired || stack ) ) { + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; +jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var action = tuple[ 0 ], + fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ](function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); + } + }); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] + deferred[ tuple[0] ] = function() { + deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); + return this; + }; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = core_slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value; + if( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // if we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +}); +jQuery.support = (function() { + + var support, all, a, + input, select, fragment, + opt, eventName, isSupported, i, + div = document.createElement("div"); + + // Setup + div.setAttribute( "className", "t" ); + div.innerHTML = "
      a"; + + // Support tests won't run in some limited or non-browser environments + all = div.getElementsByTagName("*"); + a = div.getElementsByTagName("a")[ 0 ]; + if ( !all || !a || !all.length ) { + return {}; + } + + // First batch of tests + select = document.createElement("select"); + opt = select.appendChild( document.createElement("option") ); + input = div.getElementsByTagName("input")[ 0 ]; + + a.style.cssText = "top:1px;float:left;opacity:.5"; + support = { + // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) + getSetAttribute: div.className !== "t", + + // IE strips leading whitespace when .innerHTML is used + leadingWhitespace: div.firstChild.nodeType === 3, + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + tbody: !div.getElementsByTagName("tbody").length, + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + htmlSerialize: !!div.getElementsByTagName("link").length, + + // Get the style information from getAttribute + // (IE uses .cssText instead) + style: /top/.test( a.getAttribute("style") ), + + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + hrefNormalized: a.getAttribute("href") === "/a", + + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + opacity: /^0.5/.test( a.style.opacity ), + + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + cssFloat: !!a.style.cssFloat, + + // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere) + checkOn: !!input.value, + + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + optSelected: opt.selected, + + // Tests for enctype support on a form (#6743) + enctype: !!document.createElement("form").enctype, + + // Makes sure cloning an html5 element does not cause problems + // Where outerHTML is undefined, this still works + html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>", + + // jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode + boxModel: document.compatMode === "CSS1Compat", + + // Will be defined later + deleteExpando: true, + noCloneEvent: true, + inlineBlockNeedsLayout: false, + shrinkWrapBlocks: false, + reliableMarginRight: true, + boxSizingReliable: true, + pixelPosition: false + }; + + // Make sure checked status is properly cloned + input.checked = true; + support.noCloneChecked = input.cloneNode( true ).checked; + + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as disabled) + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Support: IE<9 + try { + delete div.test; + } catch( e ) { + support.deleteExpando = false; + } + + // Check if we can trust getAttribute("value") + input = document.createElement("input"); + input.setAttribute( "value", "" ); + support.input = input.getAttribute( "value" ) === ""; + + // Check if an input maintains its value after becoming a radio + input.value = "t"; + input.setAttribute( "type", "radio" ); + support.radioValue = input.value === "t"; + + // #11217 - WebKit loses check when the name is after the checked attribute + input.setAttribute( "checked", "t" ); + input.setAttribute( "name", "t" ); + + fragment = document.createDocumentFragment(); + fragment.appendChild( input ); + + // Check if a disconnected checkbox will retain its checked + // value of true after appended to the DOM (IE6/7) + support.appendChecked = input.checked; + + // WebKit doesn't clone checked state correctly in fragments + support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE<9 + // Opera does not clone events (and typeof div.attachEvent === undefined). + // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() + if ( div.attachEvent ) { + div.attachEvent( "onclick", function() { + support.noCloneEvent = false; + }); + + div.cloneNode( true ).click(); + } + + // Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event) + // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP), test/csp.php + for ( i in { submit: true, change: true, focusin: true }) { + div.setAttribute( eventName = "on" + i, "t" ); + + support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false; + } + + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + // Run tests that need a body at doc ready + jQuery(function() { + var container, marginDiv, tds, + divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;", + body = document.getElementsByTagName("body")[0]; + + if ( !body ) { + // Return for frameset docs that don't have a body + return; + } + + container = document.createElement("div"); + container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"; + + body.appendChild( container ).appendChild( div ); + + // Support: IE8 + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + div.innerHTML = "
      t
      "; + tds = div.getElementsByTagName("td"); + tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; + isSupported = ( tds[ 0 ].offsetHeight === 0 ); + + tds[ 0 ].style.display = ""; + tds[ 1 ].style.display = "none"; + + // Support: IE8 + // Check if empty table cells still have offsetWidth/Height + support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); + + // Check box-sizing and margin behavior + div.innerHTML = ""; + div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"; + support.boxSizing = ( div.offsetWidth === 4 ); + support.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== 1 ); + + // Use window.getComputedStyle because jsdom on node.js will break without it. + if ( window.getComputedStyle ) { + support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; + support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; + + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. (#3333) + // Fails in WebKit before Feb 2011 nightlies + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + marginDiv = div.appendChild( document.createElement("div") ); + marginDiv.style.cssText = div.style.cssText = divReset; + marginDiv.style.marginRight = marginDiv.style.width = "0"; + div.style.width = "1px"; + + support.reliableMarginRight = + !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); + } + + if ( typeof div.style.zoom !== core_strundefined ) { + // Support: IE<8 + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + div.innerHTML = ""; + div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1"; + support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 ); + + // Support: IE6 + // Check if elements with layout shrink-wrap their children + div.style.display = "block"; + div.innerHTML = "
      "; + div.firstChild.style.width = "5px"; + support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); + + if ( support.inlineBlockNeedsLayout ) { + // Prevent IE 6 from affecting layout for positioned elements #11048 + // Prevent IE from shrinking the body in IE 7 mode #12869 + // Support: IE<8 + body.style.zoom = 1; + } + } + + body.removeChild( container ); + + // Null elements to avoid leaks in IE + container = div = tds = marginDiv = null; + }); + + // Null elements to avoid leaks in IE + all = select = fragment = opt = a = input = null; + + return support; +})(); + +var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, + rmultiDash = /([A-Z])/g; + +function internalData( elem, name, data, pvt /* Internal Use Only */ ){ + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, ret, + internalKey = jQuery.expando, + getByName = typeof name === "string", + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + elem[ internalKey ] = id = core_deletedIds.pop() || jQuery.guid++; + } else { + id = internalKey; + } + } + + if ( !cache[ id ] ) { + cache[ id ] = {}; + + // Avoids exposing jQuery metadata on plain JS objects when the object + // is serialized using JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ] = jQuery.extend( cache[ id ], name ); + } else { + cache[ id ].data = jQuery.extend( cache[ id ].data, name ); + } + } + + thisCache = cache[ id ]; + + // jQuery data() is stored in a separate object inside the object's internal data + // cache in order to avoid key collisions between internal data and user-defined + // data. + if ( !pvt ) { + if ( !thisCache.data ) { + thisCache.data = {}; + } + + thisCache = thisCache.data; + } + + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; + } + + // Check for both converted-to-camel and non-converted data property names + // If a data property was specified + if ( getByName ) { + + // First Try to find as-is property data + ret = thisCache[ name ]; + + // Test for null|undefined property data + if ( ret == null ) { + + // Try to find the camelCased property + ret = thisCache[ jQuery.camelCase( name ) ]; + } + } else { + ret = thisCache; + } + + return ret; +} + +function internalRemoveData( elem, name, pvt ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var i, l, thisCache, + isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + + thisCache = pvt ? cache[ id ] : cache[ id ].data; + + if ( thisCache ) { + + // Support array or space separated string names for data keys + if ( !jQuery.isArray( name ) ) { + + // try the string as a key before any manipulation + if ( name in thisCache ) { + name = [ name ]; + } else { + + // split the camel cased version by spaces unless a key with the spaces exists + name = jQuery.camelCase( name ); + if ( name in thisCache ) { + name = [ name ]; + } else { + name = name.split(" "); + } + } + } else { + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = name.concat( jQuery.map( name, jQuery.camelCase ) ); + } + + for ( i = 0, l = name.length; i < l; i++ ) { + delete thisCache[ name[i] ]; + } + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( !pvt ) { + delete cache[ id ].data; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject( cache[ id ] ) ) { + return; + } + } + + // Destroy the cache + if ( isNode ) { + jQuery.cleanData( [ elem ], true ); + + // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) + } else if ( jQuery.support.deleteExpando || cache != cache.window ) { + delete cache[ id ]; + + // When all else fails, null + } else { + cache[ id ] = null; + } +} + +jQuery.extend({ + cache: {}, + + // Unique for each copy of jQuery on the page + // Non-digits removed to match rinlinejQuery + expando: "jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" ), + + // The following elements throw uncatchable exceptions if you + // attempt to add expando properties to them. + noData: { + "embed": true, + // Ban all objects except for Flash (which handle expandos) + "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", + "applet": true + }, + + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + return !!elem && !isEmptyDataObject( elem ); + }, + + data: function( elem, name, data ) { + return internalData( elem, name, data ); + }, + + removeData: function( elem, name ) { + return internalRemoveData( elem, name ); + }, + + // For internal use only. + _data: function( elem, name, data ) { + return internalData( elem, name, data, true ); + }, + + _removeData: function( elem, name ) { + return internalRemoveData( elem, name, true ); + }, + + // A method for determining if a DOM node can handle the data expando + acceptData: function( elem ) { + // Do not set data on non-element because it will not be cleared (#8335). + if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) { + return false; + } + + var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; + + // nodes accept data unless otherwise specified; rejection can be conditional + return !noData || noData !== true && elem.getAttribute("classid") === noData; + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var attrs, name, + elem = this[0], + i = 0, + data = null; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = jQuery.data( elem ); + + if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { + attrs = elem.attributes; + for ( ; i < attrs.length; i++ ) { + name = attrs[i].name; + + if ( !name.indexOf( "data-" ) ) { + name = jQuery.camelCase( name.slice(5) ); + + dataAttr( elem, name, data[ name ] ); + } + } + jQuery._data( elem, "parsedAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + return jQuery.access( this, function( value ) { + + if ( value === undefined ) { + // Try to fetch any internally stored data first + return elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null; + } + + this.each(function() { + jQuery.data( this, key, value ); + }); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } +}); + +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + + var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; +} + +// checks a cache object for emptiness +function isEmptyDataObject( obj ) { + var name; + for ( name in obj ) { + + // if the public data object is empty, the private is still empty + if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { + continue; + } + if ( name !== "toJSON" ) { + return false; + } + } + + return true; +} +jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = jQuery._data( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray(data) ) { + queue = jQuery._data( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + hooks.cur = fn; + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // not intended for public consumption - generates a queueHooks object, or returns the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return jQuery._data( elem, key ) || jQuery._data( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + jQuery._removeData( elem, type + "queue" ); + jQuery._removeData( elem, key ); + }) + }); + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + // Based off of the plugin by Clint Helfers, with permission. + // http://blindsignals.com/index.php/2009/07/jquery-delay/ + delay: function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = setTimeout( next, time ); + hooks.stop = function() { + clearTimeout( timeout ); + }; + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while( i-- ) { + tmp = jQuery._data( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +}); +var nodeHook, boolHook, + rclass = /[\t\r\n]/g, + rreturn = /\r/g, + rfocusable = /^(?:input|select|textarea|button|object)$/i, + rclickable = /^(?:a|area)$/i, + rboolean = /^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i, + ruseDefault = /^(?:checked|selected)$/i, + getSetAttribute = jQuery.support.getSetAttribute, + getSetInput = jQuery.support.input; + +jQuery.fn.extend({ + attr: function( name, value ) { + return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + }, + + prop: function( name, value ) { + return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch( e ) {} + }); + }, + + addClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).addClass( value.call( this, j, this.className ) ); + }); + } + + if ( proceed ) { + // The disjunction here is for better compressibility (see removeClass) + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + " " + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + elem.className = jQuery.trim( cur ); + + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = arguments.length === 0 || typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).removeClass( value.call( this, j, this.className ) ); + }); + } + if ( proceed ) { + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + "" + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + elem.className = value ? jQuery.trim( cur ) : ""; + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isBool = typeof stateVal === "boolean"; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + state = stateVal, + classNames = value.match( core_rnotwhite ) || []; + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space separated list + state = isBool ? state : !self.hasClass( className ); + self[ state ? "addClass" : "removeClass" ]( className ); + } + + // Toggle whole class name + } else if ( type === core_strundefined || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // If the element has a class name or if we're passed "false", + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " ", + i = 0, + l = this.length; + for ( ; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { + return true; + } + } + + return false; + }, + + val: function( value ) { + var ret, hooks, isFunction, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // handle most common string cases + ret.replace(rreturn, "") : + // handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var val, + self = jQuery(this); + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, self.val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map(val, function ( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + // attributes.value is undefined in Blackberry 4.7 but + // uses .value. See #6932 + var val = elem.attributes.value; + return !val || val.specified ? elem.value : elem.text; + } + }, + select: { + get: function( elem ) { + var value, option, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one" || index < 0, + values = one ? null : [], + max = one ? index + 1 : options.length, + i = index < 0 ? + max : + one ? index : 0; + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // oldIE doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + // Don't return options that are disabled or in a disabled optgroup + ( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && + ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var values = jQuery.makeArray( value ); + + jQuery(elem).find("option").each(function() { + this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; + }); + + if ( !values.length ) { + elem.selectedIndex = -1; + } + return values; + } + } + }, + + attr: function( elem, name, value ) { + var hooks, notxml, ret, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === core_strundefined ) { + return jQuery.prop( elem, name, value ); + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( notxml ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + + } else if ( hooks && notxml && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, value + "" ); + return value; + } + + } else if ( hooks && notxml && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + + // In IE9+, Flash objects don't have .getAttribute (#12945) + // Support: IE9+ + if ( typeof elem.getAttribute !== core_strundefined ) { + ret = elem.getAttribute( name ); + } + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? + undefined : + ret; + } + }, + + removeAttr: function( elem, value ) { + var name, propName, + i = 0, + attrNames = value && value.match( core_rnotwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( (name = attrNames[i++]) ) { + propName = jQuery.propFix[ name ] || name; + + // Boolean attributes get special treatment (#10870) + if ( rboolean.test( name ) ) { + // Set corresponding property to false for boolean attributes + // Also clear defaultChecked/defaultSelected (if appropriate) for IE<8 + if ( !getSetAttribute && ruseDefault.test( name ) ) { + elem[ jQuery.camelCase( "default-" + name ) ] = + elem[ propName ] = false; + } else { + elem[ propName ] = false; + } + + // See #9699 for explanation of this approach (setting first, then removal) + } else { + jQuery.attr( elem, name, "" ); + } + + elem.removeAttribute( getSetAttribute ? name : propName ); + } + } + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { + // Setting the type on a radio button after the value resets the value in IE6-9 + // Reset value to default in case type is set after value during creation + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + propFix: { + tabindex: "tabIndex", + readonly: "readOnly", + "for": "htmlFor", + "class": "className", + maxlength: "maxLength", + cellspacing: "cellSpacing", + cellpadding: "cellPadding", + rowspan: "rowSpan", + colspan: "colSpan", + usemap: "useMap", + frameborder: "frameBorder", + contenteditable: "contentEditable" + }, + + prop: function( elem, name, value ) { + var ret, hooks, notxml, + nType = elem.nodeType; + + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + if ( notxml ) { + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + return ( elem[ name ] = value ); + } + + } else { + if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + return elem[ name ]; + } + } + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + var attributeNode = elem.getAttributeNode("tabindex"); + + return attributeNode && attributeNode.specified ? + parseInt( attributeNode.value, 10 ) : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + undefined; + } + } + } +}); + +// Hook for boolean attributes +boolHook = { + get: function( elem, name ) { + var + // Use .prop to determine if this attribute is understood as boolean + prop = jQuery.prop( elem, name ), + + // Fetch it accordingly + attr = typeof prop === "boolean" && elem.getAttribute( name ), + detail = typeof prop === "boolean" ? + + getSetInput && getSetAttribute ? + attr != null : + // oldIE fabricates an empty string for missing boolean attributes + // and conflates checked/selected into attroperties + ruseDefault.test( name ) ? + elem[ jQuery.camelCase( "default-" + name ) ] : + !!attr : + + // fetch an attribute node for properties not recognized as boolean + elem.getAttributeNode( name ); + + return detail && detail.value !== false ? + name.toLowerCase() : + undefined; + }, + set: function( elem, value, name ) { + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + // IE<8 needs the *property* name + elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); + + // Use defaultChecked and defaultSelected for oldIE + } else { + elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; + } + + return name; + } +}; + +// fix oldIE value attroperty +if ( !getSetInput || !getSetAttribute ) { + jQuery.attrHooks.value = { + get: function( elem, name ) { + var ret = elem.getAttributeNode( name ); + return jQuery.nodeName( elem, "input" ) ? + + // Ignore the value *property* by using defaultValue + elem.defaultValue : + + ret && ret.specified ? ret.value : undefined; + }, + set: function( elem, value, name ) { + if ( jQuery.nodeName( elem, "input" ) ) { + // Does not return so that setAttribute is also used + elem.defaultValue = value; + } else { + // Use nodeHook if defined (#1954); otherwise setAttribute is fine + return nodeHook && nodeHook.set( elem, value, name ); + } + } + }; +} + +// IE6/7 do not support getting/setting some attributes with get/setAttribute +if ( !getSetAttribute ) { + + // Use this for any attribute in IE6/7 + // This fixes almost every IE6/7 issue + nodeHook = jQuery.valHooks.button = { + get: function( elem, name ) { + var ret = elem.getAttributeNode( name ); + return ret && ( name === "id" || name === "name" || name === "coords" ? ret.value !== "" : ret.specified ) ? + ret.value : + undefined; + }, + set: function( elem, value, name ) { + // Set the existing or create a new attribute node + var ret = elem.getAttributeNode( name ); + if ( !ret ) { + elem.setAttributeNode( + (ret = elem.ownerDocument.createAttribute( name )) + ); + } + + ret.value = value += ""; + + // Break association with cloned elements by also using setAttribute (#9646) + return name === "value" || value === elem.getAttribute( name ) ? + value : + undefined; + } + }; + + // Set contenteditable to false on removals(#10429) + // Setting to empty string throws an error as an invalid value + jQuery.attrHooks.contenteditable = { + get: nodeHook.get, + set: function( elem, value, name ) { + nodeHook.set( elem, value === "" ? false : value, name ); + } + }; + + // Set width and height to auto instead of 0 on empty string( Bug #8150 ) + // This is for removals + jQuery.each([ "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + set: function( elem, value ) { + if ( value === "" ) { + elem.setAttribute( name, "auto" ); + return value; + } + } + }); + }); +} + + +// Some attributes require a special call on IE +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !jQuery.support.hrefNormalized ) { + jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + get: function( elem ) { + var ret = elem.getAttribute( name, 2 ); + return ret == null ? undefined : ret; + } + }); + }); + + // href/src property should get the full normalized URL (#10299/#12915) + jQuery.each([ "href", "src" ], function( i, name ) { + jQuery.propHooks[ name ] = { + get: function( elem ) { + return elem.getAttribute( name, 4 ); + } + }; + }); +} + +if ( !jQuery.support.style ) { + jQuery.attrHooks.style = { + get: function( elem ) { + // Return undefined in the case of empty string + // Note: IE uppercases css property names, but if we were to .toLowerCase() + // .cssText, that would destroy case senstitivity in URL's, like in "background" + return elem.style.cssText || undefined; + }, + set: function( elem, value ) { + return ( elem.style.cssText = value + "" ); + } + }; +} + +// Safari mis-reports the default selected property of an option +// Accessing the parent's selectedIndex property fixes it +if ( !jQuery.support.optSelected ) { + jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { + get: function( elem ) { + var parent = elem.parentNode; + + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + return null; + } + }); +} + +// IE6/7 call enctype encoding +if ( !jQuery.support.enctype ) { + jQuery.propFix.enctype = "encoding"; +} + +// Radios and checkboxes getter/setter +if ( !jQuery.support.checkOn ) { + jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + get: function( elem ) { + // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified + return elem.getAttribute("value") === null ? "on" : elem.value; + } + }; + }); +} +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); + } + } + }); +}); +var rformElems = /^(?:input|select|textarea)$/i, + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + var tmp, events, t, handleObjIn, + special, eventHandle, handleObj, + handlers, type, namespaces, origType, + elemData = jQuery._data( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !(events = elemData.events) ) { + events = elemData.events = {}; + } + if ( !(eventHandle = elemData.handle) ) { + eventHandle = elemData.handle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ? + jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : + undefined; + }; + // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events + eventHandle.elem = elem; + } + + // Handle multiple events separated by a space + // jQuery(...).bind("mouseover mouseout", fn); + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !(handlers = events[ type ]) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener/attachEvent if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + var j, handleObj, tmp, + origCount, t, events, + special, handlers, type, + namespaces, origType, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ); + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + + // removeData also checks for emptiness and clears the expando if empty + // so use it instead of delete + jQuery._removeData( elem, "events" ); + } + }, + + trigger: function( event, data, elem, onlyHandlers ) { + var handle, ontype, cur, + bubbleType, special, tmp, i, + eventPath = [ elem || document ], + type = core_hasOwn.call( event, "type" ) ? event.type : event, + namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf(":") < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + event.isTrigger = true; + event.namespace = namespaces.join("."); + event.namespace_re = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === (elem.ownerDocument || document) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) { + event.preventDefault(); + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) && + !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Can't use an .isFunction() check here because IE6/7 fails that test. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + try { + elem[ type ](); + } catch ( e ) { + // IE<9 dies on focus/blur to hidden element (#1486,#12518) + // only reproducible on winXP IE8 native, not IE9 in IE8 mode + } + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, ret, handleObj, matched, j, + handlerQueue = [], + args = core_slice.call( arguments ), + handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or + // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). + if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( (event.result = ret) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var sel, handleObj, matches, i, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + // Black-hole SVG instance trees (#13180) + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { + + for ( ; cur != this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, handlers: matches }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); + } + + return handlerQueue; + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; + + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Support: IE<9 + // Fix target property (#1925) + if ( !event.target ) { + event.target = originalEvent.srcElement || document; + } + + // Support: Chrome 23+, Safari? + // Target should not be a text node (#504, #13143) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // Support: IE<9 + // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) + event.metaKey = !!event.metaKey; + + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var body, eventDoc, doc, + button = original.button, + fromElement = original.fromElement; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && fromElement ) { + event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + special: { + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + click: { + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { + this.click(); + return false; + } + } + }, + focus: { + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== document.activeElement && this.focus ) { + try { + this.focus(); + return false; + } catch ( e ) { + // Support: IE<9 + // If we error on focus to hidden element (#1486, #12518), + // let .trigger() run the handlers + } + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === document.activeElement && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + + beforeunload: { + postDispatch: function( event ) { + + // Even when returnValue equals to undefined Firefox will still show alert + if ( event.result !== undefined ) { + event.originalEvent.returnValue = event.result; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + } : + function( elem, type, handle ) { + var name = "on" + type; + + if ( elem.detachEvent ) { + + // #8545, #7054, preventing memory leaks for custom events in IE6-8 + // detachEvent needed property on element, by name of that event, to properly expose it to GC + if ( typeof elem[ name ] === core_strundefined ) { + elem[ name ] = null; + } + + elem.detachEvent( name, handle ); + } + }; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || + src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + if ( !e ) { + return; + } + + // If preventDefault exists, run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // Support: IE + // Otherwise set the returnValue property of the original event to false + } else { + e.returnValue = false; + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + if ( !e ) { + return; + } + // If stopPropagation exists, run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + + // Support: IE + // Set the cancelBubble property of the original event to true + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + } +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +}); + +// IE submit delegation +if ( !jQuery.support.submitBubbles ) { + + jQuery.event.special.submit = { + setup: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Lazy-add a submit handler when a descendant form may potentially be submitted + jQuery.event.add( this, "click._submit keypress._submit", function( e ) { + // Node name check avoids a VML-related crash in IE (#9807) + var elem = e.target, + form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; + if ( form && !jQuery._data( form, "submitBubbles" ) ) { + jQuery.event.add( form, "submit._submit", function( event ) { + event._submit_bubble = true; + }); + jQuery._data( form, "submitBubbles", true ); + } + }); + // return undefined since we don't need an event listener + }, + + postDispatch: function( event ) { + // If form was submitted by the user, bubble the event up the tree + if ( event._submit_bubble ) { + delete event._submit_bubble; + if ( this.parentNode && !event.isTrigger ) { + jQuery.event.simulate( "submit", this.parentNode, event, true ); + } + } + }, + + teardown: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Remove delegated handlers; cleanData eventually reaps submit handlers attached above + jQuery.event.remove( this, "._submit" ); + } + }; +} + +// IE change delegation and checkbox/radio fix +if ( !jQuery.support.changeBubbles ) { + + jQuery.event.special.change = { + + setup: function() { + + if ( rformElems.test( this.nodeName ) ) { + // IE doesn't fire change on a check/radio until blur; trigger it on click + // after a propertychange. Eat the blur-change in special.change.handle. + // This still fires onchange a second time for check/radio after blur. + if ( this.type === "checkbox" || this.type === "radio" ) { + jQuery.event.add( this, "propertychange._change", function( event ) { + if ( event.originalEvent.propertyName === "checked" ) { + this._just_changed = true; + } + }); + jQuery.event.add( this, "click._change", function( event ) { + if ( this._just_changed && !event.isTrigger ) { + this._just_changed = false; + } + // Allow triggered, simulated change events (#11500) + jQuery.event.simulate( "change", this, event, true ); + }); + } + return false; + } + // Delegated event; lazy-add a change handler on descendant inputs + jQuery.event.add( this, "beforeactivate._change", function( e ) { + var elem = e.target; + + if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { + jQuery.event.add( elem, "change._change", function( event ) { + if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { + jQuery.event.simulate( "change", this.parentNode, event, true ); + } + }); + jQuery._data( elem, "changeBubbles", true ); + } + }); + }, + + handle: function( event ) { + var elem = event.target; + + // Swallow native change events from checkbox/radio, we already triggered them above + if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { + return event.handleObj.handler.apply( this, arguments ); + } + }, + + teardown: function() { + jQuery.event.remove( this, "._change" ); + + return !rformElems.test( this.nodeName ); + } + }; +} + +// Create "bubbling" focus and blur events +if ( !jQuery.support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler while someone wants focusin/focusout + var attaches = 0, + handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + if ( attaches++ === 0 ) { + document.addEventListener( orig, handler, true ); + } + }, + teardown: function() { + if ( --attaches === 0 ) { + document.removeEventListener( orig, handler, true ); + } + } + }; + }); +} + +jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var type, origFn; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + bind: function( types, data, fn ) { + return this.on( types, null, data, fn ); + }, + unbind: function( types, fn ) { + return this.off( types, null, fn ); + }, + + delegate: function( selector, types, data, fn ) { + return this.on( types, selector, data, fn ); + }, + undelegate: function( selector, types, fn ) { + // ( namespace ) or ( selector, types [, fn] ) + return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + var elem = this[0]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2012 jQuery Foundation and other contributors + * Released under the MIT license + * http://sizzlejs.com/ + */ +(function( window, undefined ) { + +var i, + cachedruns, + Expr, + getText, + isXML, + compile, + hasDuplicate, + outermostContext, + + // Local document vars + setDocument, + document, + docElem, + documentIsXML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + sortOrder, + + // Instance-specific data + expando = "sizzle" + -(new Date()), + preferredDoc = window.document, + support = {}, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + + // General-purpose constants + strundefined = typeof undefined, + MAX_NEGATIVE = 1 << 31, + + // Array methods + arr = [], + pop = arr.pop, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf if we can't use a native one + indexOf = arr.indexOf || function( elem ) { + var i = 0, + len = this.length; + for ( ; i < len; i++ ) { + if ( this[i] === elem ) { + return i; + } + } + return -1; + }, + + + // Regular expressions + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors + operators = "([*^$|!~]?=)", + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + + "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", + + // Prefer arguments quoted, + // then not containing pseudos/brackets, + // then attribute selectors/non-parenthetical expressions, + // then anything else + // These preferences are here to reduce the number of selectors + // needing tokenize in the PSEUDO preFilter + pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ), + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rsibling = /[\x20\t\r\n\f]*[+~]/, + + rnative = /^[^{]+\{\s*\[native code/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rescape = /'|\\/g, + rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g, + funescape = function( _, escaped ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + return high !== high ? + escaped : + // BMP codepoint + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }; + +// Use a stripped-down slice if we can't use a native one +try { + slice.call( preferredDoc.documentElement.childNodes, 0 )[0].nodeType; +} catch ( e ) { + slice = function( i ) { + var elem, + results = []; + while ( (elem = this[i++]) ) { + results.push( elem ); + } + return results; + }; +} + +/** + * For feature detection + * @param {Function} fn The function to test for native support + */ +function isNative( fn ) { + return rnative.test( fn + "" ); +} + +/** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var cache, + keys = []; + + return (cache = function( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key += " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key ] = value); + }); +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return fn( div ); + } catch (e) { + return false; + } finally { + // release memory in IE + div = null; + } +} + +function Sizzle( selector, context, results, seed ) { + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + + context = context || document; + results = results || []; + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { + return []; + } + + if ( !documentIsXML && !seed ) { + + // Shortcuts + if ( (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getByClassName && context.getElementsByClassName ) { + push.apply( results, slice.call(context.getElementsByClassName( m ), 0) ); + return results; + } + } + + // QSA path + if ( support.qsa && !rbuggyQSA.test(selector) ) { + old = true; + nid = expando; + newContext = context; + newSelector = nodeType === 9 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); + } + newContext = rsibling.test( selector ) && context.parentNode || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, slice.call( newContext.querySelectorAll( + newSelector + ), 0 ) ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Detect xml + * @param {Element|Object} elem An element or a document + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var doc = node ? node.ownerDocument || node : preferredDoc; + + // If no document and documentElement is available, return + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Set our document + document = doc; + docElem = doc.documentElement; + + // Support tests + documentIsXML = isXML( doc ); + + // Check if getElementsByTagName("*") returns only elements + support.tagNameNoComments = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Check if attributes should be retrieved by attribute nodes + support.attributes = assert(function( div ) { + div.innerHTML = ""; + var type = typeof div.lastChild.getAttribute("multiple"); + // IE8 returns a string for some attributes even when not present + return type !== "boolean" && type !== "string"; + }); + + // Check if getElementsByClassName can be trusted + support.getByClassName = assert(function( div ) { + // Opera can't find a second classname (in 9.6) + div.innerHTML = ""; + if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) { + return false; + } + + // Safari 3.2 caches class attributes and doesn't catch changes + div.lastChild.className = "e"; + return div.getElementsByClassName("e").length === 2; + }); + + // Check if getElementById returns elements by name + // Check if getElementsByName privileges form controls or returns elements by ID + support.getByName = assert(function( div ) { + // Inject content + div.id = expando + 0; + div.innerHTML = "
      "; + docElem.insertBefore( div, docElem.firstChild ); + + // Test + var pass = doc.getElementsByName && + // buggy browsers will return fewer than the correct 2 + doc.getElementsByName( expando ).length === 2 + + // buggy browsers will return more than the correct 0 + doc.getElementsByName( expando + 0 ).length; + support.getIdNotName = !doc.getElementById( expando ); + + // Cleanup + docElem.removeChild( div ); + + return pass; + }); + + // IE6/7 return modified attributes + Expr.attrHandle = assert(function( div ) { + div.innerHTML = ""; + return div.firstChild && typeof div.firstChild.getAttribute !== strundefined && + div.firstChild.getAttribute("href") === "#"; + }) ? + {} : + { + "href": function( elem ) { + return elem.getAttribute( "href", 2 ); + }, + "type": function( elem ) { + return elem.getAttribute("type"); + } + }; + + // ID find and filter + if ( support.getIdNotName ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && !documentIsXML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && !documentIsXML ) { + var m = context.getElementById( id ); + + return m ? + m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ? + [m] : + undefined : + []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.tagNameNoComments ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== strundefined ) { + return context.getElementsByTagName( tag ); + } + } : + function( tag, context ) { + var elem, + tmp = [], + i = 0, + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Name + Expr.find["NAME"] = support.getByName && function( tag, context ) { + if ( typeof context.getElementsByName !== strundefined ) { + return context.getElementsByName( name ); + } + }; + + // Class + Expr.find["CLASS"] = support.getByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== strundefined && !documentIsXML ) { + return context.getElementsByClassName( className ); + } + }; + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21), + // no need to also add to buggyMatches since matches checks buggyQSA + // A support test would require too much code (would include document ready) + rbuggyQSA = [ ":focus" ]; + + if ( (support.qsa = isNative(doc.querySelectorAll)) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explictly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + div.innerHTML = ""; + + // IE8 - Some boolean attributes are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + }); + + assert(function( div ) { + + // Opera 10-12/IE8 - ^= $= *= and empty values + // Should not select anything + div.innerHTML = ""; + if ( div.querySelectorAll("[i^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = isNative( (matches = docElem.matchesSelector || + docElem.mozMatchesSelector || + docElem.webkitMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = new RegExp( rbuggyMatches.join("|") ); + + // Element contains another + // Purposefully does not implement inclusive descendent + // As in, an element does not contain itself + contains = isNative(docElem.contains) || docElem.compareDocumentPosition ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + // Document order sorting + sortOrder = docElem.compareDocumentPosition ? + function( a, b ) { + var compare; + + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + if ( (compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b )) ) { + if ( compare & 1 || a.parentNode && a.parentNode.nodeType === 11 ) { + if ( a === doc || contains( preferredDoc, a ) ) { + return -1; + } + if ( b === doc || contains( preferredDoc, b ) ) { + return 1; + } + return 0; + } + return compare & 4 ? -1 : 1; + } + + return a.compareDocumentPosition ? -1 : 1; + } : + function( a, b ) { + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + + // Parentless nodes are either documents or disconnected + } else if ( !aup || !bup ) { + return a === doc ? -1 : + b === doc ? 1 : + aup ? -1 : + bup ? 1 : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + // Always assume the presence of duplicates if sort doesn't + // pass them to our comparison function (as in Google Chrome). + hasDuplicate = false; + [0, 0].sort( sortOrder ); + support.detectDuplicates = hasDuplicate; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + // rbuggyQSA always contains :focus, so no need for an existence check + if ( support.matchesSelector && !documentIsXML && (!rbuggyMatches || !rbuggyMatches.test(expr)) && !rbuggyQSA.test(expr) ) { + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch(e) {} + } + + return Sizzle( expr, document, null, [elem] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + var val; + + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + if ( !documentIsXML ) { + name = name.toLowerCase(); + } + if ( (val = Expr.attrHandle[ name ]) ) { + return val( elem ); + } + if ( documentIsXML || support.attributes ) { + return elem.getAttribute( name ); + } + return ( (val = elem.getAttributeNode( name )) || elem.getAttribute( name ) ) && elem[ name ] === true ? + name : + val && val.specified ? val.value : null; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +// Document sorting and removing duplicates +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + i = 1, + j = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + results.sort( sortOrder ); + + if ( hasDuplicate ) { + for ( ; (elem = results[i]); i++ ) { + if ( elem === results[ i - 1 ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + return results; +}; + +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && ( ~b.sourceIndex || MAX_NEGATIVE ) - ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +// Returns a function to use in pseudos for input types +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +// Returns a function to use in pseudos for buttons +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +// Returns a function to use in pseudos for positionals +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + for ( ; (node = elem[i]); i++ ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (see #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[5] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[4] ) { + match[2] = match[4]; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeName ) { + if ( nodeName === "*" ) { + return function() { return true; }; + } + + nodeName = nodeName.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifider + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsXML ? + elem.getAttribute("xml:lang") || elem.getAttribute("lang") : + elem.lang) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), + // not comment, processing instructions, or others + // Thanks to Diego Perini for the nodeName shortcut + // Greater than "@" means alpha characters (specifically not starting with "#" or "?") + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +function tokenize( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( tokens = [] ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push( { + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + } ); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push( { + value: matched, + type: type, + matches: match + } ); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +} + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var data, cache, outerCache, + dirkey = dirruns + " " + doneName; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) { + if ( (data = cache[1]) === true || data === cachedruns ) { + return data === true; + } + } else { + cache = outerCache[ dir ] = [ dirkey ]; + cache[1] = matcher( elem, context, xml ) || cachedruns; + if ( cache[1] === true ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( tokens.slice( 0, i - 1 ) ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + // A counter to specify which element is currently being matched + var matcherCachedRuns = 0, + bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, expandContext ) { + var elem, j, matcher, + setMatched = [], + matchedCount = 0, + i = "0", + unmatched = seed && [], + outermost = expandContext != null, + contextBackup = outermostContext, + // We must always have either seed elements or context + elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1); + + if ( outermost ) { + outermostContext = context !== document && context; + cachedruns = matcherCachedRuns; + } + + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + for ( ; (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + cachedruns = ++matcherCachedRuns; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !group ) { + group = tokenize( selector ); + } + i = group.length; + while ( i-- ) { + cached = matcherFromTokens( group[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + } + return cached; +}; + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function select( selector, context, results, seed ) { + var i, tokens, token, type, find, + match = tokenize( selector ); + + if ( !seed ) { + // Try to minimize operations if there is only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && !documentIsXML && + Expr.relative[ tokens[1].type ] ) { + + context = Expr.find["ID"]( token.matches[0].replace( runescape, funescape ), context )[0]; + if ( !context ) { + return results; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && context.parentNode || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, slice.call( seed, 0 ) ); + return results; + } + + break; + } + } + } + } + } + + // Compile and execute a filtering function + // Provide `match` to avoid retokenization if we modified the selector above + compile( selector, match )( + seed, + context, + documentIsXML, + results, + rsibling.test( selector ) + ); + return results; +} + +// Deprecated +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Easy API for creating new setFilters +function setFilters() {} +Expr.filters = setFilters.prototype = Expr.pseudos; +Expr.setFilters = new setFilters(); + +// Initialize with the default document +setDocument(); + +// Override sizzle attribute retrieval +Sizzle.attr = jQuery.attr; +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + +})( window ); +var runtil = /Until$/, + rparentsprev = /^(?:parents|prev(?:Until|All))/, + isSimple = /^.[^:#\[\.,]*$/, + rneedsContext = jQuery.expr.match.needsContext, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend({ + find: function( selector ) { + var i, ret, self, + len = this.length; + + if ( typeof selector !== "string" ) { + self = this; + return this.pushStack( jQuery( selector ).filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }) ); + } + + ret = []; + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, this[ i ], ret ); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = ( this.selector ? this.selector + " " : "" ) + selector; + return ret; + }, + + has: function( target ) { + var i, + targets = jQuery( target, this ), + len = targets.length; + + return this.filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + not: function( selector ) { + return this.pushStack( winnow(this, selector, false) ); + }, + + filter: function( selector ) { + return this.pushStack( winnow(this, selector, true) ); + }, + + is: function( selector ) { + return !!selector && ( + typeof selector === "string" ? + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + rneedsContext.test( selector ) ? + jQuery( selector, this.context ).index( this[0] ) >= 0 : + jQuery.filter( selector, this ).length > 0 : + this.filter( selector ).length > 0 ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + ret = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + cur = this[i]; + + while ( cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11 ) { + if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { + ret.push( cur ); + break; + } + cur = cur.parentNode; + } + } + + return this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1; + } + + // index in selector + if ( typeof elem === "string" ) { + return jQuery.inArray( this[0], jQuery( elem ) ); + } + + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, + + add: function( selector, context ) { + var set = typeof selector === "string" ? + jQuery( selector, context ) : + jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), + all = jQuery.merge( this.get(), set ); + + return this.pushStack( jQuery.unique(all) ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } +}); + +jQuery.fn.andSelf = jQuery.fn.addBack; + +function sibling( cur, dir ) { + do { + cur = cur[ dir ]; + } while ( cur && cur.nodeType !== 1 ); + + return cur; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( this.length > 1 && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret ); + }; +}); + +jQuery.extend({ + filter: function( expr, elems, not ) { + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 ? + jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : + jQuery.find.matches(expr, elems); + }, + + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }, + + sibling: function( n, elem ) { + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + } +}); + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, keep ) { + + // Can't pass null or undefined to indexOf in Firefox 4 + // Set to 0 to skip string check + qualifier = qualifier || 0; + + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep(elements, function( elem, i ) { + var retVal = !!qualifier.call( elem, i, elem ); + return retVal === keep; + }); + + } else if ( qualifier.nodeType ) { + return jQuery.grep(elements, function( elem ) { + return ( elem === qualifier ) === keep; + }); + + } else if ( typeof qualifier === "string" ) { + var filtered = jQuery.grep(elements, function( elem ) { + return elem.nodeType === 1; + }); + + if ( isSimple.test( qualifier ) ) { + return jQuery.filter(qualifier, filtered, !keep); + } else { + qualifier = jQuery.filter( qualifier, filtered ); + } + } + + return jQuery.grep(elements, function( elem ) { + return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep; + }); +} +function createSafeFragment( document ) { + var list = nodeNames.split( "|" ), + safeFrag = document.createDocumentFragment(); + + if ( safeFrag.createElement ) { + while ( list.length ) { + safeFrag.createElement( + list.pop() + ); + } + } + return safeFrag; +} + +var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + + "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", + rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, + rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rtbody = /\s*$/g, + + // We have to close these tags to support XHTML (#13200) + wrapMap = { + option: [ 1, "" ], + legend: [ 1, "
      ", "
      " ], + area: [ 1, "", "" ], + param: [ 1, "", "" ], + thead: [ 1, "", "
      " ], + tr: [ 2, "", "
      " ], + col: [ 2, "", "
      " ], + td: [ 3, "", "
      " ], + + // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, + // unless wrapped in a div with non-breaking characters in front of it. + _default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X
      ", "
      " ] + }, + safeFragment = createSafeFragment( document ), + fragmentDiv = safeFragment.appendChild( document.createElement("div") ); + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +jQuery.fn.extend({ + text: function( value ) { + return jQuery.access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); + }, null, value, arguments.length ); + }, + + wrapAll: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapAll( html.call(this, i) ); + }); + } + + if ( this[0] ) { + // The elements to wrap the target around + var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); + + if ( this[0].parentNode ) { + wrap.insertBefore( this[0] ); + } + + wrap.map(function() { + var elem = this; + + while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { + elem = elem.firstChild; + } + + return elem; + }).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapInner( html.call(this, i) ); + }); + } + + return this.each(function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + }); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each(function(i) { + jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); + }); + }, + + unwrap: function() { + return this.parent().each(function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + }).end(); + }, + + append: function() { + return this.domManip(arguments, true, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.appendChild( elem ); + } + }); + }, + + prepend: function() { + return this.domManip(arguments, true, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.insertBefore( elem, this.firstChild ); + } + }); + }, + + before: function() { + return this.domManip( arguments, false, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + }); + }, + + after: function() { + return this.domManip( arguments, false, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + }); + }, + + // keepData is for internal use only--do not document + remove: function( selector, keepData ) { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + if ( !selector || jQuery.filter( selector, [ elem ] ).length > 0 ) { + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem ) ); + } + + if ( elem.parentNode ) { + if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { + setGlobalEval( getAll( elem, "script" ) ); + } + elem.parentNode.removeChild( elem ); + } + } + } + + return this; + }, + + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + } + + // Remove any remaining nodes + while ( elem.firstChild ) { + elem.removeChild( elem.firstChild ); + } + + // If this is a select, ensure that it displays empty (#12336) + // Support: IE<9 + if ( elem.options && jQuery.nodeName( elem, "select" ) ) { + elem.options.length = 0; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function () { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }, + + html: function( value ) { + return jQuery.access( this, function( value ) { + var elem = this[0] || {}, + i = 0, + l = this.length; + + if ( value === undefined ) { + return elem.nodeType === 1 ? + elem.innerHTML.replace( rinlinejQuery, "" ) : + undefined; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) && + ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && + !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1>" ); + + try { + for (; i < l; i++ ) { + // Remove element nodes and prevent memory leaks + elem = this[i] || {}; + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch(e) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function( value ) { + var isFunc = jQuery.isFunction( value ); + + // Make sure that the elements are removed from the DOM before they are inserted + // this can help fix replacing a parent with child elements + if ( !isFunc && typeof value !== "string" ) { + value = jQuery( value ).not( this ).detach(); + } + + return this.domManip( [ value ], true, function( elem ) { + var next = this.nextSibling, + parent = this.parentNode; + + if ( parent ) { + jQuery( this ).remove(); + parent.insertBefore( elem, next ); + } + }); + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, table, callback ) { + + // Flatten any nested arrays + args = core_concat.apply( [], args ); + + var first, node, hasScripts, + scripts, doc, fragment, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[0], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) { + return this.each(function( index ) { + var self = set.eq( index ); + if ( isFunction ) { + args[0] = value.call( this, index, table ? self.html() : undefined ); + } + self.domManip( args, table, callback ); + }); + } + + if ( l ) { + fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + table = table && jQuery.nodeName( first, "tr" ); + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( + table && jQuery.nodeName( this[i], "table" ) ? + findOrAppend( this[i], "tbody" ) : + this[i], + node, + i + ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { + + if ( node.src ) { + // Hope ajax is available... + jQuery.ajax({ + url: node.src, + type: "GET", + dataType: "script", + async: false, + global: false, + "throws": true + }); + } else { + jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); + } + } + } + } + + // Fix #11809: Avoid leaking memory + fragment = first = null; + } + } + + return this; + } +}); + +function findOrAppend( elem, tag ) { + return elem.getElementsByTagName( tag )[0] || elem.appendChild( elem.ownerDocument.createElement( tag ) ); +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + var attr = elem.getAttributeNode("type"); + elem.type = ( attr && attr.specified ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + if ( match ) { + elem.type = match[1]; + } else { + elem.removeAttribute("type"); + } + return elem; +} + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var elem, + i = 0; + for ( ; (elem = elems[i]) != null; i++ ) { + jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); + } +} + +function cloneCopyEvent( src, dest ) { + + if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { + return; + } + + var type, i, l, + oldData = jQuery._data( src ), + curData = jQuery._data( dest, oldData ), + events = oldData.events; + + if ( events ) { + delete curData.handle; + curData.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + + // make the cloned public data object a copy from the original + if ( curData.data ) { + curData.data = jQuery.extend( {}, curData.data ); + } +} + +function fixCloneNodeIssues( src, dest ) { + var nodeName, e, data; + + // We do not need to do anything for non-Elements + if ( dest.nodeType !== 1 ) { + return; + } + + nodeName = dest.nodeName.toLowerCase(); + + // IE6-8 copies events bound via attachEvent when using cloneNode. + if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) { + data = jQuery._data( dest ); + + for ( e in data.events ) { + jQuery.removeEvent( dest, e, data.handle ); + } + + // Event data gets referenced instead of copied if the expando gets copied too + dest.removeAttribute( jQuery.expando ); + } + + // IE blanks contents when cloning scripts, and tries to evaluate newly-set text + if ( nodeName === "script" && dest.text !== src.text ) { + disableScript( dest ).text = src.text; + restoreScript( dest ); + + // IE6-10 improperly clones children of object elements using classid. + // IE10 throws NoModificationAllowedError if parent is null, #12132. + } else if ( nodeName === "object" ) { + if ( dest.parentNode ) { + dest.outerHTML = src.outerHTML; + } + + // This path appears unavoidable for IE9. When cloning an object + // element in IE9, the outerHTML strategy above is not sufficient. + // If the src has innerHTML and the destination does not, + // copy the src.innerHTML into the dest.innerHTML. #10324 + if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { + dest.innerHTML = src.innerHTML; + } + + } else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) { + // IE6-8 fails to persist the checked state of a cloned checkbox + // or radio button. Worse, IE6-7 fail to give the cloned element + // a checked appearance if the defaultChecked value isn't also set + + dest.defaultChecked = dest.checked = src.checked; + + // IE6-7 get confused and end up setting the value of a cloned + // checkbox/radio button to an empty string instead of "on" + if ( dest.value !== src.value ) { + dest.value = src.value; + } + + // IE6-8 fails to return the selected option to the default selected + // state when cloning options + } else if ( nodeName === "option" ) { + dest.defaultSelected = dest.selected = src.defaultSelected; + + // IE6-8 fails to set the defaultValue to the correct value when + // cloning other types of input fields + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + i = 0, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone(true); + jQuery( insert[i] )[ original ]( elems ); + + // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() + core_push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +}); + +function getAll( context, tag ) { + var elems, elem, + i = 0, + found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) : + typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) : + undefined; + + if ( !found ) { + for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { + if ( !tag || jQuery.nodeName( elem, tag ) ) { + found.push( elem ); + } else { + jQuery.merge( found, getAll( elem, tag ) ); + } + } + } + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], found ) : + found; +} + +// Used in buildFragment, fixes the defaultChecked property +function fixDefaultChecked( elem ) { + if ( manipulation_rcheckableType.test( elem.type ) ) { + elem.defaultChecked = elem.checked; + } +} + +jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var destElements, node, clone, i, srcElements, + inPage = jQuery.contains( elem.ownerDocument, elem ); + + if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { + clone = elem.cloneNode( true ); + + // IE<=8 does not properly clone detached, unknown element nodes + } else { + fragmentDiv.innerHTML = elem.outerHTML; + fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); + } + + if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && + (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + // Fix all IE cloning issues + for ( i = 0; (node = srcElements[i]) != null; ++i ) { + // Ensure that the destination node is not null; Fixes #9587 + if ( destElements[i] ) { + fixCloneNodeIssues( node, destElements[i] ); + } + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0; (node = srcElements[i]) != null; i++ ) { + cloneCopyEvent( node, destElements[i] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + destElements = srcElements = node = null; + + // Return the cloned set + return clone; + }, + + buildFragment: function( elems, context, scripts, selection ) { + var j, elem, contains, + tmp, tag, tbody, wrap, + l = elems.length, + + // Ensure a safe fragment + safe = createSafeFragment( context ), + + nodes = [], + i = 0; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || safe.appendChild( context.createElement("div") ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + + tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[2]; + + // Descend through wrappers to the right content + j = wrap[0]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Manually add leading whitespace removed by IE + if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); + } + + // Remove IE's autoinserted from table fragments + if ( !jQuery.support.tbody ) { + + // String was a , *may* have spurious + elem = tag === "table" && !rtbody.test( elem ) ? + tmp.firstChild : + + // String was a bare or + wrap[1] === "
      " && !rtbody.test( elem ) ? + tmp : + 0; + + j = elem && elem.childNodes.length; + while ( j-- ) { + if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { + elem.removeChild( tbody ); + } + } + } + + jQuery.merge( nodes, tmp.childNodes ); + + // Fix #12392 for WebKit and IE > 9 + tmp.textContent = ""; + + // Fix #12392 for oldIE + while ( tmp.firstChild ) { + tmp.removeChild( tmp.firstChild ); + } + + // Remember the top-level container for proper cleanup + tmp = safe.lastChild; + } + } + } + + // Fix #11356: Clear elements from fragment + if ( tmp ) { + safe.removeChild( tmp ); + } + + // Reset defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + if ( !jQuery.support.appendChecked ) { + jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); + } + + i = 0; + while ( (elem = nodes[ i++ ]) ) { + + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( safe.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( (elem = tmp[ j++ ]) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + tmp = null; + + return safe; + }, + + cleanData: function( elems, /* internal */ acceptData ) { + var elem, type, id, data, + i = 0, + internalKey = jQuery.expando, + cache = jQuery.cache, + deleteExpando = jQuery.support.deleteExpando, + special = jQuery.event.special; + + for ( ; (elem = elems[i]) != null; i++ ) { + + if ( acceptData || jQuery.acceptData( elem ) ) { + + id = elem[ internalKey ]; + data = id && cache[ id ]; + + if ( data ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Remove cache only if it was not already removed by jQuery.event.remove + if ( cache[ id ] ) { + + delete cache[ id ]; + + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( deleteExpando ) { + delete elem[ internalKey ]; + + } else if ( typeof elem.removeAttribute !== core_strundefined ) { + elem.removeAttribute( internalKey ); + + } else { + elem[ internalKey ] = null; + } + + core_deletedIds.push( id ); + } + } + } + } + } +}); +var iframe, getStyles, curCSS, + ralpha = /alpha\([^)]*\)/i, + ropacity = /opacity\s*=\s*([^)]*)/, + rposition = /^(top|right|bottom|left)$/, + // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" + // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rmargin = /^margin/, + rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ), + rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ), + rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ), + elemdisplay = { BODY: "block" }, + + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: 0, + fontWeight: 400 + }, + + cssExpand = [ "Top", "Right", "Bottom", "Left" ], + cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; + +// return a css property mapped to a potentially vendor prefixed property +function vendorPropName( style, name ) { + + // shortcut for names that are not vendor prefixed + if ( name in style ) { + return name; + } + + // check for vendor prefixed names + var capName = name.charAt(0).toUpperCase() + name.slice(1), + origName = name, + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in style ) { + return name; + } + } + + return origName; +} + +function isHidden( elem, el ) { + // isHidden might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); +} + +function showHide( elements, show ) { + var display, elem, hidden, + values = [], + index = 0, + length = elements.length; + + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + values[ index ] = jQuery._data( elem, "olddisplay" ); + display = elem.style.display; + if ( show ) { + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !values[ index ] && display === "none" ) { + elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( elem.style.display === "" && isHidden( elem ) ) { + values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); + } + } else { + + if ( !values[ index ] ) { + hidden = isHidden( elem ); + + if ( display && display !== "none" || !hidden ) { + jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); + } + } + } + } + + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( index = 0; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + if ( !show || elem.style.display === "none" || elem.style.display === "" ) { + elem.style.display = show ? values[ index ] || "" : "none"; + } + } + + return elements; +} + +jQuery.fn.extend({ + css: function( name, value ) { + return jQuery.access( this, function( elem, name, value ) { + var len, styles, + map = {}, + i = 0; + + if ( jQuery.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + }, + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + var bool = typeof state === "boolean"; + + return this.each(function() { + if ( bool ? state : isHidden( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + }); + } +}); + +jQuery.extend({ + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Exclude the following css properties to add px + cssNumber: { + "columnCount": true, + "fillOpacity": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + // normalize float css property + "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // convert relative number strings (+= or -=) to relative numbers. #7345 + if ( type === "string" && (ret = rrelNum.exec( value )) ) { + value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); + // Fixes bug #9237 + type = "number"; + } + + // Make sure that NaN and null values aren't set. See: #7116 + if ( value == null || type === "number" && isNaN( value ) ) { + return; + } + + // If a number was passed in, add 'px' to the (except for certain CSS properties) + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; + } + + // Fixes #8908, it can be done more correctly by specifing setters in cssHooks, + // but it would mean to define eight (for every problematic property) identical functions + if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { + + // Wrapped to prevent IE from throwing errors when 'invalid' values are provided + // Fixes bug #5509 + try { + style[ name ] = value; + } catch(e) {} + } + + } else { + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var num, val, hooks, + origName = jQuery.camelCase( name ); + + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + //convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Return, converting to number if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; + } + return val; + }, + + // A method for quickly swapping in/out CSS properties to get correct calculations + swap: function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; + } +}); + +// NOTE: we've included the "window" in window.getComputedStyle +// because jsdom on node.js will break without it. +if ( window.getComputedStyle ) { + getStyles = function( elem ) { + return window.getComputedStyle( elem, null ); + }; + + curCSS = function( elem, name, _computed ) { + var width, minWidth, maxWidth, + computed = _computed || getStyles( elem ), + + // getPropertyValue is only needed for .css('filter') in IE9, see #12537 + ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined, + style = elem.style; + + if ( computed ) { + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right + // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels + // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values + if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret; + }; +} else if ( document.documentElement.currentStyle ) { + getStyles = function( elem ) { + return elem.currentStyle; + }; + + curCSS = function( elem, name, _computed ) { + var left, rs, rsLeft, + computed = _computed || getStyles( elem ), + ret = computed ? computed[ name ] : undefined, + style = elem.style; + + // Avoid setting ret to empty string here + // so we don't default to auto + if ( ret == null && style && style[ name ] ) { + ret = style[ name ]; + } + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + // but not position css attributes, as those are proportional to the parent element instead + // and we can't measure the parent instead because it might trigger a "stacking dolls" problem + if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { + + // Remember the original values + left = style.left; + rs = elem.runtimeStyle; + rsLeft = rs && rs.left; + + // Put in the new values to get a computed value out + if ( rsLeft ) { + rs.left = elem.currentStyle.left; + } + style.left = name === "fontSize" ? "1em" : ret; + ret = style.pixelLeft + "px"; + + // Revert the changed values + style.left = left; + if ( rsLeft ) { + rs.left = rsLeft; + } + } + + return ret === "" ? "auto" : ret; + }; +} + +function setPositiveNumber( elem, value, subtract ) { + var matches = rnumsplit.exec( value ); + return matches ? + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + // If we already have the right measurement, avoid augmentation + 4 : + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + + val = 0; + + for ( ; i < 4; i += 2 ) { + // both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // at this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + // at this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // at this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with offset property, which is equivalent to the border-box value + var valueIsBorderBox = true, + val = name === "width" ? elem.offsetWidth : elem.offsetHeight, + styles = getStyles( elem ), + isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name, styles ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test(val) ) { + return val; + } + + // we need the check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] ); + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + } + + // use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +// Try to determine the default display value of an element +function css_defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { + // Use the already-created iframe if possible + iframe = ( iframe || + jQuery("