aboutsummaryrefslogtreecommitdiffhomepage
path: root/public/bower_components/bootstrap-datepicker
diff options
context:
space:
mode:
authorMarvin Borner2018-07-13 19:06:45 +0200
committerMarvin Borner2018-07-13 19:06:45 +0200
commit6fcfb7c04d32e1c8b26a312295bf7ac3ec2d2ad7 (patch)
treedbc87ef16fa01d5d99116de283592b8fe5e02944 /public/bower_components/bootstrap-datepicker
parentdfd839f27146df0ad0494e11734fc7d310c70ebf (diff)
Fixed many permissions and began admin interface
Diffstat (limited to 'public/bower_components/bootstrap-datepicker')
-rw-r--r--public/bower_components/bootstrap-datepicker/.bower.json23
-rw-r--r--public/bower_components/bootstrap-datepicker/.editorconfig11
-rw-r--r--public/bower_components/bootstrap-datepicker/.github/ISSUE_TEMPLATE.md13
-rw-r--r--public/bower_components/bootstrap-datepicker/.github/PULL_REQUEST_TEMPLATE.md7
-rw-r--r--public/bower_components/bootstrap-datepicker/.gitignore10
-rw-r--r--public/bower_components/bootstrap-datepicker/.travis.yml9
-rw-r--r--public/bower_components/bootstrap-datepicker/CHANGELOG.md491
-rw-r--r--public/bower_components/bootstrap-datepicker/CODE_OF_CONDUCT.md74
-rw-r--r--public/bower_components/bootstrap-datepicker/CONTRIBUTING.md41
-rw-r--r--public/bower_components/bootstrap-datepicker/Gruntfile.js261
-rw-r--r--public/bower_components/bootstrap-datepicker/LICENSE202
-rw-r--r--public/bower_components/bootstrap-datepicker/README.md42
-rw-r--r--public/bower_components/bootstrap-datepicker/bower.json12
-rw-r--r--public/bower_components/bootstrap-datepicker/build/build.less69
-rw-r--r--public/bower_components/bootstrap-datepicker/build/build3.less76
-rw-r--r--public/bower_components/bootstrap-datepicker/build/build_standalone.less64
-rw-r--r--public/bower_components/bootstrap-datepicker/build/build_standalone3.less55
-rw-r--r--public/bower_components/bootstrap-datepicker/composer.json39
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.css477
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.css.map1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css7
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.css510
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.css.map1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.min.css7
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css683
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css.map1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.min.css7
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.css712
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.css.map1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.min.css7
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.js2035
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js8
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker-en-CA.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ar-tn.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ar.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.az.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bg.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bn.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.br.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bs.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ca.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cs.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cy.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.da.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.de.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.el.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-AU.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-CA.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-GB.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-IE.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-NZ.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-ZA.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.eo.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.es.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.et.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.eu.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fa.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fi.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fo.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr-CH.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.gl.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.he.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hi.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hr.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hu.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hy.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.id.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.is.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it-CH.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ja.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ka.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kh.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kk.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.km.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ko.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kr.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lt.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lv.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.me.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.mk.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.mn.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ms.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl-BE.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.no.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.oc.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pl.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt-BR.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ro.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs-latin.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ru.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.si.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sk.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sl.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sq.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr-latin.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sv.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sw.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ta.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tg.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.th.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tk.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tr.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uk.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uz-cyrl.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uz-latn.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.vi.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-CN.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-TW.min.js1
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/Makefile153
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/README.md20
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_screenshots/demo_head.html36
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_screenshots/markup_component.html26
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_screenshots/markup_daterange.html32
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_screenshots/markup_inline.html15
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_screenshots/markup_input.html21
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_screenshots/option_calendarweeks.html25
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_screenshots/option_clearbtn.html22
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_screenshots/option_daysofweekdisabled.html22
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_screenshots/option_enddate.html22
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_screenshots/option_language.html36
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_screenshots/option_multidate.html27
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_screenshots/option_startdate.html22
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_screenshots/option_todaybtn.html21
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_screenshots/option_todayhighlight.html47
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_screenshots/option_weekstart.html25
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_screenshots/script/common.css9
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_screenshots/script/common.js2
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_screenshots/script/debug.js21
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_screenshots/script/html-imports.min.js30
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_screenshots/script/screenshot.js69
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_static/screenshots/demo_head.pngbin0 -> 48880 bytes
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_component.pngbin0 -> 18320 bytes
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_daterange.pngbin0 -> 23879 bytes
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_inline.pngbin0 -> 16089 bytes
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_input.pngbin0 -> 17449 bytes
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_calendarweeks.pngbin0 -> 29735 bytes
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_clearbtn.pngbin0 -> 18208 bytes
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_daysofweekdisabled.pngbin0 -> 17374 bytes
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_enddate.pngbin0 -> 17100 bytes
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_language.pngbin0 -> 59995 bytes
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_multidate.pngbin0 -> 37891 bytes
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_startdate.pngbin0 -> 17346 bytes
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_todaybtn.pngbin0 -> 18433 bytes
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_todayhighlight.pngbin0 -> 23234 bytes
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_weekstart.pngbin0 -> 31564 bytes
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/conf.py249
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/events.rst63
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/i18n.rst36
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/index.rst127
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/keyboard.rst27
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/make.bat190
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/markup.rst89
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/methods.rst226
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/options.rst567
-rw-r--r--public/bower_components/bootstrap-datepicker/docs/requirements.txt1
-rw-r--r--public/bower_components/bootstrap-datepicker/grunt/.jshintrc7
-rw-r--r--public/bower_components/bootstrap-datepicker/js/.jscsrc22
-rw-r--r--public/bower_components/bootstrap-datepicker/js/.jshintrc25
-rw-r--r--public/bower_components/bootstrap-datepicker/js/bootstrap-datepicker.js2048
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker-en-CA.js22
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ar-tn.js15
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ar.js15
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.az.js12
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.bg.js14
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.bn.js19
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.br.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.bs.js15
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ca.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.cs.js19
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.cy.js14
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.da.js19
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.de.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.el.js16
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-AU.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-CA.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-GB.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-IE.js17
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-NZ.js17
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-ZA.js17
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.eo.js17
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.es.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.et.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.eu.js19
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fa.js17
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fi.js17
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fo.js15
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr-CH.js21
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.gl.js13
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.he.js15
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hi.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hr.js13
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hu.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hy.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.id.js15
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.is.js14
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.it-CH.js20
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.it.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ja.js17
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ka.js17
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.kh.js21
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.kk.js15
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.km.js15
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ko.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.kr.js19
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.lt.js19
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.lv.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.me.js17
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.mk.js15
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.mn.js17
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ms.js15
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl-BE.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.no.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.oc.js17
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.pl.js17
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt-BR.js17
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ro.js17
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs-latin.js20
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs.js20
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ru.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.si.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sk.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sl.js15
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sq.js15
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr-latin.js16
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr.js16
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sv.js17
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sw.js15
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ta.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.tg.js19
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.th.js14
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.tk.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.tr.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.uk.js17
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.uz-cyrl.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.uz-latn.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.vi.js16
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-CN.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-TW.js18
-rw-r--r--public/bower_components/bootstrap-datepicker/less/.csslintrc19
-rw-r--r--public/bower_components/bootstrap-datepicker/less/datepicker.less242
-rw-r--r--public/bower_components/bootstrap-datepicker/less/datepicker3.less257
-rw-r--r--public/bower_components/bootstrap-datepicker/package.json48
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/README.md30
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/assets/coverage.js48
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/assets/jquery-1.7.1.min.js4
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/assets/mock.js49
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/assets/qunit-logging.js29
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/assets/qunit.css235
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/assets/qunit.js1669
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/assets/utils.js21
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/suites/calendar-weeks.js48
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/suites/component.js267
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/suites/data-api.js114
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/suites/events.js507
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/suites/formats.js314
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/suites/inline.js28
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/suites/keyboard_navigation/2011.js228
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/suites/keyboard_navigation/2012.js483
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/suites/keyboard_navigation/all.js62
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/suites/methods.js188
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/suites/methods_jquery.js26
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/suites/mouse_navigation/2011.js66
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/suites/mouse_navigation/2012.js266
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/suites/mouse_navigation/all.js33
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/suites/noconflict.js20
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/suites/options.js1802
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/suites/timezone.js24
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/suites/touch_navigation/all.js27
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/tests.html55
-rw-r--r--public/bower_components/bootstrap-datepicker/tests/timezone.html36
-rw-r--r--public/bower_components/bootstrap-datepicker/yarn.lock1963
280 files changed, 21030 insertions, 0 deletions
diff --git a/public/bower_components/bootstrap-datepicker/.bower.json b/public/bower_components/bootstrap-datepicker/.bower.json
new file mode 100644
index 0000000..1f9aa84
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/.bower.json
@@ -0,0 +1,23 @@
+{
+ "name": "bootstrap-datepicker",
+ "main": [
+ "dist/css/bootstrap-datepicker3.css",
+ "dist/js/bootstrap-datepicker.js"
+ ],
+ "license": "Apache-2.0",
+ "dependencies": {
+ "jquery": ">=1.7.1 <4.0.0"
+ },
+ "ignore": [],
+ "homepage": "https://github.com/eternicode/bootstrap-datepicker",
+ "version": "1.8.0",
+ "_release": "1.8.0",
+ "_resolution": {
+ "type": "version",
+ "tag": "v1.8.0",
+ "commit": "0d32bc5d91da11d9a3587537c3c36ce7ee815c94"
+ },
+ "_source": "https://github.com/eternicode/bootstrap-datepicker.git",
+ "_target": "^1.7.0",
+ "_originalSource": "bootstrap-datepicker"
+} \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/.editorconfig b/public/bower_components/bootstrap-datepicker/.editorconfig
new file mode 100644
index 0000000..b22d6e6
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/.editorconfig
@@ -0,0 +1,11 @@
+# EditorConfig is awesome: http://EditorConfig.org
+
+root = true
+
+[*]
+charset = utf-8
+end_of_line = lf
+indent_size = 2
+indent_style = space
+insert_final_newline = true
+trim_trailing_whitespace = true
diff --git a/public/bower_components/bootstrap-datepicker/.github/ISSUE_TEMPLATE.md b/public/bower_components/bootstrap-datepicker/.github/ISSUE_TEMPLATE.md
new file mode 100644
index 0000000..4d729fc
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/.github/ISSUE_TEMPLATE.md
@@ -0,0 +1,13 @@
+### Expected behaviour
+Tell us what should happen.
+
+### Actual behaviour
+Tell us what happens instead.
+
+### Datepicker version used
+
+ex. 1.6.1.
+
+### Example code
+
+Jsfiddle example to reproduce the problem.
diff --git a/public/bower_components/bootstrap-datepicker/.github/PULL_REQUEST_TEMPLATE.md b/public/bower_components/bootstrap-datepicker/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 0000000..3a7001f
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,7 @@
+| Q | A
+| --------------- | ---
+| Bug fix? | no|yes
+| New feature? | no|yes
+| BC breaks? | no|yes
+| Related tickets | fixes #X, partially #Y, mentioned in #Z
+| License | MIT
diff --git a/public/bower_components/bootstrap-datepicker/.gitignore b/public/bower_components/bootstrap-datepicker/.gitignore
new file mode 100644
index 0000000..9621782
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/.gitignore
@@ -0,0 +1,10 @@
+docs/_build
+*-dist.zip
+
+# OS or Editor folders
+.DS_Store
+.idea
+
+# Folders to ignore
+bower_components
+node_modules
diff --git a/public/bower_components/bootstrap-datepicker/.travis.yml b/public/bower_components/bootstrap-datepicker/.travis.yml
new file mode 100644
index 0000000..2775002
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/.travis.yml
@@ -0,0 +1,9 @@
+sudo: false
+
+language: node_js
+
+node_js:
+ - "6"
+
+before_script:
+ - npm install -g grunt-cli
diff --git a/public/bower_components/bootstrap-datepicker/CHANGELOG.md b/public/bower_components/bootstrap-datepicker/CHANGELOG.md
new file mode 100644
index 0000000..6d85417
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/CHANGELOG.md
@@ -0,0 +1,491 @@
+Changelog
+=========
+
+1.7.1
+-----
+
+## Bugfixes
+ * Revert "move `jquery` to `peerDependencies` from `dependencies`"
+
+1.7.0
+-----
+
+## Features
+ * Adding dateCells option (#1723)
+ * Added keepEmptyValues option (#1558 + #1901)
+ * added "changeViewMode" event; also adds the current `viewMode` to events (#1953)
+ * adds `updateViewDate` option (#1982)
+ * Added hiding week day names functionality (#2087)
+ * Allow customizing day cell value (#2043)
+
+## Bugfixes
+ * originalEvent object needs preventDefault fn (#1824)
+ * Fix jQuery selector from premature selection of span element in inline/embedded calendar's month selection (#1859 + #1886)
+ * Use date arithmetic to allow dates with times other than 00:00:00 (#1483)
+ * Multiple general fixes (#1883 + #1893)
+ * Visibility fix for nav arrows (#1916)
+ * Do not trigger change or changeDate on initialization (#1912)
+ * Fix: Close datepicker on touchstart (#1924)
+ * Fix data-date-dates-disabled attribute to accept a comma-separated list (#1946)
+ * Fix maxViewMode and navigation switch click (#1951)
+ * Add support jQuery 3. Bootstrap 2 still available (composer.json) (#1958)
+ * fix(parseDate) use insensitive regex to support +15d with capslock (#1910)
+ * Refactoring timedelta aliases (dateAliases) (#1965)
+ * Fix RTL layout (#1973)
+ * Remove listen `changeDate` after destroy DateRangePicker (#1968)
+ * add tests for setDatesDisabled function (#1983)
+ * resolves bug on days when DST is added. (#2009)
+ * XHTML fixes (#1998)
+ * update grunt and other dev-dependencies (#2111)
+ * Use display:table-cell instead of display:block for today, clear and title (#2121)
+ * moved assumeNearbyYear to correct location (#2140)
+ * move `jquery` to `peerDependencies` from `dependencies` (#2163)
+ * Use default arrow values (#2176)
+
+## Locales
+### New
+ * en-ZA (#1798)
+ * en-ZNZ (#1799)
+ * en-IE (#1800)
+ * ar-tn (#1863)
+ * Added Sinhala (si) locale (#2025)
+ * Occitan locale (#2024 + #2026)
+ * [l10n]Add breton translation (#2028)
+ * Added Tajik language (#2117)
+ * Add Uzbek latin and cyrill locales (#2152)
+ * add Bengali (Bangla) language (#2171)
+ * Added Hindi locale (#2199)
+
+### Bugfix
+ * km/kh (#1812)
+ * Capital letters in Polish translation (#1890)
+ * Add missing monthsTitle in cs (#1900)
+ * Update bootstrap-datepicker.da.js (#1936)
+ * Fix typo in month name (#2040)
+ * Added missing basque language properties (#2066)
+ * Added weekStart to slovenian translation (#2067)
+ * add monthsTitle for ru (#2092)
+ * Change danish (da) date format to match the rest of the locales (#2048)
+ * Fix Tamil Language file with proper locale code (#2141)
+ * Revert strange changes, +monthsTitle (#2153)
+ * updated Tajik (cyrillic) translation file (#2167)
+ * Romanian uses dd/mm/yyyy format for dates (#2173)
+ * Missing latvian translation (#2204)
+
+## Docs
+ * Fix typo in index.rst (#1882)
+ * Update CDNjs info in README.md (#1933)
+ * [Doc] Keyboard navigation is not supported for embedded / inline type (#2002)
+ * Removed reference to stefan petre (#2031)
+ * Improve defaultViewDate documentation (#2052)
+ * Add notes about multiple dates and examples for update method (#2060)
+ * Add Code Of Conduct (#2095)
+ * Update install instructions on README.md (#2160)
+
+1.6.2 - 1.6.3 - 1.6.4
+---------------------
+
+Bugfix
+
+ * Backported jquery 3 fix from #1958
+
+1.6.1
+-----
+Bugfixes
+
+ * add specific class for disabled dates back (Fixes #1785)
+ * [fix] Allow keyboard navigation for non-input fields (Fixes: #874)
+ * fix kazakh mothShort
+ * Fix bug when clicking on a day that is highlighted today in the next month
+ * dates read out are 12am UTC
+ * Fix show by component (with disabled attribute)
+
+1.6.0
+-----
+Features
+
+ * Changes nonpunctuation to accept unicode characters
+ * Add "assumeNearbyYear" option
+ * Decade and century picking
+ * Added timedelta aliases. (Fixes #785)
+ * add getter methods for date limits
+ * Replace arrow entities for glyphicon + template + libs snippets (Fixes: #610 #833 #1007)
+ * added class .disabled to dow header
+ * Rename "remove" to "destroy" and create alias
+
+Bugfix
+
+ * Month/year view keyboard navigation
+ * fix changeMonth, changeYear not triggered when selecting day from prev/next month
+ * Fix default arrows for BS2 and screenshots (for docs)
+ * Extend beforeShowMonth event functionality to work like beforeShowDay and beforeShowYear
+
+Locale changes
+
+ * Correct date format for ko locale
+ * Add en-AU (Australian English) locale
+
+Repository
+
+ * Add CSS sourcemap
+ * [BS3 Less] Remove unused variables and cleanup
+ * Added timezone aware tests
+ * remove .idea-folder from npm
+
+1.5.1
+-----
+
+Bugfixes
+ * Fix calculation for new position when datepicker goes offscreen when inside a container (Fixes: #1619)
+ * Fix datepicker title not centered when displaying calendar weeks (Fixes: #1625)
+ * Fixing looping when calling dp inside change event (Fixes: #1628)
+ * Add scrollTop to position if container is not body (Fixes: #1616)
+ * Use document scrollTop instead of body scrollTop when using the body container
+ * Fix focus for disabled week days (Fixes: #1365, #1187, #1648)
+ * Fixes enableOnReadOnly bug when datepicker is of type component
+
+Translations
+ * Added missing translations for slovak translation. (Fixes: #1521)
+ * Added missing date format for norwegian (nb) locale (Fixes #1690)
+ * Armenian translation short names
+ * adding Today translation, default date format for the lithuanian translation
+
+Docs
+ * Document data-api on container
+ * Added docs for the different stylesheet files. (Fixes #1459)
+
+Repository
+ * Enable travis container builds for faster builds
+
+1.5.0
+-----
+
+Features
+ * Added down key as datepicker show trigger
+ * immediateUpdates option (updates input when a year or month is selected)
+ * Highlight days of week
+ * maxViewMode option
+ * Include "main" property in package.json
+ * Require.js support. (Fixes: #280)
+ * Allow overriding `$.fn.show` and `$.fn.hide` (Fixes: #1424)
+ * Adding border-radius variable for LESS (Fixes: #1429)
+ * Add support for dropdown border variables
+ * Add the posibility to have a title on the picker (Fixes: #1410)
+ * Implement `beforeShowYear` (Fixes: #1226)
+ * Add commonjs support
+ * Trigger 'hide' event when clicking outside datepicker
+ * Add css-classes for range-start and range-end
+ * Update hover effect for "buttons" (matches Bootstrap 3.3.5 mixin)
+ * Custom formatting options
+
+Bugfixes:
+ * Scrolling on mobile device closes datepicker
+ * Use $.on() instead $.bind()
+ * Fixed right-click and edit-menu paste
+ * Ported prototype fix for Prototype Compability
+ * Fixed issue with startview year
+ * Fixed padding inconsistency with twitter bootstrap 3
+ * prevents the click event from bubbling to any user defined click handlers
+ * Added padding for .datepicker-dropdown
+ * Fixes the issue with a date change firing mulitple change events
+ * removed hard dependency on bootstrap (because of twbs-sass package)
+ * Clearing the date should reset to defaultViewDate
+ * Datepicker orientation mix up - top = bottom and bottom = top
+ * Fix cursor thead styles
+ * Fix date-reset issue when navigating to next with invalid date
+ * Using orientation:auto but date picker still appears above, cut off, when there plenty of space below.
+ * lots of orientation fixes
+
+Locale changes:
+ * Remove unused eighth element on week arrays )
+ * Add Esperanto translation
+ * Better Polish language date shortcuts translation and default date format
+ * lowercase danish translation
+ * Add Mongolian localization
+ * update Hungarian translation
+
+Docs:
+ * added day to end-date to avoid confusion about example
+ * added setDatesDisabled method to documentation
+
+
+
+1.4.0
+-----
+
+Features:
+ * implemented beforeShowMonth option
+ * Added option to disable touch keyboard input
+ * All datepicker methods are chainable
+ * Added a datesDisable option
+ * Added option to prevent date picker to show when input field receives focus
+ * adding option to define the container the datepicker will be appended to
+ * Backported some placement fixes for the container option
+ * Option default view date
+ * Add toggleActive option
+ * Added clear method
+ * Added version property to datepicker object
+ * Added option to not show datepicker on readonly field
+
+Bugfixes:
+ * Removed blank space before the previous button when calendarWeeks is true;
+ * Fixed date deselection with single date picker
+ * Added case-neutral matching for text months
+ * Changed input-daterange to full width for bs3
+ * Fix placement for RTL languages
+ * fix for range picker when next date is before previous date
+ * Fix for moving box on first selection
+ * Do not show datepicker for readonly inputs
+ * Fix getUTCDate when datepicker has no selected date
+ * Only a linked today button should trigger the changeDate event
+ * Fixed bug with keyboard navigation when startdate/enddate was defined
+ * Right align calendar on right window edge conflict
+ * On "ENTER" keydown on picker, prevent the closest form to be submitted too
+ * fixed bower.json twitte bootstrap dependency
+ * Replaced named entities with decimal entities
+ * assigning plugin to a local variable to fix bug in noConflict
+
+Repo changes:
+ * Added empty ignore option in bower.json.
+ * Added .editorconfig
+ * Reworked grunt tasks
+
+Translations:
+ * Fix translation of French months
+ * Update cambodia translations
+ * added clear and weekStart to turkish translation
+ * Days/months should start lowercase in dutch
+ * Month/daynames should be lowercase in french
+ * Add 'clear' and 'format' to Ukrainian locale
+ * Added Montenegrin locale
+
+Docs:
+ * added example for inputs option
+ * added missing documentation for embedded mode
+ * Add additional documentaion to update method
+
+1.3.1
+-----
+
+Repo changes:
+* Automated screenshots have been added to the docs. These probably need to be documented so that contributors can add them when appropriate.
+* Grunt support
+* Missing description and keywords for Packagist
+* Composer: Include translation files into deployment dir
+* Add package name and version to npm package.json
+
+Bugfixes:
+* Remove font-family declaration for datepicker
+* Don't deselect date unless datepicker is multidate
+* Removed comment from compiled CSS.
+* Don't clear input after typing date and hitting Enter when keyboard nav is disabled
+* Fixing the ui displaying 'undefined nan' when typing dates in Firefox & IE
+* Reset tooltip to a default empty value
+* Fix colspan if calendarWeeks & clearBtn are true
+* Removed fixed width and height in large and small group addon
+* z-index calculation should not stop at first element
+* Fix IE8 bug with Array#splice with one argument
+
+Documentation:
+* ghpages: jQuery js not being loaded when using HTTPS
+* Adds clearBtn option to sandbox page
+* Minor fixes (typo's, links,...)
+
+Locale changes
+
+Updated languages:
+* Clear translation in czech
+* Dutch translation
+* Swedish translation
+* Japanese translation
+* Ukrainian translation fixes
+* Add spanish clear, week start and format
+* Added galician clear, week start and format
+* Added missing clear localization value for polish translation
+* Add clear zh-CN translation
+* Fixed Albanian translation typo's
+* Add missing clear and format localization value for Russian translation
+* Updated Serbian translation
+* Fixed Ukrainian iso code to uk instead of ua
+* Updated greek translation
+* Update Catalan and Spanish localizations
+* Added missing armenian translations
+
+New languages:
+* Basque
+* Khmer (Cambodia)
+* Bosnian
+* British english
+* Armenian
+* Faroese
+* Swiss Italian and Swiss French
+
+1.3.0
+-----
+
+New features:
+* Bootstrap 3 support. Added build files `build/build_standalone3.less` and `build/build3.less`, and source files `less/datepicker3.less` and `css/datepicker3.css` (built from `build_standalone3.less`).
+* Multi-date functionality. This required rethinking several areas of the picker:
+ * The internals have been modified to be completely multidate-centric.
+ * Attributes and methods availabel on events have changed, but the old attributes and functions will still work.
+ * Keyboard navigation has been revamped, as it didn't work at all properly with multidate selection.
+ * The picker now explicitly supports "no selected date".
+
+Non-API changes:
+* Keyboard navigation has been changed. See `docs/keyboard.rst`.
+* Empty pickers in a range picker setup will be populated with the first date selected by the user to make finding the next date easier.
+
+Bug squashed:
+* Jan 1, 1970 is now highlighted when selected
+* `touchstart` added to document-bound picker-closing events (alongside `mousedown`)
+* Fixed a display bug with component add-on icons being vertically higher than they should have been.
+* Input is refocused after clicking the picker.
+* `changeDate` event is triggered when `setDate` is called.
+
+Locale changes:
+* Added Ukrainian, Belgium-Dutch, Welsh, Galician, Vietnamese, and Azerbaijani
+* `clear` for German, Danish, Italian, and Romanian
+* Fixed `weekStart` and `format` for Norwegian
+* `weekStart` and `format` for Georgian
+* Tweaks for Latvian, French, Vietnamese, Swedish, and Croatian
+* De-duplicated Ukrainian files from `uk` and `ua` to just `ua`
+
+Repository changes:
+* Documentation has been moved from the base `README.md` file to the `docs/` folder, and been re-written to use sphinx docs. The docs are now viewable online at http://bootstrap-datepicker.readthedocs.org/. The [gh-pages](http://eternicode.github.io/bootstrap-datepicker/) branch has been reduced to the sandbox demo.
+* Changed the js file header to point at repo/demo/docs urls instead of eyecon.ro
+* The css files are now the output of the standalone build scripts instead of `build/build.less` etc.
+* `composer.json` now supports component-installer
+* Added [JSHint](http://www.jshint.com/docs/) and [JSCS](https://github.com/mdevils/node-jscs) configurations
+
+
+1.2.0
+-----
+
+New features:
+* Google Closure Compiler Compatibility
+* Smart orientation by default, and explicit picker orientation with the `orientation` option
+* Text inside the picker is no longer user-selectable
+* Packagist/Composer support (I think...)
+* No longer depends on glyphicons for arrows
+* `clearDate` event added, fired when the date is cleared
+
+Bug squashed:
+* `noConflict` fixed
+* Fix for large years causing an infinite loop in date parsing
+* Fixed cases where `changeYear` and `changeMonth` events were not being triggered
+* `component.js` moved to `bower.js`
+* Falsey values for `startDate` and `endDate` translate to `-Infinity` and `Infinity`, respectively (effectively, falsey values mean "no bounds")
+* Fixed `autoclose` for non-input, non-component elements
+* Fixed 50% param in `mix()` less function -- expands compatibility with less compilers
+* Fixed `update` method to update the selected date
+* `beforeShowDay` was getting UTC dates, now it gets local dates (all dates that developers are given should be in local time, not UTC).
+* `startDate` and `endDate` were a bit confused when given `new Date()` -- they would not allow today to be selected (the range should be inclusive), they would change whether it was selectable based on local time, etc. These quirks should be fixed now. They both also now expect local dates (which will then be time-zeroed and converted to UTC).
+* Fixed selected date not being automatically constrained to the specified range when `setStartDate` and `setEndDate` were called.
+* No longer uses jQuery's `.size()` (deprecated in favor of `.length`)
+* `changeDate` triggered during manual user input
+* `change` event fired when input value changed, it wasn't in some cases
+
+Locale changes:
+* Added Arabic, Norwegian, Georgian
+* `clear` for French
+* `today` and `clear` for Bahasa
+* `today` and `clear` for Portuguese (both `pt` and `pt-BR`)
+* `format` for Turkish
+* `format` and `weekStart` for Swedish
+* `format` and `weekStart` for Simplified Chinese; `today`, `format`, and `weekStart` for Traditional Chinese
+* Fixed typo in Serbian latin (`rs-latin`)
+* More appropriate use of Traditional Chinese habit in `zh-TW`
+
+
+1.1.3
+ ----------
+
+ Clicking the clear button now triggers the input's `change` and datepicker's `changeDate` events.
+ Fixed a bug that broke the event-attached `format` function.
+
+
+1.1.2
+----------
+
+Botched release, no change from 1.1.1
+
+
+1.1.1
+----------
+
+Fixes a bug when setting startDate or endDate during initialization.
+
+
+1.1.0
+----------
+
+New features:
+* Date range picker.
+* Data API / noConflict.
+* `getDate` and `setDate` methods.
+* `format` method for events; this allows you to easily format the `date` associated with the event.
+* New options:
+ * `beforeShowDay` option: a dev-provided function that can enable/disable dates, add css classes, and add tooltips.
+ * `clearBtn`, a button for resetting the picker.
+
+Internal changes:
+* Cleaner and more reliable method for extracting options from all potential sources (defaults, locale overrides, data-attrs, and instantiation options, in that order). This also populates `$.fn.datepicker.defaults` with the default values, and uses this hash as the actual source of defaults, meaning you can globally change the default value for a given option.
+
+Bugs squashed:
+* Resolved a conflict with bootstrap's native `.switch` class.
+* Fixed a bug with components where they would be stuck with a stale value when editing the value manually.
+* The `date` attributes on events are now local dates instead of internal UTC dates.
+* Separate `Date` objects for internal selected and view date references.
+* Clicking multiple times inside inputs no longer hides the picker.
+
+Minor improvements:
+* Better text color for highlighted "today" date.
+* Last year in decade view now marked as "new" instead of "old".
+* Formats now properly handle trailing separators.
+
+Locale changes:
+* Added Albanian, Estonian, and Macedonian
+* Added `weekStart` for Russian
+* Added `weekStart` and `format` for Finnish
+
+Potentially backward-incompatible changes:
+* Options revamp:
+ * This fixes bugs in the correlation of some data-attrs to their associated option names. If you use `data-date-weekstart`, `data-date-startdate`, or `data-date-enddate`, you should update these to `data-date-week-start`, `data-date-start-date`, or `data-date-end-date`, respectively.
+ * All options for datepicker are now properties on the datepicker's `o` property; options are no longer stored on the Datepicker instance itself. If you have code that accesses options stored on the datepicker instance (eg, `datepicker.format`), you will need to update it to access those options via the `o` property (eg, `datepicker.o.format`). "Raw" options are available via the `_o` property.
+
+1.0.2
+----------
+
+Small optimizations release
+
+* Reduced the number of times `update` is called on initialization.
+* Datepicker now detaches the picker dropdown when it is hidden, and appends it when shown. This removes the picker from the DOM when it is not in use.
+* No longer listens to document/window events unless picker is visible.
+
+v1.0.1
+------
+
+* Support for [Bower](http://twitter.github.com/bower/)
+* Component pickers are now aligned under the input, not the add-on element.
+* Japanese locale now has "today" and "format".
+* "remove" method removes `.data().date` if the datepicker is on a non-input.
+* Events on initialized elements are no longer blocked from bubbling up the DOM (jQuery.live et al can now catch the events).
+* Component triggers now include `.btn` in addition to `.add-on`.
+* Updates to README contents.
+
+v1.0.0
+------
+
+Initial release:
+
+* format option
+* weekStart option
+* calendarWeeks option
+* startDate / endDate options
+* daysOfWeekDisabled option
+* autoclose option
+* startView / mnViewMode options
+* todayBtn / todayHighlight options
+* keyboardNavigation option
+* language option
+* forceParse option
diff --git a/public/bower_components/bootstrap-datepicker/CODE_OF_CONDUCT.md b/public/bower_components/bootstrap-datepicker/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..1692465
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/CODE_OF_CONDUCT.md
@@ -0,0 +1,74 @@
+# Contributor Covenant Code of Conduct
+
+## Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age, body
+size, disability, ethnicity, gender identity and expression, level of experience,
+nationality, personal appearance, race, religion, or sexual identity and
+orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment
+include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or
+advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic
+ address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+## Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an appointed
+representative at an online or offline event. Representation of a project may be
+further defined and clarified by project maintainers.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at <https://github.com/uxsolutions/bootstrap-datepicker>. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an incident.
+Further details of specific enforcement policies may be posted separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
+available at [http://contributor-covenant.org/version/1/4][version]
+
+[homepage]: http://contributor-covenant.org
+[version]: http://contributor-covenant.org/version/1/4/
diff --git a/public/bower_components/bootstrap-datepicker/CONTRIBUTING.md b/public/bower_components/bootstrap-datepicker/CONTRIBUTING.md
new file mode 100644
index 0000000..cd58985
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/CONTRIBUTING.md
@@ -0,0 +1,41 @@
+# Contributing
+
+## Support requests
+
+The issue tracker is not the place for support requests. If you get stuck with bootstrap-datepicker, it's very likely that the fine folks at [StackOverflow](http://stackoverflow.com/) will be able to help you; simply describe the problem you're having and provide them a link to the repo (so they know what code you're using). Another option is to post to the [bootstrap-datepicker google group](https://groups.google.com/group/bootstrap-datepicker).
+
+## Issues
+
+If you've found a bug in bootstrap-datepicker, we want to know about it! However, please keep the following in mind:
+
+* This is not the bootstrap-datepicker from [eyecon.ro](http://www.eyecon.ro/bootstrap-datepicker/). Stefan provided the initial code for bootstrap-datepicker, but this repo is divergent from his codebase. Please make sure you're using either the latest tagged version or the latest master from https://github.com/uxsolutions/bootstrap-datepicker/.
+* A working example of the bug you've found is *much* easier to work with than a description alone. If possible, please provide a link to a demonstration of the bug, perhaps using http://jsfiddle.net/ .
+ * CDN-backed assets can be found at http://bsdp-assets.blackcherry.us/ . These should be used *only* for building test cases, as they may be removed or changed at any time.
+* Finally, it's possible someone else has already reported the same bug you have. Please search the issue tracker for similar issues before posting your own. Thanks!
+
+## Pull Requests
+
+Patches welcome!
+
+For all cases, you should have your own fork of the repo.
+
+To submit a pull request for a **new feature**:
+
+1. Run the tests. Every pull request for a new feature should have an accompanying unit test and docs changes. See the `README.md` in the `tests/` and `docs/` directories for details.
+2. Create a new branch off of the `master` branch for your feature. This is particularly helpful when you want to submit multiple pull requests.
+3. Add a test (or multiple tests) for your feature. Again, see `tests/README.md`.
+4. Add your new feature, making the test pass.
+5. Push to your fork and submit the pull request!
+
+To submit a **bug fix**:
+
+1. Create a new branch off of the `master` branch.
+2. Add a test that demonstrates the bug.
+3. Make the test pass.
+4. Push to your fork and submit the pull request!
+
+To submit a **documentation fix**:
+
+1. Create a new branch off of the `master` branch.
+2. Add your documentation fixes (no tests required).
+3. Push to your fork and submit the pull request!
diff --git a/public/bower_components/bootstrap-datepicker/Gruntfile.js b/public/bower_components/bootstrap-datepicker/Gruntfile.js
new file mode 100644
index 0000000..4b8065e
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/Gruntfile.js
@@ -0,0 +1,261 @@
+module.exports = function(grunt){
+ 'use strict';
+
+ // Force use of Unix newlines
+ grunt.util.linefeed = '\n';
+
+ // Project configuration.
+ grunt.initConfig({
+ //Metadata
+ pkg: grunt.file.readJSON('package.json'),
+ banner: [
+ '/*!',
+ ' * Datepicker for Bootstrap v<%= pkg.version %> (<%= pkg.homepage %>)',
+ ' *',
+ ' * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)',
+ ' */'
+ ].join('\n') + '\n',
+
+ // Task configuration.
+ clean: {
+ dist: ['dist', '*-dist.zip']
+ },
+ jshint: {
+ options: {
+ jshintrc: 'js/.jshintrc'
+ },
+ main: {
+ src: 'js/bootstrap-datepicker.js'
+ },
+ locales: {
+ src: 'js/locales/*.js'
+ },
+ gruntfile: {
+ options: {
+ jshintrc: 'grunt/.jshintrc'
+ },
+ src: 'Gruntfile.js'
+ }
+ },
+ jscs: {
+ options: {
+ config: 'js/.jscsrc'
+ },
+ main: {
+ src: 'js/bootstrap-datepicker.js'
+ },
+ locales: {
+ src: 'js/locales/*.js'
+ },
+ gruntfile: {
+ src: 'Gruntfile.js'
+ }
+ },
+ qunit: {
+ main: 'tests/tests.html',
+ timezone: 'tests/timezone.html',
+ options: {
+ console: false
+ }
+ },
+ concat: {
+ options: {
+ stripBanners: true
+ },
+ main: {
+ src: 'js/bootstrap-datepicker.js',
+ dest: 'dist/js/<%= pkg.name %>.js'
+ }
+ },
+ uglify: {
+ options: {
+ preserveComments: 'some'
+ },
+ main: {
+ src: '<%= concat.main.dest %>',
+ dest: 'dist/js/<%= pkg.name %>.min.js'
+ },
+ locales: {
+ files: [{
+ expand: true,
+ cwd: 'js/locales/',
+ src: '*.js',
+ dest: 'dist/locales/',
+ rename: function(dest, name){
+ return dest + name.replace(/\.js$/, '.min.js');
+ }
+ }]
+ }
+ },
+ less: {
+ options: {
+ sourceMap: true,
+ outputSourceFiles: true
+ },
+ standalone_bs2: {
+ options: {
+ sourceMapURL: '<%= pkg.name %>.standalone.css.map'
+ },
+ src: 'build/build_standalone.less',
+ dest: 'dist/css/<%= pkg.name %>.standalone.css'
+ },
+ standalone_bs3: {
+ options: {
+ sourceMapURL: '<%= pkg.name %>3.standalone.css.map'
+ },
+ src: 'build/build_standalone3.less',
+ dest: 'dist/css/<%= pkg.name %>3.standalone.css'
+ },
+ main_bs2: {
+ options: {
+ sourceMapURL: '<%= pkg.name %>.css.map'
+ },
+ src: 'build/build.less',
+ dest: 'dist/css/<%= pkg.name %>.css'
+ },
+ main_bs3: {
+ options: {
+ sourceMapURL: '<%= pkg.name %>3.css.map'
+ },
+ src: 'build/build3.less',
+ dest: 'dist/css/<%= pkg.name %>3.css'
+ }
+ },
+ usebanner: {
+ options: {
+ banner: '<%= banner %>'
+ },
+ css: 'dist/css/*.css',
+ js: 'dist/js/**/*.js'
+ },
+ cssmin: {
+ options: {
+ compatibility: 'ie8',
+ keepSpecialComments: '*',
+ advanced: false
+ },
+ main: {
+ files: {
+ 'dist/css/<%= pkg.name %>.min.css': 'dist/css/<%= pkg.name %>.css',
+ 'dist/css/<%= pkg.name %>3.min.css': 'dist/css/<%= pkg.name %>3.css'
+ }
+ },
+ standalone: {
+ files: {
+ 'dist/css/<%= pkg.name %>.standalone.min.css': 'dist/css/<%= pkg.name %>.standalone.css',
+ 'dist/css/<%= pkg.name %>3.standalone.min.css': 'dist/css/<%= pkg.name %>3.standalone.css'
+ }
+ }
+ },
+ csslint: {
+ options: {
+ csslintrc: 'less/.csslintrc'
+ },
+ dist: [
+ 'dist/css/bootstrap-datepicker.css',
+ 'dist/css/bootstrap-datepicker3.css',
+ 'dist/css/bootstrap-datepicker.standalone.css',
+ 'dist/css/bootstrap-datepicker3.standalone.css'
+ ]
+ },
+ compress: {
+ main: {
+ options: {
+ archive: '<%= pkg.name %>-<%= pkg.version %>-dist.zip',
+ mode: 'zip',
+ level: 9,
+ pretty: true
+ },
+ files: [
+ {
+ expand: true,
+ cwd: 'dist/',
+ src: '**'
+ }
+ ]
+ }
+ },
+ 'string-replace': {
+ js: {
+ files: [{
+ src: 'js/bootstrap-datepicker.js',
+ dest: 'js/bootstrap-datepicker.js'
+ }],
+ options: {
+ replacements: [{
+ pattern: /\$(\.fn\.datepicker\.version)\s=\s*("|\')[0-9\.a-z].*("|');/gi,
+ replacement: "$.fn.datepicker.version = '" + grunt.option('newver') + "';"
+ }]
+ }
+ },
+ npm: {
+ files: [{
+ src: 'package.json',
+ dest: 'package.json'
+ }],
+ options: {
+ replacements: [{
+ pattern: /\"version\":\s\"[0-9\.a-z].*",/gi,
+ replacement: '"version": "' + grunt.option('newver') + '",'
+ }]
+ }
+ }
+ }
+ });
+
+ // These plugins provide necessary tasks.
+ require('load-grunt-tasks')(grunt, {scope: 'devDependencies'});
+ require('time-grunt')(grunt);
+
+ // JS distribution task.
+ grunt.registerTask('dist-js', ['concat', 'uglify:main', 'uglify:locales', 'usebanner:js']);
+
+ // CSS distribution task.
+ grunt.registerTask('less-compile', 'less');
+ grunt.registerTask('dist-css', ['less-compile', 'cssmin:main', 'cssmin:standalone', 'usebanner:css']);
+
+ // Full distribution task.
+ grunt.registerTask('dist', ['clean:dist', 'dist-js', 'dist-css']);
+
+ // Code check tasks.
+ grunt.registerTask('lint-js', 'Lint all js files with jshint and jscs', ['jshint', 'jscs']);
+ grunt.registerTask('lint-css', 'Lint all css files', ['dist-css', 'csslint:dist']);
+ grunt.registerTask('qunit-all', 'Run qunit tests', ['qunit:main', 'qunit-timezone']);
+ grunt.registerTask('test', 'Lint files and run unit tests', ['lint-js', /*'lint-css',*/ 'qunit-all']);
+
+ // Version numbering task.
+ // grunt bump-version --newver=X.Y.Z
+ grunt.registerTask('bump-version', 'string-replace');
+
+ // Docs task.
+ grunt.registerTask('screenshots', 'Rebuilds automated docs screenshots', function(){
+ var phantomjs = require('phantomjs-prebuilt').path;
+
+ grunt.file.recurse('docs/_static/screenshots/', function(abspath){
+ grunt.file.delete(abspath);
+ });
+
+ grunt.file.recurse('docs/_screenshots/', function(abspath, root, subdir, filename){
+ if (!/.html$/.test(filename))
+ return;
+ subdir = subdir || '';
+
+ var outdir = 'docs/_static/screenshots/' + subdir,
+ outfile = outdir + filename.replace(/.html$/, '.png');
+
+ if (!grunt.file.exists(outdir))
+ grunt.file.mkdir(outdir);
+
+ // NOTE: For 'zh-TW' and 'ja' locales install adobe-source-han-sans-jp-fonts (Arch Linux)
+ grunt.util.spawn({
+ cmd: phantomjs,
+ args: ['docs/_screenshots/script/screenshot.js', abspath, outfile]
+ });
+ });
+ });
+
+ grunt.registerTask('qunit-timezone', 'Run timezone tests', function(){
+ process.env.TZ = 'Europe/Moscow';
+ grunt.task.run('qunit:timezone');
+ });
+};
diff --git a/public/bower_components/bootstrap-datepicker/LICENSE b/public/bower_components/bootstrap-datepicker/LICENSE
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/LICENSE
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/public/bower_components/bootstrap-datepicker/README.md b/public/bower_components/bootstrap-datepicker/README.md
new file mode 100644
index 0000000..16ee1e3
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/README.md
@@ -0,0 +1,42 @@
+# bootstrap-datepicker
+
+[![Join the chat at https://gitter.im/uxsolutions/bootstrap-datepicker](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/uxsolutions/bootstrap-datepicker?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+[![Build Status](https://travis-ci.org/uxsolutions/bootstrap-datepicker.svg?branch=master)](https://travis-ci.org/uxsolutions/bootstrap-datepicker)
+[![GitHub license](https://img.shields.io/badge/license-Apache%202-blue.svg)](https://raw.githubusercontent.com/uxsolutions/bootstrap-datepicker/master/LICENSE)
+[![npm](https://img.shields.io/npm/dt/bootstrap-datepicker.svg)](https://github.com/uxsolutions/bootstrap-datepicker)
+[![Twitter Follow](https://img.shields.io/twitter/follow/bsdatepicker.svg?style=social&label=Follow)](https://twitter.com/bsdatepicker)
+
+Versions are incremented according to [semver](http://semver.org/).
+
+## CDN
+
+You can use the [CloudFlare](https://www.cloudflare.com) powered [cdnjs.com](https://cdnjs.com) on your website.
+
+[bootstrap-datepicker](https://cdnjs.com/libraries/bootstrap-datepicker) on cdnjs
+
+Please note: It might take a few hours until a new version is available on cdnjs.
+
+## Links
+
+* [Online Demo](https://uxsolutions.github.io/bootstrap-datepicker/)
+* [Online Docs](https://bootstrap-datepicker.readthedocs.org/en/stable/) (ReadTheDocs.com)
+* [Google Group](https://groups.google.com/group/bootstrap-datepicker/)
+* [Travis CI](https://travis-ci.org/uxsolutions/bootstrap-datepicker)
+
+## Development
+
+Once you cloned the repo, you'll need to install [grunt](https://gruntjs.com/) and the development dependencies using a package manager:
+
+* [yarn](https://yarnpkg.com/) (recommended):
+
+```
+$ [sudo] yarn global add grunt-cli
+$ yarn install
+```
+
+* [npm](https://www.npmjs.com/):
+
+```
+$ [sudo] npm install --global grunt-cli
+$ npm install
+```
diff --git a/public/bower_components/bootstrap-datepicker/bower.json b/public/bower_components/bootstrap-datepicker/bower.json
new file mode 100644
index 0000000..dd78f44
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/bower.json
@@ -0,0 +1,12 @@
+{
+ "name": "bootstrap-datepicker",
+ "main": [
+ "dist/css/bootstrap-datepicker3.css",
+ "dist/js/bootstrap-datepicker.js"
+ ],
+ "license": "Apache-2.0",
+ "dependencies": {
+ "jquery" : ">=1.7.1 <4.0.0"
+ },
+ "ignore": []
+}
diff --git a/public/bower_components/bootstrap-datepicker/build/build.less b/public/bower_components/bootstrap-datepicker/build/build.less
new file mode 100644
index 0000000..7db2322
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/build/build.less
@@ -0,0 +1,69 @@
+// Datepicker .less buildfile. Includes select mixins/variables from bootstrap
+// and imports the included datepicker.less to output a minimal datepicker.css
+//
+// Usage:
+// lessc build.less datepicker.css
+//
+// Variables and mixins copied from bootstrap 2.0.2
+
+// Variables
+@grayLight: #999;
+@grayLighter: #eee;
+@white: #fff;
+@linkColor: #08c;
+@btnPrimaryBackground: @linkColor;
+@orange: #f89406;
+@infoBackground: #d9edf7;
+@baseLineHeight: 18px;
+@baseBorderRadius: 4px;
+
+// Mixins
+
+// Border Radius
+.border-radius(@radius: 5px) {
+ -webkit-border-radius: @radius;
+ -moz-border-radius: @radius;
+ border-radius: @radius;
+}
+
+// Button backgrounds
+.buttonBackground(@startColor, @endColor) {
+ .gradientBar(@startColor, @endColor);
+ .reset-filter();
+ &:hover, &:active, &.active, &.disabled, &[disabled] {
+ background-color: @endColor;
+ }
+ &:active,
+ &.active {
+ background-color: darken(@endColor, 10%) e("\9");
+ }
+}
+
+// Reset filters for IE
+.reset-filter() {
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+}
+
+// Gradient Bar Colors for buttons and alerts
+.gradientBar(@primaryColor, @secondaryColor) {
+ #gradient > .vertical(@primaryColor, @secondaryColor);
+ border-color: @secondaryColor @secondaryColor darken(@secondaryColor, 15%);
+ border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fadein(rgba(0,0,0,.1), 15%);
+}
+
+// Gradients
+#gradient {
+ .vertical(@startColor: #555, @endColor: #333) {
+ background-color: mix(@startColor, @endColor, 60%);
+ background-image: -moz-linear-gradient(to bottom, @startColor, @endColor); // FF 3.6+
+ background-image: -ms-linear-gradient(to bottom, @startColor, @endColor); // IE10
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+
+ background-image: -webkit-linear-gradient(to bottom, @startColor, @endColor); // Safari 5.1+, Chrome 10+
+ background-image: -o-linear-gradient(to bottom, @startColor, @endColor); // Opera 11.10
+ background-image: linear-gradient(to bottom, @startColor, @endColor); // The standard
+ background-repeat: repeat-x;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",@startColor,@endColor)); // IE9 and down
+ }
+}
+
+@import "../less/datepicker.less";
diff --git a/public/bower_components/bootstrap-datepicker/build/build3.less b/public/bower_components/bootstrap-datepicker/build/build3.less
new file mode 100644
index 0000000..a9baa08
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/build/build3.less
@@ -0,0 +1,76 @@
+// Datepicker .less buildfile. Includes select mixins/variables from bootstrap
+// and imports the included datepicker.less to output a minimal datepicker.css
+//
+// Usage:
+// lessc build3.less datepicker.css
+//
+// Variables and mixins copied from Bootstrap 3.3.5
+
+// Variables
+@gray: lighten(#000, 33.5%); // #555
+@gray-light: lighten(#000, 46.7%); // #777
+@gray-lighter: lighten(#000, 93.5%); // #eee
+
+@brand-primary: darken(#428bca, 6.5%); // #337ab7
+
+@btn-primary-color: #fff;
+@btn-primary-bg: @brand-primary;
+@btn-primary-border: darken(@btn-primary-bg, 5%);
+
+@btn-link-disabled-color: @gray-light;
+
+@state-info-bg: #d9edf7;
+
+@line-height-base: 1.428571429; // 20/14
+@border-radius-base: 4px;
+
+@dropdown-bg: #fff;
+@dropdown-border: rgba(0,0,0,.15);
+
+
+// Mixins
+
+// Button variants
+.button-variant(@color; @background; @border) {
+ color: @color;
+ background-color: @background;
+ border-color: @border;
+
+ &:focus,
+ &.focus {
+ color: @color;
+ background-color: darken(@background, 10%);
+ border-color: darken(@border, 25%);
+ }
+ &:hover {
+ color: @color;
+ background-color: darken(@background, 10%);
+ border-color: darken(@border, 12%);
+ }
+ &:active,
+ &.active {
+ color: @color;
+ background-color: darken(@background, 10%);
+ border-color: darken(@border, 12%);
+
+ &:hover,
+ &:focus,
+ &.focus {
+ color: @color;
+ background-color: darken(@background, 17%);
+ border-color: darken(@border, 25%);
+ }
+ }
+ &.disabled,
+ &[disabled],
+ fieldset[disabled] & {
+ &:hover,
+ &:focus,
+ &.focus {
+ background-color: @background;
+ border-color: @border;
+ }
+ }
+}
+
+@import "../less/datepicker3.less";
diff --git a/public/bower_components/bootstrap-datepicker/build/build_standalone.less b/public/bower_components/bootstrap-datepicker/build/build_standalone.less
new file mode 100644
index 0000000..9fa1b8b
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/build/build_standalone.less
@@ -0,0 +1,64 @@
+// Datepicker standalone .less buildfile. Includes all necessary mixins/variables/rules from bootstrap
+// and imports the included datepicker.less to output a minimal standalone datepicker.css
+//
+// Usage:
+// lessc build_standalone.less datepicker.css
+//
+// Variables, mixins, and rules copied from bootstrap 2.0.2
+
+@import "build.less";
+
+// Dropdown css
+
+@zindexDropdown: 1000;
+@grayDark: #333;
+@baseLineHeight: 20px;
+@tableBackground: transparent; // overall background-color
+@dropdownBackground: @white;
+@dropdownBorder: rgba(0,0,0,.2);
+@dropdownLinkColor: @grayDark;
+@dropdownLinkColorHover: @white;
+@dropdownLinkBackgroundHover: @linkColor;
+
+// Drop shadows
+.box-shadow(@shadow) {
+ -webkit-box-shadow: @shadow;
+ -moz-box-shadow: @shadow;
+ box-shadow: @shadow;
+}
+
+// The dropdown menu (ul)
+// ----------------------
+.datepicker{
+ &.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: @zindexDropdown;
+ float: left;
+ display: none; // none by default, but block on "open" of the menu
+ min-width: 160px;
+ list-style: none;
+ background-color: @dropdownBackground;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0,0,0,.2);
+ .border-radius(5px);
+ .box-shadow(0 5px 10px rgba(0,0,0,.2));
+ -webkit-background-clip: padding-box;
+ -moz-background-clip: padding;
+ background-clip: padding-box;
+ *border-right-width: 2px;
+ *border-bottom-width: 2px;
+
+ // Normally inherited from bootstrap's `body`
+ color: #333333;
+ font-size:13px;
+ line-height: @baseLineHeight;
+ }
+
+ &.dropdown-menu, &.datepicker-inline {
+ th, td {
+ padding: 4px 5px;
+ }
+ }
+}
diff --git a/public/bower_components/bootstrap-datepicker/build/build_standalone3.less b/public/bower_components/bootstrap-datepicker/build/build_standalone3.less
new file mode 100644
index 0000000..8ef90ea
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/build/build_standalone3.less
@@ -0,0 +1,55 @@
+// Datepicker standalone .less buildfile. Includes all necessary mixins/variables/rules from bootstrap
+// and imports the included datepicker.less to output a minimal standalone datepicker.css
+//
+// Usage:
+// lessc build_standalone3.less datepicker.css
+//
+// Variables, mixins, and rules copied from Bootstrap 3.3.5
+
+@import "build3.less";
+
+// Dropdown css
+
+@zindex-dropdown: 1000;
+@dropdown-fallback-border: #ccc;
+
+// Drop shadows
+.box-shadow(@shadow) {
+ -webkit-box-shadow: @shadow;
+ -moz-box-shadow: @shadow;
+ box-shadow: @shadow;
+}
+
+// The dropdown menu (ul)
+// ----------------------
+.datepicker {
+ &.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: @zindex-dropdown;
+ display: none; // none by default, but block on "open" of the menu
+ float: left;
+ min-width: 160px;
+ list-style: none;
+ background-color: @dropdown-bg;
+ border: 1px solid @dropdown-fallback-border; // IE8 fallback
+ border: 1px solid @dropdown-border;
+ border-radius: @border-radius-base;
+ .box-shadow(0 6px 12px rgba(0,0,0,.175));
+ -webkit-background-clip: padding-box;
+ -moz-background-clip: padding;
+ background-clip: padding-box;
+
+ // Normally inherited from bootstrap's `body`
+ color: #333333;
+ font-size: 13px;
+ line-height: @line-height-base;
+ }
+
+ &.dropdown-menu, &.datepicker-inline {
+ th, td {
+ padding: 0px 5px;
+ }
+ }
+}
diff --git a/public/bower_components/bootstrap-datepicker/composer.json b/public/bower_components/bootstrap-datepicker/composer.json
new file mode 100644
index 0000000..af9faa9
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/composer.json
@@ -0,0 +1,39 @@
+{
+ "name": "eternicode/bootstrap-datepicker",
+ "description": "A datepicker for Bootstrap",
+ "license": "Apache-2.0",
+ "keywords": [
+ "bootstrap",
+ "datepicker"
+ ],
+ "authors": [
+ {
+ "name": "Andrew Rowls",
+ "email": "eternicode@gmail.com"
+ },
+ {
+ "name": "Community",
+ "homepage": "https://github.com/uxsolutions/bootstrap-datepicker/contributors"
+ }
+ ],
+ "type": "component",
+ "require": {
+ "robloach/component-installer": "*",
+ "components/bootstrap" : ">=2.0, <4.0",
+ "components/jquery": ">=1.7.1, <4.0.0"
+ },
+ "extra": {
+ "component": {
+ "scripts": [
+ "js/bootstrap-datepicker.js"
+ ],
+ "styles": [
+ "dist/css/bootstrap-datepicker.css",
+ "dist/css/bootstrap-datepicker3.css"
+ ],
+ "files": [
+ "js/locales/bootstrap-datepicker.*.js"
+ ]
+ }
+ }
+}
diff --git a/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.css b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.css
new file mode 100644
index 0000000..1b1e751
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.css
@@ -0,0 +1,477 @@
+/*!
+ * Datepicker for Bootstrap v1.8.0 (https://github.com/uxsolutions/bootstrap-datepicker)
+ *
+ * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
+ */
+
+.datepicker {
+ padding: 4px;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ direction: ltr;
+}
+.datepicker-inline {
+ width: 220px;
+}
+.datepicker-rtl {
+ direction: rtl;
+}
+.datepicker-rtl.dropdown-menu {
+ left: auto;
+}
+.datepicker-rtl table tr td span {
+ float: right;
+}
+.datepicker-dropdown {
+ top: 0;
+ left: 0;
+}
+.datepicker-dropdown:before {
+ content: '';
+ display: inline-block;
+ border-left: 7px solid transparent;
+ border-right: 7px solid transparent;
+ border-bottom: 7px solid #999;
+ border-top: 0;
+ border-bottom-color: rgba(0, 0, 0, 0.2);
+ position: absolute;
+}
+.datepicker-dropdown:after {
+ content: '';
+ display: inline-block;
+ border-left: 6px solid transparent;
+ border-right: 6px solid transparent;
+ border-bottom: 6px solid #fff;
+ border-top: 0;
+ position: absolute;
+}
+.datepicker-dropdown.datepicker-orient-left:before {
+ left: 6px;
+}
+.datepicker-dropdown.datepicker-orient-left:after {
+ left: 7px;
+}
+.datepicker-dropdown.datepicker-orient-right:before {
+ right: 6px;
+}
+.datepicker-dropdown.datepicker-orient-right:after {
+ right: 7px;
+}
+.datepicker-dropdown.datepicker-orient-bottom:before {
+ top: -7px;
+}
+.datepicker-dropdown.datepicker-orient-bottom:after {
+ top: -6px;
+}
+.datepicker-dropdown.datepicker-orient-top:before {
+ bottom: -7px;
+ border-bottom: 0;
+ border-top: 7px solid #999;
+}
+.datepicker-dropdown.datepicker-orient-top:after {
+ bottom: -6px;
+ border-bottom: 0;
+ border-top: 6px solid #fff;
+}
+.datepicker table {
+ margin: 0;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+.datepicker td,
+.datepicker th {
+ text-align: center;
+ width: 20px;
+ height: 20px;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ border: none;
+}
+.table-striped .datepicker table tr td,
+.table-striped .datepicker table tr th {
+ background-color: transparent;
+}
+.datepicker table tr td.day:hover,
+.datepicker table tr td.day.focused {
+ background: #eee;
+ cursor: pointer;
+}
+.datepicker table tr td.old,
+.datepicker table tr td.new {
+ color: #999;
+}
+.datepicker table tr td.disabled,
+.datepicker table tr td.disabled:hover {
+ background: none;
+ color: #999;
+ cursor: default;
+}
+.datepicker table tr td.highlighted {
+ background: #d9edf7;
+ border-radius: 0;
+}
+.datepicker table tr td.today,
+.datepicker table tr td.today:hover,
+.datepicker table tr td.today.disabled,
+.datepicker table tr td.today.disabled:hover {
+ background-color: #fde19a;
+ background-image: -moz-linear-gradient(to bottom, #fdd49a, #fdf59a);
+ background-image: -ms-linear-gradient(to bottom, #fdd49a, #fdf59a);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a));
+ background-image: -webkit-linear-gradient(to bottom, #fdd49a, #fdf59a);
+ background-image: -o-linear-gradient(to bottom, #fdd49a, #fdf59a);
+ background-image: linear-gradient(to bottom, #fdd49a, #fdf59a);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);
+ border-color: #fdf59a #fdf59a #fbed50;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ color: #000;
+}
+.datepicker table tr td.today:hover,
+.datepicker table tr td.today:hover:hover,
+.datepicker table tr td.today.disabled:hover,
+.datepicker table tr td.today.disabled:hover:hover,
+.datepicker table tr td.today:active,
+.datepicker table tr td.today:hover:active,
+.datepicker table tr td.today.disabled:active,
+.datepicker table tr td.today.disabled:hover:active,
+.datepicker table tr td.today.active,
+.datepicker table tr td.today:hover.active,
+.datepicker table tr td.today.disabled.active,
+.datepicker table tr td.today.disabled:hover.active,
+.datepicker table tr td.today.disabled,
+.datepicker table tr td.today:hover.disabled,
+.datepicker table tr td.today.disabled.disabled,
+.datepicker table tr td.today.disabled:hover.disabled,
+.datepicker table tr td.today[disabled],
+.datepicker table tr td.today:hover[disabled],
+.datepicker table tr td.today.disabled[disabled],
+.datepicker table tr td.today.disabled:hover[disabled] {
+ background-color: #fdf59a;
+}
+.datepicker table tr td.today:active,
+.datepicker table tr td.today:hover:active,
+.datepicker table tr td.today.disabled:active,
+.datepicker table tr td.today.disabled:hover:active,
+.datepicker table tr td.today.active,
+.datepicker table tr td.today:hover.active,
+.datepicker table tr td.today.disabled.active,
+.datepicker table tr td.today.disabled:hover.active {
+ background-color: #fbf069 \9;
+}
+.datepicker table tr td.today:hover:hover {
+ color: #000;
+}
+.datepicker table tr td.today.active:hover {
+ color: #fff;
+}
+.datepicker table tr td.range,
+.datepicker table tr td.range:hover,
+.datepicker table tr td.range.disabled,
+.datepicker table tr td.range.disabled:hover {
+ background: #eee;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+}
+.datepicker table tr td.range.today,
+.datepicker table tr td.range.today:hover,
+.datepicker table tr td.range.today.disabled,
+.datepicker table tr td.range.today.disabled:hover {
+ background-color: #f3d17a;
+ background-image: -moz-linear-gradient(to bottom, #f3c17a, #f3e97a);
+ background-image: -ms-linear-gradient(to bottom, #f3c17a, #f3e97a);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3c17a), to(#f3e97a));
+ background-image: -webkit-linear-gradient(to bottom, #f3c17a, #f3e97a);
+ background-image: -o-linear-gradient(to bottom, #f3c17a, #f3e97a);
+ background-image: linear-gradient(to bottom, #f3c17a, #f3e97a);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);
+ border-color: #f3e97a #f3e97a #edde34;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+}
+.datepicker table tr td.range.today:hover,
+.datepicker table tr td.range.today:hover:hover,
+.datepicker table tr td.range.today.disabled:hover,
+.datepicker table tr td.range.today.disabled:hover:hover,
+.datepicker table tr td.range.today:active,
+.datepicker table tr td.range.today:hover:active,
+.datepicker table tr td.range.today.disabled:active,
+.datepicker table tr td.range.today.disabled:hover:active,
+.datepicker table tr td.range.today.active,
+.datepicker table tr td.range.today:hover.active,
+.datepicker table tr td.range.today.disabled.active,
+.datepicker table tr td.range.today.disabled:hover.active,
+.datepicker table tr td.range.today.disabled,
+.datepicker table tr td.range.today:hover.disabled,
+.datepicker table tr td.range.today.disabled.disabled,
+.datepicker table tr td.range.today.disabled:hover.disabled,
+.datepicker table tr td.range.today[disabled],
+.datepicker table tr td.range.today:hover[disabled],
+.datepicker table tr td.range.today.disabled[disabled],
+.datepicker table tr td.range.today.disabled:hover[disabled] {
+ background-color: #f3e97a;
+}
+.datepicker table tr td.range.today:active,
+.datepicker table tr td.range.today:hover:active,
+.datepicker table tr td.range.today.disabled:active,
+.datepicker table tr td.range.today.disabled:hover:active,
+.datepicker table tr td.range.today.active,
+.datepicker table tr td.range.today:hover.active,
+.datepicker table tr td.range.today.disabled.active,
+.datepicker table tr td.range.today.disabled:hover.active {
+ background-color: #efe24b \9;
+}
+.datepicker table tr td.selected,
+.datepicker table tr td.selected:hover,
+.datepicker table tr td.selected.disabled,
+.datepicker table tr td.selected.disabled:hover {
+ background-color: #9e9e9e;
+ background-image: -moz-linear-gradient(to bottom, #b3b3b3, #808080);
+ background-image: -ms-linear-gradient(to bottom, #b3b3b3, #808080);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(#808080));
+ background-image: -webkit-linear-gradient(to bottom, #b3b3b3, #808080);
+ background-image: -o-linear-gradient(to bottom, #b3b3b3, #808080);
+ background-image: linear-gradient(to bottom, #b3b3b3, #808080);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);
+ border-color: #808080 #808080 #595959;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.datepicker table tr td.selected:hover,
+.datepicker table tr td.selected:hover:hover,
+.datepicker table tr td.selected.disabled:hover,
+.datepicker table tr td.selected.disabled:hover:hover,
+.datepicker table tr td.selected:active,
+.datepicker table tr td.selected:hover:active,
+.datepicker table tr td.selected.disabled:active,
+.datepicker table tr td.selected.disabled:hover:active,
+.datepicker table tr td.selected.active,
+.datepicker table tr td.selected:hover.active,
+.datepicker table tr td.selected.disabled.active,
+.datepicker table tr td.selected.disabled:hover.active,
+.datepicker table tr td.selected.disabled,
+.datepicker table tr td.selected:hover.disabled,
+.datepicker table tr td.selected.disabled.disabled,
+.datepicker table tr td.selected.disabled:hover.disabled,
+.datepicker table tr td.selected[disabled],
+.datepicker table tr td.selected:hover[disabled],
+.datepicker table tr td.selected.disabled[disabled],
+.datepicker table tr td.selected.disabled:hover[disabled] {
+ background-color: #808080;
+}
+.datepicker table tr td.selected:active,
+.datepicker table tr td.selected:hover:active,
+.datepicker table tr td.selected.disabled:active,
+.datepicker table tr td.selected.disabled:hover:active,
+.datepicker table tr td.selected.active,
+.datepicker table tr td.selected:hover.active,
+.datepicker table tr td.selected.disabled.active,
+.datepicker table tr td.selected.disabled:hover.active {
+ background-color: #666666 \9;
+}
+.datepicker table tr td.active,
+.datepicker table tr td.active:hover,
+.datepicker table tr td.active.disabled,
+.datepicker table tr td.active.disabled:hover {
+ background-color: #006dcc;
+ background-image: -moz-linear-gradient(to bottom, #08c, #0044cc);
+ background-image: -ms-linear-gradient(to bottom, #08c, #0044cc);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0044cc));
+ background-image: -webkit-linear-gradient(to bottom, #08c, #0044cc);
+ background-image: -o-linear-gradient(to bottom, #08c, #0044cc);
+ background-image: linear-gradient(to bottom, #08c, #0044cc);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);
+ border-color: #0044cc #0044cc #002a80;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.datepicker table tr td.active:hover,
+.datepicker table tr td.active:hover:hover,
+.datepicker table tr td.active.disabled:hover,
+.datepicker table tr td.active.disabled:hover:hover,
+.datepicker table tr td.active:active,
+.datepicker table tr td.active:hover:active,
+.datepicker table tr td.active.disabled:active,
+.datepicker table tr td.active.disabled:hover:active,
+.datepicker table tr td.active.active,
+.datepicker table tr td.active:hover.active,
+.datepicker table tr td.active.disabled.active,
+.datepicker table tr td.active.disabled:hover.active,
+.datepicker table tr td.active.disabled,
+.datepicker table tr td.active:hover.disabled,
+.datepicker table tr td.active.disabled.disabled,
+.datepicker table tr td.active.disabled:hover.disabled,
+.datepicker table tr td.active[disabled],
+.datepicker table tr td.active:hover[disabled],
+.datepicker table tr td.active.disabled[disabled],
+.datepicker table tr td.active.disabled:hover[disabled] {
+ background-color: #0044cc;
+}
+.datepicker table tr td.active:active,
+.datepicker table tr td.active:hover:active,
+.datepicker table tr td.active.disabled:active,
+.datepicker table tr td.active.disabled:hover:active,
+.datepicker table tr td.active.active,
+.datepicker table tr td.active:hover.active,
+.datepicker table tr td.active.disabled.active,
+.datepicker table tr td.active.disabled:hover.active {
+ background-color: #003399 \9;
+}
+.datepicker table tr td span {
+ display: block;
+ width: 23%;
+ height: 54px;
+ line-height: 54px;
+ float: left;
+ margin: 1%;
+ cursor: pointer;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+.datepicker table tr td span:hover,
+.datepicker table tr td span.focused {
+ background: #eee;
+}
+.datepicker table tr td span.disabled,
+.datepicker table tr td span.disabled:hover {
+ background: none;
+ color: #999;
+ cursor: default;
+}
+.datepicker table tr td span.active,
+.datepicker table tr td span.active:hover,
+.datepicker table tr td span.active.disabled,
+.datepicker table tr td span.active.disabled:hover {
+ background-color: #006dcc;
+ background-image: -moz-linear-gradient(to bottom, #08c, #0044cc);
+ background-image: -ms-linear-gradient(to bottom, #08c, #0044cc);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0044cc));
+ background-image: -webkit-linear-gradient(to bottom, #08c, #0044cc);
+ background-image: -o-linear-gradient(to bottom, #08c, #0044cc);
+ background-image: linear-gradient(to bottom, #08c, #0044cc);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);
+ border-color: #0044cc #0044cc #002a80;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.datepicker table tr td span.active:hover,
+.datepicker table tr td span.active:hover:hover,
+.datepicker table tr td span.active.disabled:hover,
+.datepicker table tr td span.active.disabled:hover:hover,
+.datepicker table tr td span.active:active,
+.datepicker table tr td span.active:hover:active,
+.datepicker table tr td span.active.disabled:active,
+.datepicker table tr td span.active.disabled:hover:active,
+.datepicker table tr td span.active.active,
+.datepicker table tr td span.active:hover.active,
+.datepicker table tr td span.active.disabled.active,
+.datepicker table tr td span.active.disabled:hover.active,
+.datepicker table tr td span.active.disabled,
+.datepicker table tr td span.active:hover.disabled,
+.datepicker table tr td span.active.disabled.disabled,
+.datepicker table tr td span.active.disabled:hover.disabled,
+.datepicker table tr td span.active[disabled],
+.datepicker table tr td span.active:hover[disabled],
+.datepicker table tr td span.active.disabled[disabled],
+.datepicker table tr td span.active.disabled:hover[disabled] {
+ background-color: #0044cc;
+}
+.datepicker table tr td span.active:active,
+.datepicker table tr td span.active:hover:active,
+.datepicker table tr td span.active.disabled:active,
+.datepicker table tr td span.active.disabled:hover:active,
+.datepicker table tr td span.active.active,
+.datepicker table tr td span.active:hover.active,
+.datepicker table tr td span.active.disabled.active,
+.datepicker table tr td span.active.disabled:hover.active {
+ background-color: #003399 \9;
+}
+.datepicker table tr td span.old,
+.datepicker table tr td span.new {
+ color: #999;
+}
+.datepicker .datepicker-switch {
+ width: 145px;
+}
+.datepicker .datepicker-switch,
+.datepicker .prev,
+.datepicker .next,
+.datepicker tfoot tr th {
+ cursor: pointer;
+}
+.datepicker .datepicker-switch:hover,
+.datepicker .prev:hover,
+.datepicker .next:hover,
+.datepicker tfoot tr th:hover {
+ background: #eee;
+}
+.datepicker .prev.disabled,
+.datepicker .next.disabled {
+ visibility: hidden;
+}
+.datepicker .cw {
+ font-size: 10px;
+ width: 12px;
+ padding: 0 2px 0 5px;
+ vertical-align: middle;
+}
+.input-append.date .add-on,
+.input-prepend.date .add-on {
+ cursor: pointer;
+}
+.input-append.date .add-on i,
+.input-prepend.date .add-on i {
+ margin-top: 3px;
+}
+.input-daterange input {
+ text-align: center;
+}
+.input-daterange input:first-child {
+ -webkit-border-radius: 3px 0 0 3px;
+ -moz-border-radius: 3px 0 0 3px;
+ border-radius: 3px 0 0 3px;
+}
+.input-daterange input:last-child {
+ -webkit-border-radius: 0 3px 3px 0;
+ -moz-border-radius: 0 3px 3px 0;
+ border-radius: 0 3px 3px 0;
+}
+.input-daterange .add-on {
+ display: inline-block;
+ width: auto;
+ min-width: 16px;
+ height: 18px;
+ padding: 4px 5px;
+ font-weight: normal;
+ line-height: 18px;
+ text-align: center;
+ text-shadow: 0 1px 0 #fff;
+ vertical-align: middle;
+ background-color: #eee;
+ border: 1px solid #ccc;
+ margin-left: -5px;
+ margin-right: -5px;
+}
+/*# sourceMappingURL=bootstrap-datepicker.css.map */ \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.css.map b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.css.map
new file mode 100644
index 0000000..7e08a21
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["less/datepicker.less","build/build.less"],"names":[],"mappings":"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","sourcesContent":[".datepicker {\n\tpadding: 4px;\n\t.border-radius(@baseBorderRadius);\n\t&-inline {\n\t\twidth: 220px;\n\t}\n\tdirection: ltr;\n\t&-rtl {\n\t\tdirection: rtl;\n\t\t&.dropdown-menu { left: auto; }\n\t\ttable tr td span {\n\t\t\tfloat: right;\n\t\t}\n\t}\n\t&-dropdown {\n\t\ttop: 0;\n\t\tleft: 0;\n\t\t&:before {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\tborder-left: 7px solid transparent;\n\t\t\tborder-right: 7px solid transparent;\n\t\t\tborder-bottom: 7px solid @grayLight;\n\t\t\tborder-top: 0;\n\t\t\tborder-bottom-color: rgba(0,0,0,.2);\n\t\t\tposition: absolute;\n\t\t}\n\t\t&:after {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\tborder-left: 6px solid transparent;\n\t\t\tborder-right: 6px solid transparent;\n\t\t\tborder-bottom: 6px solid @white;\n\t\t\tborder-top: 0;\n\t\t\tposition: absolute;\n\t\t}\n\t\t&.datepicker-orient-left:before { left: 6px; }\n\t\t&.datepicker-orient-left:after { left: 7px; }\n\t\t&.datepicker-orient-right:before { right: 6px; }\n\t\t&.datepicker-orient-right:after { right: 7px; }\n\t\t&.datepicker-orient-bottom:before { top: -7px; }\n\t\t&.datepicker-orient-bottom:after { top: -6px; }\n\t\t&.datepicker-orient-top:before {\n\t\t\tbottom: -7px;\n\t\t\tborder-bottom: 0;\n\t\t\tborder-top: 7px solid @grayLight;\n\t\t}\n\t\t&.datepicker-orient-top:after {\n\t\t\tbottom: -6px;\n\t\t\tborder-bottom: 0;\n\t\t\tborder-top: 6px solid @white;\n\t\t}\n\t}\n\ttable {\n\t\tmargin: 0;\n\t\t-webkit-touch-callout: none;\n\t\t-webkit-user-select: none;\n\t\t-khtml-user-select: none;\n\t\t-moz-user-select: none;\n\t\t-ms-user-select: none;\n\t\tuser-select: none;\n\t}\n\ttd, th {\n\t\ttext-align: center;\n\t\twidth: 20px;\n\t\theight: 20px;\n\t\t.border-radius(4px);\n\n\t\tborder: none;\n\t}\n\t// Inline display inside a table presents some problems with\n\t// border and background colors.\n\t.table-striped & table tr {\n\t\ttd, th {\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\ttable tr td {\n\t\t&.day:hover,\n\t\t&.day.focused {\n\t\t\tbackground: @grayLighter;\n\t\t\tcursor: pointer;\n\t\t}\n\t\t&.old,\n\t\t&.new {\n\t\t\tcolor: @grayLight;\n\t\t}\n\t\t&.disabled,\n\t\t&.disabled:hover {\n\t\t\tbackground: none;\n\t\t\tcolor: @grayLight;\n\t\t\tcursor: default;\n\t\t}\n\t\t&.highlighted {\n\t\t\tbackground: @infoBackground;\n\t\t\tborder-radius: 0;\n\t\t}\n\t\t&.today,\n\t\t&.today:hover,\n\t\t&.today.disabled,\n\t\t&.today.disabled:hover {\n\t\t\t@todayBackground: lighten(@orange, 30%);\n\t\t\t.buttonBackground(@todayBackground, spin(@todayBackground, 20));\n\t\t\tcolor: #000;\n\t\t}\n\t\t&.today:hover:hover { // Thank bootstrap 2.0 for this selector...\n\t\t\t// TODO: Bump min BS to 2.1, use @textColor in buttonBackground above\n\t\t\tcolor: #000;\n\t\t}\n\t\t&.today.active:hover {\n\t\t\tcolor: #fff;\n\t\t}\n\t\t&.range,\n\t\t&.range:hover,\n\t\t&.range.disabled,\n\t\t&.range.disabled:hover {\n\t\t\tbackground: @grayLighter;\n\t\t\t.border-radius(0);\n\t\t}\n\t\t&.range.today,\n\t\t&.range.today:hover,\n\t\t&.range.today.disabled,\n\t\t&.range.today.disabled:hover {\n\t\t\t@todayBackground: mix(@orange, @grayLighter, 50%);\n\t\t\t.buttonBackground(@todayBackground, spin(@todayBackground, 20));\n\t\t\t.border-radius(0);\n\t\t}\n\t\t&.selected,\n\t\t&.selected:hover,\n\t\t&.selected.disabled,\n\t\t&.selected.disabled:hover {\n\t\t\t.buttonBackground(lighten(@grayLight, 10), darken(@grayLight, 10));\n\t\t\tcolor: #fff;\n\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t}\n\t\t&.active,\n\t\t&.active:hover,\n\t\t&.active.disabled,\n\t\t&.active.disabled:hover {\n\t\t\t.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));\n\t\t\tcolor: #fff;\n\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t}\n\t\tspan {\n\t\t\tdisplay: block;\n\t\t\twidth: 23%;\n\t\t\theight: 54px;\n\t\t\tline-height: 54px;\n\t\t\tfloat: left;\n\t\t\tmargin: 1%;\n\t\t\tcursor: pointer;\n\t\t\t.border-radius(4px);\n\t\t\t&:hover,\n\t\t\t&.focused {\n\t\t\t\tbackground: @grayLighter;\n\t\t\t}\n\t\t\t&.disabled,\n\t\t\t&.disabled:hover {\n\t\t\t\tbackground: none;\n\t\t\t\tcolor: @grayLight;\n\t\t\t\tcursor: default;\n\t\t\t}\n\t\t\t&.active,\n\t\t\t&.active:hover,\n\t\t\t&.active.disabled,\n\t\t\t&.active.disabled:hover {\n\t\t\t\t.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));\n\t\t\t\tcolor: #fff;\n\t\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t\t}\n\t\t\t&.old,\n\t\t\t&.new {\n\t\t\t\tcolor: @grayLight;\n\t\t\t}\n\t\t}\n\t}\n\n\t.datepicker-switch {\n\t\twidth: 145px;\n\t}\n\n\t.datepicker-switch,\n\t.prev,\n\t.next,\n\ttfoot tr th {\n\t\tcursor: pointer;\n\t\t&:hover {\n\t\t\tbackground: @grayLighter;\n\t\t}\n\t}\n\n\t.prev, .next {\n\t\t&.disabled {\n\t\t\tvisibility: hidden;\n\t\t}\n\t}\n\n\t// Basic styling for calendar-week cells\n\t.cw {\n\t\tfont-size: 10px;\n\t\twidth: 12px;\n\t\tpadding: 0 2px 0 5px;\n\t\tvertical-align: middle;\n\t}\n}\n.input-append,\n.input-prepend {\n\t&.date .add-on {\n\t\tcursor: pointer;\n\n\t\ti {\n\t\t\tmargin-top: 3px;\n\t\t}\n\t}\n}\n.input-daterange {\n\tinput {\n\t\ttext-align:center;\n\t}\n\tinput:first-child {\n\t\t.border-radius(3px 0 0 3px);\n\t}\n\tinput:last-child {\n\t\t.border-radius(0 3px 3px 0);\n\t}\n\t.add-on {\n\t\tdisplay: inline-block;\n\t\twidth: auto;\n\t\tmin-width: 16px;\n\t\theight: @baseLineHeight;\n\t\tpadding: 4px 5px;\n\t\tfont-weight: normal;\n\t\tline-height: @baseLineHeight;\n\t\ttext-align: center;\n\t\ttext-shadow: 0 1px 0 @white;\n\t\tvertical-align: middle;\n\t\tbackground-color: @grayLighter;\n\t\tborder: 1px solid #ccc;\n\t\tmargin-left: -5px;\n\t\tmargin-right: -5px;\n\t}\n}\n","// Datepicker .less buildfile. Includes select mixins/variables from bootstrap\n// and imports the included datepicker.less to output a minimal datepicker.css\n//\n// Usage:\n// lessc build.less datepicker.css\n//\n// Variables and mixins copied from bootstrap 2.0.2\n\n// Variables\n@grayLight: #999;\n@grayLighter: #eee;\n@white: #fff;\n@linkColor: #08c;\n@btnPrimaryBackground: @linkColor;\n@orange: #f89406;\n@infoBackground: #d9edf7;\n@baseLineHeight: 18px;\n@baseBorderRadius: 4px;\n\n// Mixins\n\n// Border Radius\n.border-radius(@radius: 5px) {\n -webkit-border-radius: @radius;\n -moz-border-radius: @radius;\n border-radius: @radius;\n}\n\n// Button backgrounds\n.buttonBackground(@startColor, @endColor) {\n .gradientBar(@startColor, @endColor);\n .reset-filter();\n &:hover, &:active, &.active, &.disabled, &[disabled] {\n background-color: @endColor;\n }\n &:active,\n &.active {\n background-color: darken(@endColor, 10%) e(\"\\9\");\n }\n}\n\n// Reset filters for IE\n.reset-filter() {\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n\n// Gradient Bar Colors for buttons and alerts\n.gradientBar(@primaryColor, @secondaryColor) {\n #gradient > .vertical(@primaryColor, @secondaryColor);\n border-color: @secondaryColor @secondaryColor darken(@secondaryColor, 15%);\n border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fadein(rgba(0,0,0,.1), 15%);\n}\n\n// Gradients\n#gradient {\n .vertical(@startColor: #555, @endColor: #333) {\n background-color: mix(@startColor, @endColor, 60%);\n background-image: -moz-linear-gradient(to bottom, @startColor, @endColor); // FF 3.6+\n background-image: -ms-linear-gradient(to bottom, @startColor, @endColor); // IE10\n background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+\n background-image: -webkit-linear-gradient(to bottom, @startColor, @endColor); // Safari 5.1+, Chrome 10+\n background-image: -o-linear-gradient(to bottom, @startColor, @endColor); // Opera 11.10\n background-image: linear-gradient(to bottom, @startColor, @endColor); // The standard\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",@startColor,@endColor)); // IE9 and down\n }\n}\n\n@import \"../less/datepicker.less\";\n"]} \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css
new file mode 100644
index 0000000..408f3af
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css
@@ -0,0 +1,7 @@
+/*!
+ * Datepicker for Bootstrap v1.8.0 (https://github.com/uxsolutions/bootstrap-datepicker)
+ *
+ * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
+ */
+
+.datepicker{padding:4px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker-rtl{direction:rtl}.datepicker-rtl.dropdown-menu{left:auto}.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0}.datepicker-dropdown:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #999;border-top:0;border-bottom-color:rgba(0,0,0,.2);position:absolute}.datepicker-dropdown:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;border-top:0;position:absolute}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-bottom:before{top:-7px}.datepicker-dropdown.datepicker-orient-bottom:after{top:-6px}.datepicker-dropdown.datepicker-orient-top:before{bottom:-7px;border-bottom:0;border-top:7px solid #999}.datepicker-dropdown.datepicker-orient-top:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker td,.datepicker th{text-align:center;width:20px;height:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.day.focused,.datepicker table tr td.day:hover{background:#eee;cursor:pointer}.datepicker table tr td.new,.datepicker table tr td.old{color:#999}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td.highlighted{background:#d9edf7;border-radius:0}.datepicker table tr td.today,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today:hover{background-color:#fde19a;background-image:-moz-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-ms-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdd49a),to(#fdf59a));background-image:-webkit-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-o-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:linear-gradient(to bottom,#fdd49a,#fdf59a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);border-color:#fdf59a #fdf59a #fbed50;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#000}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled.disabled,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover.disabled,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today.disabled:hover:hover,.datepicker table tr td.today.disabled:hover[disabled],.datepicker table tr td.today.disabled[disabled],.datepicker table tr td.today:active,.datepicker table tr td.today:hover,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover.disabled,.datepicker table tr td.today:hover:active,.datepicker table tr td.today:hover:hover,.datepicker table tr td.today:hover[disabled],.datepicker table tr td.today[disabled]{background-color:#fdf59a}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today:active,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover:active{background-color:#fbf069\9}.datepicker table tr td.today:hover:hover{color:#000}.datepicker table tr td.today.active:hover{color:#fff}.datepicker table tr td.range,.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:hover,.datepicker table tr td.range:hover{background:#eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today:hover{background-color:#f3d17a;background-image:-moz-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-ms-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f3c17a),to(#f3e97a));background-image:-webkit-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-o-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:linear-gradient(to bottom,#f3c17a,#f3e97a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);border-color:#f3e97a #f3e97a #edde34;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled.disabled,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover.disabled,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today.disabled:hover:hover,.datepicker table tr td.range.today.disabled:hover[disabled],.datepicker table tr td.range.today.disabled[disabled],.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover.disabled,.datepicker table tr td.range.today:hover:active,.datepicker table tr td.range.today:hover:hover,.datepicker table tr td.range.today:hover[disabled],.datepicker table tr td.range.today[disabled]{background-color:#f3e97a}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover:active{background-color:#efe24b\9}.datepicker table tr td.selected,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected:hover{background-color:#9e9e9e;background-image:-moz-linear-gradient(to bottom,#b3b3b3,grey);background-image:-ms-linear-gradient(to bottom,#b3b3b3,grey);background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3b3b3),to(grey));background-image:-webkit-linear-gradient(to bottom,#b3b3b3,grey);background-image:-o-linear-gradient(to bottom,#b3b3b3,grey);background-image:linear-gradient(to bottom,#b3b3b3,grey);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);border-color:grey grey #595959;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled.disabled,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover.disabled,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected.disabled:hover:hover,.datepicker table tr td.selected.disabled:hover[disabled],.datepicker table tr td.selected.disabled[disabled],.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover.disabled,.datepicker table tr td.selected:hover:active,.datepicker table tr td.selected:hover:hover,.datepicker table tr td.selected:hover[disabled],.datepicker table tr td.selected[disabled]{background-color:grey}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover:active{background-color:#666\9}.datepicker table tr td.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled.disabled,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover.disabled,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.disabled:hover:hover,.datepicker table tr td.active.disabled:hover[disabled],.datepicker table tr td.active.disabled[disabled],.datepicker table tr td.active:active,.datepicker table tr td.active:hover,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover.disabled,.datepicker table tr td.active:hover:active,.datepicker table tr td.active:hover:hover,.datepicker table tr td.active:hover[disabled],.datepicker table tr td.active[disabled]{background-color:#04c}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active:active,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover:active{background-color:#039\9}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.datepicker table tr td span.focused,.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled.disabled,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover.disabled,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active.disabled:hover[disabled],.datepicker table tr td span.active.disabled[disabled],.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover.disabled,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active:hover:hover,.datepicker table tr td span.active:hover[disabled],.datepicker table tr td span.active[disabled]{background-color:#04c}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active{background-color:#039\9}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#999}.datepicker .datepicker-switch{width:145px}.datepicker .datepicker-switch,.datepicker .next,.datepicker .prev,.datepicker tfoot tr th{cursor:pointer}.datepicker .datepicker-switch:hover,.datepicker .next:hover,.datepicker .prev:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .next.disabled,.datepicker .prev.disabled{visibility:hidden}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.input-append.date .add-on,.input-prepend.date .add-on{cursor:pointer}.input-append.date .add-on i,.input-prepend.date .add-on i{margin-top:3px}.input-daterange input{text-align:center}.input-daterange input:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-daterange input:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-daterange .add-on{display:inline-block;width:auto;min-width:16px;height:18px;padding:4px 5px;font-weight:400;line-height:18px;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:1px solid #ccc;margin-left:-5px;margin-right:-5px} \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.css b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.css
new file mode 100644
index 0000000..81d1236
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.css
@@ -0,0 +1,510 @@
+/*!
+ * Datepicker for Bootstrap v1.8.0 (https://github.com/uxsolutions/bootstrap-datepicker)
+ *
+ * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
+ */
+
+.datepicker {
+ padding: 4px;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ direction: ltr;
+}
+.datepicker-inline {
+ width: 220px;
+}
+.datepicker-rtl {
+ direction: rtl;
+}
+.datepicker-rtl.dropdown-menu {
+ left: auto;
+}
+.datepicker-rtl table tr td span {
+ float: right;
+}
+.datepicker-dropdown {
+ top: 0;
+ left: 0;
+}
+.datepicker-dropdown:before {
+ content: '';
+ display: inline-block;
+ border-left: 7px solid transparent;
+ border-right: 7px solid transparent;
+ border-bottom: 7px solid #999;
+ border-top: 0;
+ border-bottom-color: rgba(0, 0, 0, 0.2);
+ position: absolute;
+}
+.datepicker-dropdown:after {
+ content: '';
+ display: inline-block;
+ border-left: 6px solid transparent;
+ border-right: 6px solid transparent;
+ border-bottom: 6px solid #fff;
+ border-top: 0;
+ position: absolute;
+}
+.datepicker-dropdown.datepicker-orient-left:before {
+ left: 6px;
+}
+.datepicker-dropdown.datepicker-orient-left:after {
+ left: 7px;
+}
+.datepicker-dropdown.datepicker-orient-right:before {
+ right: 6px;
+}
+.datepicker-dropdown.datepicker-orient-right:after {
+ right: 7px;
+}
+.datepicker-dropdown.datepicker-orient-bottom:before {
+ top: -7px;
+}
+.datepicker-dropdown.datepicker-orient-bottom:after {
+ top: -6px;
+}
+.datepicker-dropdown.datepicker-orient-top:before {
+ bottom: -7px;
+ border-bottom: 0;
+ border-top: 7px solid #999;
+}
+.datepicker-dropdown.datepicker-orient-top:after {
+ bottom: -6px;
+ border-bottom: 0;
+ border-top: 6px solid #fff;
+}
+.datepicker table {
+ margin: 0;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+.datepicker td,
+.datepicker th {
+ text-align: center;
+ width: 20px;
+ height: 20px;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ border: none;
+}
+.table-striped .datepicker table tr td,
+.table-striped .datepicker table tr th {
+ background-color: transparent;
+}
+.datepicker table tr td.day:hover,
+.datepicker table tr td.day.focused {
+ background: #eee;
+ cursor: pointer;
+}
+.datepicker table tr td.old,
+.datepicker table tr td.new {
+ color: #999;
+}
+.datepicker table tr td.disabled,
+.datepicker table tr td.disabled:hover {
+ background: none;
+ color: #999;
+ cursor: default;
+}
+.datepicker table tr td.highlighted {
+ background: #d9edf7;
+ border-radius: 0;
+}
+.datepicker table tr td.today,
+.datepicker table tr td.today:hover,
+.datepicker table tr td.today.disabled,
+.datepicker table tr td.today.disabled:hover {
+ background-color: #fde19a;
+ background-image: -moz-linear-gradient(to bottom, #fdd49a, #fdf59a);
+ background-image: -ms-linear-gradient(to bottom, #fdd49a, #fdf59a);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a));
+ background-image: -webkit-linear-gradient(to bottom, #fdd49a, #fdf59a);
+ background-image: -o-linear-gradient(to bottom, #fdd49a, #fdf59a);
+ background-image: linear-gradient(to bottom, #fdd49a, #fdf59a);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);
+ border-color: #fdf59a #fdf59a #fbed50;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ color: #000;
+}
+.datepicker table tr td.today:hover,
+.datepicker table tr td.today:hover:hover,
+.datepicker table tr td.today.disabled:hover,
+.datepicker table tr td.today.disabled:hover:hover,
+.datepicker table tr td.today:active,
+.datepicker table tr td.today:hover:active,
+.datepicker table tr td.today.disabled:active,
+.datepicker table tr td.today.disabled:hover:active,
+.datepicker table tr td.today.active,
+.datepicker table tr td.today:hover.active,
+.datepicker table tr td.today.disabled.active,
+.datepicker table tr td.today.disabled:hover.active,
+.datepicker table tr td.today.disabled,
+.datepicker table tr td.today:hover.disabled,
+.datepicker table tr td.today.disabled.disabled,
+.datepicker table tr td.today.disabled:hover.disabled,
+.datepicker table tr td.today[disabled],
+.datepicker table tr td.today:hover[disabled],
+.datepicker table tr td.today.disabled[disabled],
+.datepicker table tr td.today.disabled:hover[disabled] {
+ background-color: #fdf59a;
+}
+.datepicker table tr td.today:active,
+.datepicker table tr td.today:hover:active,
+.datepicker table tr td.today.disabled:active,
+.datepicker table tr td.today.disabled:hover:active,
+.datepicker table tr td.today.active,
+.datepicker table tr td.today:hover.active,
+.datepicker table tr td.today.disabled.active,
+.datepicker table tr td.today.disabled:hover.active {
+ background-color: #fbf069 \9;
+}
+.datepicker table tr td.today:hover:hover {
+ color: #000;
+}
+.datepicker table tr td.today.active:hover {
+ color: #fff;
+}
+.datepicker table tr td.range,
+.datepicker table tr td.range:hover,
+.datepicker table tr td.range.disabled,
+.datepicker table tr td.range.disabled:hover {
+ background: #eee;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+}
+.datepicker table tr td.range.today,
+.datepicker table tr td.range.today:hover,
+.datepicker table tr td.range.today.disabled,
+.datepicker table tr td.range.today.disabled:hover {
+ background-color: #f3d17a;
+ background-image: -moz-linear-gradient(to bottom, #f3c17a, #f3e97a);
+ background-image: -ms-linear-gradient(to bottom, #f3c17a, #f3e97a);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3c17a), to(#f3e97a));
+ background-image: -webkit-linear-gradient(to bottom, #f3c17a, #f3e97a);
+ background-image: -o-linear-gradient(to bottom, #f3c17a, #f3e97a);
+ background-image: linear-gradient(to bottom, #f3c17a, #f3e97a);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);
+ border-color: #f3e97a #f3e97a #edde34;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+}
+.datepicker table tr td.range.today:hover,
+.datepicker table tr td.range.today:hover:hover,
+.datepicker table tr td.range.today.disabled:hover,
+.datepicker table tr td.range.today.disabled:hover:hover,
+.datepicker table tr td.range.today:active,
+.datepicker table tr td.range.today:hover:active,
+.datepicker table tr td.range.today.disabled:active,
+.datepicker table tr td.range.today.disabled:hover:active,
+.datepicker table tr td.range.today.active,
+.datepicker table tr td.range.today:hover.active,
+.datepicker table tr td.range.today.disabled.active,
+.datepicker table tr td.range.today.disabled:hover.active,
+.datepicker table tr td.range.today.disabled,
+.datepicker table tr td.range.today:hover.disabled,
+.datepicker table tr td.range.today.disabled.disabled,
+.datepicker table tr td.range.today.disabled:hover.disabled,
+.datepicker table tr td.range.today[disabled],
+.datepicker table tr td.range.today:hover[disabled],
+.datepicker table tr td.range.today.disabled[disabled],
+.datepicker table tr td.range.today.disabled:hover[disabled] {
+ background-color: #f3e97a;
+}
+.datepicker table tr td.range.today:active,
+.datepicker table tr td.range.today:hover:active,
+.datepicker table tr td.range.today.disabled:active,
+.datepicker table tr td.range.today.disabled:hover:active,
+.datepicker table tr td.range.today.active,
+.datepicker table tr td.range.today:hover.active,
+.datepicker table tr td.range.today.disabled.active,
+.datepicker table tr td.range.today.disabled:hover.active {
+ background-color: #efe24b \9;
+}
+.datepicker table tr td.selected,
+.datepicker table tr td.selected:hover,
+.datepicker table tr td.selected.disabled,
+.datepicker table tr td.selected.disabled:hover {
+ background-color: #9e9e9e;
+ background-image: -moz-linear-gradient(to bottom, #b3b3b3, #808080);
+ background-image: -ms-linear-gradient(to bottom, #b3b3b3, #808080);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(#808080));
+ background-image: -webkit-linear-gradient(to bottom, #b3b3b3, #808080);
+ background-image: -o-linear-gradient(to bottom, #b3b3b3, #808080);
+ background-image: linear-gradient(to bottom, #b3b3b3, #808080);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);
+ border-color: #808080 #808080 #595959;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.datepicker table tr td.selected:hover,
+.datepicker table tr td.selected:hover:hover,
+.datepicker table tr td.selected.disabled:hover,
+.datepicker table tr td.selected.disabled:hover:hover,
+.datepicker table tr td.selected:active,
+.datepicker table tr td.selected:hover:active,
+.datepicker table tr td.selected.disabled:active,
+.datepicker table tr td.selected.disabled:hover:active,
+.datepicker table tr td.selected.active,
+.datepicker table tr td.selected:hover.active,
+.datepicker table tr td.selected.disabled.active,
+.datepicker table tr td.selected.disabled:hover.active,
+.datepicker table tr td.selected.disabled,
+.datepicker table tr td.selected:hover.disabled,
+.datepicker table tr td.selected.disabled.disabled,
+.datepicker table tr td.selected.disabled:hover.disabled,
+.datepicker table tr td.selected[disabled],
+.datepicker table tr td.selected:hover[disabled],
+.datepicker table tr td.selected.disabled[disabled],
+.datepicker table tr td.selected.disabled:hover[disabled] {
+ background-color: #808080;
+}
+.datepicker table tr td.selected:active,
+.datepicker table tr td.selected:hover:active,
+.datepicker table tr td.selected.disabled:active,
+.datepicker table tr td.selected.disabled:hover:active,
+.datepicker table tr td.selected.active,
+.datepicker table tr td.selected:hover.active,
+.datepicker table tr td.selected.disabled.active,
+.datepicker table tr td.selected.disabled:hover.active {
+ background-color: #666666 \9;
+}
+.datepicker table tr td.active,
+.datepicker table tr td.active:hover,
+.datepicker table tr td.active.disabled,
+.datepicker table tr td.active.disabled:hover {
+ background-color: #006dcc;
+ background-image: -moz-linear-gradient(to bottom, #08c, #0044cc);
+ background-image: -ms-linear-gradient(to bottom, #08c, #0044cc);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0044cc));
+ background-image: -webkit-linear-gradient(to bottom, #08c, #0044cc);
+ background-image: -o-linear-gradient(to bottom, #08c, #0044cc);
+ background-image: linear-gradient(to bottom, #08c, #0044cc);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);
+ border-color: #0044cc #0044cc #002a80;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.datepicker table tr td.active:hover,
+.datepicker table tr td.active:hover:hover,
+.datepicker table tr td.active.disabled:hover,
+.datepicker table tr td.active.disabled:hover:hover,
+.datepicker table tr td.active:active,
+.datepicker table tr td.active:hover:active,
+.datepicker table tr td.active.disabled:active,
+.datepicker table tr td.active.disabled:hover:active,
+.datepicker table tr td.active.active,
+.datepicker table tr td.active:hover.active,
+.datepicker table tr td.active.disabled.active,
+.datepicker table tr td.active.disabled:hover.active,
+.datepicker table tr td.active.disabled,
+.datepicker table tr td.active:hover.disabled,
+.datepicker table tr td.active.disabled.disabled,
+.datepicker table tr td.active.disabled:hover.disabled,
+.datepicker table tr td.active[disabled],
+.datepicker table tr td.active:hover[disabled],
+.datepicker table tr td.active.disabled[disabled],
+.datepicker table tr td.active.disabled:hover[disabled] {
+ background-color: #0044cc;
+}
+.datepicker table tr td.active:active,
+.datepicker table tr td.active:hover:active,
+.datepicker table tr td.active.disabled:active,
+.datepicker table tr td.active.disabled:hover:active,
+.datepicker table tr td.active.active,
+.datepicker table tr td.active:hover.active,
+.datepicker table tr td.active.disabled.active,
+.datepicker table tr td.active.disabled:hover.active {
+ background-color: #003399 \9;
+}
+.datepicker table tr td span {
+ display: block;
+ width: 23%;
+ height: 54px;
+ line-height: 54px;
+ float: left;
+ margin: 1%;
+ cursor: pointer;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+.datepicker table tr td span:hover,
+.datepicker table tr td span.focused {
+ background: #eee;
+}
+.datepicker table tr td span.disabled,
+.datepicker table tr td span.disabled:hover {
+ background: none;
+ color: #999;
+ cursor: default;
+}
+.datepicker table tr td span.active,
+.datepicker table tr td span.active:hover,
+.datepicker table tr td span.active.disabled,
+.datepicker table tr td span.active.disabled:hover {
+ background-color: #006dcc;
+ background-image: -moz-linear-gradient(to bottom, #08c, #0044cc);
+ background-image: -ms-linear-gradient(to bottom, #08c, #0044cc);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0044cc));
+ background-image: -webkit-linear-gradient(to bottom, #08c, #0044cc);
+ background-image: -o-linear-gradient(to bottom, #08c, #0044cc);
+ background-image: linear-gradient(to bottom, #08c, #0044cc);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);
+ border-color: #0044cc #0044cc #002a80;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.datepicker table tr td span.active:hover,
+.datepicker table tr td span.active:hover:hover,
+.datepicker table tr td span.active.disabled:hover,
+.datepicker table tr td span.active.disabled:hover:hover,
+.datepicker table tr td span.active:active,
+.datepicker table tr td span.active:hover:active,
+.datepicker table tr td span.active.disabled:active,
+.datepicker table tr td span.active.disabled:hover:active,
+.datepicker table tr td span.active.active,
+.datepicker table tr td span.active:hover.active,
+.datepicker table tr td span.active.disabled.active,
+.datepicker table tr td span.active.disabled:hover.active,
+.datepicker table tr td span.active.disabled,
+.datepicker table tr td span.active:hover.disabled,
+.datepicker table tr td span.active.disabled.disabled,
+.datepicker table tr td span.active.disabled:hover.disabled,
+.datepicker table tr td span.active[disabled],
+.datepicker table tr td span.active:hover[disabled],
+.datepicker table tr td span.active.disabled[disabled],
+.datepicker table tr td span.active.disabled:hover[disabled] {
+ background-color: #0044cc;
+}
+.datepicker table tr td span.active:active,
+.datepicker table tr td span.active:hover:active,
+.datepicker table tr td span.active.disabled:active,
+.datepicker table tr td span.active.disabled:hover:active,
+.datepicker table tr td span.active.active,
+.datepicker table tr td span.active:hover.active,
+.datepicker table tr td span.active.disabled.active,
+.datepicker table tr td span.active.disabled:hover.active {
+ background-color: #003399 \9;
+}
+.datepicker table tr td span.old,
+.datepicker table tr td span.new {
+ color: #999;
+}
+.datepicker .datepicker-switch {
+ width: 145px;
+}
+.datepicker .datepicker-switch,
+.datepicker .prev,
+.datepicker .next,
+.datepicker tfoot tr th {
+ cursor: pointer;
+}
+.datepicker .datepicker-switch:hover,
+.datepicker .prev:hover,
+.datepicker .next:hover,
+.datepicker tfoot tr th:hover {
+ background: #eee;
+}
+.datepicker .prev.disabled,
+.datepicker .next.disabled {
+ visibility: hidden;
+}
+.datepicker .cw {
+ font-size: 10px;
+ width: 12px;
+ padding: 0 2px 0 5px;
+ vertical-align: middle;
+}
+.input-append.date .add-on,
+.input-prepend.date .add-on {
+ cursor: pointer;
+}
+.input-append.date .add-on i,
+.input-prepend.date .add-on i {
+ margin-top: 3px;
+}
+.input-daterange input {
+ text-align: center;
+}
+.input-daterange input:first-child {
+ -webkit-border-radius: 3px 0 0 3px;
+ -moz-border-radius: 3px 0 0 3px;
+ border-radius: 3px 0 0 3px;
+}
+.input-daterange input:last-child {
+ -webkit-border-radius: 0 3px 3px 0;
+ -moz-border-radius: 0 3px 3px 0;
+ border-radius: 0 3px 3px 0;
+}
+.input-daterange .add-on {
+ display: inline-block;
+ width: auto;
+ min-width: 16px;
+ height: 20px;
+ padding: 4px 5px;
+ font-weight: normal;
+ line-height: 20px;
+ text-align: center;
+ text-shadow: 0 1px 0 #fff;
+ vertical-align: middle;
+ background-color: #eee;
+ border: 1px solid #ccc;
+ margin-left: -5px;
+ margin-right: -5px;
+}
+.datepicker.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 1000;
+ float: left;
+ display: none;
+ min-width: 160px;
+ list-style: none;
+ background-color: #fff;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ -webkit-background-clip: padding-box;
+ -moz-background-clip: padding;
+ background-clip: padding-box;
+ *border-right-width: 2px;
+ *border-bottom-width: 2px;
+ color: #333333;
+ font-size: 13px;
+ line-height: 20px;
+}
+.datepicker.dropdown-menu th,
+.datepicker.datepicker-inline th,
+.datepicker.dropdown-menu td,
+.datepicker.datepicker-inline td {
+ padding: 4px 5px;
+}
+/*# sourceMappingURL=bootstrap-datepicker.standalone.css.map */ \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.css.map b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.css.map
new file mode 100644
index 0000000..eab120c
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["less/datepicker.less","build/build.less","build/build_standalone.less"],"names":[],"mappings":"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","sourcesContent":[".datepicker {\n\tpadding: 4px;\n\t.border-radius(@baseBorderRadius);\n\t&-inline {\n\t\twidth: 220px;\n\t}\n\tdirection: ltr;\n\t&-rtl {\n\t\tdirection: rtl;\n\t\t&.dropdown-menu { left: auto; }\n\t\ttable tr td span {\n\t\t\tfloat: right;\n\t\t}\n\t}\n\t&-dropdown {\n\t\ttop: 0;\n\t\tleft: 0;\n\t\t&:before {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\tborder-left: 7px solid transparent;\n\t\t\tborder-right: 7px solid transparent;\n\t\t\tborder-bottom: 7px solid @grayLight;\n\t\t\tborder-top: 0;\n\t\t\tborder-bottom-color: rgba(0,0,0,.2);\n\t\t\tposition: absolute;\n\t\t}\n\t\t&:after {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\tborder-left: 6px solid transparent;\n\t\t\tborder-right: 6px solid transparent;\n\t\t\tborder-bottom: 6px solid @white;\n\t\t\tborder-top: 0;\n\t\t\tposition: absolute;\n\t\t}\n\t\t&.datepicker-orient-left:before { left: 6px; }\n\t\t&.datepicker-orient-left:after { left: 7px; }\n\t\t&.datepicker-orient-right:before { right: 6px; }\n\t\t&.datepicker-orient-right:after { right: 7px; }\n\t\t&.datepicker-orient-bottom:before { top: -7px; }\n\t\t&.datepicker-orient-bottom:after { top: -6px; }\n\t\t&.datepicker-orient-top:before {\n\t\t\tbottom: -7px;\n\t\t\tborder-bottom: 0;\n\t\t\tborder-top: 7px solid @grayLight;\n\t\t}\n\t\t&.datepicker-orient-top:after {\n\t\t\tbottom: -6px;\n\t\t\tborder-bottom: 0;\n\t\t\tborder-top: 6px solid @white;\n\t\t}\n\t}\n\ttable {\n\t\tmargin: 0;\n\t\t-webkit-touch-callout: none;\n\t\t-webkit-user-select: none;\n\t\t-khtml-user-select: none;\n\t\t-moz-user-select: none;\n\t\t-ms-user-select: none;\n\t\tuser-select: none;\n\t}\n\ttd, th {\n\t\ttext-align: center;\n\t\twidth: 20px;\n\t\theight: 20px;\n\t\t.border-radius(4px);\n\n\t\tborder: none;\n\t}\n\t// Inline display inside a table presents some problems with\n\t// border and background colors.\n\t.table-striped & table tr {\n\t\ttd, th {\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\ttable tr td {\n\t\t&.day:hover,\n\t\t&.day.focused {\n\t\t\tbackground: @grayLighter;\n\t\t\tcursor: pointer;\n\t\t}\n\t\t&.old,\n\t\t&.new {\n\t\t\tcolor: @grayLight;\n\t\t}\n\t\t&.disabled,\n\t\t&.disabled:hover {\n\t\t\tbackground: none;\n\t\t\tcolor: @grayLight;\n\t\t\tcursor: default;\n\t\t}\n\t\t&.highlighted {\n\t\t\tbackground: @infoBackground;\n\t\t\tborder-radius: 0;\n\t\t}\n\t\t&.today,\n\t\t&.today:hover,\n\t\t&.today.disabled,\n\t\t&.today.disabled:hover {\n\t\t\t@todayBackground: lighten(@orange, 30%);\n\t\t\t.buttonBackground(@todayBackground, spin(@todayBackground, 20));\n\t\t\tcolor: #000;\n\t\t}\n\t\t&.today:hover:hover { // Thank bootstrap 2.0 for this selector...\n\t\t\t// TODO: Bump min BS to 2.1, use @textColor in buttonBackground above\n\t\t\tcolor: #000;\n\t\t}\n\t\t&.today.active:hover {\n\t\t\tcolor: #fff;\n\t\t}\n\t\t&.range,\n\t\t&.range:hover,\n\t\t&.range.disabled,\n\t\t&.range.disabled:hover {\n\t\t\tbackground: @grayLighter;\n\t\t\t.border-radius(0);\n\t\t}\n\t\t&.range.today,\n\t\t&.range.today:hover,\n\t\t&.range.today.disabled,\n\t\t&.range.today.disabled:hover {\n\t\t\t@todayBackground: mix(@orange, @grayLighter, 50%);\n\t\t\t.buttonBackground(@todayBackground, spin(@todayBackground, 20));\n\t\t\t.border-radius(0);\n\t\t}\n\t\t&.selected,\n\t\t&.selected:hover,\n\t\t&.selected.disabled,\n\t\t&.selected.disabled:hover {\n\t\t\t.buttonBackground(lighten(@grayLight, 10), darken(@grayLight, 10));\n\t\t\tcolor: #fff;\n\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t}\n\t\t&.active,\n\t\t&.active:hover,\n\t\t&.active.disabled,\n\t\t&.active.disabled:hover {\n\t\t\t.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));\n\t\t\tcolor: #fff;\n\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t}\n\t\tspan {\n\t\t\tdisplay: block;\n\t\t\twidth: 23%;\n\t\t\theight: 54px;\n\t\t\tline-height: 54px;\n\t\t\tfloat: left;\n\t\t\tmargin: 1%;\n\t\t\tcursor: pointer;\n\t\t\t.border-radius(4px);\n\t\t\t&:hover,\n\t\t\t&.focused {\n\t\t\t\tbackground: @grayLighter;\n\t\t\t}\n\t\t\t&.disabled,\n\t\t\t&.disabled:hover {\n\t\t\t\tbackground: none;\n\t\t\t\tcolor: @grayLight;\n\t\t\t\tcursor: default;\n\t\t\t}\n\t\t\t&.active,\n\t\t\t&.active:hover,\n\t\t\t&.active.disabled,\n\t\t\t&.active.disabled:hover {\n\t\t\t\t.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));\n\t\t\t\tcolor: #fff;\n\t\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t\t}\n\t\t\t&.old,\n\t\t\t&.new {\n\t\t\t\tcolor: @grayLight;\n\t\t\t}\n\t\t}\n\t}\n\n\t.datepicker-switch {\n\t\twidth: 145px;\n\t}\n\n\t.datepicker-switch,\n\t.prev,\n\t.next,\n\ttfoot tr th {\n\t\tcursor: pointer;\n\t\t&:hover {\n\t\t\tbackground: @grayLighter;\n\t\t}\n\t}\n\n\t.prev, .next {\n\t\t&.disabled {\n\t\t\tvisibility: hidden;\n\t\t}\n\t}\n\n\t// Basic styling for calendar-week cells\n\t.cw {\n\t\tfont-size: 10px;\n\t\twidth: 12px;\n\t\tpadding: 0 2px 0 5px;\n\t\tvertical-align: middle;\n\t}\n}\n.input-append,\n.input-prepend {\n\t&.date .add-on {\n\t\tcursor: pointer;\n\n\t\ti {\n\t\t\tmargin-top: 3px;\n\t\t}\n\t}\n}\n.input-daterange {\n\tinput {\n\t\ttext-align:center;\n\t}\n\tinput:first-child {\n\t\t.border-radius(3px 0 0 3px);\n\t}\n\tinput:last-child {\n\t\t.border-radius(0 3px 3px 0);\n\t}\n\t.add-on {\n\t\tdisplay: inline-block;\n\t\twidth: auto;\n\t\tmin-width: 16px;\n\t\theight: @baseLineHeight;\n\t\tpadding: 4px 5px;\n\t\tfont-weight: normal;\n\t\tline-height: @baseLineHeight;\n\t\ttext-align: center;\n\t\ttext-shadow: 0 1px 0 @white;\n\t\tvertical-align: middle;\n\t\tbackground-color: @grayLighter;\n\t\tborder: 1px solid #ccc;\n\t\tmargin-left: -5px;\n\t\tmargin-right: -5px;\n\t}\n}\n","// Datepicker .less buildfile. Includes select mixins/variables from bootstrap\n// and imports the included datepicker.less to output a minimal datepicker.css\n//\n// Usage:\n// lessc build.less datepicker.css\n//\n// Variables and mixins copied from bootstrap 2.0.2\n\n// Variables\n@grayLight: #999;\n@grayLighter: #eee;\n@white: #fff;\n@linkColor: #08c;\n@btnPrimaryBackground: @linkColor;\n@orange: #f89406;\n@infoBackground: #d9edf7;\n@baseLineHeight: 18px;\n@baseBorderRadius: 4px;\n\n// Mixins\n\n// Border Radius\n.border-radius(@radius: 5px) {\n -webkit-border-radius: @radius;\n -moz-border-radius: @radius;\n border-radius: @radius;\n}\n\n// Button backgrounds\n.buttonBackground(@startColor, @endColor) {\n .gradientBar(@startColor, @endColor);\n .reset-filter();\n &:hover, &:active, &.active, &.disabled, &[disabled] {\n background-color: @endColor;\n }\n &:active,\n &.active {\n background-color: darken(@endColor, 10%) e(\"\\9\");\n }\n}\n\n// Reset filters for IE\n.reset-filter() {\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n\n// Gradient Bar Colors for buttons and alerts\n.gradientBar(@primaryColor, @secondaryColor) {\n #gradient > .vertical(@primaryColor, @secondaryColor);\n border-color: @secondaryColor @secondaryColor darken(@secondaryColor, 15%);\n border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fadein(rgba(0,0,0,.1), 15%);\n}\n\n// Gradients\n#gradient {\n .vertical(@startColor: #555, @endColor: #333) {\n background-color: mix(@startColor, @endColor, 60%);\n background-image: -moz-linear-gradient(to bottom, @startColor, @endColor); // FF 3.6+\n background-image: -ms-linear-gradient(to bottom, @startColor, @endColor); // IE10\n background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+\n background-image: -webkit-linear-gradient(to bottom, @startColor, @endColor); // Safari 5.1+, Chrome 10+\n background-image: -o-linear-gradient(to bottom, @startColor, @endColor); // Opera 11.10\n background-image: linear-gradient(to bottom, @startColor, @endColor); // The standard\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",@startColor,@endColor)); // IE9 and down\n }\n}\n\n@import \"../less/datepicker.less\";\n","// Datepicker standalone .less buildfile. Includes all necessary mixins/variables/rules from bootstrap\n// and imports the included datepicker.less to output a minimal standalone datepicker.css\n//\n// Usage:\n// lessc build_standalone.less datepicker.css\n//\n// Variables, mixins, and rules copied from bootstrap 2.0.2\n\n@import \"build.less\";\n\n// Dropdown css\n\n@zindexDropdown: 1000;\n@grayDark: #333;\n@baseLineHeight: 20px;\n@tableBackground: transparent; // overall background-color\n@dropdownBackground: @white;\n@dropdownBorder: rgba(0,0,0,.2);\n@dropdownLinkColor: @grayDark;\n@dropdownLinkColorHover: @white;\n@dropdownLinkBackgroundHover: @linkColor;\n\n// Drop shadows\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow;\n -moz-box-shadow: @shadow;\n box-shadow: @shadow;\n}\n\n// The dropdown menu (ul)\n// ----------------------\n.datepicker{\n &.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: @zindexDropdown;\n float: left;\n display: none; // none by default, but block on \"open\" of the menu\n min-width: 160px;\n list-style: none;\n background-color: @dropdownBackground;\n border: 1px solid #ccc;\n border: 1px solid rgba(0,0,0,.2);\n .border-radius(5px);\n .box-shadow(0 5px 10px rgba(0,0,0,.2));\n -webkit-background-clip: padding-box;\n -moz-background-clip: padding;\n background-clip: padding-box;\n *border-right-width: 2px;\n *border-bottom-width: 2px;\n\n // Normally inherited from bootstrap's `body`\n color: #333333;\n font-size:13px;\n line-height: @baseLineHeight;\n }\n\n &.dropdown-menu, &.datepicker-inline {\n th, td {\n padding: 4px 5px;\n }\n }\n}\n"]} \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.min.css b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.min.css
new file mode 100644
index 0000000..3c3dcf5
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.min.css
@@ -0,0 +1,7 @@
+/*!
+ * Datepicker for Bootstrap v1.8.0 (https://github.com/uxsolutions/bootstrap-datepicker)
+ *
+ * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
+ */
+
+.datepicker{padding:4px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker-rtl{direction:rtl}.datepicker-rtl.dropdown-menu{left:auto}.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0}.datepicker-dropdown:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #999;border-top:0;border-bottom-color:rgba(0,0,0,.2);position:absolute}.datepicker-dropdown:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;border-top:0;position:absolute}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-bottom:before{top:-7px}.datepicker-dropdown.datepicker-orient-bottom:after{top:-6px}.datepicker-dropdown.datepicker-orient-top:before{bottom:-7px;border-bottom:0;border-top:7px solid #999}.datepicker-dropdown.datepicker-orient-top:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker td,.datepicker th{text-align:center;width:20px;height:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.day.focused,.datepicker table tr td.day:hover{background:#eee;cursor:pointer}.datepicker table tr td.new,.datepicker table tr td.old{color:#999}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td.highlighted{background:#d9edf7;border-radius:0}.datepicker table tr td.today,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today:hover{background-color:#fde19a;background-image:-moz-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-ms-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdd49a),to(#fdf59a));background-image:-webkit-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-o-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:linear-gradient(to bottom,#fdd49a,#fdf59a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);border-color:#fdf59a #fdf59a #fbed50;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#000}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled.disabled,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover.disabled,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today.disabled:hover:hover,.datepicker table tr td.today.disabled:hover[disabled],.datepicker table tr td.today.disabled[disabled],.datepicker table tr td.today:active,.datepicker table tr td.today:hover,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover.disabled,.datepicker table tr td.today:hover:active,.datepicker table tr td.today:hover:hover,.datepicker table tr td.today:hover[disabled],.datepicker table tr td.today[disabled]{background-color:#fdf59a}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today:active,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover:active{background-color:#fbf069\9}.datepicker table tr td.today:hover:hover{color:#000}.datepicker table tr td.today.active:hover{color:#fff}.datepicker table tr td.range,.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:hover,.datepicker table tr td.range:hover{background:#eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today:hover{background-color:#f3d17a;background-image:-moz-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-ms-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f3c17a),to(#f3e97a));background-image:-webkit-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-o-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:linear-gradient(to bottom,#f3c17a,#f3e97a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);border-color:#f3e97a #f3e97a #edde34;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled.disabled,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover.disabled,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today.disabled:hover:hover,.datepicker table tr td.range.today.disabled:hover[disabled],.datepicker table tr td.range.today.disabled[disabled],.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover.disabled,.datepicker table tr td.range.today:hover:active,.datepicker table tr td.range.today:hover:hover,.datepicker table tr td.range.today:hover[disabled],.datepicker table tr td.range.today[disabled]{background-color:#f3e97a}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover:active{background-color:#efe24b\9}.datepicker table tr td.selected,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected:hover{background-color:#9e9e9e;background-image:-moz-linear-gradient(to bottom,#b3b3b3,grey);background-image:-ms-linear-gradient(to bottom,#b3b3b3,grey);background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3b3b3),to(grey));background-image:-webkit-linear-gradient(to bottom,#b3b3b3,grey);background-image:-o-linear-gradient(to bottom,#b3b3b3,grey);background-image:linear-gradient(to bottom,#b3b3b3,grey);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);border-color:grey grey #595959;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled.disabled,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover.disabled,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected.disabled:hover:hover,.datepicker table tr td.selected.disabled:hover[disabled],.datepicker table tr td.selected.disabled[disabled],.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover.disabled,.datepicker table tr td.selected:hover:active,.datepicker table tr td.selected:hover:hover,.datepicker table tr td.selected:hover[disabled],.datepicker table tr td.selected[disabled]{background-color:grey}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover:active{background-color:#666\9}.datepicker table tr td.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled.disabled,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover.disabled,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.disabled:hover:hover,.datepicker table tr td.active.disabled:hover[disabled],.datepicker table tr td.active.disabled[disabled],.datepicker table tr td.active:active,.datepicker table tr td.active:hover,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover.disabled,.datepicker table tr td.active:hover:active,.datepicker table tr td.active:hover:hover,.datepicker table tr td.active:hover[disabled],.datepicker table tr td.active[disabled]{background-color:#04c}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active:active,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover:active{background-color:#039\9}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.datepicker table tr td span.focused,.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled.disabled,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover.disabled,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active.disabled:hover[disabled],.datepicker table tr td span.active.disabled[disabled],.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover.disabled,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active:hover:hover,.datepicker table tr td span.active:hover[disabled],.datepicker table tr td span.active[disabled]{background-color:#04c}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active{background-color:#039\9}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#999}.datepicker .datepicker-switch{width:145px}.datepicker .datepicker-switch,.datepicker .next,.datepicker .prev,.datepicker tfoot tr th{cursor:pointer}.datepicker .datepicker-switch:hover,.datepicker .next:hover,.datepicker .prev:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .next.disabled,.datepicker .prev.disabled{visibility:hidden}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.input-append.date .add-on,.input-prepend.date .add-on{cursor:pointer}.input-append.date .add-on i,.input-prepend.date .add-on i{margin-top:3px}.input-daterange input{text-align:center}.input-daterange input:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-daterange input:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-daterange .add-on{display:inline-block;width:auto;min-width:16px;height:20px;padding:4px 5px;font-weight:400;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:1px solid #ccc;margin-left:-5px;margin-right:-5px}.datepicker.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;*border-right-width:2px;*border-bottom-width:2px;color:#333;font-size:13px;line-height:20px}.datepicker.datepicker-inline td,.datepicker.datepicker-inline th,.datepicker.dropdown-menu td,.datepicker.dropdown-menu th{padding:4px 5px} \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css
new file mode 100644
index 0000000..4e4ee8f
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css
@@ -0,0 +1,683 @@
+/*!
+ * Datepicker for Bootstrap v1.8.0 (https://github.com/uxsolutions/bootstrap-datepicker)
+ *
+ * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
+ */
+
+.datepicker {
+ border-radius: 4px;
+ direction: ltr;
+}
+.datepicker-inline {
+ width: 220px;
+}
+.datepicker-rtl {
+ direction: rtl;
+}
+.datepicker-rtl.dropdown-menu {
+ left: auto;
+}
+.datepicker-rtl table tr td span {
+ float: right;
+}
+.datepicker-dropdown {
+ top: 0;
+ left: 0;
+ padding: 4px;
+}
+.datepicker-dropdown:before {
+ content: '';
+ display: inline-block;
+ border-left: 7px solid transparent;
+ border-right: 7px solid transparent;
+ border-bottom: 7px solid rgba(0, 0, 0, 0.15);
+ border-top: 0;
+ border-bottom-color: rgba(0, 0, 0, 0.2);
+ position: absolute;
+}
+.datepicker-dropdown:after {
+ content: '';
+ display: inline-block;
+ border-left: 6px solid transparent;
+ border-right: 6px solid transparent;
+ border-bottom: 6px solid #fff;
+ border-top: 0;
+ position: absolute;
+}
+.datepicker-dropdown.datepicker-orient-left:before {
+ left: 6px;
+}
+.datepicker-dropdown.datepicker-orient-left:after {
+ left: 7px;
+}
+.datepicker-dropdown.datepicker-orient-right:before {
+ right: 6px;
+}
+.datepicker-dropdown.datepicker-orient-right:after {
+ right: 7px;
+}
+.datepicker-dropdown.datepicker-orient-bottom:before {
+ top: -7px;
+}
+.datepicker-dropdown.datepicker-orient-bottom:after {
+ top: -6px;
+}
+.datepicker-dropdown.datepicker-orient-top:before {
+ bottom: -7px;
+ border-bottom: 0;
+ border-top: 7px solid rgba(0, 0, 0, 0.15);
+}
+.datepicker-dropdown.datepicker-orient-top:after {
+ bottom: -6px;
+ border-bottom: 0;
+ border-top: 6px solid #fff;
+}
+.datepicker table {
+ margin: 0;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+.datepicker table tr td,
+.datepicker table tr th {
+ text-align: center;
+ width: 30px;
+ height: 30px;
+ border-radius: 4px;
+ border: none;
+}
+.table-striped .datepicker table tr td,
+.table-striped .datepicker table tr th {
+ background-color: transparent;
+}
+.datepicker table tr td.old,
+.datepicker table tr td.new {
+ color: #777777;
+}
+.datepicker table tr td.day:hover,
+.datepicker table tr td.focused {
+ background: #eeeeee;
+ cursor: pointer;
+}
+.datepicker table tr td.disabled,
+.datepicker table tr td.disabled:hover {
+ background: none;
+ color: #777777;
+ cursor: default;
+}
+.datepicker table tr td.highlighted {
+ color: #000;
+ background-color: #d9edf7;
+ border-color: #85c5e5;
+ border-radius: 0;
+}
+.datepicker table tr td.highlighted:focus,
+.datepicker table tr td.highlighted.focus {
+ color: #000;
+ background-color: #afd9ee;
+ border-color: #298fc2;
+}
+.datepicker table tr td.highlighted:hover {
+ color: #000;
+ background-color: #afd9ee;
+ border-color: #52addb;
+}
+.datepicker table tr td.highlighted:active,
+.datepicker table tr td.highlighted.active {
+ color: #000;
+ background-color: #afd9ee;
+ border-color: #52addb;
+}
+.datepicker table tr td.highlighted:active:hover,
+.datepicker table tr td.highlighted.active:hover,
+.datepicker table tr td.highlighted:active:focus,
+.datepicker table tr td.highlighted.active:focus,
+.datepicker table tr td.highlighted:active.focus,
+.datepicker table tr td.highlighted.active.focus {
+ color: #000;
+ background-color: #91cbe8;
+ border-color: #298fc2;
+}
+.datepicker table tr td.highlighted.disabled:hover,
+.datepicker table tr td.highlighted[disabled]:hover,
+fieldset[disabled] .datepicker table tr td.highlighted:hover,
+.datepicker table tr td.highlighted.disabled:focus,
+.datepicker table tr td.highlighted[disabled]:focus,
+fieldset[disabled] .datepicker table tr td.highlighted:focus,
+.datepicker table tr td.highlighted.disabled.focus,
+.datepicker table tr td.highlighted[disabled].focus,
+fieldset[disabled] .datepicker table tr td.highlighted.focus {
+ background-color: #d9edf7;
+ border-color: #85c5e5;
+}
+.datepicker table tr td.highlighted.focused {
+ background: #afd9ee;
+}
+.datepicker table tr td.highlighted.disabled,
+.datepicker table tr td.highlighted.disabled:active {
+ background: #d9edf7;
+ color: #777777;
+}
+.datepicker table tr td.today {
+ color: #000;
+ background-color: #ffdb99;
+ border-color: #ffb733;
+}
+.datepicker table tr td.today:focus,
+.datepicker table tr td.today.focus {
+ color: #000;
+ background-color: #ffc966;
+ border-color: #b37400;
+}
+.datepicker table tr td.today:hover {
+ color: #000;
+ background-color: #ffc966;
+ border-color: #f59e00;
+}
+.datepicker table tr td.today:active,
+.datepicker table tr td.today.active {
+ color: #000;
+ background-color: #ffc966;
+ border-color: #f59e00;
+}
+.datepicker table tr td.today:active:hover,
+.datepicker table tr td.today.active:hover,
+.datepicker table tr td.today:active:focus,
+.datepicker table tr td.today.active:focus,
+.datepicker table tr td.today:active.focus,
+.datepicker table tr td.today.active.focus {
+ color: #000;
+ background-color: #ffbc42;
+ border-color: #b37400;
+}
+.datepicker table tr td.today.disabled:hover,
+.datepicker table tr td.today[disabled]:hover,
+fieldset[disabled] .datepicker table tr td.today:hover,
+.datepicker table tr td.today.disabled:focus,
+.datepicker table tr td.today[disabled]:focus,
+fieldset[disabled] .datepicker table tr td.today:focus,
+.datepicker table tr td.today.disabled.focus,
+.datepicker table tr td.today[disabled].focus,
+fieldset[disabled] .datepicker table tr td.today.focus {
+ background-color: #ffdb99;
+ border-color: #ffb733;
+}
+.datepicker table tr td.today.focused {
+ background: #ffc966;
+}
+.datepicker table tr td.today.disabled,
+.datepicker table tr td.today.disabled:active {
+ background: #ffdb99;
+ color: #777777;
+}
+.datepicker table tr td.range {
+ color: #000;
+ background-color: #eeeeee;
+ border-color: #bbbbbb;
+ border-radius: 0;
+}
+.datepicker table tr td.range:focus,
+.datepicker table tr td.range.focus {
+ color: #000;
+ background-color: #d5d5d5;
+ border-color: #7c7c7c;
+}
+.datepicker table tr td.range:hover {
+ color: #000;
+ background-color: #d5d5d5;
+ border-color: #9d9d9d;
+}
+.datepicker table tr td.range:active,
+.datepicker table tr td.range.active {
+ color: #000;
+ background-color: #d5d5d5;
+ border-color: #9d9d9d;
+}
+.datepicker table tr td.range:active:hover,
+.datepicker table tr td.range.active:hover,
+.datepicker table tr td.range:active:focus,
+.datepicker table tr td.range.active:focus,
+.datepicker table tr td.range:active.focus,
+.datepicker table tr td.range.active.focus {
+ color: #000;
+ background-color: #c3c3c3;
+ border-color: #7c7c7c;
+}
+.datepicker table tr td.range.disabled:hover,
+.datepicker table tr td.range[disabled]:hover,
+fieldset[disabled] .datepicker table tr td.range:hover,
+.datepicker table tr td.range.disabled:focus,
+.datepicker table tr td.range[disabled]:focus,
+fieldset[disabled] .datepicker table tr td.range:focus,
+.datepicker table tr td.range.disabled.focus,
+.datepicker table tr td.range[disabled].focus,
+fieldset[disabled] .datepicker table tr td.range.focus {
+ background-color: #eeeeee;
+ border-color: #bbbbbb;
+}
+.datepicker table tr td.range.focused {
+ background: #d5d5d5;
+}
+.datepicker table tr td.range.disabled,
+.datepicker table tr td.range.disabled:active {
+ background: #eeeeee;
+ color: #777777;
+}
+.datepicker table tr td.range.highlighted {
+ color: #000;
+ background-color: #e4eef3;
+ border-color: #9dc1d3;
+}
+.datepicker table tr td.range.highlighted:focus,
+.datepicker table tr td.range.highlighted.focus {
+ color: #000;
+ background-color: #c1d7e3;
+ border-color: #4b88a6;
+}
+.datepicker table tr td.range.highlighted:hover {
+ color: #000;
+ background-color: #c1d7e3;
+ border-color: #73a6c0;
+}
+.datepicker table tr td.range.highlighted:active,
+.datepicker table tr td.range.highlighted.active {
+ color: #000;
+ background-color: #c1d7e3;
+ border-color: #73a6c0;
+}
+.datepicker table tr td.range.highlighted:active:hover,
+.datepicker table tr td.range.highlighted.active:hover,
+.datepicker table tr td.range.highlighted:active:focus,
+.datepicker table tr td.range.highlighted.active:focus,
+.datepicker table tr td.range.highlighted:active.focus,
+.datepicker table tr td.range.highlighted.active.focus {
+ color: #000;
+ background-color: #a8c8d8;
+ border-color: #4b88a6;
+}
+.datepicker table tr td.range.highlighted.disabled:hover,
+.datepicker table tr td.range.highlighted[disabled]:hover,
+fieldset[disabled] .datepicker table tr td.range.highlighted:hover,
+.datepicker table tr td.range.highlighted.disabled:focus,
+.datepicker table tr td.range.highlighted[disabled]:focus,
+fieldset[disabled] .datepicker table tr td.range.highlighted:focus,
+.datepicker table tr td.range.highlighted.disabled.focus,
+.datepicker table tr td.range.highlighted[disabled].focus,
+fieldset[disabled] .datepicker table tr td.range.highlighted.focus {
+ background-color: #e4eef3;
+ border-color: #9dc1d3;
+}
+.datepicker table tr td.range.highlighted.focused {
+ background: #c1d7e3;
+}
+.datepicker table tr td.range.highlighted.disabled,
+.datepicker table tr td.range.highlighted.disabled:active {
+ background: #e4eef3;
+ color: #777777;
+}
+.datepicker table tr td.range.today {
+ color: #000;
+ background-color: #f7ca77;
+ border-color: #f1a417;
+}
+.datepicker table tr td.range.today:focus,
+.datepicker table tr td.range.today.focus {
+ color: #000;
+ background-color: #f4b747;
+ border-color: #815608;
+}
+.datepicker table tr td.range.today:hover {
+ color: #000;
+ background-color: #f4b747;
+ border-color: #bf800c;
+}
+.datepicker table tr td.range.today:active,
+.datepicker table tr td.range.today.active {
+ color: #000;
+ background-color: #f4b747;
+ border-color: #bf800c;
+}
+.datepicker table tr td.range.today:active:hover,
+.datepicker table tr td.range.today.active:hover,
+.datepicker table tr td.range.today:active:focus,
+.datepicker table tr td.range.today.active:focus,
+.datepicker table tr td.range.today:active.focus,
+.datepicker table tr td.range.today.active.focus {
+ color: #000;
+ background-color: #f2aa25;
+ border-color: #815608;
+}
+.datepicker table tr td.range.today.disabled:hover,
+.datepicker table tr td.range.today[disabled]:hover,
+fieldset[disabled] .datepicker table tr td.range.today:hover,
+.datepicker table tr td.range.today.disabled:focus,
+.datepicker table tr td.range.today[disabled]:focus,
+fieldset[disabled] .datepicker table tr td.range.today:focus,
+.datepicker table tr td.range.today.disabled.focus,
+.datepicker table tr td.range.today[disabled].focus,
+fieldset[disabled] .datepicker table tr td.range.today.focus {
+ background-color: #f7ca77;
+ border-color: #f1a417;
+}
+.datepicker table tr td.range.today.disabled,
+.datepicker table tr td.range.today.disabled:active {
+ background: #f7ca77;
+ color: #777777;
+}
+.datepicker table tr td.selected,
+.datepicker table tr td.selected.highlighted {
+ color: #fff;
+ background-color: #777777;
+ border-color: #555555;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.datepicker table tr td.selected:focus,
+.datepicker table tr td.selected.highlighted:focus,
+.datepicker table tr td.selected.focus,
+.datepicker table tr td.selected.highlighted.focus {
+ color: #fff;
+ background-color: #5e5e5e;
+ border-color: #161616;
+}
+.datepicker table tr td.selected:hover,
+.datepicker table tr td.selected.highlighted:hover {
+ color: #fff;
+ background-color: #5e5e5e;
+ border-color: #373737;
+}
+.datepicker table tr td.selected:active,
+.datepicker table tr td.selected.highlighted:active,
+.datepicker table tr td.selected.active,
+.datepicker table tr td.selected.highlighted.active {
+ color: #fff;
+ background-color: #5e5e5e;
+ border-color: #373737;
+}
+.datepicker table tr td.selected:active:hover,
+.datepicker table tr td.selected.highlighted:active:hover,
+.datepicker table tr td.selected.active:hover,
+.datepicker table tr td.selected.highlighted.active:hover,
+.datepicker table tr td.selected:active:focus,
+.datepicker table tr td.selected.highlighted:active:focus,
+.datepicker table tr td.selected.active:focus,
+.datepicker table tr td.selected.highlighted.active:focus,
+.datepicker table tr td.selected:active.focus,
+.datepicker table tr td.selected.highlighted:active.focus,
+.datepicker table tr td.selected.active.focus,
+.datepicker table tr td.selected.highlighted.active.focus {
+ color: #fff;
+ background-color: #4c4c4c;
+ border-color: #161616;
+}
+.datepicker table tr td.selected.disabled:hover,
+.datepicker table tr td.selected.highlighted.disabled:hover,
+.datepicker table tr td.selected[disabled]:hover,
+.datepicker table tr td.selected.highlighted[disabled]:hover,
+fieldset[disabled] .datepicker table tr td.selected:hover,
+fieldset[disabled] .datepicker table tr td.selected.highlighted:hover,
+.datepicker table tr td.selected.disabled:focus,
+.datepicker table tr td.selected.highlighted.disabled:focus,
+.datepicker table tr td.selected[disabled]:focus,
+.datepicker table tr td.selected.highlighted[disabled]:focus,
+fieldset[disabled] .datepicker table tr td.selected:focus,
+fieldset[disabled] .datepicker table tr td.selected.highlighted:focus,
+.datepicker table tr td.selected.disabled.focus,
+.datepicker table tr td.selected.highlighted.disabled.focus,
+.datepicker table tr td.selected[disabled].focus,
+.datepicker table tr td.selected.highlighted[disabled].focus,
+fieldset[disabled] .datepicker table tr td.selected.focus,
+fieldset[disabled] .datepicker table tr td.selected.highlighted.focus {
+ background-color: #777777;
+ border-color: #555555;
+}
+.datepicker table tr td.active,
+.datepicker table tr td.active.highlighted {
+ color: #fff;
+ background-color: #337ab7;
+ border-color: #2e6da4;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.datepicker table tr td.active:focus,
+.datepicker table tr td.active.highlighted:focus,
+.datepicker table tr td.active.focus,
+.datepicker table tr td.active.highlighted.focus {
+ color: #fff;
+ background-color: #286090;
+ border-color: #122b40;
+}
+.datepicker table tr td.active:hover,
+.datepicker table tr td.active.highlighted:hover {
+ color: #fff;
+ background-color: #286090;
+ border-color: #204d74;
+}
+.datepicker table tr td.active:active,
+.datepicker table tr td.active.highlighted:active,
+.datepicker table tr td.active.active,
+.datepicker table tr td.active.highlighted.active {
+ color: #fff;
+ background-color: #286090;
+ border-color: #204d74;
+}
+.datepicker table tr td.active:active:hover,
+.datepicker table tr td.active.highlighted:active:hover,
+.datepicker table tr td.active.active:hover,
+.datepicker table tr td.active.highlighted.active:hover,
+.datepicker table tr td.active:active:focus,
+.datepicker table tr td.active.highlighted:active:focus,
+.datepicker table tr td.active.active:focus,
+.datepicker table tr td.active.highlighted.active:focus,
+.datepicker table tr td.active:active.focus,
+.datepicker table tr td.active.highlighted:active.focus,
+.datepicker table tr td.active.active.focus,
+.datepicker table tr td.active.highlighted.active.focus {
+ color: #fff;
+ background-color: #204d74;
+ border-color: #122b40;
+}
+.datepicker table tr td.active.disabled:hover,
+.datepicker table tr td.active.highlighted.disabled:hover,
+.datepicker table tr td.active[disabled]:hover,
+.datepicker table tr td.active.highlighted[disabled]:hover,
+fieldset[disabled] .datepicker table tr td.active:hover,
+fieldset[disabled] .datepicker table tr td.active.highlighted:hover,
+.datepicker table tr td.active.disabled:focus,
+.datepicker table tr td.active.highlighted.disabled:focus,
+.datepicker table tr td.active[disabled]:focus,
+.datepicker table tr td.active.highlighted[disabled]:focus,
+fieldset[disabled] .datepicker table tr td.active:focus,
+fieldset[disabled] .datepicker table tr td.active.highlighted:focus,
+.datepicker table tr td.active.disabled.focus,
+.datepicker table tr td.active.highlighted.disabled.focus,
+.datepicker table tr td.active[disabled].focus,
+.datepicker table tr td.active.highlighted[disabled].focus,
+fieldset[disabled] .datepicker table tr td.active.focus,
+fieldset[disabled] .datepicker table tr td.active.highlighted.focus {
+ background-color: #337ab7;
+ border-color: #2e6da4;
+}
+.datepicker table tr td span {
+ display: block;
+ width: 23%;
+ height: 54px;
+ line-height: 54px;
+ float: left;
+ margin: 1%;
+ cursor: pointer;
+ border-radius: 4px;
+}
+.datepicker table tr td span:hover,
+.datepicker table tr td span.focused {
+ background: #eeeeee;
+}
+.datepicker table tr td span.disabled,
+.datepicker table tr td span.disabled:hover {
+ background: none;
+ color: #777777;
+ cursor: default;
+}
+.datepicker table tr td span.active,
+.datepicker table tr td span.active:hover,
+.datepicker table tr td span.active.disabled,
+.datepicker table tr td span.active.disabled:hover {
+ color: #fff;
+ background-color: #337ab7;
+ border-color: #2e6da4;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.datepicker table tr td span.active:focus,
+.datepicker table tr td span.active:hover:focus,
+.datepicker table tr td span.active.disabled:focus,
+.datepicker table tr td span.active.disabled:hover:focus,
+.datepicker table tr td span.active.focus,
+.datepicker table tr td span.active:hover.focus,
+.datepicker table tr td span.active.disabled.focus,
+.datepicker table tr td span.active.disabled:hover.focus {
+ color: #fff;
+ background-color: #286090;
+ border-color: #122b40;
+}
+.datepicker table tr td span.active:hover,
+.datepicker table tr td span.active:hover:hover,
+.datepicker table tr td span.active.disabled:hover,
+.datepicker table tr td span.active.disabled:hover:hover {
+ color: #fff;
+ background-color: #286090;
+ border-color: #204d74;
+}
+.datepicker table tr td span.active:active,
+.datepicker table tr td span.active:hover:active,
+.datepicker table tr td span.active.disabled:active,
+.datepicker table tr td span.active.disabled:hover:active,
+.datepicker table tr td span.active.active,
+.datepicker table tr td span.active:hover.active,
+.datepicker table tr td span.active.disabled.active,
+.datepicker table tr td span.active.disabled:hover.active {
+ color: #fff;
+ background-color: #286090;
+ border-color: #204d74;
+}
+.datepicker table tr td span.active:active:hover,
+.datepicker table tr td span.active:hover:active:hover,
+.datepicker table tr td span.active.disabled:active:hover,
+.datepicker table tr td span.active.disabled:hover:active:hover,
+.datepicker table tr td span.active.active:hover,
+.datepicker table tr td span.active:hover.active:hover,
+.datepicker table tr td span.active.disabled.active:hover,
+.datepicker table tr td span.active.disabled:hover.active:hover,
+.datepicker table tr td span.active:active:focus,
+.datepicker table tr td span.active:hover:active:focus,
+.datepicker table tr td span.active.disabled:active:focus,
+.datepicker table tr td span.active.disabled:hover:active:focus,
+.datepicker table tr td span.active.active:focus,
+.datepicker table tr td span.active:hover.active:focus,
+.datepicker table tr td span.active.disabled.active:focus,
+.datepicker table tr td span.active.disabled:hover.active:focus,
+.datepicker table tr td span.active:active.focus,
+.datepicker table tr td span.active:hover:active.focus,
+.datepicker table tr td span.active.disabled:active.focus,
+.datepicker table tr td span.active.disabled:hover:active.focus,
+.datepicker table tr td span.active.active.focus,
+.datepicker table tr td span.active:hover.active.focus,
+.datepicker table tr td span.active.disabled.active.focus,
+.datepicker table tr td span.active.disabled:hover.active.focus {
+ color: #fff;
+ background-color: #204d74;
+ border-color: #122b40;
+}
+.datepicker table tr td span.active.disabled:hover,
+.datepicker table tr td span.active:hover.disabled:hover,
+.datepicker table tr td span.active.disabled.disabled:hover,
+.datepicker table tr td span.active.disabled:hover.disabled:hover,
+.datepicker table tr td span.active[disabled]:hover,
+.datepicker table tr td span.active:hover[disabled]:hover,
+.datepicker table tr td span.active.disabled[disabled]:hover,
+.datepicker table tr td span.active.disabled:hover[disabled]:hover,
+fieldset[disabled] .datepicker table tr td span.active:hover,
+fieldset[disabled] .datepicker table tr td span.active:hover:hover,
+fieldset[disabled] .datepicker table tr td span.active.disabled:hover,
+fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover,
+.datepicker table tr td span.active.disabled:focus,
+.datepicker table tr td span.active:hover.disabled:focus,
+.datepicker table tr td span.active.disabled.disabled:focus,
+.datepicker table tr td span.active.disabled:hover.disabled:focus,
+.datepicker table tr td span.active[disabled]:focus,
+.datepicker table tr td span.active:hover[disabled]:focus,
+.datepicker table tr td span.active.disabled[disabled]:focus,
+.datepicker table tr td span.active.disabled:hover[disabled]:focus,
+fieldset[disabled] .datepicker table tr td span.active:focus,
+fieldset[disabled] .datepicker table tr td span.active:hover:focus,
+fieldset[disabled] .datepicker table tr td span.active.disabled:focus,
+fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus,
+.datepicker table tr td span.active.disabled.focus,
+.datepicker table tr td span.active:hover.disabled.focus,
+.datepicker table tr td span.active.disabled.disabled.focus,
+.datepicker table tr td span.active.disabled:hover.disabled.focus,
+.datepicker table tr td span.active[disabled].focus,
+.datepicker table tr td span.active:hover[disabled].focus,
+.datepicker table tr td span.active.disabled[disabled].focus,
+.datepicker table tr td span.active.disabled:hover[disabled].focus,
+fieldset[disabled] .datepicker table tr td span.active.focus,
+fieldset[disabled] .datepicker table tr td span.active:hover.focus,
+fieldset[disabled] .datepicker table tr td span.active.disabled.focus,
+fieldset[disabled] .datepicker table tr td span.active.disabled:hover.focus {
+ background-color: #337ab7;
+ border-color: #2e6da4;
+}
+.datepicker table tr td span.old,
+.datepicker table tr td span.new {
+ color: #777777;
+}
+.datepicker .datepicker-switch {
+ width: 145px;
+}
+.datepicker .datepicker-switch,
+.datepicker .prev,
+.datepicker .next,
+.datepicker tfoot tr th {
+ cursor: pointer;
+}
+.datepicker .datepicker-switch:hover,
+.datepicker .prev:hover,
+.datepicker .next:hover,
+.datepicker tfoot tr th:hover {
+ background: #eeeeee;
+}
+.datepicker .prev.disabled,
+.datepicker .next.disabled {
+ visibility: hidden;
+}
+.datepicker .cw {
+ font-size: 10px;
+ width: 12px;
+ padding: 0 2px 0 5px;
+ vertical-align: middle;
+}
+.input-group.date .input-group-addon {
+ cursor: pointer;
+}
+.input-daterange {
+ width: 100%;
+}
+.input-daterange input {
+ text-align: center;
+}
+.input-daterange input:first-child {
+ border-radius: 3px 0 0 3px;
+}
+.input-daterange input:last-child {
+ border-radius: 0 3px 3px 0;
+}
+.input-daterange .input-group-addon {
+ width: auto;
+ min-width: 16px;
+ padding: 4px 5px;
+ line-height: 1.42857143;
+ border-width: 1px 0;
+ margin-left: -5px;
+ margin-right: -5px;
+}
+/*# sourceMappingURL=bootstrap-datepicker3.css.map */ \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css.map b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css.map
new file mode 100644
index 0000000..c2679b6
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["less/datepicker3.less","build/build3.less"],"names":[],"mappings":"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","sourcesContent":[".datepicker {\n\tborder-radius: @border-radius-base;\n\t&-inline {\n\t\twidth: 220px;\n\t}\n\tdirection: ltr;\n\t&-rtl {\n\t\tdirection: rtl;\n\t\t&.dropdown-menu { left: auto; }\n\t\ttable tr td span {\n\t\t\tfloat: right;\n\t\t}\n\t}\n\t&-dropdown {\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tpadding: 4px;\n\t\t&:before {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\tborder-left: 7px solid transparent;\n\t\t\tborder-right: 7px solid transparent;\n\t\t\tborder-bottom: 7px solid @dropdown-border;\n\t\t\tborder-top: 0;\n\t\t\tborder-bottom-color: rgba(0,0,0,.2);\n\t\t\tposition: absolute;\n\t\t}\n\t\t&:after {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\tborder-left: 6px solid transparent;\n\t\t\tborder-right: 6px solid transparent;\n\t\t\tborder-bottom: 6px solid @dropdown-bg;\n\t\t\tborder-top: 0;\n\t\t\tposition: absolute;\n\t\t}\n\t\t&.datepicker-orient-left:before { left: 6px; }\n\t\t&.datepicker-orient-left:after { left: 7px; }\n\t\t&.datepicker-orient-right:before { right: 6px; }\n\t\t&.datepicker-orient-right:after { right: 7px; }\n\t\t&.datepicker-orient-bottom:before { top: -7px; }\n\t\t&.datepicker-orient-bottom:after { top: -6px; }\n\t\t&.datepicker-orient-top:before {\n\t\t\tbottom: -7px;\n\t\t\tborder-bottom: 0;\n\t\t\tborder-top: 7px solid @dropdown-border;\n\t\t}\n\t\t&.datepicker-orient-top:after {\n\t\t\tbottom: -6px;\n\t\t\tborder-bottom: 0;\n\t\t\tborder-top: 6px solid @dropdown-bg;\n\t\t}\n\t}\n\ttable {\n\t\tmargin: 0;\n\t\t-webkit-touch-callout: none;\n\t\t-webkit-user-select: none;\n\t\t-khtml-user-select: none;\n\t\t-moz-user-select: none;\n\t\t-ms-user-select: none;\n\t\tuser-select: none;\n\t\ttr {\n\t\t\ttd, th {\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 30px;\n\t\t\t\theight: 30px;\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tborder: none;\n\t\t\t}\n\t\t}\n\t}\n\t// Inline display inside a table presents some problems with\n\t// border and background colors.\n\t.table-striped & table tr {\n\t\ttd, th {\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\ttable tr td {\n\t\t&.old,\n\t\t&.new {\n\t\t\tcolor: @btn-link-disabled-color;\n\t\t}\n\t\t&.day:hover,\n\t\t&.focused {\n\t\t\tbackground: @gray-lighter;\n\t\t\tcursor: pointer;\n\t\t}\n\t\t&.disabled,\n\t\t&.disabled:hover {\n\t\t\tbackground: none;\n\t\t\tcolor: @btn-link-disabled-color;\n\t\t\tcursor: default;\n\t\t}\n\t\t&.highlighted {\n\t\t\t@highlighted-bg: @state-info-bg;\n\t\t\t.button-variant(#000, @highlighted-bg, darken(@highlighted-bg, 20%));\n\t\t\tborder-radius: 0;\n\n\t\t\t&.focused {\n\t\t\t\tbackground: darken(@highlighted-bg, 10%);\n\t\t\t}\n\n\t\t\t&.disabled,\n\t\t\t&.disabled:active {\n\t\t\t\tbackground: @highlighted-bg;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t\t&.today {\n\t\t\t@today-bg: lighten(orange, 30%);\n\t\t\t.button-variant(#000, @today-bg, darken(@today-bg, 20%));\n\n\t\t\t&.focused {\n\t\t\t\tbackground: darken(@today-bg, 10%);\n\t\t\t}\n\n\t\t\t&.disabled,\n\t\t\t&.disabled:active {\n\t\t\t\tbackground: @today-bg;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t\t&.range {\n\t\t\t@range-bg: @gray-lighter;\n\t\t\t.button-variant(#000, @range-bg, darken(@range-bg, 20%));\n\t\t\tborder-radius: 0;\n\n\t\t\t&.focused {\n\t\t\t\tbackground: darken(@range-bg, 10%);\n\t\t\t}\n\n\t\t\t&.disabled,\n\t\t\t&.disabled:active {\n\t\t\t\tbackground: @range-bg;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t\t&.range.highlighted {\n\t\t\t@range-highlighted-bg: mix(@state-info-bg, @gray-lighter, 50%);\n\t\t\t.button-variant(#000, @range-highlighted-bg, darken(@range-highlighted-bg, 20%));\n\n\t\t\t&.focused {\n\t\t\t\tbackground: darken(@range-highlighted-bg, 10%);\n\t\t\t}\n\n\t\t\t&.disabled,\n\t\t\t&.disabled:active {\n\t\t\t\tbackground: @range-highlighted-bg;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t\t&.range.today {\n\t\t\t@range-today-bg: mix(orange, @gray-lighter, 50%);\n\t\t\t.button-variant(#000, @range-today-bg, darken(@range-today-bg, 20%));\n\n\t\t\t&.disabled,\n\t\t\t&.disabled:active {\n\t\t\t\tbackground: @range-today-bg;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t\t&.selected,\n\t\t&.selected.highlighted {\n\t\t\t.button-variant(#fff, @gray-light, @gray);\n\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t}\n\t\t&.active,\n\t\t&.active.highlighted {\n\t\t\t.button-variant(@btn-primary-color, @btn-primary-bg, @btn-primary-border);\n\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t}\n\t\tspan {\n\t\t\tdisplay: block;\n\t\t\twidth: 23%;\n\t\t\theight: 54px;\n\t\t\tline-height: 54px;\n\t\t\tfloat: left;\n\t\t\tmargin: 1%;\n\t\t\tcursor: pointer;\n\t\t\tborder-radius: 4px;\n\t\t\t&:hover,\n\t\t\t&.focused {\n\t\t\t\tbackground: @gray-lighter;\n\t\t\t}\n\t\t\t&.disabled,\n\t\t\t&.disabled:hover {\n\t\t\t\tbackground: none;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t\tcursor: default;\n\t\t\t}\n\t\t\t&.active,\n\t\t\t&.active:hover,\n\t\t\t&.active.disabled,\n\t\t\t&.active.disabled:hover {\n\t\t\t\t.button-variant(@btn-primary-color, @btn-primary-bg, @btn-primary-border);\n\t\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t\t}\n\t\t\t&.old,\n\t\t\t&.new {\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t}\n\n\t.datepicker-switch {\n\t\twidth: 145px;\n\t}\n\n\t.datepicker-switch,\n\t.prev,\n\t.next,\n\ttfoot tr th {\n\t\tcursor: pointer;\n\t\t&:hover {\n\t\t\tbackground: @gray-lighter;\n\t\t}\n\t}\n\n\t.prev, .next {\n\t\t&.disabled {\n\t\t\tvisibility: hidden;\n\t\t}\n\t}\n\n\t// Basic styling for calendar-week cells\n\t.cw {\n\t\tfont-size: 10px;\n\t\twidth: 12px;\n\t\tpadding: 0 2px 0 5px;\n\t\tvertical-align: middle;\n\t}\n}\n.input-group.date .input-group-addon {\n\tcursor: pointer;\n}\n.input-daterange {\n\twidth: 100%;\n\tinput {\n\t\ttext-align: center;\n\t}\n\tinput:first-child {\n\t\tborder-radius: 3px 0 0 3px;\n\t}\n\tinput:last-child {\n\t\tborder-radius: 0 3px 3px 0;\n\t}\n\t.input-group-addon {\n\t\twidth: auto;\n\t\tmin-width: 16px;\n\t\tpadding: 4px 5px;\n\t\tline-height: @line-height-base;\n\t\tborder-width: 1px 0;\n\t\tmargin-left: -5px;\n\t\tmargin-right: -5px;\n\t}\n}\n","// Datepicker .less buildfile. Includes select mixins/variables from bootstrap\n// and imports the included datepicker.less to output a minimal datepicker.css\n//\n// Usage:\n// lessc build3.less datepicker.css\n//\n// Variables and mixins copied from Bootstrap 3.3.5\n\n// Variables\n@gray: lighten(#000, 33.5%); // #555\n@gray-light: lighten(#000, 46.7%); // #777\n@gray-lighter: lighten(#000, 93.5%); // #eee\n\n@brand-primary: darken(#428bca, 6.5%); // #337ab7\n\n@btn-primary-color: #fff;\n@btn-primary-bg: @brand-primary;\n@btn-primary-border: darken(@btn-primary-bg, 5%);\n\n@btn-link-disabled-color: @gray-light;\n\n@state-info-bg: #d9edf7;\n\n@line-height-base: 1.428571429; // 20/14\n@border-radius-base: 4px;\n\n@dropdown-bg: #fff;\n@dropdown-border: rgba(0,0,0,.15);\n\n\n// Mixins\n\n// Button variants\n.button-variant(@color; @background; @border) {\n color: @color;\n background-color: @background;\n border-color: @border;\n\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 25%);\n }\n &:hover {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n }\n &:active,\n &.active {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n\n &:hover,\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 17%);\n border-color: darken(@border, 25%);\n }\n }\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus,\n &.focus {\n background-color: @background;\n border-color: @border;\n }\n }\n}\n\n@import \"../less/datepicker3.less\";\n"]} \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.min.css b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.min.css
new file mode 100644
index 0000000..96631e0
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.min.css
@@ -0,0 +1,7 @@
+/*!
+ * Datepicker for Bootstrap v1.8.0 (https://github.com/uxsolutions/bootstrap-datepicker)
+ *
+ * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
+ */
+
+.datepicker{border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker-rtl{direction:rtl}.datepicker-rtl.dropdown-menu{left:auto}.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0;padding:4px}.datepicker-dropdown:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.15);border-top:0;border-bottom-color:rgba(0,0,0,.2);position:absolute}.datepicker-dropdown:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;border-top:0;position:absolute}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-bottom:before{top:-7px}.datepicker-dropdown.datepicker-orient-bottom:after{top:-6px}.datepicker-dropdown.datepicker-orient-top:before{bottom:-7px;border-bottom:0;border-top:7px solid rgba(0,0,0,.15)}.datepicker-dropdown.datepicker-orient-top:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker table tr td,.datepicker table tr th{text-align:center;width:30px;height:30px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.new,.datepicker table tr td.old{color:#777}.datepicker table tr td.day:hover,.datepicker table tr td.focused{background:#eee;cursor:pointer}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#777;cursor:default}.datepicker table tr td.highlighted{color:#000;background-color:#d9edf7;border-color:#85c5e5;border-radius:0}.datepicker table tr td.highlighted.focus,.datepicker table tr td.highlighted:focus{color:#000;background-color:#afd9ee;border-color:#298fc2}.datepicker table tr td.highlighted:hover{color:#000;background-color:#afd9ee;border-color:#52addb}.datepicker table tr td.highlighted.active,.datepicker table tr td.highlighted:active{color:#000;background-color:#afd9ee;border-color:#52addb}.datepicker table tr td.highlighted.active.focus,.datepicker table tr td.highlighted.active:focus,.datepicker table tr td.highlighted.active:hover,.datepicker table tr td.highlighted:active.focus,.datepicker table tr td.highlighted:active:focus,.datepicker table tr td.highlighted:active:hover{color:#000;background-color:#91cbe8;border-color:#298fc2}.datepicker table tr td.highlighted.disabled.focus,.datepicker table tr td.highlighted.disabled:focus,.datepicker table tr td.highlighted.disabled:hover,.datepicker table tr td.highlighted[disabled].focus,.datepicker table tr td.highlighted[disabled]:focus,.datepicker table tr td.highlighted[disabled]:hover,fieldset[disabled] .datepicker table tr td.highlighted.focus,fieldset[disabled] .datepicker table tr td.highlighted:focus,fieldset[disabled] .datepicker table tr td.highlighted:hover{background-color:#d9edf7;border-color:#85c5e5}.datepicker table tr td.highlighted.focused{background:#afd9ee}.datepicker table tr td.highlighted.disabled,.datepicker table tr td.highlighted.disabled:active{background:#d9edf7;color:#777}.datepicker table tr td.today{color:#000;background-color:#ffdb99;border-color:#ffb733}.datepicker table tr td.today.focus,.datepicker table tr td.today:focus{color:#000;background-color:#ffc966;border-color:#b37400}.datepicker table tr td.today:hover{color:#000;background-color:#ffc966;border-color:#f59e00}.datepicker table tr td.today.active,.datepicker table tr td.today:active{color:#000;background-color:#ffc966;border-color:#f59e00}.datepicker table tr td.today.active.focus,.datepicker table tr td.today.active:focus,.datepicker table tr td.today.active:hover,.datepicker table tr td.today:active.focus,.datepicker table tr td.today:active:focus,.datepicker table tr td.today:active:hover{color:#000;background-color:#ffbc42;border-color:#b37400}.datepicker table tr td.today.disabled.focus,.datepicker table tr td.today.disabled:focus,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today[disabled].focus,.datepicker table tr td.today[disabled]:focus,.datepicker table tr td.today[disabled]:hover,fieldset[disabled] .datepicker table tr td.today.focus,fieldset[disabled] .datepicker table tr td.today:focus,fieldset[disabled] .datepicker table tr td.today:hover{background-color:#ffdb99;border-color:#ffb733}.datepicker table tr td.today.focused{background:#ffc966}.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:active{background:#ffdb99;color:#777}.datepicker table tr td.range{color:#000;background-color:#eee;border-color:#bbb;border-radius:0}.datepicker table tr td.range.focus,.datepicker table tr td.range:focus{color:#000;background-color:#d5d5d5;border-color:#7c7c7c}.datepicker table tr td.range:hover{color:#000;background-color:#d5d5d5;border-color:#9d9d9d}.datepicker table tr td.range.active,.datepicker table tr td.range:active{color:#000;background-color:#d5d5d5;border-color:#9d9d9d}.datepicker table tr td.range.active.focus,.datepicker table tr td.range.active:focus,.datepicker table tr td.range.active:hover,.datepicker table tr td.range:active.focus,.datepicker table tr td.range:active:focus,.datepicker table tr td.range:active:hover{color:#000;background-color:#c3c3c3;border-color:#7c7c7c}.datepicker table tr td.range.disabled.focus,.datepicker table tr td.range.disabled:focus,.datepicker table tr td.range.disabled:hover,.datepicker table tr td.range[disabled].focus,.datepicker table tr td.range[disabled]:focus,.datepicker table tr td.range[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.focus,fieldset[disabled] .datepicker table tr td.range:focus,fieldset[disabled] .datepicker table tr td.range:hover{background-color:#eee;border-color:#bbb}.datepicker table tr td.range.focused{background:#d5d5d5}.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:active{background:#eee;color:#777}.datepicker table tr td.range.highlighted{color:#000;background-color:#e4eef3;border-color:#9dc1d3}.datepicker table tr td.range.highlighted.focus,.datepicker table tr td.range.highlighted:focus{color:#000;background-color:#c1d7e3;border-color:#4b88a6}.datepicker table tr td.range.highlighted:hover{color:#000;background-color:#c1d7e3;border-color:#73a6c0}.datepicker table tr td.range.highlighted.active,.datepicker table tr td.range.highlighted:active{color:#000;background-color:#c1d7e3;border-color:#73a6c0}.datepicker table tr td.range.highlighted.active.focus,.datepicker table tr td.range.highlighted.active:focus,.datepicker table tr td.range.highlighted.active:hover,.datepicker table tr td.range.highlighted:active.focus,.datepicker table tr td.range.highlighted:active:focus,.datepicker table tr td.range.highlighted:active:hover{color:#000;background-color:#a8c8d8;border-color:#4b88a6}.datepicker table tr td.range.highlighted.disabled.focus,.datepicker table tr td.range.highlighted.disabled:focus,.datepicker table tr td.range.highlighted.disabled:hover,.datepicker table tr td.range.highlighted[disabled].focus,.datepicker table tr td.range.highlighted[disabled]:focus,.datepicker table tr td.range.highlighted[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.highlighted.focus,fieldset[disabled] .datepicker table tr td.range.highlighted:focus,fieldset[disabled] .datepicker table tr td.range.highlighted:hover{background-color:#e4eef3;border-color:#9dc1d3}.datepicker table tr td.range.highlighted.focused{background:#c1d7e3}.datepicker table tr td.range.highlighted.disabled,.datepicker table tr td.range.highlighted.disabled:active{background:#e4eef3;color:#777}.datepicker table tr td.range.today{color:#000;background-color:#f7ca77;border-color:#f1a417}.datepicker table tr td.range.today.focus,.datepicker table tr td.range.today:focus{color:#000;background-color:#f4b747;border-color:#815608}.datepicker table tr td.range.today:hover{color:#000;background-color:#f4b747;border-color:#bf800c}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today:active{color:#000;background-color:#f4b747;border-color:#bf800c}.datepicker table tr td.range.today.active.focus,.datepicker table tr td.range.today.active:focus,.datepicker table tr td.range.today.active:hover,.datepicker table tr td.range.today:active.focus,.datepicker table tr td.range.today:active:focus,.datepicker table tr td.range.today:active:hover{color:#000;background-color:#f2aa25;border-color:#815608}.datepicker table tr td.range.today.disabled.focus,.datepicker table tr td.range.today.disabled:focus,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today[disabled].focus,.datepicker table tr td.range.today[disabled]:focus,.datepicker table tr td.range.today[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.today.focus,fieldset[disabled] .datepicker table tr td.range.today:focus,fieldset[disabled] .datepicker table tr td.range.today:hover{background-color:#f7ca77;border-color:#f1a417}.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:active{background:#f7ca77;color:#777}.datepicker table tr td.selected,.datepicker table tr td.selected.highlighted{color:#fff;background-color:#777;border-color:#555;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected.focus,.datepicker table tr td.selected.highlighted.focus,.datepicker table tr td.selected.highlighted:focus,.datepicker table tr td.selected:focus{color:#fff;background-color:#5e5e5e;border-color:#161616}.datepicker table tr td.selected.highlighted:hover,.datepicker table tr td.selected:hover{color:#fff;background-color:#5e5e5e;border-color:#373737}.datepicker table tr td.selected.active,.datepicker table tr td.selected.highlighted.active,.datepicker table tr td.selected.highlighted:active,.datepicker table tr td.selected:active{color:#fff;background-color:#5e5e5e;border-color:#373737}.datepicker table tr td.selected.active.focus,.datepicker table tr td.selected.active:focus,.datepicker table tr td.selected.active:hover,.datepicker table tr td.selected.highlighted.active.focus,.datepicker table tr td.selected.highlighted.active:focus,.datepicker table tr td.selected.highlighted.active:hover,.datepicker table tr td.selected.highlighted:active.focus,.datepicker table tr td.selected.highlighted:active:focus,.datepicker table tr td.selected.highlighted:active:hover,.datepicker table tr td.selected:active.focus,.datepicker table tr td.selected:active:focus,.datepicker table tr td.selected:active:hover{color:#fff;background-color:#4c4c4c;border-color:#161616}.datepicker table tr td.selected.disabled.focus,.datepicker table tr td.selected.disabled:focus,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.highlighted.disabled.focus,.datepicker table tr td.selected.highlighted.disabled:focus,.datepicker table tr td.selected.highlighted.disabled:hover,.datepicker table tr td.selected.highlighted[disabled].focus,.datepicker table tr td.selected.highlighted[disabled]:focus,.datepicker table tr td.selected.highlighted[disabled]:hover,.datepicker table tr td.selected[disabled].focus,.datepicker table tr td.selected[disabled]:focus,.datepicker table tr td.selected[disabled]:hover,fieldset[disabled] .datepicker table tr td.selected.focus,fieldset[disabled] .datepicker table tr td.selected.highlighted.focus,fieldset[disabled] .datepicker table tr td.selected.highlighted:focus,fieldset[disabled] .datepicker table tr td.selected.highlighted:hover,fieldset[disabled] .datepicker table tr td.selected:focus,fieldset[disabled] .datepicker table tr td.selected:hover{background-color:#777;border-color:#555}.datepicker table tr td.active,.datepicker table tr td.active.highlighted{color:#fff;background-color:#337ab7;border-color:#2e6da4;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active.focus,.datepicker table tr td.active.highlighted.focus,.datepicker table tr td.active.highlighted:focus,.datepicker table tr td.active:focus{color:#fff;background-color:#286090;border-color:#122b40}.datepicker table tr td.active.highlighted:hover,.datepicker table tr td.active:hover{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td.active.active,.datepicker table tr td.active.highlighted.active,.datepicker table tr td.active.highlighted:active,.datepicker table tr td.active:active{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td.active.active.focus,.datepicker table tr td.active.active:focus,.datepicker table tr td.active.active:hover,.datepicker table tr td.active.highlighted.active.focus,.datepicker table tr td.active.highlighted.active:focus,.datepicker table tr td.active.highlighted.active:hover,.datepicker table tr td.active.highlighted:active.focus,.datepicker table tr td.active.highlighted:active:focus,.datepicker table tr td.active.highlighted:active:hover,.datepicker table tr td.active:active.focus,.datepicker table tr td.active:active:focus,.datepicker table tr td.active:active:hover{color:#fff;background-color:#204d74;border-color:#122b40}.datepicker table tr td.active.disabled.focus,.datepicker table tr td.active.disabled:focus,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.highlighted.disabled.focus,.datepicker table tr td.active.highlighted.disabled:focus,.datepicker table tr td.active.highlighted.disabled:hover,.datepicker table tr td.active.highlighted[disabled].focus,.datepicker table tr td.active.highlighted[disabled]:focus,.datepicker table tr td.active.highlighted[disabled]:hover,.datepicker table tr td.active[disabled].focus,.datepicker table tr td.active[disabled]:focus,.datepicker table tr td.active[disabled]:hover,fieldset[disabled] .datepicker table tr td.active.focus,fieldset[disabled] .datepicker table tr td.active.highlighted.focus,fieldset[disabled] .datepicker table tr td.active.highlighted:focus,fieldset[disabled] .datepicker table tr td.active.highlighted:hover,fieldset[disabled] .datepicker table tr td.active:focus,fieldset[disabled] .datepicker table tr td.active:hover{background-color:#337ab7;border-color:#2e6da4}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;border-radius:4px}.datepicker table tr td span.focused,.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#777;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{color:#fff;background-color:#337ab7;border-color:#2e6da4;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active.disabled.focus,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover.focus,.datepicker table tr td span.active.disabled:hover:focus,.datepicker table tr td span.active.focus,.datepicker table tr td span.active:focus,.datepicker table tr td span.active:hover.focus,.datepicker table tr td span.active:hover:focus{color:#fff;background-color:#286090;border-color:#122b40}.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover:hover{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td span.active.active.focus,.datepicker table tr td span.active.active:focus,.datepicker table tr td span.active.active:hover,.datepicker table tr td span.active.disabled.active.focus,.datepicker table tr td span.active.disabled.active:focus,.datepicker table tr td span.active.disabled.active:hover,.datepicker table tr td span.active.disabled:active.focus,.datepicker table tr td span.active.disabled:active:focus,.datepicker table tr td span.active.disabled:active:hover,.datepicker table tr td span.active.disabled:hover.active.focus,.datepicker table tr td span.active.disabled:hover.active:focus,.datepicker table tr td span.active.disabled:hover.active:hover,.datepicker table tr td span.active.disabled:hover:active.focus,.datepicker table tr td span.active.disabled:hover:active:focus,.datepicker table tr td span.active.disabled:hover:active:hover,.datepicker table tr td span.active:active.focus,.datepicker table tr td span.active:active:focus,.datepicker table tr td span.active:active:hover,.datepicker table tr td span.active:hover.active.focus,.datepicker table tr td span.active:hover.active:focus,.datepicker table tr td span.active:hover.active:hover,.datepicker table tr td span.active:hover:active.focus,.datepicker table tr td span.active:hover:active:focus,.datepicker table tr td span.active:hover:active:hover{color:#fff;background-color:#204d74;border-color:#122b40}.datepicker table tr td span.active.disabled.disabled.focus,.datepicker table tr td span.active.disabled.disabled:focus,.datepicker table tr td span.active.disabled.disabled:hover,.datepicker table tr td span.active.disabled.focus,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.disabled.focus,.datepicker table tr td span.active.disabled:hover.disabled:focus,.datepicker table tr td span.active.disabled:hover.disabled:hover,.datepicker table tr td span.active.disabled:hover[disabled].focus,.datepicker table tr td span.active.disabled:hover[disabled]:focus,.datepicker table tr td span.active.disabled:hover[disabled]:hover,.datepicker table tr td span.active.disabled[disabled].focus,.datepicker table tr td span.active.disabled[disabled]:focus,.datepicker table tr td span.active.disabled[disabled]:hover,.datepicker table tr td span.active:hover.disabled.focus,.datepicker table tr td span.active:hover.disabled:focus,.datepicker table tr td span.active:hover.disabled:hover,.datepicker table tr td span.active:hover[disabled].focus,.datepicker table tr td span.active:hover[disabled]:focus,.datepicker table tr td span.active:hover[disabled]:hover,.datepicker table tr td span.active[disabled].focus,.datepicker table tr td span.active[disabled]:focus,.datepicker table tr td span.active[disabled]:hover,fieldset[disabled] .datepicker table tr td span.active.disabled.focus,fieldset[disabled] .datepicker table tr td span.active.disabled:focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover,fieldset[disabled] .datepicker table tr td span.active.disabled:hover.focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover,fieldset[disabled] .datepicker table tr td span.active.focus,fieldset[disabled] .datepicker table tr td span.active:focus,fieldset[disabled] .datepicker table tr td span.active:hover,fieldset[disabled] .datepicker table tr td span.active:hover.focus,fieldset[disabled] .datepicker table tr td span.active:hover:focus,fieldset[disabled] .datepicker table tr td span.active:hover:hover{background-color:#337ab7;border-color:#2e6da4}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#777}.datepicker .datepicker-switch{width:145px}.datepicker .datepicker-switch,.datepicker .next,.datepicker .prev,.datepicker tfoot tr th{cursor:pointer}.datepicker .datepicker-switch:hover,.datepicker .next:hover,.datepicker .prev:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .next.disabled,.datepicker .prev.disabled{visibility:hidden}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.input-group.date .input-group-addon{cursor:pointer}.input-daterange{width:100%}.input-daterange input{text-align:center}.input-daterange input:first-child{border-radius:3px 0 0 3px}.input-daterange input:last-child{border-radius:0 3px 3px 0}.input-daterange .input-group-addon{width:auto;min-width:16px;padding:4px 5px;line-height:1.42857143;border-width:1px 0;margin-left:-5px;margin-right:-5px} \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.css b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.css
new file mode 100644
index 0000000..aa5916c
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.css
@@ -0,0 +1,712 @@
+/*!
+ * Datepicker for Bootstrap v1.8.0 (https://github.com/uxsolutions/bootstrap-datepicker)
+ *
+ * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
+ */
+
+.datepicker {
+ border-radius: 4px;
+ direction: ltr;
+}
+.datepicker-inline {
+ width: 220px;
+}
+.datepicker-rtl {
+ direction: rtl;
+}
+.datepicker-rtl.dropdown-menu {
+ left: auto;
+}
+.datepicker-rtl table tr td span {
+ float: right;
+}
+.datepicker-dropdown {
+ top: 0;
+ left: 0;
+ padding: 4px;
+}
+.datepicker-dropdown:before {
+ content: '';
+ display: inline-block;
+ border-left: 7px solid transparent;
+ border-right: 7px solid transparent;
+ border-bottom: 7px solid rgba(0, 0, 0, 0.15);
+ border-top: 0;
+ border-bottom-color: rgba(0, 0, 0, 0.2);
+ position: absolute;
+}
+.datepicker-dropdown:after {
+ content: '';
+ display: inline-block;
+ border-left: 6px solid transparent;
+ border-right: 6px solid transparent;
+ border-bottom: 6px solid #fff;
+ border-top: 0;
+ position: absolute;
+}
+.datepicker-dropdown.datepicker-orient-left:before {
+ left: 6px;
+}
+.datepicker-dropdown.datepicker-orient-left:after {
+ left: 7px;
+}
+.datepicker-dropdown.datepicker-orient-right:before {
+ right: 6px;
+}
+.datepicker-dropdown.datepicker-orient-right:after {
+ right: 7px;
+}
+.datepicker-dropdown.datepicker-orient-bottom:before {
+ top: -7px;
+}
+.datepicker-dropdown.datepicker-orient-bottom:after {
+ top: -6px;
+}
+.datepicker-dropdown.datepicker-orient-top:before {
+ bottom: -7px;
+ border-bottom: 0;
+ border-top: 7px solid rgba(0, 0, 0, 0.15);
+}
+.datepicker-dropdown.datepicker-orient-top:after {
+ bottom: -6px;
+ border-bottom: 0;
+ border-top: 6px solid #fff;
+}
+.datepicker table {
+ margin: 0;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+.datepicker table tr td,
+.datepicker table tr th {
+ text-align: center;
+ width: 30px;
+ height: 30px;
+ border-radius: 4px;
+ border: none;
+}
+.table-striped .datepicker table tr td,
+.table-striped .datepicker table tr th {
+ background-color: transparent;
+}
+.datepicker table tr td.old,
+.datepicker table tr td.new {
+ color: #777777;
+}
+.datepicker table tr td.day:hover,
+.datepicker table tr td.focused {
+ background: #eeeeee;
+ cursor: pointer;
+}
+.datepicker table tr td.disabled,
+.datepicker table tr td.disabled:hover {
+ background: none;
+ color: #777777;
+ cursor: default;
+}
+.datepicker table tr td.highlighted {
+ color: #000;
+ background-color: #d9edf7;
+ border-color: #85c5e5;
+ border-radius: 0;
+}
+.datepicker table tr td.highlighted:focus,
+.datepicker table tr td.highlighted.focus {
+ color: #000;
+ background-color: #afd9ee;
+ border-color: #298fc2;
+}
+.datepicker table tr td.highlighted:hover {
+ color: #000;
+ background-color: #afd9ee;
+ border-color: #52addb;
+}
+.datepicker table tr td.highlighted:active,
+.datepicker table tr td.highlighted.active {
+ color: #000;
+ background-color: #afd9ee;
+ border-color: #52addb;
+}
+.datepicker table tr td.highlighted:active:hover,
+.datepicker table tr td.highlighted.active:hover,
+.datepicker table tr td.highlighted:active:focus,
+.datepicker table tr td.highlighted.active:focus,
+.datepicker table tr td.highlighted:active.focus,
+.datepicker table tr td.highlighted.active.focus {
+ color: #000;
+ background-color: #91cbe8;
+ border-color: #298fc2;
+}
+.datepicker table tr td.highlighted.disabled:hover,
+.datepicker table tr td.highlighted[disabled]:hover,
+fieldset[disabled] .datepicker table tr td.highlighted:hover,
+.datepicker table tr td.highlighted.disabled:focus,
+.datepicker table tr td.highlighted[disabled]:focus,
+fieldset[disabled] .datepicker table tr td.highlighted:focus,
+.datepicker table tr td.highlighted.disabled.focus,
+.datepicker table tr td.highlighted[disabled].focus,
+fieldset[disabled] .datepicker table tr td.highlighted.focus {
+ background-color: #d9edf7;
+ border-color: #85c5e5;
+}
+.datepicker table tr td.highlighted.focused {
+ background: #afd9ee;
+}
+.datepicker table tr td.highlighted.disabled,
+.datepicker table tr td.highlighted.disabled:active {
+ background: #d9edf7;
+ color: #777777;
+}
+.datepicker table tr td.today {
+ color: #000;
+ background-color: #ffdb99;
+ border-color: #ffb733;
+}
+.datepicker table tr td.today:focus,
+.datepicker table tr td.today.focus {
+ color: #000;
+ background-color: #ffc966;
+ border-color: #b37400;
+}
+.datepicker table tr td.today:hover {
+ color: #000;
+ background-color: #ffc966;
+ border-color: #f59e00;
+}
+.datepicker table tr td.today:active,
+.datepicker table tr td.today.active {
+ color: #000;
+ background-color: #ffc966;
+ border-color: #f59e00;
+}
+.datepicker table tr td.today:active:hover,
+.datepicker table tr td.today.active:hover,
+.datepicker table tr td.today:active:focus,
+.datepicker table tr td.today.active:focus,
+.datepicker table tr td.today:active.focus,
+.datepicker table tr td.today.active.focus {
+ color: #000;
+ background-color: #ffbc42;
+ border-color: #b37400;
+}
+.datepicker table tr td.today.disabled:hover,
+.datepicker table tr td.today[disabled]:hover,
+fieldset[disabled] .datepicker table tr td.today:hover,
+.datepicker table tr td.today.disabled:focus,
+.datepicker table tr td.today[disabled]:focus,
+fieldset[disabled] .datepicker table tr td.today:focus,
+.datepicker table tr td.today.disabled.focus,
+.datepicker table tr td.today[disabled].focus,
+fieldset[disabled] .datepicker table tr td.today.focus {
+ background-color: #ffdb99;
+ border-color: #ffb733;
+}
+.datepicker table tr td.today.focused {
+ background: #ffc966;
+}
+.datepicker table tr td.today.disabled,
+.datepicker table tr td.today.disabled:active {
+ background: #ffdb99;
+ color: #777777;
+}
+.datepicker table tr td.range {
+ color: #000;
+ background-color: #eeeeee;
+ border-color: #bbbbbb;
+ border-radius: 0;
+}
+.datepicker table tr td.range:focus,
+.datepicker table tr td.range.focus {
+ color: #000;
+ background-color: #d5d5d5;
+ border-color: #7c7c7c;
+}
+.datepicker table tr td.range:hover {
+ color: #000;
+ background-color: #d5d5d5;
+ border-color: #9d9d9d;
+}
+.datepicker table tr td.range:active,
+.datepicker table tr td.range.active {
+ color: #000;
+ background-color: #d5d5d5;
+ border-color: #9d9d9d;
+}
+.datepicker table tr td.range:active:hover,
+.datepicker table tr td.range.active:hover,
+.datepicker table tr td.range:active:focus,
+.datepicker table tr td.range.active:focus,
+.datepicker table tr td.range:active.focus,
+.datepicker table tr td.range.active.focus {
+ color: #000;
+ background-color: #c3c3c3;
+ border-color: #7c7c7c;
+}
+.datepicker table tr td.range.disabled:hover,
+.datepicker table tr td.range[disabled]:hover,
+fieldset[disabled] .datepicker table tr td.range:hover,
+.datepicker table tr td.range.disabled:focus,
+.datepicker table tr td.range[disabled]:focus,
+fieldset[disabled] .datepicker table tr td.range:focus,
+.datepicker table tr td.range.disabled.focus,
+.datepicker table tr td.range[disabled].focus,
+fieldset[disabled] .datepicker table tr td.range.focus {
+ background-color: #eeeeee;
+ border-color: #bbbbbb;
+}
+.datepicker table tr td.range.focused {
+ background: #d5d5d5;
+}
+.datepicker table tr td.range.disabled,
+.datepicker table tr td.range.disabled:active {
+ background: #eeeeee;
+ color: #777777;
+}
+.datepicker table tr td.range.highlighted {
+ color: #000;
+ background-color: #e4eef3;
+ border-color: #9dc1d3;
+}
+.datepicker table tr td.range.highlighted:focus,
+.datepicker table tr td.range.highlighted.focus {
+ color: #000;
+ background-color: #c1d7e3;
+ border-color: #4b88a6;
+}
+.datepicker table tr td.range.highlighted:hover {
+ color: #000;
+ background-color: #c1d7e3;
+ border-color: #73a6c0;
+}
+.datepicker table tr td.range.highlighted:active,
+.datepicker table tr td.range.highlighted.active {
+ color: #000;
+ background-color: #c1d7e3;
+ border-color: #73a6c0;
+}
+.datepicker table tr td.range.highlighted:active:hover,
+.datepicker table tr td.range.highlighted.active:hover,
+.datepicker table tr td.range.highlighted:active:focus,
+.datepicker table tr td.range.highlighted.active:focus,
+.datepicker table tr td.range.highlighted:active.focus,
+.datepicker table tr td.range.highlighted.active.focus {
+ color: #000;
+ background-color: #a8c8d8;
+ border-color: #4b88a6;
+}
+.datepicker table tr td.range.highlighted.disabled:hover,
+.datepicker table tr td.range.highlighted[disabled]:hover,
+fieldset[disabled] .datepicker table tr td.range.highlighted:hover,
+.datepicker table tr td.range.highlighted.disabled:focus,
+.datepicker table tr td.range.highlighted[disabled]:focus,
+fieldset[disabled] .datepicker table tr td.range.highlighted:focus,
+.datepicker table tr td.range.highlighted.disabled.focus,
+.datepicker table tr td.range.highlighted[disabled].focus,
+fieldset[disabled] .datepicker table tr td.range.highlighted.focus {
+ background-color: #e4eef3;
+ border-color: #9dc1d3;
+}
+.datepicker table tr td.range.highlighted.focused {
+ background: #c1d7e3;
+}
+.datepicker table tr td.range.highlighted.disabled,
+.datepicker table tr td.range.highlighted.disabled:active {
+ background: #e4eef3;
+ color: #777777;
+}
+.datepicker table tr td.range.today {
+ color: #000;
+ background-color: #f7ca77;
+ border-color: #f1a417;
+}
+.datepicker table tr td.range.today:focus,
+.datepicker table tr td.range.today.focus {
+ color: #000;
+ background-color: #f4b747;
+ border-color: #815608;
+}
+.datepicker table tr td.range.today:hover {
+ color: #000;
+ background-color: #f4b747;
+ border-color: #bf800c;
+}
+.datepicker table tr td.range.today:active,
+.datepicker table tr td.range.today.active {
+ color: #000;
+ background-color: #f4b747;
+ border-color: #bf800c;
+}
+.datepicker table tr td.range.today:active:hover,
+.datepicker table tr td.range.today.active:hover,
+.datepicker table tr td.range.today:active:focus,
+.datepicker table tr td.range.today.active:focus,
+.datepicker table tr td.range.today:active.focus,
+.datepicker table tr td.range.today.active.focus {
+ color: #000;
+ background-color: #f2aa25;
+ border-color: #815608;
+}
+.datepicker table tr td.range.today.disabled:hover,
+.datepicker table tr td.range.today[disabled]:hover,
+fieldset[disabled] .datepicker table tr td.range.today:hover,
+.datepicker table tr td.range.today.disabled:focus,
+.datepicker table tr td.range.today[disabled]:focus,
+fieldset[disabled] .datepicker table tr td.range.today:focus,
+.datepicker table tr td.range.today.disabled.focus,
+.datepicker table tr td.range.today[disabled].focus,
+fieldset[disabled] .datepicker table tr td.range.today.focus {
+ background-color: #f7ca77;
+ border-color: #f1a417;
+}
+.datepicker table tr td.range.today.disabled,
+.datepicker table tr td.range.today.disabled:active {
+ background: #f7ca77;
+ color: #777777;
+}
+.datepicker table tr td.selected,
+.datepicker table tr td.selected.highlighted {
+ color: #fff;
+ background-color: #777777;
+ border-color: #555555;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.datepicker table tr td.selected:focus,
+.datepicker table tr td.selected.highlighted:focus,
+.datepicker table tr td.selected.focus,
+.datepicker table tr td.selected.highlighted.focus {
+ color: #fff;
+ background-color: #5e5e5e;
+ border-color: #161616;
+}
+.datepicker table tr td.selected:hover,
+.datepicker table tr td.selected.highlighted:hover {
+ color: #fff;
+ background-color: #5e5e5e;
+ border-color: #373737;
+}
+.datepicker table tr td.selected:active,
+.datepicker table tr td.selected.highlighted:active,
+.datepicker table tr td.selected.active,
+.datepicker table tr td.selected.highlighted.active {
+ color: #fff;
+ background-color: #5e5e5e;
+ border-color: #373737;
+}
+.datepicker table tr td.selected:active:hover,
+.datepicker table tr td.selected.highlighted:active:hover,
+.datepicker table tr td.selected.active:hover,
+.datepicker table tr td.selected.highlighted.active:hover,
+.datepicker table tr td.selected:active:focus,
+.datepicker table tr td.selected.highlighted:active:focus,
+.datepicker table tr td.selected.active:focus,
+.datepicker table tr td.selected.highlighted.active:focus,
+.datepicker table tr td.selected:active.focus,
+.datepicker table tr td.selected.highlighted:active.focus,
+.datepicker table tr td.selected.active.focus,
+.datepicker table tr td.selected.highlighted.active.focus {
+ color: #fff;
+ background-color: #4c4c4c;
+ border-color: #161616;
+}
+.datepicker table tr td.selected.disabled:hover,
+.datepicker table tr td.selected.highlighted.disabled:hover,
+.datepicker table tr td.selected[disabled]:hover,
+.datepicker table tr td.selected.highlighted[disabled]:hover,
+fieldset[disabled] .datepicker table tr td.selected:hover,
+fieldset[disabled] .datepicker table tr td.selected.highlighted:hover,
+.datepicker table tr td.selected.disabled:focus,
+.datepicker table tr td.selected.highlighted.disabled:focus,
+.datepicker table tr td.selected[disabled]:focus,
+.datepicker table tr td.selected.highlighted[disabled]:focus,
+fieldset[disabled] .datepicker table tr td.selected:focus,
+fieldset[disabled] .datepicker table tr td.selected.highlighted:focus,
+.datepicker table tr td.selected.disabled.focus,
+.datepicker table tr td.selected.highlighted.disabled.focus,
+.datepicker table tr td.selected[disabled].focus,
+.datepicker table tr td.selected.highlighted[disabled].focus,
+fieldset[disabled] .datepicker table tr td.selected.focus,
+fieldset[disabled] .datepicker table tr td.selected.highlighted.focus {
+ background-color: #777777;
+ border-color: #555555;
+}
+.datepicker table tr td.active,
+.datepicker table tr td.active.highlighted {
+ color: #fff;
+ background-color: #337ab7;
+ border-color: #2e6da4;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.datepicker table tr td.active:focus,
+.datepicker table tr td.active.highlighted:focus,
+.datepicker table tr td.active.focus,
+.datepicker table tr td.active.highlighted.focus {
+ color: #fff;
+ background-color: #286090;
+ border-color: #122b40;
+}
+.datepicker table tr td.active:hover,
+.datepicker table tr td.active.highlighted:hover {
+ color: #fff;
+ background-color: #286090;
+ border-color: #204d74;
+}
+.datepicker table tr td.active:active,
+.datepicker table tr td.active.highlighted:active,
+.datepicker table tr td.active.active,
+.datepicker table tr td.active.highlighted.active {
+ color: #fff;
+ background-color: #286090;
+ border-color: #204d74;
+}
+.datepicker table tr td.active:active:hover,
+.datepicker table tr td.active.highlighted:active:hover,
+.datepicker table tr td.active.active:hover,
+.datepicker table tr td.active.highlighted.active:hover,
+.datepicker table tr td.active:active:focus,
+.datepicker table tr td.active.highlighted:active:focus,
+.datepicker table tr td.active.active:focus,
+.datepicker table tr td.active.highlighted.active:focus,
+.datepicker table tr td.active:active.focus,
+.datepicker table tr td.active.highlighted:active.focus,
+.datepicker table tr td.active.active.focus,
+.datepicker table tr td.active.highlighted.active.focus {
+ color: #fff;
+ background-color: #204d74;
+ border-color: #122b40;
+}
+.datepicker table tr td.active.disabled:hover,
+.datepicker table tr td.active.highlighted.disabled:hover,
+.datepicker table tr td.active[disabled]:hover,
+.datepicker table tr td.active.highlighted[disabled]:hover,
+fieldset[disabled] .datepicker table tr td.active:hover,
+fieldset[disabled] .datepicker table tr td.active.highlighted:hover,
+.datepicker table tr td.active.disabled:focus,
+.datepicker table tr td.active.highlighted.disabled:focus,
+.datepicker table tr td.active[disabled]:focus,
+.datepicker table tr td.active.highlighted[disabled]:focus,
+fieldset[disabled] .datepicker table tr td.active:focus,
+fieldset[disabled] .datepicker table tr td.active.highlighted:focus,
+.datepicker table tr td.active.disabled.focus,
+.datepicker table tr td.active.highlighted.disabled.focus,
+.datepicker table tr td.active[disabled].focus,
+.datepicker table tr td.active.highlighted[disabled].focus,
+fieldset[disabled] .datepicker table tr td.active.focus,
+fieldset[disabled] .datepicker table tr td.active.highlighted.focus {
+ background-color: #337ab7;
+ border-color: #2e6da4;
+}
+.datepicker table tr td span {
+ display: block;
+ width: 23%;
+ height: 54px;
+ line-height: 54px;
+ float: left;
+ margin: 1%;
+ cursor: pointer;
+ border-radius: 4px;
+}
+.datepicker table tr td span:hover,
+.datepicker table tr td span.focused {
+ background: #eeeeee;
+}
+.datepicker table tr td span.disabled,
+.datepicker table tr td span.disabled:hover {
+ background: none;
+ color: #777777;
+ cursor: default;
+}
+.datepicker table tr td span.active,
+.datepicker table tr td span.active:hover,
+.datepicker table tr td span.active.disabled,
+.datepicker table tr td span.active.disabled:hover {
+ color: #fff;
+ background-color: #337ab7;
+ border-color: #2e6da4;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.datepicker table tr td span.active:focus,
+.datepicker table tr td span.active:hover:focus,
+.datepicker table tr td span.active.disabled:focus,
+.datepicker table tr td span.active.disabled:hover:focus,
+.datepicker table tr td span.active.focus,
+.datepicker table tr td span.active:hover.focus,
+.datepicker table tr td span.active.disabled.focus,
+.datepicker table tr td span.active.disabled:hover.focus {
+ color: #fff;
+ background-color: #286090;
+ border-color: #122b40;
+}
+.datepicker table tr td span.active:hover,
+.datepicker table tr td span.active:hover:hover,
+.datepicker table tr td span.active.disabled:hover,
+.datepicker table tr td span.active.disabled:hover:hover {
+ color: #fff;
+ background-color: #286090;
+ border-color: #204d74;
+}
+.datepicker table tr td span.active:active,
+.datepicker table tr td span.active:hover:active,
+.datepicker table tr td span.active.disabled:active,
+.datepicker table tr td span.active.disabled:hover:active,
+.datepicker table tr td span.active.active,
+.datepicker table tr td span.active:hover.active,
+.datepicker table tr td span.active.disabled.active,
+.datepicker table tr td span.active.disabled:hover.active {
+ color: #fff;
+ background-color: #286090;
+ border-color: #204d74;
+}
+.datepicker table tr td span.active:active:hover,
+.datepicker table tr td span.active:hover:active:hover,
+.datepicker table tr td span.active.disabled:active:hover,
+.datepicker table tr td span.active.disabled:hover:active:hover,
+.datepicker table tr td span.active.active:hover,
+.datepicker table tr td span.active:hover.active:hover,
+.datepicker table tr td span.active.disabled.active:hover,
+.datepicker table tr td span.active.disabled:hover.active:hover,
+.datepicker table tr td span.active:active:focus,
+.datepicker table tr td span.active:hover:active:focus,
+.datepicker table tr td span.active.disabled:active:focus,
+.datepicker table tr td span.active.disabled:hover:active:focus,
+.datepicker table tr td span.active.active:focus,
+.datepicker table tr td span.active:hover.active:focus,
+.datepicker table tr td span.active.disabled.active:focus,
+.datepicker table tr td span.active.disabled:hover.active:focus,
+.datepicker table tr td span.active:active.focus,
+.datepicker table tr td span.active:hover:active.focus,
+.datepicker table tr td span.active.disabled:active.focus,
+.datepicker table tr td span.active.disabled:hover:active.focus,
+.datepicker table tr td span.active.active.focus,
+.datepicker table tr td span.active:hover.active.focus,
+.datepicker table tr td span.active.disabled.active.focus,
+.datepicker table tr td span.active.disabled:hover.active.focus {
+ color: #fff;
+ background-color: #204d74;
+ border-color: #122b40;
+}
+.datepicker table tr td span.active.disabled:hover,
+.datepicker table tr td span.active:hover.disabled:hover,
+.datepicker table tr td span.active.disabled.disabled:hover,
+.datepicker table tr td span.active.disabled:hover.disabled:hover,
+.datepicker table tr td span.active[disabled]:hover,
+.datepicker table tr td span.active:hover[disabled]:hover,
+.datepicker table tr td span.active.disabled[disabled]:hover,
+.datepicker table tr td span.active.disabled:hover[disabled]:hover,
+fieldset[disabled] .datepicker table tr td span.active:hover,
+fieldset[disabled] .datepicker table tr td span.active:hover:hover,
+fieldset[disabled] .datepicker table tr td span.active.disabled:hover,
+fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover,
+.datepicker table tr td span.active.disabled:focus,
+.datepicker table tr td span.active:hover.disabled:focus,
+.datepicker table tr td span.active.disabled.disabled:focus,
+.datepicker table tr td span.active.disabled:hover.disabled:focus,
+.datepicker table tr td span.active[disabled]:focus,
+.datepicker table tr td span.active:hover[disabled]:focus,
+.datepicker table tr td span.active.disabled[disabled]:focus,
+.datepicker table tr td span.active.disabled:hover[disabled]:focus,
+fieldset[disabled] .datepicker table tr td span.active:focus,
+fieldset[disabled] .datepicker table tr td span.active:hover:focus,
+fieldset[disabled] .datepicker table tr td span.active.disabled:focus,
+fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus,
+.datepicker table tr td span.active.disabled.focus,
+.datepicker table tr td span.active:hover.disabled.focus,
+.datepicker table tr td span.active.disabled.disabled.focus,
+.datepicker table tr td span.active.disabled:hover.disabled.focus,
+.datepicker table tr td span.active[disabled].focus,
+.datepicker table tr td span.active:hover[disabled].focus,
+.datepicker table tr td span.active.disabled[disabled].focus,
+.datepicker table tr td span.active.disabled:hover[disabled].focus,
+fieldset[disabled] .datepicker table tr td span.active.focus,
+fieldset[disabled] .datepicker table tr td span.active:hover.focus,
+fieldset[disabled] .datepicker table tr td span.active.disabled.focus,
+fieldset[disabled] .datepicker table tr td span.active.disabled:hover.focus {
+ background-color: #337ab7;
+ border-color: #2e6da4;
+}
+.datepicker table tr td span.old,
+.datepicker table tr td span.new {
+ color: #777777;
+}
+.datepicker .datepicker-switch {
+ width: 145px;
+}
+.datepicker .datepicker-switch,
+.datepicker .prev,
+.datepicker .next,
+.datepicker tfoot tr th {
+ cursor: pointer;
+}
+.datepicker .datepicker-switch:hover,
+.datepicker .prev:hover,
+.datepicker .next:hover,
+.datepicker tfoot tr th:hover {
+ background: #eeeeee;
+}
+.datepicker .prev.disabled,
+.datepicker .next.disabled {
+ visibility: hidden;
+}
+.datepicker .cw {
+ font-size: 10px;
+ width: 12px;
+ padding: 0 2px 0 5px;
+ vertical-align: middle;
+}
+.input-group.date .input-group-addon {
+ cursor: pointer;
+}
+.input-daterange {
+ width: 100%;
+}
+.input-daterange input {
+ text-align: center;
+}
+.input-daterange input:first-child {
+ border-radius: 3px 0 0 3px;
+}
+.input-daterange input:last-child {
+ border-radius: 0 3px 3px 0;
+}
+.input-daterange .input-group-addon {
+ width: auto;
+ min-width: 16px;
+ padding: 4px 5px;
+ line-height: 1.42857143;
+ border-width: 1px 0;
+ margin-left: -5px;
+ margin-right: -5px;
+}
+.datepicker.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 1000;
+ display: none;
+ float: left;
+ min-width: 160px;
+ list-style: none;
+ background-color: #fff;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: 4px;
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ -moz-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ -webkit-background-clip: padding-box;
+ -moz-background-clip: padding;
+ background-clip: padding-box;
+ color: #333333;
+ font-size: 13px;
+ line-height: 1.42857143;
+}
+.datepicker.dropdown-menu th,
+.datepicker.datepicker-inline th,
+.datepicker.dropdown-menu td,
+.datepicker.datepicker-inline td {
+ padding: 0px 5px;
+}
+/*# sourceMappingURL=bootstrap-datepicker3.standalone.css.map */ \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.css.map b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.css.map
new file mode 100644
index 0000000..fc83fd2
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["less/datepicker3.less","build/build3.less","build/build_standalone3.less"],"names":[],"mappings":"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","sourcesContent":[".datepicker {\n\tborder-radius: @border-radius-base;\n\t&-inline {\n\t\twidth: 220px;\n\t}\n\tdirection: ltr;\n\t&-rtl {\n\t\tdirection: rtl;\n\t\t&.dropdown-menu { left: auto; }\n\t\ttable tr td span {\n\t\t\tfloat: right;\n\t\t}\n\t}\n\t&-dropdown {\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tpadding: 4px;\n\t\t&:before {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\tborder-left: 7px solid transparent;\n\t\t\tborder-right: 7px solid transparent;\n\t\t\tborder-bottom: 7px solid @dropdown-border;\n\t\t\tborder-top: 0;\n\t\t\tborder-bottom-color: rgba(0,0,0,.2);\n\t\t\tposition: absolute;\n\t\t}\n\t\t&:after {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\tborder-left: 6px solid transparent;\n\t\t\tborder-right: 6px solid transparent;\n\t\t\tborder-bottom: 6px solid @dropdown-bg;\n\t\t\tborder-top: 0;\n\t\t\tposition: absolute;\n\t\t}\n\t\t&.datepicker-orient-left:before { left: 6px; }\n\t\t&.datepicker-orient-left:after { left: 7px; }\n\t\t&.datepicker-orient-right:before { right: 6px; }\n\t\t&.datepicker-orient-right:after { right: 7px; }\n\t\t&.datepicker-orient-bottom:before { top: -7px; }\n\t\t&.datepicker-orient-bottom:after { top: -6px; }\n\t\t&.datepicker-orient-top:before {\n\t\t\tbottom: -7px;\n\t\t\tborder-bottom: 0;\n\t\t\tborder-top: 7px solid @dropdown-border;\n\t\t}\n\t\t&.datepicker-orient-top:after {\n\t\t\tbottom: -6px;\n\t\t\tborder-bottom: 0;\n\t\t\tborder-top: 6px solid @dropdown-bg;\n\t\t}\n\t}\n\ttable {\n\t\tmargin: 0;\n\t\t-webkit-touch-callout: none;\n\t\t-webkit-user-select: none;\n\t\t-khtml-user-select: none;\n\t\t-moz-user-select: none;\n\t\t-ms-user-select: none;\n\t\tuser-select: none;\n\t\ttr {\n\t\t\ttd, th {\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 30px;\n\t\t\t\theight: 30px;\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tborder: none;\n\t\t\t}\n\t\t}\n\t}\n\t// Inline display inside a table presents some problems with\n\t// border and background colors.\n\t.table-striped & table tr {\n\t\ttd, th {\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\ttable tr td {\n\t\t&.old,\n\t\t&.new {\n\t\t\tcolor: @btn-link-disabled-color;\n\t\t}\n\t\t&.day:hover,\n\t\t&.focused {\n\t\t\tbackground: @gray-lighter;\n\t\t\tcursor: pointer;\n\t\t}\n\t\t&.disabled,\n\t\t&.disabled:hover {\n\t\t\tbackground: none;\n\t\t\tcolor: @btn-link-disabled-color;\n\t\t\tcursor: default;\n\t\t}\n\t\t&.highlighted {\n\t\t\t@highlighted-bg: @state-info-bg;\n\t\t\t.button-variant(#000, @highlighted-bg, darken(@highlighted-bg, 20%));\n\t\t\tborder-radius: 0;\n\n\t\t\t&.focused {\n\t\t\t\tbackground: darken(@highlighted-bg, 10%);\n\t\t\t}\n\n\t\t\t&.disabled,\n\t\t\t&.disabled:active {\n\t\t\t\tbackground: @highlighted-bg;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t\t&.today {\n\t\t\t@today-bg: lighten(orange, 30%);\n\t\t\t.button-variant(#000, @today-bg, darken(@today-bg, 20%));\n\n\t\t\t&.focused {\n\t\t\t\tbackground: darken(@today-bg, 10%);\n\t\t\t}\n\n\t\t\t&.disabled,\n\t\t\t&.disabled:active {\n\t\t\t\tbackground: @today-bg;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t\t&.range {\n\t\t\t@range-bg: @gray-lighter;\n\t\t\t.button-variant(#000, @range-bg, darken(@range-bg, 20%));\n\t\t\tborder-radius: 0;\n\n\t\t\t&.focused {\n\t\t\t\tbackground: darken(@range-bg, 10%);\n\t\t\t}\n\n\t\t\t&.disabled,\n\t\t\t&.disabled:active {\n\t\t\t\tbackground: @range-bg;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t\t&.range.highlighted {\n\t\t\t@range-highlighted-bg: mix(@state-info-bg, @gray-lighter, 50%);\n\t\t\t.button-variant(#000, @range-highlighted-bg, darken(@range-highlighted-bg, 20%));\n\n\t\t\t&.focused {\n\t\t\t\tbackground: darken(@range-highlighted-bg, 10%);\n\t\t\t}\n\n\t\t\t&.disabled,\n\t\t\t&.disabled:active {\n\t\t\t\tbackground: @range-highlighted-bg;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t\t&.range.today {\n\t\t\t@range-today-bg: mix(orange, @gray-lighter, 50%);\n\t\t\t.button-variant(#000, @range-today-bg, darken(@range-today-bg, 20%));\n\n\t\t\t&.disabled,\n\t\t\t&.disabled:active {\n\t\t\t\tbackground: @range-today-bg;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t\t&.selected,\n\t\t&.selected.highlighted {\n\t\t\t.button-variant(#fff, @gray-light, @gray);\n\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t}\n\t\t&.active,\n\t\t&.active.highlighted {\n\t\t\t.button-variant(@btn-primary-color, @btn-primary-bg, @btn-primary-border);\n\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t}\n\t\tspan {\n\t\t\tdisplay: block;\n\t\t\twidth: 23%;\n\t\t\theight: 54px;\n\t\t\tline-height: 54px;\n\t\t\tfloat: left;\n\t\t\tmargin: 1%;\n\t\t\tcursor: pointer;\n\t\t\tborder-radius: 4px;\n\t\t\t&:hover,\n\t\t\t&.focused {\n\t\t\t\tbackground: @gray-lighter;\n\t\t\t}\n\t\t\t&.disabled,\n\t\t\t&.disabled:hover {\n\t\t\t\tbackground: none;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t\tcursor: default;\n\t\t\t}\n\t\t\t&.active,\n\t\t\t&.active:hover,\n\t\t\t&.active.disabled,\n\t\t\t&.active.disabled:hover {\n\t\t\t\t.button-variant(@btn-primary-color, @btn-primary-bg, @btn-primary-border);\n\t\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t\t}\n\t\t\t&.old,\n\t\t\t&.new {\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t}\n\n\t.datepicker-switch {\n\t\twidth: 145px;\n\t}\n\n\t.datepicker-switch,\n\t.prev,\n\t.next,\n\ttfoot tr th {\n\t\tcursor: pointer;\n\t\t&:hover {\n\t\t\tbackground: @gray-lighter;\n\t\t}\n\t}\n\n\t.prev, .next {\n\t\t&.disabled {\n\t\t\tvisibility: hidden;\n\t\t}\n\t}\n\n\t// Basic styling for calendar-week cells\n\t.cw {\n\t\tfont-size: 10px;\n\t\twidth: 12px;\n\t\tpadding: 0 2px 0 5px;\n\t\tvertical-align: middle;\n\t}\n}\n.input-group.date .input-group-addon {\n\tcursor: pointer;\n}\n.input-daterange {\n\twidth: 100%;\n\tinput {\n\t\ttext-align: center;\n\t}\n\tinput:first-child {\n\t\tborder-radius: 3px 0 0 3px;\n\t}\n\tinput:last-child {\n\t\tborder-radius: 0 3px 3px 0;\n\t}\n\t.input-group-addon {\n\t\twidth: auto;\n\t\tmin-width: 16px;\n\t\tpadding: 4px 5px;\n\t\tline-height: @line-height-base;\n\t\tborder-width: 1px 0;\n\t\tmargin-left: -5px;\n\t\tmargin-right: -5px;\n\t}\n}\n","// Datepicker .less buildfile. Includes select mixins/variables from bootstrap\n// and imports the included datepicker.less to output a minimal datepicker.css\n//\n// Usage:\n// lessc build3.less datepicker.css\n//\n// Variables and mixins copied from Bootstrap 3.3.5\n\n// Variables\n@gray: lighten(#000, 33.5%); // #555\n@gray-light: lighten(#000, 46.7%); // #777\n@gray-lighter: lighten(#000, 93.5%); // #eee\n\n@brand-primary: darken(#428bca, 6.5%); // #337ab7\n\n@btn-primary-color: #fff;\n@btn-primary-bg: @brand-primary;\n@btn-primary-border: darken(@btn-primary-bg, 5%);\n\n@btn-link-disabled-color: @gray-light;\n\n@state-info-bg: #d9edf7;\n\n@line-height-base: 1.428571429; // 20/14\n@border-radius-base: 4px;\n\n@dropdown-bg: #fff;\n@dropdown-border: rgba(0,0,0,.15);\n\n\n// Mixins\n\n// Button variants\n.button-variant(@color; @background; @border) {\n color: @color;\n background-color: @background;\n border-color: @border;\n\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 25%);\n }\n &:hover {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n }\n &:active,\n &.active {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n\n &:hover,\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 17%);\n border-color: darken(@border, 25%);\n }\n }\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus,\n &.focus {\n background-color: @background;\n border-color: @border;\n }\n }\n}\n\n@import \"../less/datepicker3.less\";\n","// Datepicker standalone .less buildfile. Includes all necessary mixins/variables/rules from bootstrap\n// and imports the included datepicker.less to output a minimal standalone datepicker.css\n//\n// Usage:\n// lessc build_standalone3.less datepicker.css\n//\n// Variables, mixins, and rules copied from Bootstrap 3.3.5\n\n@import \"build3.less\";\n\n// Dropdown css\n\n@zindex-dropdown: 1000;\n@dropdown-fallback-border: #ccc;\n\n// Drop shadows\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow;\n -moz-box-shadow: @shadow;\n box-shadow: @shadow;\n}\n\n// The dropdown menu (ul)\n// ----------------------\n.datepicker {\n &.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: @zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: 160px;\n list-style: none;\n background-color: @dropdown-bg;\n border: 1px solid @dropdown-fallback-border; // IE8 fallback\n border: 1px solid @dropdown-border;\n border-radius: @border-radius-base;\n .box-shadow(0 6px 12px rgba(0,0,0,.175));\n -webkit-background-clip: padding-box;\n -moz-background-clip: padding;\n background-clip: padding-box;\n\n // Normally inherited from bootstrap's `body`\n color: #333333;\n font-size: 13px;\n line-height: @line-height-base;\n }\n\n &.dropdown-menu, &.datepicker-inline {\n th, td {\n padding: 0px 5px;\n }\n }\n}\n"]} \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.min.css b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.min.css
new file mode 100644
index 0000000..da328c1
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.min.css
@@ -0,0 +1,7 @@
+/*!
+ * Datepicker for Bootstrap v1.8.0 (https://github.com/uxsolutions/bootstrap-datepicker)
+ *
+ * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
+ */
+
+.datepicker{border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker-rtl{direction:rtl}.datepicker-rtl.dropdown-menu{left:auto}.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0;padding:4px}.datepicker-dropdown:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.15);border-top:0;border-bottom-color:rgba(0,0,0,.2);position:absolute}.datepicker-dropdown:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;border-top:0;position:absolute}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-bottom:before{top:-7px}.datepicker-dropdown.datepicker-orient-bottom:after{top:-6px}.datepicker-dropdown.datepicker-orient-top:before{bottom:-7px;border-bottom:0;border-top:7px solid rgba(0,0,0,.15)}.datepicker-dropdown.datepicker-orient-top:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker table tr td,.datepicker table tr th{text-align:center;width:30px;height:30px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.new,.datepicker table tr td.old{color:#777}.datepicker table tr td.day:hover,.datepicker table tr td.focused{background:#eee;cursor:pointer}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#777;cursor:default}.datepicker table tr td.highlighted{color:#000;background-color:#d9edf7;border-color:#85c5e5;border-radius:0}.datepicker table tr td.highlighted.focus,.datepicker table tr td.highlighted:focus{color:#000;background-color:#afd9ee;border-color:#298fc2}.datepicker table tr td.highlighted:hover{color:#000;background-color:#afd9ee;border-color:#52addb}.datepicker table tr td.highlighted.active,.datepicker table tr td.highlighted:active{color:#000;background-color:#afd9ee;border-color:#52addb}.datepicker table tr td.highlighted.active.focus,.datepicker table tr td.highlighted.active:focus,.datepicker table tr td.highlighted.active:hover,.datepicker table tr td.highlighted:active.focus,.datepicker table tr td.highlighted:active:focus,.datepicker table tr td.highlighted:active:hover{color:#000;background-color:#91cbe8;border-color:#298fc2}.datepicker table tr td.highlighted.disabled.focus,.datepicker table tr td.highlighted.disabled:focus,.datepicker table tr td.highlighted.disabled:hover,.datepicker table tr td.highlighted[disabled].focus,.datepicker table tr td.highlighted[disabled]:focus,.datepicker table tr td.highlighted[disabled]:hover,fieldset[disabled] .datepicker table tr td.highlighted.focus,fieldset[disabled] .datepicker table tr td.highlighted:focus,fieldset[disabled] .datepicker table tr td.highlighted:hover{background-color:#d9edf7;border-color:#85c5e5}.datepicker table tr td.highlighted.focused{background:#afd9ee}.datepicker table tr td.highlighted.disabled,.datepicker table tr td.highlighted.disabled:active{background:#d9edf7;color:#777}.datepicker table tr td.today{color:#000;background-color:#ffdb99;border-color:#ffb733}.datepicker table tr td.today.focus,.datepicker table tr td.today:focus{color:#000;background-color:#ffc966;border-color:#b37400}.datepicker table tr td.today:hover{color:#000;background-color:#ffc966;border-color:#f59e00}.datepicker table tr td.today.active,.datepicker table tr td.today:active{color:#000;background-color:#ffc966;border-color:#f59e00}.datepicker table tr td.today.active.focus,.datepicker table tr td.today.active:focus,.datepicker table tr td.today.active:hover,.datepicker table tr td.today:active.focus,.datepicker table tr td.today:active:focus,.datepicker table tr td.today:active:hover{color:#000;background-color:#ffbc42;border-color:#b37400}.datepicker table tr td.today.disabled.focus,.datepicker table tr td.today.disabled:focus,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today[disabled].focus,.datepicker table tr td.today[disabled]:focus,.datepicker table tr td.today[disabled]:hover,fieldset[disabled] .datepicker table tr td.today.focus,fieldset[disabled] .datepicker table tr td.today:focus,fieldset[disabled] .datepicker table tr td.today:hover{background-color:#ffdb99;border-color:#ffb733}.datepicker table tr td.today.focused{background:#ffc966}.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:active{background:#ffdb99;color:#777}.datepicker table tr td.range{color:#000;background-color:#eee;border-color:#bbb;border-radius:0}.datepicker table tr td.range.focus,.datepicker table tr td.range:focus{color:#000;background-color:#d5d5d5;border-color:#7c7c7c}.datepicker table tr td.range:hover{color:#000;background-color:#d5d5d5;border-color:#9d9d9d}.datepicker table tr td.range.active,.datepicker table tr td.range:active{color:#000;background-color:#d5d5d5;border-color:#9d9d9d}.datepicker table tr td.range.active.focus,.datepicker table tr td.range.active:focus,.datepicker table tr td.range.active:hover,.datepicker table tr td.range:active.focus,.datepicker table tr td.range:active:focus,.datepicker table tr td.range:active:hover{color:#000;background-color:#c3c3c3;border-color:#7c7c7c}.datepicker table tr td.range.disabled.focus,.datepicker table tr td.range.disabled:focus,.datepicker table tr td.range.disabled:hover,.datepicker table tr td.range[disabled].focus,.datepicker table tr td.range[disabled]:focus,.datepicker table tr td.range[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.focus,fieldset[disabled] .datepicker table tr td.range:focus,fieldset[disabled] .datepicker table tr td.range:hover{background-color:#eee;border-color:#bbb}.datepicker table tr td.range.focused{background:#d5d5d5}.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:active{background:#eee;color:#777}.datepicker table tr td.range.highlighted{color:#000;background-color:#e4eef3;border-color:#9dc1d3}.datepicker table tr td.range.highlighted.focus,.datepicker table tr td.range.highlighted:focus{color:#000;background-color:#c1d7e3;border-color:#4b88a6}.datepicker table tr td.range.highlighted:hover{color:#000;background-color:#c1d7e3;border-color:#73a6c0}.datepicker table tr td.range.highlighted.active,.datepicker table tr td.range.highlighted:active{color:#000;background-color:#c1d7e3;border-color:#73a6c0}.datepicker table tr td.range.highlighted.active.focus,.datepicker table tr td.range.highlighted.active:focus,.datepicker table tr td.range.highlighted.active:hover,.datepicker table tr td.range.highlighted:active.focus,.datepicker table tr td.range.highlighted:active:focus,.datepicker table tr td.range.highlighted:active:hover{color:#000;background-color:#a8c8d8;border-color:#4b88a6}.datepicker table tr td.range.highlighted.disabled.focus,.datepicker table tr td.range.highlighted.disabled:focus,.datepicker table tr td.range.highlighted.disabled:hover,.datepicker table tr td.range.highlighted[disabled].focus,.datepicker table tr td.range.highlighted[disabled]:focus,.datepicker table tr td.range.highlighted[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.highlighted.focus,fieldset[disabled] .datepicker table tr td.range.highlighted:focus,fieldset[disabled] .datepicker table tr td.range.highlighted:hover{background-color:#e4eef3;border-color:#9dc1d3}.datepicker table tr td.range.highlighted.focused{background:#c1d7e3}.datepicker table tr td.range.highlighted.disabled,.datepicker table tr td.range.highlighted.disabled:active{background:#e4eef3;color:#777}.datepicker table tr td.range.today{color:#000;background-color:#f7ca77;border-color:#f1a417}.datepicker table tr td.range.today.focus,.datepicker table tr td.range.today:focus{color:#000;background-color:#f4b747;border-color:#815608}.datepicker table tr td.range.today:hover{color:#000;background-color:#f4b747;border-color:#bf800c}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today:active{color:#000;background-color:#f4b747;border-color:#bf800c}.datepicker table tr td.range.today.active.focus,.datepicker table tr td.range.today.active:focus,.datepicker table tr td.range.today.active:hover,.datepicker table tr td.range.today:active.focus,.datepicker table tr td.range.today:active:focus,.datepicker table tr td.range.today:active:hover{color:#000;background-color:#f2aa25;border-color:#815608}.datepicker table tr td.range.today.disabled.focus,.datepicker table tr td.range.today.disabled:focus,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today[disabled].focus,.datepicker table tr td.range.today[disabled]:focus,.datepicker table tr td.range.today[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.today.focus,fieldset[disabled] .datepicker table tr td.range.today:focus,fieldset[disabled] .datepicker table tr td.range.today:hover{background-color:#f7ca77;border-color:#f1a417}.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:active{background:#f7ca77;color:#777}.datepicker table tr td.selected,.datepicker table tr td.selected.highlighted{color:#fff;background-color:#777;border-color:#555;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected.focus,.datepicker table tr td.selected.highlighted.focus,.datepicker table tr td.selected.highlighted:focus,.datepicker table tr td.selected:focus{color:#fff;background-color:#5e5e5e;border-color:#161616}.datepicker table tr td.selected.highlighted:hover,.datepicker table tr td.selected:hover{color:#fff;background-color:#5e5e5e;border-color:#373737}.datepicker table tr td.selected.active,.datepicker table tr td.selected.highlighted.active,.datepicker table tr td.selected.highlighted:active,.datepicker table tr td.selected:active{color:#fff;background-color:#5e5e5e;border-color:#373737}.datepicker table tr td.selected.active.focus,.datepicker table tr td.selected.active:focus,.datepicker table tr td.selected.active:hover,.datepicker table tr td.selected.highlighted.active.focus,.datepicker table tr td.selected.highlighted.active:focus,.datepicker table tr td.selected.highlighted.active:hover,.datepicker table tr td.selected.highlighted:active.focus,.datepicker table tr td.selected.highlighted:active:focus,.datepicker table tr td.selected.highlighted:active:hover,.datepicker table tr td.selected:active.focus,.datepicker table tr td.selected:active:focus,.datepicker table tr td.selected:active:hover{color:#fff;background-color:#4c4c4c;border-color:#161616}.datepicker table tr td.selected.disabled.focus,.datepicker table tr td.selected.disabled:focus,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.highlighted.disabled.focus,.datepicker table tr td.selected.highlighted.disabled:focus,.datepicker table tr td.selected.highlighted.disabled:hover,.datepicker table tr td.selected.highlighted[disabled].focus,.datepicker table tr td.selected.highlighted[disabled]:focus,.datepicker table tr td.selected.highlighted[disabled]:hover,.datepicker table tr td.selected[disabled].focus,.datepicker table tr td.selected[disabled]:focus,.datepicker table tr td.selected[disabled]:hover,fieldset[disabled] .datepicker table tr td.selected.focus,fieldset[disabled] .datepicker table tr td.selected.highlighted.focus,fieldset[disabled] .datepicker table tr td.selected.highlighted:focus,fieldset[disabled] .datepicker table tr td.selected.highlighted:hover,fieldset[disabled] .datepicker table tr td.selected:focus,fieldset[disabled] .datepicker table tr td.selected:hover{background-color:#777;border-color:#555}.datepicker table tr td.active,.datepicker table tr td.active.highlighted{color:#fff;background-color:#337ab7;border-color:#2e6da4;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active.focus,.datepicker table tr td.active.highlighted.focus,.datepicker table tr td.active.highlighted:focus,.datepicker table tr td.active:focus{color:#fff;background-color:#286090;border-color:#122b40}.datepicker table tr td.active.highlighted:hover,.datepicker table tr td.active:hover{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td.active.active,.datepicker table tr td.active.highlighted.active,.datepicker table tr td.active.highlighted:active,.datepicker table tr td.active:active{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td.active.active.focus,.datepicker table tr td.active.active:focus,.datepicker table tr td.active.active:hover,.datepicker table tr td.active.highlighted.active.focus,.datepicker table tr td.active.highlighted.active:focus,.datepicker table tr td.active.highlighted.active:hover,.datepicker table tr td.active.highlighted:active.focus,.datepicker table tr td.active.highlighted:active:focus,.datepicker table tr td.active.highlighted:active:hover,.datepicker table tr td.active:active.focus,.datepicker table tr td.active:active:focus,.datepicker table tr td.active:active:hover{color:#fff;background-color:#204d74;border-color:#122b40}.datepicker table tr td.active.disabled.focus,.datepicker table tr td.active.disabled:focus,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.highlighted.disabled.focus,.datepicker table tr td.active.highlighted.disabled:focus,.datepicker table tr td.active.highlighted.disabled:hover,.datepicker table tr td.active.highlighted[disabled].focus,.datepicker table tr td.active.highlighted[disabled]:focus,.datepicker table tr td.active.highlighted[disabled]:hover,.datepicker table tr td.active[disabled].focus,.datepicker table tr td.active[disabled]:focus,.datepicker table tr td.active[disabled]:hover,fieldset[disabled] .datepicker table tr td.active.focus,fieldset[disabled] .datepicker table tr td.active.highlighted.focus,fieldset[disabled] .datepicker table tr td.active.highlighted:focus,fieldset[disabled] .datepicker table tr td.active.highlighted:hover,fieldset[disabled] .datepicker table tr td.active:focus,fieldset[disabled] .datepicker table tr td.active:hover{background-color:#337ab7;border-color:#2e6da4}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;border-radius:4px}.datepicker table tr td span.focused,.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#777;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{color:#fff;background-color:#337ab7;border-color:#2e6da4;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active.disabled.focus,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover.focus,.datepicker table tr td span.active.disabled:hover:focus,.datepicker table tr td span.active.focus,.datepicker table tr td span.active:focus,.datepicker table tr td span.active:hover.focus,.datepicker table tr td span.active:hover:focus{color:#fff;background-color:#286090;border-color:#122b40}.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover:hover{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td span.active.active.focus,.datepicker table tr td span.active.active:focus,.datepicker table tr td span.active.active:hover,.datepicker table tr td span.active.disabled.active.focus,.datepicker table tr td span.active.disabled.active:focus,.datepicker table tr td span.active.disabled.active:hover,.datepicker table tr td span.active.disabled:active.focus,.datepicker table tr td span.active.disabled:active:focus,.datepicker table tr td span.active.disabled:active:hover,.datepicker table tr td span.active.disabled:hover.active.focus,.datepicker table tr td span.active.disabled:hover.active:focus,.datepicker table tr td span.active.disabled:hover.active:hover,.datepicker table tr td span.active.disabled:hover:active.focus,.datepicker table tr td span.active.disabled:hover:active:focus,.datepicker table tr td span.active.disabled:hover:active:hover,.datepicker table tr td span.active:active.focus,.datepicker table tr td span.active:active:focus,.datepicker table tr td span.active:active:hover,.datepicker table tr td span.active:hover.active.focus,.datepicker table tr td span.active:hover.active:focus,.datepicker table tr td span.active:hover.active:hover,.datepicker table tr td span.active:hover:active.focus,.datepicker table tr td span.active:hover:active:focus,.datepicker table tr td span.active:hover:active:hover{color:#fff;background-color:#204d74;border-color:#122b40}.datepicker table tr td span.active.disabled.disabled.focus,.datepicker table tr td span.active.disabled.disabled:focus,.datepicker table tr td span.active.disabled.disabled:hover,.datepicker table tr td span.active.disabled.focus,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.disabled.focus,.datepicker table tr td span.active.disabled:hover.disabled:focus,.datepicker table tr td span.active.disabled:hover.disabled:hover,.datepicker table tr td span.active.disabled:hover[disabled].focus,.datepicker table tr td span.active.disabled:hover[disabled]:focus,.datepicker table tr td span.active.disabled:hover[disabled]:hover,.datepicker table tr td span.active.disabled[disabled].focus,.datepicker table tr td span.active.disabled[disabled]:focus,.datepicker table tr td span.active.disabled[disabled]:hover,.datepicker table tr td span.active:hover.disabled.focus,.datepicker table tr td span.active:hover.disabled:focus,.datepicker table tr td span.active:hover.disabled:hover,.datepicker table tr td span.active:hover[disabled].focus,.datepicker table tr td span.active:hover[disabled]:focus,.datepicker table tr td span.active:hover[disabled]:hover,.datepicker table tr td span.active[disabled].focus,.datepicker table tr td span.active[disabled]:focus,.datepicker table tr td span.active[disabled]:hover,fieldset[disabled] .datepicker table tr td span.active.disabled.focus,fieldset[disabled] .datepicker table tr td span.active.disabled:focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover,fieldset[disabled] .datepicker table tr td span.active.disabled:hover.focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover,fieldset[disabled] .datepicker table tr td span.active.focus,fieldset[disabled] .datepicker table tr td span.active:focus,fieldset[disabled] .datepicker table tr td span.active:hover,fieldset[disabled] .datepicker table tr td span.active:hover.focus,fieldset[disabled] .datepicker table tr td span.active:hover:focus,fieldset[disabled] .datepicker table tr td span.active:hover:hover{background-color:#337ab7;border-color:#2e6da4}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#777}.datepicker .datepicker-switch{width:145px}.datepicker .datepicker-switch,.datepicker .next,.datepicker .prev,.datepicker tfoot tr th{cursor:pointer}.datepicker .datepicker-switch:hover,.datepicker .next:hover,.datepicker .prev:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .next.disabled,.datepicker .prev.disabled{visibility:hidden}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.input-group.date .input-group-addon{cursor:pointer}.input-daterange{width:100%}.input-daterange input{text-align:center}.input-daterange input:first-child{border-radius:3px 0 0 3px}.input-daterange input:last-child{border-radius:0 3px 3px 0}.input-daterange .input-group-addon{width:auto;min-width:16px;padding:4px 5px;line-height:1.42857143;border-width:1px 0;margin-left:-5px;margin-right:-5px}.datepicker.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);-moz-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;color:#333;font-size:13px;line-height:1.42857143}.datepicker.datepicker-inline td,.datepicker.datepicker-inline th,.datepicker.dropdown-menu td,.datepicker.dropdown-menu th{padding:0 5px} \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.js b/public/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.js
new file mode 100644
index 0000000..0fef510
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.js
@@ -0,0 +1,2035 @@
+/*!
+ * Datepicker for Bootstrap v1.8.0 (https://github.com/uxsolutions/bootstrap-datepicker)
+ *
+ * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
+ */
+
+(function(factory){
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function($, undefined){
+ function UTCDate(){
+ return new Date(Date.UTC.apply(Date, arguments));
+ }
+ function UTCToday(){
+ var today = new Date();
+ return UTCDate(today.getFullYear(), today.getMonth(), today.getDate());
+ }
+ function isUTCEquals(date1, date2) {
+ return (
+ date1.getUTCFullYear() === date2.getUTCFullYear() &&
+ date1.getUTCMonth() === date2.getUTCMonth() &&
+ date1.getUTCDate() === date2.getUTCDate()
+ );
+ }
+ function alias(method, deprecationMsg){
+ return function(){
+ if (deprecationMsg !== undefined) {
+ $.fn.datepicker.deprecated(deprecationMsg);
+ }
+
+ return this[method].apply(this, arguments);
+ };
+ }
+ function isValidDate(d) {
+ return d && !isNaN(d.getTime());
+ }
+
+ var DateArray = (function(){
+ var extras = {
+ get: function(i){
+ return this.slice(i)[0];
+ },
+ contains: function(d){
+ // Array.indexOf is not cross-browser;
+ // $.inArray doesn't work with Dates
+ var val = d && d.valueOf();
+ for (var i=0, l=this.length; i < l; i++)
+ // Use date arithmetic to allow dates with different times to match
+ if (0 <= this[i].valueOf() - val && this[i].valueOf() - val < 1000*60*60*24)
+ return i;
+ return -1;
+ },
+ remove: function(i){
+ this.splice(i,1);
+ },
+ replace: function(new_array){
+ if (!new_array)
+ return;
+ if (!$.isArray(new_array))
+ new_array = [new_array];
+ this.clear();
+ this.push.apply(this, new_array);
+ },
+ clear: function(){
+ this.length = 0;
+ },
+ copy: function(){
+ var a = new DateArray();
+ a.replace(this);
+ return a;
+ }
+ };
+
+ return function(){
+ var a = [];
+ a.push.apply(a, arguments);
+ $.extend(a, extras);
+ return a;
+ };
+ })();
+
+
+ // Picker object
+
+ var Datepicker = function(element, options){
+ $.data(element, 'datepicker', this);
+ this._process_options(options);
+
+ this.dates = new DateArray();
+ this.viewDate = this.o.defaultViewDate;
+ this.focusDate = null;
+
+ this.element = $(element);
+ this.isInput = this.element.is('input');
+ this.inputField = this.isInput ? this.element : this.element.find('input');
+ this.component = this.element.hasClass('date') ? this.element.find('.add-on, .input-group-addon, .btn') : false;
+ if (this.component && this.component.length === 0)
+ this.component = false;
+ this.isInline = !this.component && this.element.is('div');
+
+ this.picker = $(DPGlobal.template);
+
+ // Checking templates and inserting
+ if (this._check_template(this.o.templates.leftArrow)) {
+ this.picker.find('.prev').html(this.o.templates.leftArrow);
+ }
+
+ if (this._check_template(this.o.templates.rightArrow)) {
+ this.picker.find('.next').html(this.o.templates.rightArrow);
+ }
+
+ this._buildEvents();
+ this._attachEvents();
+
+ if (this.isInline){
+ this.picker.addClass('datepicker-inline').appendTo(this.element);
+ }
+ else {
+ this.picker.addClass('datepicker-dropdown dropdown-menu');
+ }
+
+ if (this.o.rtl){
+ this.picker.addClass('datepicker-rtl');
+ }
+
+ if (this.o.calendarWeeks) {
+ this.picker.find('.datepicker-days .datepicker-switch, thead .datepicker-title, tfoot .today, tfoot .clear')
+ .attr('colspan', function(i, val){
+ return Number(val) + 1;
+ });
+ }
+
+ this._process_options({
+ startDate: this._o.startDate,
+ endDate: this._o.endDate,
+ daysOfWeekDisabled: this.o.daysOfWeekDisabled,
+ daysOfWeekHighlighted: this.o.daysOfWeekHighlighted,
+ datesDisabled: this.o.datesDisabled
+ });
+
+ this._allow_update = false;
+ this.setViewMode(this.o.startView);
+ this._allow_update = true;
+
+ this.fillDow();
+ this.fillMonths();
+
+ this.update();
+
+ if (this.isInline){
+ this.show();
+ }
+ };
+
+ Datepicker.prototype = {
+ constructor: Datepicker,
+
+ _resolveViewName: function(view){
+ $.each(DPGlobal.viewModes, function(i, viewMode){
+ if (view === i || $.inArray(view, viewMode.names) !== -1){
+ view = i;
+ return false;
+ }
+ });
+
+ return view;
+ },
+
+ _resolveDaysOfWeek: function(daysOfWeek){
+ if (!$.isArray(daysOfWeek))
+ daysOfWeek = daysOfWeek.split(/[,\s]*/);
+ return $.map(daysOfWeek, Number);
+ },
+
+ _check_template: function(tmp){
+ try {
+ // If empty
+ if (tmp === undefined || tmp === "") {
+ return false;
+ }
+ // If no html, everything ok
+ if ((tmp.match(/[<>]/g) || []).length <= 0) {
+ return true;
+ }
+ // Checking if html is fine
+ var jDom = $(tmp);
+ return jDom.length > 0;
+ }
+ catch (ex) {
+ return false;
+ }
+ },
+
+ _process_options: function(opts){
+ // Store raw options for reference
+ this._o = $.extend({}, this._o, opts);
+ // Processed options
+ var o = this.o = $.extend({}, this._o);
+
+ // Check if "de-DE" style date is available, if not language should
+ // fallback to 2 letter code eg "de"
+ var lang = o.language;
+ if (!dates[lang]){
+ lang = lang.split('-')[0];
+ if (!dates[lang])
+ lang = defaults.language;
+ }
+ o.language = lang;
+
+ // Retrieve view index from any aliases
+ o.startView = this._resolveViewName(o.startView);
+ o.minViewMode = this._resolveViewName(o.minViewMode);
+ o.maxViewMode = this._resolveViewName(o.maxViewMode);
+
+ // Check view is between min and max
+ o.startView = Math.max(this.o.minViewMode, Math.min(this.o.maxViewMode, o.startView));
+
+ // true, false, or Number > 0
+ if (o.multidate !== true){
+ o.multidate = Number(o.multidate) || false;
+ if (o.multidate !== false)
+ o.multidate = Math.max(0, o.multidate);
+ }
+ o.multidateSeparator = String(o.multidateSeparator);
+
+ o.weekStart %= 7;
+ o.weekEnd = (o.weekStart + 6) % 7;
+
+ var format = DPGlobal.parseFormat(o.format);
+ if (o.startDate !== -Infinity){
+ if (!!o.startDate){
+ if (o.startDate instanceof Date)
+ o.startDate = this._local_to_utc(this._zero_time(o.startDate));
+ else
+ o.startDate = DPGlobal.parseDate(o.startDate, format, o.language, o.assumeNearbyYear);
+ }
+ else {
+ o.startDate = -Infinity;
+ }
+ }
+ if (o.endDate !== Infinity){
+ if (!!o.endDate){
+ if (o.endDate instanceof Date)
+ o.endDate = this._local_to_utc(this._zero_time(o.endDate));
+ else
+ o.endDate = DPGlobal.parseDate(o.endDate, format, o.language, o.assumeNearbyYear);
+ }
+ else {
+ o.endDate = Infinity;
+ }
+ }
+
+ o.daysOfWeekDisabled = this._resolveDaysOfWeek(o.daysOfWeekDisabled||[]);
+ o.daysOfWeekHighlighted = this._resolveDaysOfWeek(o.daysOfWeekHighlighted||[]);
+
+ o.datesDisabled = o.datesDisabled||[];
+ if (!$.isArray(o.datesDisabled)) {
+ o.datesDisabled = o.datesDisabled.split(',');
+ }
+ o.datesDisabled = $.map(o.datesDisabled, function(d){
+ return DPGlobal.parseDate(d, format, o.language, o.assumeNearbyYear);
+ });
+
+ var plc = String(o.orientation).toLowerCase().split(/\s+/g),
+ _plc = o.orientation.toLowerCase();
+ plc = $.grep(plc, function(word){
+ return /^auto|left|right|top|bottom$/.test(word);
+ });
+ o.orientation = {x: 'auto', y: 'auto'};
+ if (!_plc || _plc === 'auto')
+ ; // no action
+ else if (plc.length === 1){
+ switch (plc[0]){
+ case 'top':
+ case 'bottom':
+ o.orientation.y = plc[0];
+ break;
+ case 'left':
+ case 'right':
+ o.orientation.x = plc[0];
+ break;
+ }
+ }
+ else {
+ _plc = $.grep(plc, function(word){
+ return /^left|right$/.test(word);
+ });
+ o.orientation.x = _plc[0] || 'auto';
+
+ _plc = $.grep(plc, function(word){
+ return /^top|bottom$/.test(word);
+ });
+ o.orientation.y = _plc[0] || 'auto';
+ }
+ if (o.defaultViewDate instanceof Date || typeof o.defaultViewDate === 'string') {
+ o.defaultViewDate = DPGlobal.parseDate(o.defaultViewDate, format, o.language, o.assumeNearbyYear);
+ } else if (o.defaultViewDate) {
+ var year = o.defaultViewDate.year || new Date().getFullYear();
+ var month = o.defaultViewDate.month || 0;
+ var day = o.defaultViewDate.day || 1;
+ o.defaultViewDate = UTCDate(year, month, day);
+ } else {
+ o.defaultViewDate = UTCToday();
+ }
+ },
+ _events: [],
+ _secondaryEvents: [],
+ _applyEvents: function(evs){
+ for (var i=0, el, ch, ev; i < evs.length; i++){
+ el = evs[i][0];
+ if (evs[i].length === 2){
+ ch = undefined;
+ ev = evs[i][1];
+ } else if (evs[i].length === 3){
+ ch = evs[i][1];
+ ev = evs[i][2];
+ }
+ el.on(ev, ch);
+ }
+ },
+ _unapplyEvents: function(evs){
+ for (var i=0, el, ev, ch; i < evs.length; i++){
+ el = evs[i][0];
+ if (evs[i].length === 2){
+ ch = undefined;
+ ev = evs[i][1];
+ } else if (evs[i].length === 3){
+ ch = evs[i][1];
+ ev = evs[i][2];
+ }
+ el.off(ev, ch);
+ }
+ },
+ _buildEvents: function(){
+ var events = {
+ keyup: $.proxy(function(e){
+ if ($.inArray(e.keyCode, [27, 37, 39, 38, 40, 32, 13, 9]) === -1)
+ this.update();
+ }, this),
+ keydown: $.proxy(this.keydown, this),
+ paste: $.proxy(this.paste, this)
+ };
+
+ if (this.o.showOnFocus === true) {
+ events.focus = $.proxy(this.show, this);
+ }
+
+ if (this.isInput) { // single input
+ this._events = [
+ [this.element, events]
+ ];
+ }
+ // component: input + button
+ else if (this.component && this.inputField.length) {
+ this._events = [
+ // For components that are not readonly, allow keyboard nav
+ [this.inputField, events],
+ [this.component, {
+ click: $.proxy(this.show, this)
+ }]
+ ];
+ }
+ else {
+ this._events = [
+ [this.element, {
+ click: $.proxy(this.show, this),
+ keydown: $.proxy(this.keydown, this)
+ }]
+ ];
+ }
+ this._events.push(
+ // Component: listen for blur on element descendants
+ [this.element, '*', {
+ blur: $.proxy(function(e){
+ this._focused_from = e.target;
+ }, this)
+ }],
+ // Input: listen for blur on element
+ [this.element, {
+ blur: $.proxy(function(e){
+ this._focused_from = e.target;
+ }, this)
+ }]
+ );
+
+ if (this.o.immediateUpdates) {
+ // Trigger input updates immediately on changed year/month
+ this._events.push([this.element, {
+ 'changeYear changeMonth': $.proxy(function(e){
+ this.update(e.date);
+ }, this)
+ }]);
+ }
+
+ this._secondaryEvents = [
+ [this.picker, {
+ click: $.proxy(this.click, this)
+ }],
+ [this.picker, '.prev, .next', {
+ click: $.proxy(this.navArrowsClick, this)
+ }],
+ [this.picker, '.day:not(.disabled)', {
+ click: $.proxy(this.dayCellClick, this)
+ }],
+ [$(window), {
+ resize: $.proxy(this.place, this)
+ }],
+ [$(document), {
+ 'mousedown touchstart': $.proxy(function(e){
+ // Clicked outside the datepicker, hide it
+ if (!(
+ this.element.is(e.target) ||
+ this.element.find(e.target).length ||
+ this.picker.is(e.target) ||
+ this.picker.find(e.target).length ||
+ this.isInline
+ )){
+ this.hide();
+ }
+ }, this)
+ }]
+ ];
+ },
+ _attachEvents: function(){
+ this._detachEvents();
+ this._applyEvents(this._events);
+ },
+ _detachEvents: function(){
+ this._unapplyEvents(this._events);
+ },
+ _attachSecondaryEvents: function(){
+ this._detachSecondaryEvents();
+ this._applyEvents(this._secondaryEvents);
+ },
+ _detachSecondaryEvents: function(){
+ this._unapplyEvents(this._secondaryEvents);
+ },
+ _trigger: function(event, altdate){
+ var date = altdate || this.dates.get(-1),
+ local_date = this._utc_to_local(date);
+
+ this.element.trigger({
+ type: event,
+ date: local_date,
+ viewMode: this.viewMode,
+ dates: $.map(this.dates, this._utc_to_local),
+ format: $.proxy(function(ix, format){
+ if (arguments.length === 0){
+ ix = this.dates.length - 1;
+ format = this.o.format;
+ } else if (typeof ix === 'string'){
+ format = ix;
+ ix = this.dates.length - 1;
+ }
+ format = format || this.o.format;
+ var date = this.dates.get(ix);
+ return DPGlobal.formatDate(date, format, this.o.language);
+ }, this)
+ });
+ },
+
+ show: function(){
+ if (this.inputField.prop('disabled') || (this.inputField.prop('readonly') && this.o.enableOnReadonly === false))
+ return;
+ if (!this.isInline)
+ this.picker.appendTo(this.o.container);
+ this.place();
+ this.picker.show();
+ this._attachSecondaryEvents();
+ this._trigger('show');
+ if ((window.navigator.msMaxTouchPoints || 'ontouchstart' in document) && this.o.disableTouchKeyboard) {
+ $(this.element).blur();
+ }
+ return this;
+ },
+
+ hide: function(){
+ if (this.isInline || !this.picker.is(':visible'))
+ return this;
+ this.focusDate = null;
+ this.picker.hide().detach();
+ this._detachSecondaryEvents();
+ this.setViewMode(this.o.startView);
+
+ if (this.o.forceParse && this.inputField.val())
+ this.setValue();
+ this._trigger('hide');
+ return this;
+ },
+
+ destroy: function(){
+ this.hide();
+ this._detachEvents();
+ this._detachSecondaryEvents();
+ this.picker.remove();
+ delete this.element.data().datepicker;
+ if (!this.isInput){
+ delete this.element.data().date;
+ }
+ return this;
+ },
+
+ paste: function(e){
+ var dateString;
+ if (e.originalEvent.clipboardData && e.originalEvent.clipboardData.types
+ && $.inArray('text/plain', e.originalEvent.clipboardData.types) !== -1) {
+ dateString = e.originalEvent.clipboardData.getData('text/plain');
+ } else if (window.clipboardData) {
+ dateString = window.clipboardData.getData('Text');
+ } else {
+ return;
+ }
+ this.setDate(dateString);
+ this.update();
+ e.preventDefault();
+ },
+
+ _utc_to_local: function(utc){
+ if (!utc) {
+ return utc;
+ }
+
+ var local = new Date(utc.getTime() + (utc.getTimezoneOffset() * 60000));
+
+ if (local.getTimezoneOffset() !== utc.getTimezoneOffset()) {
+ local = new Date(utc.getTime() + (local.getTimezoneOffset() * 60000));
+ }
+
+ return local;
+ },
+ _local_to_utc: function(local){
+ return local && new Date(local.getTime() - (local.getTimezoneOffset()*60000));
+ },
+ _zero_time: function(local){
+ return local && new Date(local.getFullYear(), local.getMonth(), local.getDate());
+ },
+ _zero_utc_time: function(utc){
+ return utc && UTCDate(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate());
+ },
+
+ getDates: function(){
+ return $.map(this.dates, this._utc_to_local);
+ },
+
+ getUTCDates: function(){
+ return $.map(this.dates, function(d){
+ return new Date(d);
+ });
+ },
+
+ getDate: function(){
+ return this._utc_to_local(this.getUTCDate());
+ },
+
+ getUTCDate: function(){
+ var selected_date = this.dates.get(-1);
+ if (selected_date !== undefined) {
+ return new Date(selected_date);
+ } else {
+ return null;
+ }
+ },
+
+ clearDates: function(){
+ this.inputField.val('');
+ this.update();
+ this._trigger('changeDate');
+
+ if (this.o.autoclose) {
+ this.hide();
+ }
+ },
+
+ setDates: function(){
+ var args = $.isArray(arguments[0]) ? arguments[0] : arguments;
+ this.update.apply(this, args);
+ this._trigger('changeDate');
+ this.setValue();
+ return this;
+ },
+
+ setUTCDates: function(){
+ var args = $.isArray(arguments[0]) ? arguments[0] : arguments;
+ this.setDates.apply(this, $.map(args, this._utc_to_local));
+ return this;
+ },
+
+ setDate: alias('setDates'),
+ setUTCDate: alias('setUTCDates'),
+ remove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead'),
+
+ setValue: function(){
+ var formatted = this.getFormattedDate();
+ this.inputField.val(formatted);
+ return this;
+ },
+
+ getFormattedDate: function(format){
+ if (format === undefined)
+ format = this.o.format;
+
+ var lang = this.o.language;
+ return $.map(this.dates, function(d){
+ return DPGlobal.formatDate(d, format, lang);
+ }).join(this.o.multidateSeparator);
+ },
+
+ getStartDate: function(){
+ return this.o.startDate;
+ },
+
+ setStartDate: function(startDate){
+ this._process_options({startDate: startDate});
+ this.update();
+ this.updateNavArrows();
+ return this;
+ },
+
+ getEndDate: function(){
+ return this.o.endDate;
+ },
+
+ setEndDate: function(endDate){
+ this._process_options({endDate: endDate});
+ this.update();
+ this.updateNavArrows();
+ return this;
+ },
+
+ setDaysOfWeekDisabled: function(daysOfWeekDisabled){
+ this._process_options({daysOfWeekDisabled: daysOfWeekDisabled});
+ this.update();
+ return this;
+ },
+
+ setDaysOfWeekHighlighted: function(daysOfWeekHighlighted){
+ this._process_options({daysOfWeekHighlighted: daysOfWeekHighlighted});
+ this.update();
+ return this;
+ },
+
+ setDatesDisabled: function(datesDisabled){
+ this._process_options({datesDisabled: datesDisabled});
+ this.update();
+ return this;
+ },
+
+ place: function(){
+ if (this.isInline)
+ return this;
+ var calendarWidth = this.picker.outerWidth(),
+ calendarHeight = this.picker.outerHeight(),
+ visualPadding = 10,
+ container = $(this.o.container),
+ windowWidth = container.width(),
+ scrollTop = this.o.container === 'body' ? $(document).scrollTop() : container.scrollTop(),
+ appendOffset = container.offset();
+
+ var parentsZindex = [0];
+ this.element.parents().each(function(){
+ var itemZIndex = $(this).css('z-index');
+ if (itemZIndex !== 'auto' && Number(itemZIndex) !== 0) parentsZindex.push(Number(itemZIndex));
+ });
+ var zIndex = Math.max.apply(Math, parentsZindex) + this.o.zIndexOffset;
+ var offset = this.component ? this.component.parent().offset() : this.element.offset();
+ var height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false);
+ var width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false);
+ var left = offset.left - appendOffset.left;
+ var top = offset.top - appendOffset.top;
+
+ if (this.o.container !== 'body') {
+ top += scrollTop;
+ }
+
+ this.picker.removeClass(
+ 'datepicker-orient-top datepicker-orient-bottom '+
+ 'datepicker-orient-right datepicker-orient-left'
+ );
+
+ if (this.o.orientation.x !== 'auto'){
+ this.picker.addClass('datepicker-orient-' + this.o.orientation.x);
+ if (this.o.orientation.x === 'right')
+ left -= calendarWidth - width;
+ }
+ // auto x orientation is best-placement: if it crosses a window
+ // edge, fudge it sideways
+ else {
+ if (offset.left < 0) {
+ // component is outside the window on the left side. Move it into visible range
+ this.picker.addClass('datepicker-orient-left');
+ left -= offset.left - visualPadding;
+ } else if (left + calendarWidth > windowWidth) {
+ // the calendar passes the widow right edge. Align it to component right side
+ this.picker.addClass('datepicker-orient-right');
+ left += width - calendarWidth;
+ } else {
+ if (this.o.rtl) {
+ // Default to right
+ this.picker.addClass('datepicker-orient-right');
+ } else {
+ // Default to left
+ this.picker.addClass('datepicker-orient-left');
+ }
+ }
+ }
+
+ // auto y orientation is best-situation: top or bottom, no fudging,
+ // decision based on which shows more of the calendar
+ var yorient = this.o.orientation.y,
+ top_overflow;
+ if (yorient === 'auto'){
+ top_overflow = -scrollTop + top - calendarHeight;
+ yorient = top_overflow < 0 ? 'bottom' : 'top';
+ }
+
+ this.picker.addClass('datepicker-orient-' + yorient);
+ if (yorient === 'top')
+ top -= calendarHeight + parseInt(this.picker.css('padding-top'));
+ else
+ top += height;
+
+ if (this.o.rtl) {
+ var right = windowWidth - (left + width);
+ this.picker.css({
+ top: top,
+ right: right,
+ zIndex: zIndex
+ });
+ } else {
+ this.picker.css({
+ top: top,
+ left: left,
+ zIndex: zIndex
+ });
+ }
+ return this;
+ },
+
+ _allow_update: true,
+ update: function(){
+ if (!this._allow_update)
+ return this;
+
+ var oldDates = this.dates.copy(),
+ dates = [],
+ fromArgs = false;
+ if (arguments.length){
+ $.each(arguments, $.proxy(function(i, date){
+ if (date instanceof Date)
+ date = this._local_to_utc(date);
+ dates.push(date);
+ }, this));
+ fromArgs = true;
+ } else {
+ dates = this.isInput
+ ? this.element.val()
+ : this.element.data('date') || this.inputField.val();
+ if (dates && this.o.multidate)
+ dates = dates.split(this.o.multidateSeparator);
+ else
+ dates = [dates];
+ delete this.element.data().date;
+ }
+
+ dates = $.map(dates, $.proxy(function(date){
+ return DPGlobal.parseDate(date, this.o.format, this.o.language, this.o.assumeNearbyYear);
+ }, this));
+ dates = $.grep(dates, $.proxy(function(date){
+ return (
+ !this.dateWithinRange(date) ||
+ !date
+ );
+ }, this), true);
+ this.dates.replace(dates);
+
+ if (this.o.updateViewDate) {
+ if (this.dates.length)
+ this.viewDate = new Date(this.dates.get(-1));
+ else if (this.viewDate < this.o.startDate)
+ this.viewDate = new Date(this.o.startDate);
+ else if (this.viewDate > this.o.endDate)
+ this.viewDate = new Date(this.o.endDate);
+ else
+ this.viewDate = this.o.defaultViewDate;
+ }
+
+ if (fromArgs){
+ // setting date by clicking
+ this.setValue();
+ this.element.change();
+ }
+ else if (this.dates.length){
+ // setting date by typing
+ if (String(oldDates) !== String(this.dates) && fromArgs) {
+ this._trigger('changeDate');
+ this.element.change();
+ }
+ }
+ if (!this.dates.length && oldDates.length) {
+ this._trigger('clearDate');
+ this.element.change();
+ }
+
+ this.fill();
+ return this;
+ },
+
+ fillDow: function(){
+ if (this.o.showWeekDays) {
+ var dowCnt = this.o.weekStart,
+ html = '<tr>';
+ if (this.o.calendarWeeks){
+ html += '<th class="cw">&#160;</th>';
+ }
+ while (dowCnt < this.o.weekStart + 7){
+ html += '<th class="dow';
+ if ($.inArray(dowCnt, this.o.daysOfWeekDisabled) !== -1)
+ html += ' disabled';
+ html += '">'+dates[this.o.language].daysMin[(dowCnt++)%7]+'</th>';
+ }
+ html += '</tr>';
+ this.picker.find('.datepicker-days thead').append(html);
+ }
+ },
+
+ fillMonths: function(){
+ var localDate = this._utc_to_local(this.viewDate);
+ var html = '';
+ var focused;
+ for (var i = 0; i < 12; i++){
+ focused = localDate && localDate.getMonth() === i ? ' focused' : '';
+ html += '<span class="month' + focused + '">' + dates[this.o.language].monthsShort[i] + '</span>';
+ }
+ this.picker.find('.datepicker-months td').html(html);
+ },
+
+ setRange: function(range){
+ if (!range || !range.length)
+ delete this.range;
+ else
+ this.range = $.map(range, function(d){
+ return d.valueOf();
+ });
+ this.fill();
+ },
+
+ getClassNames: function(date){
+ var cls = [],
+ year = this.viewDate.getUTCFullYear(),
+ month = this.viewDate.getUTCMonth(),
+ today = UTCToday();
+ if (date.getUTCFullYear() < year || (date.getUTCFullYear() === year && date.getUTCMonth() < month)){
+ cls.push('old');
+ } else if (date.getUTCFullYear() > year || (date.getUTCFullYear() === year && date.getUTCMonth() > month)){
+ cls.push('new');
+ }
+ if (this.focusDate && date.valueOf() === this.focusDate.valueOf())
+ cls.push('focused');
+ // Compare internal UTC date with UTC today, not local today
+ if (this.o.todayHighlight && isUTCEquals(date, today)) {
+ cls.push('today');
+ }
+ if (this.dates.contains(date) !== -1)
+ cls.push('active');
+ if (!this.dateWithinRange(date)){
+ cls.push('disabled');
+ }
+ if (this.dateIsDisabled(date)){
+ cls.push('disabled', 'disabled-date');
+ }
+ if ($.inArray(date.getUTCDay(), this.o.daysOfWeekHighlighted) !== -1){
+ cls.push('highlighted');
+ }
+
+ if (this.range){
+ if (date > this.range[0] && date < this.range[this.range.length-1]){
+ cls.push('range');
+ }
+ if ($.inArray(date.valueOf(), this.range) !== -1){
+ cls.push('selected');
+ }
+ if (date.valueOf() === this.range[0]){
+ cls.push('range-start');
+ }
+ if (date.valueOf() === this.range[this.range.length-1]){
+ cls.push('range-end');
+ }
+ }
+ return cls;
+ },
+
+ _fill_yearsView: function(selector, cssClass, factor, year, startYear, endYear, beforeFn){
+ var html = '';
+ var step = factor / 10;
+ var view = this.picker.find(selector);
+ var startVal = Math.floor(year / factor) * factor;
+ var endVal = startVal + step * 9;
+ var focusedVal = Math.floor(this.viewDate.getFullYear() / step) * step;
+ var selected = $.map(this.dates, function(d){
+ return Math.floor(d.getUTCFullYear() / step) * step;
+ });
+
+ var classes, tooltip, before;
+ for (var currVal = startVal - step; currVal <= endVal + step; currVal += step) {
+ classes = [cssClass];
+ tooltip = null;
+
+ if (currVal === startVal - step) {
+ classes.push('old');
+ } else if (currVal === endVal + step) {
+ classes.push('new');
+ }
+ if ($.inArray(currVal, selected) !== -1) {
+ classes.push('active');
+ }
+ if (currVal < startYear || currVal > endYear) {
+ classes.push('disabled');
+ }
+ if (currVal === focusedVal) {
+ classes.push('focused');
+ }
+
+ if (beforeFn !== $.noop) {
+ before = beforeFn(new Date(currVal, 0, 1));
+ if (before === undefined) {
+ before = {};
+ } else if (typeof before === 'boolean') {
+ before = {enabled: before};
+ } else if (typeof before === 'string') {
+ before = {classes: before};
+ }
+ if (before.enabled === false) {
+ classes.push('disabled');
+ }
+ if (before.classes) {
+ classes = classes.concat(before.classes.split(/\s+/));
+ }
+ if (before.tooltip) {
+ tooltip = before.tooltip;
+ }
+ }
+
+ html += '<span class="' + classes.join(' ') + '"' + (tooltip ? ' title="' + tooltip + '"' : '') + '>' + currVal + '</span>';
+ }
+
+ view.find('.datepicker-switch').text(startVal + '-' + endVal);
+ view.find('td').html(html);
+ },
+
+ fill: function(){
+ var d = new Date(this.viewDate),
+ year = d.getUTCFullYear(),
+ month = d.getUTCMonth(),
+ startYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,
+ startMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,
+ endYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,
+ endMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,
+ todaytxt = dates[this.o.language].today || dates['en'].today || '',
+ cleartxt = dates[this.o.language].clear || dates['en'].clear || '',
+ titleFormat = dates[this.o.language].titleFormat || dates['en'].titleFormat,
+ tooltip,
+ before;
+ if (isNaN(year) || isNaN(month))
+ return;
+ this.picker.find('.datepicker-days .datepicker-switch')
+ .text(DPGlobal.formatDate(d, titleFormat, this.o.language));
+ this.picker.find('tfoot .today')
+ .text(todaytxt)
+ .css('display', this.o.todayBtn === true || this.o.todayBtn === 'linked' ? 'table-cell' : 'none');
+ this.picker.find('tfoot .clear')
+ .text(cleartxt)
+ .css('display', this.o.clearBtn === true ? 'table-cell' : 'none');
+ this.picker.find('thead .datepicker-title')
+ .text(this.o.title)
+ .css('display', typeof this.o.title === 'string' && this.o.title !== '' ? 'table-cell' : 'none');
+ this.updateNavArrows();
+ this.fillMonths();
+ var prevMonth = UTCDate(year, month, 0),
+ day = prevMonth.getUTCDate();
+ prevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.o.weekStart + 7)%7);
+ var nextMonth = new Date(prevMonth);
+ if (prevMonth.getUTCFullYear() < 100){
+ nextMonth.setUTCFullYear(prevMonth.getUTCFullYear());
+ }
+ nextMonth.setUTCDate(nextMonth.getUTCDate() + 42);
+ nextMonth = nextMonth.valueOf();
+ var html = [];
+ var weekDay, clsName;
+ while (prevMonth.valueOf() < nextMonth){
+ weekDay = prevMonth.getUTCDay();
+ if (weekDay === this.o.weekStart){
+ html.push('<tr>');
+ if (this.o.calendarWeeks){
+ // ISO 8601: First week contains first thursday.
+ // ISO also states week starts on Monday, but we can be more abstract here.
+ var
+ // Start of current week: based on weekstart/current date
+ ws = new Date(+prevMonth + (this.o.weekStart - weekDay - 7) % 7 * 864e5),
+ // Thursday of this week
+ th = new Date(Number(ws) + (7 + 4 - ws.getUTCDay()) % 7 * 864e5),
+ // First Thursday of year, year from thursday
+ yth = new Date(Number(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay()) % 7 * 864e5),
+ // Calendar week: ms between thursdays, div ms per day, div 7 days
+ calWeek = (th - yth) / 864e5 / 7 + 1;
+ html.push('<td class="cw">'+ calWeek +'</td>');
+ }
+ }
+ clsName = this.getClassNames(prevMonth);
+ clsName.push('day');
+
+ var content = prevMonth.getUTCDate();
+
+ if (this.o.beforeShowDay !== $.noop){
+ before = this.o.beforeShowDay(this._utc_to_local(prevMonth));
+ if (before === undefined)
+ before = {};
+ else if (typeof before === 'boolean')
+ before = {enabled: before};
+ else if (typeof before === 'string')
+ before = {classes: before};
+ if (before.enabled === false)
+ clsName.push('disabled');
+ if (before.classes)
+ clsName = clsName.concat(before.classes.split(/\s+/));
+ if (before.tooltip)
+ tooltip = before.tooltip;
+ if (before.content)
+ content = before.content;
+ }
+
+ //Check if uniqueSort exists (supported by jquery >=1.12 and >=2.2)
+ //Fallback to unique function for older jquery versions
+ if ($.isFunction($.uniqueSort)) {
+ clsName = $.uniqueSort(clsName);
+ } else {
+ clsName = $.unique(clsName);
+ }
+
+ html.push('<td class="'+clsName.join(' ')+'"' + (tooltip ? ' title="'+tooltip+'"' : '') + ' data-date="' + prevMonth.getTime().toString() + '">' + content + '</td>');
+ tooltip = null;
+ if (weekDay === this.o.weekEnd){
+ html.push('</tr>');
+ }
+ prevMonth.setUTCDate(prevMonth.getUTCDate() + 1);
+ }
+ this.picker.find('.datepicker-days tbody').html(html.join(''));
+
+ var monthsTitle = dates[this.o.language].monthsTitle || dates['en'].monthsTitle || 'Months';
+ var months = this.picker.find('.datepicker-months')
+ .find('.datepicker-switch')
+ .text(this.o.maxViewMode < 2 ? monthsTitle : year)
+ .end()
+ .find('tbody span').removeClass('active');
+
+ $.each(this.dates, function(i, d){
+ if (d.getUTCFullYear() === year)
+ months.eq(d.getUTCMonth()).addClass('active');
+ });
+
+ if (year < startYear || year > endYear){
+ months.addClass('disabled');
+ }
+ if (year === startYear){
+ months.slice(0, startMonth).addClass('disabled');
+ }
+ if (year === endYear){
+ months.slice(endMonth+1).addClass('disabled');
+ }
+
+ if (this.o.beforeShowMonth !== $.noop){
+ var that = this;
+ $.each(months, function(i, month){
+ var moDate = new Date(year, i, 1);
+ var before = that.o.beforeShowMonth(moDate);
+ if (before === undefined)
+ before = {};
+ else if (typeof before === 'boolean')
+ before = {enabled: before};
+ else if (typeof before === 'string')
+ before = {classes: before};
+ if (before.enabled === false && !$(month).hasClass('disabled'))
+ $(month).addClass('disabled');
+ if (before.classes)
+ $(month).addClass(before.classes);
+ if (before.tooltip)
+ $(month).prop('title', before.tooltip);
+ });
+ }
+
+ // Generating decade/years picker
+ this._fill_yearsView(
+ '.datepicker-years',
+ 'year',
+ 10,
+ year,
+ startYear,
+ endYear,
+ this.o.beforeShowYear
+ );
+
+ // Generating century/decades picker
+ this._fill_yearsView(
+ '.datepicker-decades',
+ 'decade',
+ 100,
+ year,
+ startYear,
+ endYear,
+ this.o.beforeShowDecade
+ );
+
+ // Generating millennium/centuries picker
+ this._fill_yearsView(
+ '.datepicker-centuries',
+ 'century',
+ 1000,
+ year,
+ startYear,
+ endYear,
+ this.o.beforeShowCentury
+ );
+ },
+
+ updateNavArrows: function(){
+ if (!this._allow_update)
+ return;
+
+ var d = new Date(this.viewDate),
+ year = d.getUTCFullYear(),
+ month = d.getUTCMonth(),
+ startYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,
+ startMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,
+ endYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,
+ endMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,
+ prevIsDisabled,
+ nextIsDisabled,
+ factor = 1;
+ switch (this.viewMode){
+ case 4:
+ factor *= 10;
+ /* falls through */
+ case 3:
+ factor *= 10;
+ /* falls through */
+ case 2:
+ factor *= 10;
+ /* falls through */
+ case 1:
+ prevIsDisabled = Math.floor(year / factor) * factor < startYear;
+ nextIsDisabled = Math.floor(year / factor) * factor + factor > endYear;
+ break;
+ case 0:
+ prevIsDisabled = year <= startYear && month < startMonth;
+ nextIsDisabled = year >= endYear && month > endMonth;
+ break;
+ }
+
+ this.picker.find('.prev').toggleClass('disabled', prevIsDisabled);
+ this.picker.find('.next').toggleClass('disabled', nextIsDisabled);
+ },
+
+ click: function(e){
+ e.preventDefault();
+ e.stopPropagation();
+
+ var target, dir, day, year, month;
+ target = $(e.target);
+
+ // Clicked on the switch
+ if (target.hasClass('datepicker-switch') && this.viewMode !== this.o.maxViewMode){
+ this.setViewMode(this.viewMode + 1);
+ }
+
+ // Clicked on today button
+ if (target.hasClass('today') && !target.hasClass('day')){
+ this.setViewMode(0);
+ this._setDate(UTCToday(), this.o.todayBtn === 'linked' ? null : 'view');
+ }
+
+ // Clicked on clear button
+ if (target.hasClass('clear')){
+ this.clearDates();
+ }
+
+ if (!target.hasClass('disabled')){
+ // Clicked on a month, year, decade, century
+ if (target.hasClass('month')
+ || target.hasClass('year')
+ || target.hasClass('decade')
+ || target.hasClass('century')) {
+ this.viewDate.setUTCDate(1);
+
+ day = 1;
+ if (this.viewMode === 1){
+ month = target.parent().find('span').index(target);
+ year = this.viewDate.getUTCFullYear();
+ this.viewDate.setUTCMonth(month);
+ } else {
+ month = 0;
+ year = Number(target.text());
+ this.viewDate.setUTCFullYear(year);
+ }
+
+ this._trigger(DPGlobal.viewModes[this.viewMode - 1].e, this.viewDate);
+
+ if (this.viewMode === this.o.minViewMode){
+ this._setDate(UTCDate(year, month, day));
+ } else {
+ this.setViewMode(this.viewMode - 1);
+ this.fill();
+ }
+ }
+ }
+
+ if (this.picker.is(':visible') && this._focused_from){
+ this._focused_from.focus();
+ }
+ delete this._focused_from;
+ },
+
+ dayCellClick: function(e){
+ var $target = $(e.currentTarget);
+ var timestamp = $target.data('date');
+ var date = new Date(timestamp);
+
+ if (this.o.updateViewDate) {
+ if (date.getUTCFullYear() !== this.viewDate.getUTCFullYear()) {
+ this._trigger('changeYear', this.viewDate);
+ }
+
+ if (date.getUTCMonth() !== this.viewDate.getUTCMonth()) {
+ this._trigger('changeMonth', this.viewDate);
+ }
+ }
+ this._setDate(date);
+ },
+
+ // Clicked on prev or next
+ navArrowsClick: function(e){
+ var $target = $(e.currentTarget);
+ var dir = $target.hasClass('prev') ? -1 : 1;
+ if (this.viewMode !== 0){
+ dir *= DPGlobal.viewModes[this.viewMode].navStep * 12;
+ }
+ this.viewDate = this.moveMonth(this.viewDate, dir);
+ this._trigger(DPGlobal.viewModes[this.viewMode].e, this.viewDate);
+ this.fill();
+ },
+
+ _toggle_multidate: function(date){
+ var ix = this.dates.contains(date);
+ if (!date){
+ this.dates.clear();
+ }
+
+ if (ix !== -1){
+ if (this.o.multidate === true || this.o.multidate > 1 || this.o.toggleActive){
+ this.dates.remove(ix);
+ }
+ } else if (this.o.multidate === false) {
+ this.dates.clear();
+ this.dates.push(date);
+ }
+ else {
+ this.dates.push(date);
+ }
+
+ if (typeof this.o.multidate === 'number')
+ while (this.dates.length > this.o.multidate)
+ this.dates.remove(0);
+ },
+
+ _setDate: function(date, which){
+ if (!which || which === 'date')
+ this._toggle_multidate(date && new Date(date));
+ if ((!which && this.o.updateViewDate) || which === 'view')
+ this.viewDate = date && new Date(date);
+
+ this.fill();
+ this.setValue();
+ if (!which || which !== 'view') {
+ this._trigger('changeDate');
+ }
+ this.inputField.trigger('change');
+ if (this.o.autoclose && (!which || which === 'date')){
+ this.hide();
+ }
+ },
+
+ moveDay: function(date, dir){
+ var newDate = new Date(date);
+ newDate.setUTCDate(date.getUTCDate() + dir);
+
+ return newDate;
+ },
+
+ moveWeek: function(date, dir){
+ return this.moveDay(date, dir * 7);
+ },
+
+ moveMonth: function(date, dir){
+ if (!isValidDate(date))
+ return this.o.defaultViewDate;
+ if (!dir)
+ return date;
+ var new_date = new Date(date.valueOf()),
+ day = new_date.getUTCDate(),
+ month = new_date.getUTCMonth(),
+ mag = Math.abs(dir),
+ new_month, test;
+ dir = dir > 0 ? 1 : -1;
+ if (mag === 1){
+ test = dir === -1
+ // If going back one month, make sure month is not current month
+ // (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02)
+ ? function(){
+ return new_date.getUTCMonth() === month;
+ }
+ // If going forward one month, make sure month is as expected
+ // (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02)
+ : function(){
+ return new_date.getUTCMonth() !== new_month;
+ };
+ new_month = month + dir;
+ new_date.setUTCMonth(new_month);
+ // Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11
+ new_month = (new_month + 12) % 12;
+ }
+ else {
+ // For magnitudes >1, move one month at a time...
+ for (var i=0; i < mag; i++)
+ // ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...
+ new_date = this.moveMonth(new_date, dir);
+ // ...then reset the day, keeping it in the new month
+ new_month = new_date.getUTCMonth();
+ new_date.setUTCDate(day);
+ test = function(){
+ return new_month !== new_date.getUTCMonth();
+ };
+ }
+ // Common date-resetting loop -- if date is beyond end of month, make it
+ // end of month
+ while (test()){
+ new_date.setUTCDate(--day);
+ new_date.setUTCMonth(new_month);
+ }
+ return new_date;
+ },
+
+ moveYear: function(date, dir){
+ return this.moveMonth(date, dir*12);
+ },
+
+ moveAvailableDate: function(date, dir, fn){
+ do {
+ date = this[fn](date, dir);
+
+ if (!this.dateWithinRange(date))
+ return false;
+
+ fn = 'moveDay';
+ }
+ while (this.dateIsDisabled(date));
+
+ return date;
+ },
+
+ weekOfDateIsDisabled: function(date){
+ return $.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1;
+ },
+
+ dateIsDisabled: function(date){
+ return (
+ this.weekOfDateIsDisabled(date) ||
+ $.grep(this.o.datesDisabled, function(d){
+ return isUTCEquals(date, d);
+ }).length > 0
+ );
+ },
+
+ dateWithinRange: function(date){
+ return date >= this.o.startDate && date <= this.o.endDate;
+ },
+
+ keydown: function(e){
+ if (!this.picker.is(':visible')){
+ if (e.keyCode === 40 || e.keyCode === 27) { // allow down to re-show picker
+ this.show();
+ e.stopPropagation();
+ }
+ return;
+ }
+ var dateChanged = false,
+ dir, newViewDate,
+ focusDate = this.focusDate || this.viewDate;
+ switch (e.keyCode){
+ case 27: // escape
+ if (this.focusDate){
+ this.focusDate = null;
+ this.viewDate = this.dates.get(-1) || this.viewDate;
+ this.fill();
+ }
+ else
+ this.hide();
+ e.preventDefault();
+ e.stopPropagation();
+ break;
+ case 37: // left
+ case 38: // up
+ case 39: // right
+ case 40: // down
+ if (!this.o.keyboardNavigation || this.o.daysOfWeekDisabled.length === 7)
+ break;
+ dir = e.keyCode === 37 || e.keyCode === 38 ? -1 : 1;
+ if (this.viewMode === 0) {
+ if (e.ctrlKey){
+ newViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear');
+
+ if (newViewDate)
+ this._trigger('changeYear', this.viewDate);
+ } else if (e.shiftKey){
+ newViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth');
+
+ if (newViewDate)
+ this._trigger('changeMonth', this.viewDate);
+ } else if (e.keyCode === 37 || e.keyCode === 39){
+ newViewDate = this.moveAvailableDate(focusDate, dir, 'moveDay');
+ } else if (!this.weekOfDateIsDisabled(focusDate)){
+ newViewDate = this.moveAvailableDate(focusDate, dir, 'moveWeek');
+ }
+ } else if (this.viewMode === 1) {
+ if (e.keyCode === 38 || e.keyCode === 40) {
+ dir = dir * 4;
+ }
+ newViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth');
+ } else if (this.viewMode === 2) {
+ if (e.keyCode === 38 || e.keyCode === 40) {
+ dir = dir * 4;
+ }
+ newViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear');
+ }
+ if (newViewDate){
+ this.focusDate = this.viewDate = newViewDate;
+ this.setValue();
+ this.fill();
+ e.preventDefault();
+ }
+ break;
+ case 13: // enter
+ if (!this.o.forceParse)
+ break;
+ focusDate = this.focusDate || this.dates.get(-1) || this.viewDate;
+ if (this.o.keyboardNavigation) {
+ this._toggle_multidate(focusDate);
+ dateChanged = true;
+ }
+ this.focusDate = null;
+ this.viewDate = this.dates.get(-1) || this.viewDate;
+ this.setValue();
+ this.fill();
+ if (this.picker.is(':visible')){
+ e.preventDefault();
+ e.stopPropagation();
+ if (this.o.autoclose)
+ this.hide();
+ }
+ break;
+ case 9: // tab
+ this.focusDate = null;
+ this.viewDate = this.dates.get(-1) || this.viewDate;
+ this.fill();
+ this.hide();
+ break;
+ }
+ if (dateChanged){
+ if (this.dates.length)
+ this._trigger('changeDate');
+ else
+ this._trigger('clearDate');
+ this.inputField.trigger('change');
+ }
+ },
+
+ setViewMode: function(viewMode){
+ this.viewMode = viewMode;
+ this.picker
+ .children('div')
+ .hide()
+ .filter('.datepicker-' + DPGlobal.viewModes[this.viewMode].clsName)
+ .show();
+ this.updateNavArrows();
+ this._trigger('changeViewMode', new Date(this.viewDate));
+ }
+ };
+
+ var DateRangePicker = function(element, options){
+ $.data(element, 'datepicker', this);
+ this.element = $(element);
+ this.inputs = $.map(options.inputs, function(i){
+ return i.jquery ? i[0] : i;
+ });
+ delete options.inputs;
+
+ this.keepEmptyValues = options.keepEmptyValues;
+ delete options.keepEmptyValues;
+
+ datepickerPlugin.call($(this.inputs), options)
+ .on('changeDate', $.proxy(this.dateUpdated, this));
+
+ this.pickers = $.map(this.inputs, function(i){
+ return $.data(i, 'datepicker');
+ });
+ this.updateDates();
+ };
+ DateRangePicker.prototype = {
+ updateDates: function(){
+ this.dates = $.map(this.pickers, function(i){
+ return i.getUTCDate();
+ });
+ this.updateRanges();
+ },
+ updateRanges: function(){
+ var range = $.map(this.dates, function(d){
+ return d.valueOf();
+ });
+ $.each(this.pickers, function(i, p){
+ p.setRange(range);
+ });
+ },
+ clearDates: function(){
+ $.each(this.pickers, function(i, p){
+ p.clearDates();
+ });
+ },
+ dateUpdated: function(e){
+ // `this.updating` is a workaround for preventing infinite recursion
+ // between `changeDate` triggering and `setUTCDate` calling. Until
+ // there is a better mechanism.
+ if (this.updating)
+ return;
+ this.updating = true;
+
+ var dp = $.data(e.target, 'datepicker');
+
+ if (dp === undefined) {
+ return;
+ }
+
+ var new_date = dp.getUTCDate(),
+ keep_empty_values = this.keepEmptyValues,
+ i = $.inArray(e.target, this.inputs),
+ j = i - 1,
+ k = i + 1,
+ l = this.inputs.length;
+ if (i === -1)
+ return;
+
+ $.each(this.pickers, function(i, p){
+ if (!p.getUTCDate() && (p === dp || !keep_empty_values))
+ p.setUTCDate(new_date);
+ });
+
+ if (new_date < this.dates[j]){
+ // Date being moved earlier/left
+ while (j >= 0 && new_date < this.dates[j]){
+ this.pickers[j--].setUTCDate(new_date);
+ }
+ } else if (new_date > this.dates[k]){
+ // Date being moved later/right
+ while (k < l && new_date > this.dates[k]){
+ this.pickers[k++].setUTCDate(new_date);
+ }
+ }
+ this.updateDates();
+
+ delete this.updating;
+ },
+ destroy: function(){
+ $.map(this.pickers, function(p){ p.destroy(); });
+ $(this.inputs).off('changeDate', this.dateUpdated);
+ delete this.element.data().datepicker;
+ },
+ remove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead')
+ };
+
+ function opts_from_el(el, prefix){
+ // Derive options from element data-attrs
+ var data = $(el).data(),
+ out = {}, inkey,
+ replace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])');
+ prefix = new RegExp('^' + prefix.toLowerCase());
+ function re_lower(_,a){
+ return a.toLowerCase();
+ }
+ for (var key in data)
+ if (prefix.test(key)){
+ inkey = key.replace(replace, re_lower);
+ out[inkey] = data[key];
+ }
+ return out;
+ }
+
+ function opts_from_locale(lang){
+ // Derive options from locale plugins
+ var out = {};
+ // Check if "de-DE" style date is available, if not language should
+ // fallback to 2 letter code eg "de"
+ if (!dates[lang]){
+ lang = lang.split('-')[0];
+ if (!dates[lang])
+ return;
+ }
+ var d = dates[lang];
+ $.each(locale_opts, function(i,k){
+ if (k in d)
+ out[k] = d[k];
+ });
+ return out;
+ }
+
+ var old = $.fn.datepicker;
+ var datepickerPlugin = function(option){
+ var args = Array.apply(null, arguments);
+ args.shift();
+ var internal_return;
+ this.each(function(){
+ var $this = $(this),
+ data = $this.data('datepicker'),
+ options = typeof option === 'object' && option;
+ if (!data){
+ var elopts = opts_from_el(this, 'date'),
+ // Preliminary otions
+ xopts = $.extend({}, defaults, elopts, options),
+ locopts = opts_from_locale(xopts.language),
+ // Options priority: js args, data-attrs, locales, defaults
+ opts = $.extend({}, defaults, locopts, elopts, options);
+ if ($this.hasClass('input-daterange') || opts.inputs){
+ $.extend(opts, {
+ inputs: opts.inputs || $this.find('input').toArray()
+ });
+ data = new DateRangePicker(this, opts);
+ }
+ else {
+ data = new Datepicker(this, opts);
+ }
+ $this.data('datepicker', data);
+ }
+ if (typeof option === 'string' && typeof data[option] === 'function'){
+ internal_return = data[option].apply(data, args);
+ }
+ });
+
+ if (
+ internal_return === undefined ||
+ internal_return instanceof Datepicker ||
+ internal_return instanceof DateRangePicker
+ )
+ return this;
+
+ if (this.length > 1)
+ throw new Error('Using only allowed for the collection of a single element (' + option + ' function)');
+ else
+ return internal_return;
+ };
+ $.fn.datepicker = datepickerPlugin;
+
+ var defaults = $.fn.datepicker.defaults = {
+ assumeNearbyYear: false,
+ autoclose: false,
+ beforeShowDay: $.noop,
+ beforeShowMonth: $.noop,
+ beforeShowYear: $.noop,
+ beforeShowDecade: $.noop,
+ beforeShowCentury: $.noop,
+ calendarWeeks: false,
+ clearBtn: false,
+ toggleActive: false,
+ daysOfWeekDisabled: [],
+ daysOfWeekHighlighted: [],
+ datesDisabled: [],
+ endDate: Infinity,
+ forceParse: true,
+ format: 'mm/dd/yyyy',
+ keepEmptyValues: false,
+ keyboardNavigation: true,
+ language: 'en',
+ minViewMode: 0,
+ maxViewMode: 4,
+ multidate: false,
+ multidateSeparator: ',',
+ orientation: "auto",
+ rtl: false,
+ startDate: -Infinity,
+ startView: 0,
+ todayBtn: false,
+ todayHighlight: false,
+ updateViewDate: true,
+ weekStart: 0,
+ disableTouchKeyboard: false,
+ enableOnReadonly: true,
+ showOnFocus: true,
+ zIndexOffset: 10,
+ container: 'body',
+ immediateUpdates: false,
+ title: '',
+ templates: {
+ leftArrow: '&#x00AB;',
+ rightArrow: '&#x00BB;'
+ },
+ showWeekDays: true
+ };
+ var locale_opts = $.fn.datepicker.locale_opts = [
+ 'format',
+ 'rtl',
+ 'weekStart'
+ ];
+ $.fn.datepicker.Constructor = Datepicker;
+ var dates = $.fn.datepicker.dates = {
+ en: {
+ days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
+ daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
+ daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
+ months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
+ today: "Today",
+ clear: "Clear",
+ titleFormat: "MM yyyy"
+ }
+ };
+
+ var DPGlobal = {
+ viewModes: [
+ {
+ names: ['days', 'month'],
+ clsName: 'days',
+ e: 'changeMonth'
+ },
+ {
+ names: ['months', 'year'],
+ clsName: 'months',
+ e: 'changeYear',
+ navStep: 1
+ },
+ {
+ names: ['years', 'decade'],
+ clsName: 'years',
+ e: 'changeDecade',
+ navStep: 10
+ },
+ {
+ names: ['decades', 'century'],
+ clsName: 'decades',
+ e: 'changeCentury',
+ navStep: 100
+ },
+ {
+ names: ['centuries', 'millennium'],
+ clsName: 'centuries',
+ e: 'changeMillennium',
+ navStep: 1000
+ }
+ ],
+ validParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,
+ nonpunctuation: /[^ -\/:-@\u5e74\u6708\u65e5\[-`{-~\t\n\r]+/g,
+ parseFormat: function(format){
+ if (typeof format.toValue === 'function' && typeof format.toDisplay === 'function')
+ return format;
+ // IE treats \0 as a string end in inputs (truncating the value),
+ // so it's a bad format delimiter, anyway
+ var separators = format.replace(this.validParts, '\0').split('\0'),
+ parts = format.match(this.validParts);
+ if (!separators || !separators.length || !parts || parts.length === 0){
+ throw new Error("Invalid date format.");
+ }
+ return {separators: separators, parts: parts};
+ },
+ parseDate: function(date, format, language, assumeNearby){
+ if (!date)
+ return undefined;
+ if (date instanceof Date)
+ return date;
+ if (typeof format === 'string')
+ format = DPGlobal.parseFormat(format);
+ if (format.toValue)
+ return format.toValue(date, format, language);
+ var fn_map = {
+ d: 'moveDay',
+ m: 'moveMonth',
+ w: 'moveWeek',
+ y: 'moveYear'
+ },
+ dateAliases = {
+ yesterday: '-1d',
+ today: '+0d',
+ tomorrow: '+1d'
+ },
+ parts, part, dir, i, fn;
+ if (date in dateAliases){
+ date = dateAliases[date];
+ }
+ if (/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/i.test(date)){
+ parts = date.match(/([\-+]\d+)([dmwy])/gi);
+ date = new Date();
+ for (i=0; i < parts.length; i++){
+ part = parts[i].match(/([\-+]\d+)([dmwy])/i);
+ dir = Number(part[1]);
+ fn = fn_map[part[2].toLowerCase()];
+ date = Datepicker.prototype[fn](date, dir);
+ }
+ return Datepicker.prototype._zero_utc_time(date);
+ }
+
+ parts = date && date.match(this.nonpunctuation) || [];
+
+ function applyNearbyYear(year, threshold){
+ if (threshold === true)
+ threshold = 10;
+
+ // if year is 2 digits or less, than the user most likely is trying to get a recent century
+ if (year < 100){
+ year += 2000;
+ // if the new year is more than threshold years in advance, use last century
+ if (year > ((new Date()).getFullYear()+threshold)){
+ year -= 100;
+ }
+ }
+
+ return year;
+ }
+
+ var parsed = {},
+ setters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'],
+ setters_map = {
+ yyyy: function(d,v){
+ return d.setUTCFullYear(assumeNearby ? applyNearbyYear(v, assumeNearby) : v);
+ },
+ m: function(d,v){
+ if (isNaN(d))
+ return d;
+ v -= 1;
+ while (v < 0) v += 12;
+ v %= 12;
+ d.setUTCMonth(v);
+ while (d.getUTCMonth() !== v)
+ d.setUTCDate(d.getUTCDate()-1);
+ return d;
+ },
+ d: function(d,v){
+ return d.setUTCDate(v);
+ }
+ },
+ val, filtered;
+ setters_map['yy'] = setters_map['yyyy'];
+ setters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m'];
+ setters_map['dd'] = setters_map['d'];
+ date = UTCToday();
+ var fparts = format.parts.slice();
+ // Remove noop parts
+ if (parts.length !== fparts.length){
+ fparts = $(fparts).filter(function(i,p){
+ return $.inArray(p, setters_order) !== -1;
+ }).toArray();
+ }
+ // Process remainder
+ function match_part(){
+ var m = this.slice(0, parts[i].length),
+ p = parts[i].slice(0, m.length);
+ return m.toLowerCase() === p.toLowerCase();
+ }
+ if (parts.length === fparts.length){
+ var cnt;
+ for (i=0, cnt = fparts.length; i < cnt; i++){
+ val = parseInt(parts[i], 10);
+ part = fparts[i];
+ if (isNaN(val)){
+ switch (part){
+ case 'MM':
+ filtered = $(dates[language].months).filter(match_part);
+ val = $.inArray(filtered[0], dates[language].months) + 1;
+ break;
+ case 'M':
+ filtered = $(dates[language].monthsShort).filter(match_part);
+ val = $.inArray(filtered[0], dates[language].monthsShort) + 1;
+ break;
+ }
+ }
+ parsed[part] = val;
+ }
+ var _date, s;
+ for (i=0; i < setters_order.length; i++){
+ s = setters_order[i];
+ if (s in parsed && !isNaN(parsed[s])){
+ _date = new Date(date);
+ setters_map[s](_date, parsed[s]);
+ if (!isNaN(_date))
+ date = _date;
+ }
+ }
+ }
+ return date;
+ },
+ formatDate: function(date, format, language){
+ if (!date)
+ return '';
+ if (typeof format === 'string')
+ format = DPGlobal.parseFormat(format);
+ if (format.toDisplay)
+ return format.toDisplay(date, format, language);
+ var val = {
+ d: date.getUTCDate(),
+ D: dates[language].daysShort[date.getUTCDay()],
+ DD: dates[language].days[date.getUTCDay()],
+ m: date.getUTCMonth() + 1,
+ M: dates[language].monthsShort[date.getUTCMonth()],
+ MM: dates[language].months[date.getUTCMonth()],
+ yy: date.getUTCFullYear().toString().substring(2),
+ yyyy: date.getUTCFullYear()
+ };
+ val.dd = (val.d < 10 ? '0' : '') + val.d;
+ val.mm = (val.m < 10 ? '0' : '') + val.m;
+ date = [];
+ var seps = $.extend([], format.separators);
+ for (var i=0, cnt = format.parts.length; i <= cnt; i++){
+ if (seps.length)
+ date.push(seps.shift());
+ date.push(val[format.parts[i]]);
+ }
+ return date.join('');
+ },
+ headTemplate: '<thead>'+
+ '<tr>'+
+ '<th colspan="7" class="datepicker-title"></th>'+
+ '</tr>'+
+ '<tr>'+
+ '<th class="prev">'+defaults.templates.leftArrow+'</th>'+
+ '<th colspan="5" class="datepicker-switch"></th>'+
+ '<th class="next">'+defaults.templates.rightArrow+'</th>'+
+ '</tr>'+
+ '</thead>',
+ contTemplate: '<tbody><tr><td colspan="7"></td></tr></tbody>',
+ footTemplate: '<tfoot>'+
+ '<tr>'+
+ '<th colspan="7" class="today"></th>'+
+ '</tr>'+
+ '<tr>'+
+ '<th colspan="7" class="clear"></th>'+
+ '</tr>'+
+ '</tfoot>'
+ };
+ DPGlobal.template = '<div class="datepicker">'+
+ '<div class="datepicker-days">'+
+ '<table class="table-condensed">'+
+ DPGlobal.headTemplate+
+ '<tbody></tbody>'+
+ DPGlobal.footTemplate+
+ '</table>'+
+ '</div>'+
+ '<div class="datepicker-months">'+
+ '<table class="table-condensed">'+
+ DPGlobal.headTemplate+
+ DPGlobal.contTemplate+
+ DPGlobal.footTemplate+
+ '</table>'+
+ '</div>'+
+ '<div class="datepicker-years">'+
+ '<table class="table-condensed">'+
+ DPGlobal.headTemplate+
+ DPGlobal.contTemplate+
+ DPGlobal.footTemplate+
+ '</table>'+
+ '</div>'+
+ '<div class="datepicker-decades">'+
+ '<table class="table-condensed">'+
+ DPGlobal.headTemplate+
+ DPGlobal.contTemplate+
+ DPGlobal.footTemplate+
+ '</table>'+
+ '</div>'+
+ '<div class="datepicker-centuries">'+
+ '<table class="table-condensed">'+
+ DPGlobal.headTemplate+
+ DPGlobal.contTemplate+
+ DPGlobal.footTemplate+
+ '</table>'+
+ '</div>'+
+ '</div>';
+
+ $.fn.datepicker.DPGlobal = DPGlobal;
+
+
+ /* DATEPICKER NO CONFLICT
+ * =================== */
+
+ $.fn.datepicker.noConflict = function(){
+ $.fn.datepicker = old;
+ return this;
+ };
+
+ /* DATEPICKER VERSION
+ * =================== */
+ $.fn.datepicker.version = '1.8.0';
+
+ $.fn.datepicker.deprecated = function(msg){
+ var console = window.console;
+ if (console && console.warn) {
+ console.warn('DEPRECATED: ' + msg);
+ }
+ };
+
+
+ /* DATEPICKER DATA-API
+ * ================== */
+
+ $(document).on(
+ 'focus.datepicker.data-api click.datepicker.data-api',
+ '[data-provide="datepicker"]',
+ function(e){
+ var $this = $(this);
+ if ($this.data('datepicker'))
+ return;
+ e.preventDefault();
+ // component click requires us to explicitly show it
+ datepickerPlugin.call($this, 'show');
+ }
+ );
+ $(function(){
+ datepickerPlugin.call($('[data-provide="datepicker-inline"]'));
+ });
+
+}));
diff --git a/public/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js b/public/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js
new file mode 100644
index 0000000..14457e0
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js
@@ -0,0 +1,8 @@
+/*!
+ * Datepicker for Bootstrap v1.8.0 (https://github.com/uxsolutions/bootstrap-datepicker)
+ *
+ * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
+ */
+
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a,b){function c(){return new Date(Date.UTC.apply(Date,arguments))}function d(){var a=new Date;return c(a.getFullYear(),a.getMonth(),a.getDate())}function e(a,b){return a.getUTCFullYear()===b.getUTCFullYear()&&a.getUTCMonth()===b.getUTCMonth()&&a.getUTCDate()===b.getUTCDate()}function f(c,d){return function(){return d!==b&&a.fn.datepicker.deprecated(d),this[c].apply(this,arguments)}}function g(a){return a&&!isNaN(a.getTime())}function h(b,c){function d(a,b){return b.toLowerCase()}var e,f=a(b).data(),g={},h=new RegExp("^"+c.toLowerCase()+"([A-Z])");c=new RegExp("^"+c.toLowerCase());for(var i in f)c.test(i)&&(e=i.replace(h,d),g[e]=f[i]);return g}function i(b){var c={};if(q[b]||(b=b.split("-")[0],q[b])){var d=q[b];return a.each(p,function(a,b){b in d&&(c[b]=d[b])}),c}}var j=function(){var b={get:function(a){return this.slice(a)[0]},contains:function(a){for(var b=a&&a.valueOf(),c=0,d=this.length;c<d;c++)if(0<=this[c].valueOf()-b&&this[c].valueOf()-b<864e5)return c;return-1},remove:function(a){this.splice(a,1)},replace:function(b){b&&(a.isArray(b)||(b=[b]),this.clear(),this.push.apply(this,b))},clear:function(){this.length=0},copy:function(){var a=new j;return a.replace(this),a}};return function(){var c=[];return c.push.apply(c,arguments),a.extend(c,b),c}}(),k=function(b,c){a.data(b,"datepicker",this),this._process_options(c),this.dates=new j,this.viewDate=this.o.defaultViewDate,this.focusDate=null,this.element=a(b),this.isInput=this.element.is("input"),this.inputField=this.isInput?this.element:this.element.find("input"),this.component=!!this.element.hasClass("date")&&this.element.find(".add-on, .input-group-addon, .btn"),this.component&&0===this.component.length&&(this.component=!1),this.isInline=!this.component&&this.element.is("div"),this.picker=a(r.template),this._check_template(this.o.templates.leftArrow)&&this.picker.find(".prev").html(this.o.templates.leftArrow),this._check_template(this.o.templates.rightArrow)&&this.picker.find(".next").html(this.o.templates.rightArrow),this._buildEvents(),this._attachEvents(),this.isInline?this.picker.addClass("datepicker-inline").appendTo(this.element):this.picker.addClass("datepicker-dropdown dropdown-menu"),this.o.rtl&&this.picker.addClass("datepicker-rtl"),this.o.calendarWeeks&&this.picker.find(".datepicker-days .datepicker-switch, thead .datepicker-title, tfoot .today, tfoot .clear").attr("colspan",function(a,b){return Number(b)+1}),this._process_options({startDate:this._o.startDate,endDate:this._o.endDate,daysOfWeekDisabled:this.o.daysOfWeekDisabled,daysOfWeekHighlighted:this.o.daysOfWeekHighlighted,datesDisabled:this.o.datesDisabled}),this._allow_update=!1,this.setViewMode(this.o.startView),this._allow_update=!0,this.fillDow(),this.fillMonths(),this.update(),this.isInline&&this.show()};k.prototype={constructor:k,_resolveViewName:function(b){return a.each(r.viewModes,function(c,d){if(b===c||a.inArray(b,d.names)!==-1)return b=c,!1}),b},_resolveDaysOfWeek:function(b){return a.isArray(b)||(b=b.split(/[,\s]*/)),a.map(b,Number)},_check_template:function(c){try{if(c===b||""===c)return!1;if((c.match(/[<>]/g)||[]).length<=0)return!0;var d=a(c);return d.length>0}catch(a){return!1}},_process_options:function(b){this._o=a.extend({},this._o,b);var e=this.o=a.extend({},this._o),f=e.language;q[f]||(f=f.split("-")[0],q[f]||(f=o.language)),e.language=f,e.startView=this._resolveViewName(e.startView),e.minViewMode=this._resolveViewName(e.minViewMode),e.maxViewMode=this._resolveViewName(e.maxViewMode),e.startView=Math.max(this.o.minViewMode,Math.min(this.o.maxViewMode,e.startView)),e.multidate!==!0&&(e.multidate=Number(e.multidate)||!1,e.multidate!==!1&&(e.multidate=Math.max(0,e.multidate))),e.multidateSeparator=String(e.multidateSeparator),e.weekStart%=7,e.weekEnd=(e.weekStart+6)%7;var g=r.parseFormat(e.format);e.startDate!==-(1/0)&&(e.startDate?e.startDate instanceof Date?e.startDate=this._local_to_utc(this._zero_time(e.startDate)):e.startDate=r.parseDate(e.startDate,g,e.language,e.assumeNearbyYear):e.startDate=-(1/0)),e.endDate!==1/0&&(e.endDate?e.endDate instanceof Date?e.endDate=this._local_to_utc(this._zero_time(e.endDate)):e.endDate=r.parseDate(e.endDate,g,e.language,e.assumeNearbyYear):e.endDate=1/0),e.daysOfWeekDisabled=this._resolveDaysOfWeek(e.daysOfWeekDisabled||[]),e.daysOfWeekHighlighted=this._resolveDaysOfWeek(e.daysOfWeekHighlighted||[]),e.datesDisabled=e.datesDisabled||[],a.isArray(e.datesDisabled)||(e.datesDisabled=e.datesDisabled.split(",")),e.datesDisabled=a.map(e.datesDisabled,function(a){return r.parseDate(a,g,e.language,e.assumeNearbyYear)});var h=String(e.orientation).toLowerCase().split(/\s+/g),i=e.orientation.toLowerCase();if(h=a.grep(h,function(a){return/^auto|left|right|top|bottom$/.test(a)}),e.orientation={x:"auto",y:"auto"},i&&"auto"!==i)if(1===h.length)switch(h[0]){case"top":case"bottom":e.orientation.y=h[0];break;case"left":case"right":e.orientation.x=h[0]}else i=a.grep(h,function(a){return/^left|right$/.test(a)}),e.orientation.x=i[0]||"auto",i=a.grep(h,function(a){return/^top|bottom$/.test(a)}),e.orientation.y=i[0]||"auto";else;if(e.defaultViewDate instanceof Date||"string"==typeof e.defaultViewDate)e.defaultViewDate=r.parseDate(e.defaultViewDate,g,e.language,e.assumeNearbyYear);else if(e.defaultViewDate){var j=e.defaultViewDate.year||(new Date).getFullYear(),k=e.defaultViewDate.month||0,l=e.defaultViewDate.day||1;e.defaultViewDate=c(j,k,l)}else e.defaultViewDate=d()},_events:[],_secondaryEvents:[],_applyEvents:function(a){for(var c,d,e,f=0;f<a.length;f++)c=a[f][0],2===a[f].length?(d=b,e=a[f][1]):3===a[f].length&&(d=a[f][1],e=a[f][2]),c.on(e,d)},_unapplyEvents:function(a){for(var c,d,e,f=0;f<a.length;f++)c=a[f][0],2===a[f].length?(e=b,d=a[f][1]):3===a[f].length&&(e=a[f][1],d=a[f][2]),c.off(d,e)},_buildEvents:function(){var b={keyup:a.proxy(function(b){a.inArray(b.keyCode,[27,37,39,38,40,32,13,9])===-1&&this.update()},this),keydown:a.proxy(this.keydown,this),paste:a.proxy(this.paste,this)};this.o.showOnFocus===!0&&(b.focus=a.proxy(this.show,this)),this.isInput?this._events=[[this.element,b]]:this.component&&this.inputField.length?this._events=[[this.inputField,b],[this.component,{click:a.proxy(this.show,this)}]]:this._events=[[this.element,{click:a.proxy(this.show,this),keydown:a.proxy(this.keydown,this)}]],this._events.push([this.element,"*",{blur:a.proxy(function(a){this._focused_from=a.target},this)}],[this.element,{blur:a.proxy(function(a){this._focused_from=a.target},this)}]),this.o.immediateUpdates&&this._events.push([this.element,{"changeYear changeMonth":a.proxy(function(a){this.update(a.date)},this)}]),this._secondaryEvents=[[this.picker,{click:a.proxy(this.click,this)}],[this.picker,".prev, .next",{click:a.proxy(this.navArrowsClick,this)}],[this.picker,".day:not(.disabled)",{click:a.proxy(this.dayCellClick,this)}],[a(window),{resize:a.proxy(this.place,this)}],[a(document),{"mousedown touchstart":a.proxy(function(a){this.element.is(a.target)||this.element.find(a.target).length||this.picker.is(a.target)||this.picker.find(a.target).length||this.isInline||this.hide()},this)}]]},_attachEvents:function(){this._detachEvents(),this._applyEvents(this._events)},_detachEvents:function(){this._unapplyEvents(this._events)},_attachSecondaryEvents:function(){this._detachSecondaryEvents(),this._applyEvents(this._secondaryEvents)},_detachSecondaryEvents:function(){this._unapplyEvents(this._secondaryEvents)},_trigger:function(b,c){var d=c||this.dates.get(-1),e=this._utc_to_local(d);this.element.trigger({type:b,date:e,viewMode:this.viewMode,dates:a.map(this.dates,this._utc_to_local),format:a.proxy(function(a,b){0===arguments.length?(a=this.dates.length-1,b=this.o.format):"string"==typeof a&&(b=a,a=this.dates.length-1),b=b||this.o.format;var c=this.dates.get(a);return r.formatDate(c,b,this.o.language)},this)})},show:function(){if(!(this.inputField.prop("disabled")||this.inputField.prop("readonly")&&this.o.enableOnReadonly===!1))return this.isInline||this.picker.appendTo(this.o.container),this.place(),this.picker.show(),this._attachSecondaryEvents(),this._trigger("show"),(window.navigator.msMaxTouchPoints||"ontouchstart"in document)&&this.o.disableTouchKeyboard&&a(this.element).blur(),this},hide:function(){return this.isInline||!this.picker.is(":visible")?this:(this.focusDate=null,this.picker.hide().detach(),this._detachSecondaryEvents(),this.setViewMode(this.o.startView),this.o.forceParse&&this.inputField.val()&&this.setValue(),this._trigger("hide"),this)},destroy:function(){return this.hide(),this._detachEvents(),this._detachSecondaryEvents(),this.picker.remove(),delete this.element.data().datepicker,this.isInput||delete this.element.data().date,this},paste:function(b){var c;if(b.originalEvent.clipboardData&&b.originalEvent.clipboardData.types&&a.inArray("text/plain",b.originalEvent.clipboardData.types)!==-1)c=b.originalEvent.clipboardData.getData("text/plain");else{if(!window.clipboardData)return;c=window.clipboardData.getData("Text")}this.setDate(c),this.update(),b.preventDefault()},_utc_to_local:function(a){if(!a)return a;var b=new Date(a.getTime()+6e4*a.getTimezoneOffset());return b.getTimezoneOffset()!==a.getTimezoneOffset()&&(b=new Date(a.getTime()+6e4*b.getTimezoneOffset())),b},_local_to_utc:function(a){return a&&new Date(a.getTime()-6e4*a.getTimezoneOffset())},_zero_time:function(a){return a&&new Date(a.getFullYear(),a.getMonth(),a.getDate())},_zero_utc_time:function(a){return a&&c(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate())},getDates:function(){return a.map(this.dates,this._utc_to_local)},getUTCDates:function(){return a.map(this.dates,function(a){return new Date(a)})},getDate:function(){return this._utc_to_local(this.getUTCDate())},getUTCDate:function(){var a=this.dates.get(-1);return a!==b?new Date(a):null},clearDates:function(){this.inputField.val(""),this.update(),this._trigger("changeDate"),this.o.autoclose&&this.hide()},setDates:function(){var b=a.isArray(arguments[0])?arguments[0]:arguments;return this.update.apply(this,b),this._trigger("changeDate"),this.setValue(),this},setUTCDates:function(){var b=a.isArray(arguments[0])?arguments[0]:arguments;return this.setDates.apply(this,a.map(b,this._utc_to_local)),this},setDate:f("setDates"),setUTCDate:f("setUTCDates"),remove:f("destroy","Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead"),setValue:function(){var a=this.getFormattedDate();return this.inputField.val(a),this},getFormattedDate:function(c){c===b&&(c=this.o.format);var d=this.o.language;return a.map(this.dates,function(a){return r.formatDate(a,c,d)}).join(this.o.multidateSeparator)},getStartDate:function(){return this.o.startDate},setStartDate:function(a){return this._process_options({startDate:a}),this.update(),this.updateNavArrows(),this},getEndDate:function(){return this.o.endDate},setEndDate:function(a){return this._process_options({endDate:a}),this.update(),this.updateNavArrows(),this},setDaysOfWeekDisabled:function(a){return this._process_options({daysOfWeekDisabled:a}),this.update(),this},setDaysOfWeekHighlighted:function(a){return this._process_options({daysOfWeekHighlighted:a}),this.update(),this},setDatesDisabled:function(a){return this._process_options({datesDisabled:a}),this.update(),this},place:function(){if(this.isInline)return this;var b=this.picker.outerWidth(),c=this.picker.outerHeight(),d=10,e=a(this.o.container),f=e.width(),g="body"===this.o.container?a(document).scrollTop():e.scrollTop(),h=e.offset(),i=[0];this.element.parents().each(function(){var b=a(this).css("z-index");"auto"!==b&&0!==Number(b)&&i.push(Number(b))});var j=Math.max.apply(Math,i)+this.o.zIndexOffset,k=this.component?this.component.parent().offset():this.element.offset(),l=this.component?this.component.outerHeight(!0):this.element.outerHeight(!1),m=this.component?this.component.outerWidth(!0):this.element.outerWidth(!1),n=k.left-h.left,o=k.top-h.top;"body"!==this.o.container&&(o+=g),this.picker.removeClass("datepicker-orient-top datepicker-orient-bottom datepicker-orient-right datepicker-orient-left"),"auto"!==this.o.orientation.x?(this.picker.addClass("datepicker-orient-"+this.o.orientation.x),"right"===this.o.orientation.x&&(n-=b-m)):k.left<0?(this.picker.addClass("datepicker-orient-left"),n-=k.left-d):n+b>f?(this.picker.addClass("datepicker-orient-right"),n+=m-b):this.o.rtl?this.picker.addClass("datepicker-orient-right"):this.picker.addClass("datepicker-orient-left");var p,q=this.o.orientation.y;if("auto"===q&&(p=-g+o-c,q=p<0?"bottom":"top"),this.picker.addClass("datepicker-orient-"+q),"top"===q?o-=c+parseInt(this.picker.css("padding-top")):o+=l,this.o.rtl){var r=f-(n+m);this.picker.css({top:o,right:r,zIndex:j})}else this.picker.css({top:o,left:n,zIndex:j});return this},_allow_update:!0,update:function(){if(!this._allow_update)return this;var b=this.dates.copy(),c=[],d=!1;return arguments.length?(a.each(arguments,a.proxy(function(a,b){b instanceof Date&&(b=this._local_to_utc(b)),c.push(b)},this)),d=!0):(c=this.isInput?this.element.val():this.element.data("date")||this.inputField.val(),c=c&&this.o.multidate?c.split(this.o.multidateSeparator):[c],delete this.element.data().date),c=a.map(c,a.proxy(function(a){return r.parseDate(a,this.o.format,this.o.language,this.o.assumeNearbyYear)},this)),c=a.grep(c,a.proxy(function(a){return!this.dateWithinRange(a)||!a},this),!0),this.dates.replace(c),this.o.updateViewDate&&(this.dates.length?this.viewDate=new Date(this.dates.get(-1)):this.viewDate<this.o.startDate?this.viewDate=new Date(this.o.startDate):this.viewDate>this.o.endDate?this.viewDate=new Date(this.o.endDate):this.viewDate=this.o.defaultViewDate),d?(this.setValue(),this.element.change()):this.dates.length&&String(b)!==String(this.dates)&&d&&(this._trigger("changeDate"),this.element.change()),!this.dates.length&&b.length&&(this._trigger("clearDate"),this.element.change()),this.fill(),this},fillDow:function(){if(this.o.showWeekDays){var b=this.o.weekStart,c="<tr>";for(this.o.calendarWeeks&&(c+='<th class="cw">&#160;</th>');b<this.o.weekStart+7;)c+='<th class="dow',a.inArray(b,this.o.daysOfWeekDisabled)!==-1&&(c+=" disabled"),c+='">'+q[this.o.language].daysMin[b++%7]+"</th>";c+="</tr>",this.picker.find(".datepicker-days thead").append(c)}},fillMonths:function(){for(var a,b=this._utc_to_local(this.viewDate),c="",d=0;d<12;d++)a=b&&b.getMonth()===d?" focused":"",c+='<span class="month'+a+'">'+q[this.o.language].monthsShort[d]+"</span>";this.picker.find(".datepicker-months td").html(c)},setRange:function(b){b&&b.length?this.range=a.map(b,function(a){return a.valueOf()}):delete this.range,this.fill()},getClassNames:function(b){var c=[],f=this.viewDate.getUTCFullYear(),g=this.viewDate.getUTCMonth(),h=d();return b.getUTCFullYear()<f||b.getUTCFullYear()===f&&b.getUTCMonth()<g?c.push("old"):(b.getUTCFullYear()>f||b.getUTCFullYear()===f&&b.getUTCMonth()>g)&&c.push("new"),this.focusDate&&b.valueOf()===this.focusDate.valueOf()&&c.push("focused"),this.o.todayHighlight&&e(b,h)&&c.push("today"),this.dates.contains(b)!==-1&&c.push("active"),this.dateWithinRange(b)||c.push("disabled"),this.dateIsDisabled(b)&&c.push("disabled","disabled-date"),a.inArray(b.getUTCDay(),this.o.daysOfWeekHighlighted)!==-1&&c.push("highlighted"),this.range&&(b>this.range[0]&&b<this.range[this.range.length-1]&&c.push("range"),a.inArray(b.valueOf(),this.range)!==-1&&c.push("selected"),b.valueOf()===this.range[0]&&c.push("range-start"),b.valueOf()===this.range[this.range.length-1]&&c.push("range-end")),c},_fill_yearsView:function(c,d,e,f,g,h,i){for(var j,k,l,m="",n=e/10,o=this.picker.find(c),p=Math.floor(f/e)*e,q=p+9*n,r=Math.floor(this.viewDate.getFullYear()/n)*n,s=a.map(this.dates,function(a){return Math.floor(a.getUTCFullYear()/n)*n}),t=p-n;t<=q+n;t+=n)j=[d],k=null,t===p-n?j.push("old"):t===q+n&&j.push("new"),a.inArray(t,s)!==-1&&j.push("active"),(t<g||t>h)&&j.push("disabled"),t===r&&j.push("focused"),i!==a.noop&&(l=i(new Date(t,0,1)),l===b?l={}:"boolean"==typeof l?l={enabled:l}:"string"==typeof l&&(l={classes:l}),l.enabled===!1&&j.push("disabled"),l.classes&&(j=j.concat(l.classes.split(/\s+/))),l.tooltip&&(k=l.tooltip)),m+='<span class="'+j.join(" ")+'"'+(k?' title="'+k+'"':"")+">"+t+"</span>";o.find(".datepicker-switch").text(p+"-"+q),o.find("td").html(m)},fill:function(){var d,e,f=new Date(this.viewDate),g=f.getUTCFullYear(),h=f.getUTCMonth(),i=this.o.startDate!==-(1/0)?this.o.startDate.getUTCFullYear():-(1/0),j=this.o.startDate!==-(1/0)?this.o.startDate.getUTCMonth():-(1/0),k=this.o.endDate!==1/0?this.o.endDate.getUTCFullYear():1/0,l=this.o.endDate!==1/0?this.o.endDate.getUTCMonth():1/0,m=q[this.o.language].today||q.en.today||"",n=q[this.o.language].clear||q.en.clear||"",o=q[this.o.language].titleFormat||q.en.titleFormat;if(!isNaN(g)&&!isNaN(h)){this.picker.find(".datepicker-days .datepicker-switch").text(r.formatDate(f,o,this.o.language)),this.picker.find("tfoot .today").text(m).css("display",this.o.todayBtn===!0||"linked"===this.o.todayBtn?"table-cell":"none"),this.picker.find("tfoot .clear").text(n).css("display",this.o.clearBtn===!0?"table-cell":"none"),this.picker.find("thead .datepicker-title").text(this.o.title).css("display","string"==typeof this.o.title&&""!==this.o.title?"table-cell":"none"),this.updateNavArrows(),this.fillMonths();var p=c(g,h,0),s=p.getUTCDate();p.setUTCDate(s-(p.getUTCDay()-this.o.weekStart+7)%7);var t=new Date(p);p.getUTCFullYear()<100&&t.setUTCFullYear(p.getUTCFullYear()),t.setUTCDate(t.getUTCDate()+42),t=t.valueOf();for(var u,v,w=[];p.valueOf()<t;){if(u=p.getUTCDay(),u===this.o.weekStart&&(w.push("<tr>"),this.o.calendarWeeks)){var x=new Date(+p+(this.o.weekStart-u-7)%7*864e5),y=new Date(Number(x)+(11-x.getUTCDay())%7*864e5),z=new Date(Number(z=c(y.getUTCFullYear(),0,1))+(11-z.getUTCDay())%7*864e5),A=(y-z)/864e5/7+1;w.push('<td class="cw">'+A+"</td>")}v=this.getClassNames(p),v.push("day");var B=p.getUTCDate();this.o.beforeShowDay!==a.noop&&(e=this.o.beforeShowDay(this._utc_to_local(p)),e===b?e={}:"boolean"==typeof e?e={enabled:e}:"string"==typeof e&&(e={classes:e}),e.enabled===!1&&v.push("disabled"),e.classes&&(v=v.concat(e.classes.split(/\s+/))),e.tooltip&&(d=e.tooltip),e.content&&(B=e.content)),v=a.isFunction(a.uniqueSort)?a.uniqueSort(v):a.unique(v),w.push('<td class="'+v.join(" ")+'"'+(d?' title="'+d+'"':"")+' data-date="'+p.getTime().toString()+'">'+B+"</td>"),d=null,u===this.o.weekEnd&&w.push("</tr>"),p.setUTCDate(p.getUTCDate()+1)}this.picker.find(".datepicker-days tbody").html(w.join(""));var C=q[this.o.language].monthsTitle||q.en.monthsTitle||"Months",D=this.picker.find(".datepicker-months").find(".datepicker-switch").text(this.o.maxViewMode<2?C:g).end().find("tbody span").removeClass("active");if(a.each(this.dates,function(a,b){b.getUTCFullYear()===g&&D.eq(b.getUTCMonth()).addClass("active")}),(g<i||g>k)&&D.addClass("disabled"),g===i&&D.slice(0,j).addClass("disabled"),g===k&&D.slice(l+1).addClass("disabled"),this.o.beforeShowMonth!==a.noop){var E=this;a.each(D,function(c,d){var e=new Date(g,c,1),f=E.o.beforeShowMonth(e);f===b?f={}:"boolean"==typeof f?f={enabled:f}:"string"==typeof f&&(f={classes:f}),f.enabled!==!1||a(d).hasClass("disabled")||a(d).addClass("disabled"),f.classes&&a(d).addClass(f.classes),f.tooltip&&a(d).prop("title",f.tooltip)})}this._fill_yearsView(".datepicker-years","year",10,g,i,k,this.o.beforeShowYear),this._fill_yearsView(".datepicker-decades","decade",100,g,i,k,this.o.beforeShowDecade),this._fill_yearsView(".datepicker-centuries","century",1e3,g,i,k,this.o.beforeShowCentury)}},updateNavArrows:function(){if(this._allow_update){var a,b,c=new Date(this.viewDate),d=c.getUTCFullYear(),e=c.getUTCMonth(),f=this.o.startDate!==-(1/0)?this.o.startDate.getUTCFullYear():-(1/0),g=this.o.startDate!==-(1/0)?this.o.startDate.getUTCMonth():-(1/0),h=this.o.endDate!==1/0?this.o.endDate.getUTCFullYear():1/0,i=this.o.endDate!==1/0?this.o.endDate.getUTCMonth():1/0,j=1;switch(this.viewMode){case 4:j*=10;case 3:j*=10;case 2:j*=10;case 1:a=Math.floor(d/j)*j<f,b=Math.floor(d/j)*j+j>h;break;case 0:a=d<=f&&e<g,b=d>=h&&e>i}this.picker.find(".prev").toggleClass("disabled",a),this.picker.find(".next").toggleClass("disabled",b)}},click:function(b){b.preventDefault(),b.stopPropagation();var e,f,g,h;e=a(b.target),e.hasClass("datepicker-switch")&&this.viewMode!==this.o.maxViewMode&&this.setViewMode(this.viewMode+1),e.hasClass("today")&&!e.hasClass("day")&&(this.setViewMode(0),this._setDate(d(),"linked"===this.o.todayBtn?null:"view")),e.hasClass("clear")&&this.clearDates(),e.hasClass("disabled")||(e.hasClass("month")||e.hasClass("year")||e.hasClass("decade")||e.hasClass("century"))&&(this.viewDate.setUTCDate(1),f=1,1===this.viewMode?(h=e.parent().find("span").index(e),g=this.viewDate.getUTCFullYear(),this.viewDate.setUTCMonth(h)):(h=0,g=Number(e.text()),this.viewDate.setUTCFullYear(g)),this._trigger(r.viewModes[this.viewMode-1].e,this.viewDate),this.viewMode===this.o.minViewMode?this._setDate(c(g,h,f)):(this.setViewMode(this.viewMode-1),this.fill())),this.picker.is(":visible")&&this._focused_from&&this._focused_from.focus(),delete this._focused_from},dayCellClick:function(b){var c=a(b.currentTarget),d=c.data("date"),e=new Date(d);this.o.updateViewDate&&(e.getUTCFullYear()!==this.viewDate.getUTCFullYear()&&this._trigger("changeYear",this.viewDate),e.getUTCMonth()!==this.viewDate.getUTCMonth()&&this._trigger("changeMonth",this.viewDate)),this._setDate(e)},navArrowsClick:function(b){var c=a(b.currentTarget),d=c.hasClass("prev")?-1:1;0!==this.viewMode&&(d*=12*r.viewModes[this.viewMode].navStep),this.viewDate=this.moveMonth(this.viewDate,d),this._trigger(r.viewModes[this.viewMode].e,this.viewDate),this.fill()},_toggle_multidate:function(a){var b=this.dates.contains(a);if(a||this.dates.clear(),b!==-1?(this.o.multidate===!0||this.o.multidate>1||this.o.toggleActive)&&this.dates.remove(b):this.o.multidate===!1?(this.dates.clear(),this.dates.push(a)):this.dates.push(a),"number"==typeof this.o.multidate)for(;this.dates.length>this.o.multidate;)this.dates.remove(0)},_setDate:function(a,b){b&&"date"!==b||this._toggle_multidate(a&&new Date(a)),(!b&&this.o.updateViewDate||"view"===b)&&(this.viewDate=a&&new Date(a)),this.fill(),this.setValue(),b&&"view"===b||this._trigger("changeDate"),this.inputField.trigger("change"),!this.o.autoclose||b&&"date"!==b||this.hide()},moveDay:function(a,b){var c=new Date(a);return c.setUTCDate(a.getUTCDate()+b),c},moveWeek:function(a,b){return this.moveDay(a,7*b)},moveMonth:function(a,b){if(!g(a))return this.o.defaultViewDate;if(!b)return a;var c,d,e=new Date(a.valueOf()),f=e.getUTCDate(),h=e.getUTCMonth(),i=Math.abs(b);if(b=b>0?1:-1,1===i)d=b===-1?function(){return e.getUTCMonth()===h}:function(){return e.getUTCMonth()!==c},c=h+b,e.setUTCMonth(c),c=(c+12)%12;else{for(var j=0;j<i;j++)e=this.moveMonth(e,b);c=e.getUTCMonth(),e.setUTCDate(f),d=function(){return c!==e.getUTCMonth()}}for(;d();)e.setUTCDate(--f),e.setUTCMonth(c);return e},moveYear:function(a,b){return this.moveMonth(a,12*b)},moveAvailableDate:function(a,b,c){do{if(a=this[c](a,b),!this.dateWithinRange(a))return!1;c="moveDay"}while(this.dateIsDisabled(a));return a},weekOfDateIsDisabled:function(b){return a.inArray(b.getUTCDay(),this.o.daysOfWeekDisabled)!==-1},dateIsDisabled:function(b){return this.weekOfDateIsDisabled(b)||a.grep(this.o.datesDisabled,function(a){return e(b,a)}).length>0},dateWithinRange:function(a){return a>=this.o.startDate&&a<=this.o.endDate},keydown:function(a){if(!this.picker.is(":visible"))return void(40!==a.keyCode&&27!==a.keyCode||(this.show(),a.stopPropagation()));var b,c,d=!1,e=this.focusDate||this.viewDate;switch(a.keyCode){case 27:this.focusDate?(this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill()):this.hide(),a.preventDefault(),a.stopPropagation();break;case 37:case 38:case 39:case 40:if(!this.o.keyboardNavigation||7===this.o.daysOfWeekDisabled.length)break;b=37===a.keyCode||38===a.keyCode?-1:1,0===this.viewMode?a.ctrlKey?(c=this.moveAvailableDate(e,b,"moveYear"),c&&this._trigger("changeYear",this.viewDate)):a.shiftKey?(c=this.moveAvailableDate(e,b,"moveMonth"),c&&this._trigger("changeMonth",this.viewDate)):37===a.keyCode||39===a.keyCode?c=this.moveAvailableDate(e,b,"moveDay"):this.weekOfDateIsDisabled(e)||(c=this.moveAvailableDate(e,b,"moveWeek")):1===this.viewMode?(38!==a.keyCode&&40!==a.keyCode||(b*=4),c=this.moveAvailableDate(e,b,"moveMonth")):2===this.viewMode&&(38!==a.keyCode&&40!==a.keyCode||(b*=4),c=this.moveAvailableDate(e,b,"moveYear")),c&&(this.focusDate=this.viewDate=c,this.setValue(),this.fill(),a.preventDefault());break;case 13:if(!this.o.forceParse)break;e=this.focusDate||this.dates.get(-1)||this.viewDate,this.o.keyboardNavigation&&(this._toggle_multidate(e),d=!0),this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.setValue(),this.fill(),this.picker.is(":visible")&&(a.preventDefault(),a.stopPropagation(),this.o.autoclose&&this.hide());break;case 9:this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill(),this.hide()}d&&(this.dates.length?this._trigger("changeDate"):this._trigger("clearDate"),this.inputField.trigger("change"))},setViewMode:function(a){this.viewMode=a,this.picker.children("div").hide().filter(".datepicker-"+r.viewModes[this.viewMode].clsName).show(),this.updateNavArrows(),this._trigger("changeViewMode",new Date(this.viewDate))}};var l=function(b,c){a.data(b,"datepicker",this),this.element=a(b),this.inputs=a.map(c.inputs,function(a){return a.jquery?a[0]:a}),delete c.inputs,this.keepEmptyValues=c.keepEmptyValues,delete c.keepEmptyValues,n.call(a(this.inputs),c).on("changeDate",a.proxy(this.dateUpdated,this)),this.pickers=a.map(this.inputs,function(b){return a.data(b,"datepicker")}),this.updateDates()};l.prototype={updateDates:function(){this.dates=a.map(this.pickers,function(a){return a.getUTCDate()}),this.updateRanges()},updateRanges:function(){var b=a.map(this.dates,function(a){return a.valueOf()});a.each(this.pickers,function(a,c){c.setRange(b)})},clearDates:function(){a.each(this.pickers,function(a,b){b.clearDates()})},dateUpdated:function(c){if(!this.updating){this.updating=!0;var d=a.data(c.target,"datepicker");if(d!==b){var e=d.getUTCDate(),f=this.keepEmptyValues,g=a.inArray(c.target,this.inputs),h=g-1,i=g+1,j=this.inputs.length;if(g!==-1){if(a.each(this.pickers,function(a,b){b.getUTCDate()||b!==d&&f||b.setUTCDate(e)}),e<this.dates[h])for(;h>=0&&e<this.dates[h];)this.pickers[h--].setUTCDate(e);else if(e>this.dates[i])for(;i<j&&e>this.dates[i];)this.pickers[i++].setUTCDate(e);this.updateDates(),delete this.updating}}}},destroy:function(){a.map(this.pickers,function(a){a.destroy()}),a(this.inputs).off("changeDate",this.dateUpdated),delete this.element.data().datepicker},remove:f("destroy","Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead")};var m=a.fn.datepicker,n=function(c){var d=Array.apply(null,arguments);d.shift();var e;if(this.each(function(){var b=a(this),f=b.data("datepicker"),g="object"==typeof c&&c;if(!f){var j=h(this,"date"),m=a.extend({},o,j,g),n=i(m.language),p=a.extend({},o,n,j,g);b.hasClass("input-daterange")||p.inputs?(a.extend(p,{inputs:p.inputs||b.find("input").toArray()}),f=new l(this,p)):f=new k(this,p),b.data("datepicker",f)}"string"==typeof c&&"function"==typeof f[c]&&(e=f[c].apply(f,d))}),e===b||e instanceof k||e instanceof l)return this;if(this.length>1)throw new Error("Using only allowed for the collection of a single element ("+c+" function)");return e};a.fn.datepicker=n;var o=a.fn.datepicker.defaults={assumeNearbyYear:!1,autoclose:!1,beforeShowDay:a.noop,beforeShowMonth:a.noop,beforeShowYear:a.noop,beforeShowDecade:a.noop,beforeShowCentury:a.noop,calendarWeeks:!1,clearBtn:!1,toggleActive:!1,daysOfWeekDisabled:[],daysOfWeekHighlighted:[],datesDisabled:[],endDate:1/0,forceParse:!0,format:"mm/dd/yyyy",keepEmptyValues:!1,keyboardNavigation:!0,language:"en",minViewMode:0,maxViewMode:4,multidate:!1,multidateSeparator:",",orientation:"auto",rtl:!1,startDate:-(1/0),startView:0,todayBtn:!1,todayHighlight:!1,updateViewDate:!0,weekStart:0,disableTouchKeyboard:!1,enableOnReadonly:!0,showOnFocus:!0,zIndexOffset:10,container:"body",immediateUpdates:!1,title:"",templates:{leftArrow:"&#x00AB;",rightArrow:"&#x00BB;"},showWeekDays:!0},p=a.fn.datepicker.locale_opts=["format","rtl","weekStart"];a.fn.datepicker.Constructor=k;var q=a.fn.datepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",clear:"Clear",titleFormat:"MM yyyy"}},r={viewModes:[{names:["days","month"],clsName:"days",e:"changeMonth"},{names:["months","year"],clsName:"months",e:"changeYear",navStep:1},{names:["years","decade"],clsName:"years",e:"changeDecade",navStep:10},{names:["decades","century"],clsName:"decades",e:"changeCentury",navStep:100},{names:["centuries","millennium"],clsName:"centuries",e:"changeMillennium",navStep:1e3}],validParts:/dd?|DD?|mm?|MM?|yy(?:yy)?/g,nonpunctuation:/[^ -\/:-@\u5e74\u6708\u65e5\[-`{-~\t\n\r]+/g,parseFormat:function(a){if("function"==typeof a.toValue&&"function"==typeof a.toDisplay)return a;var b=a.replace(this.validParts,"\0").split("\0"),c=a.match(this.validParts);if(!b||!b.length||!c||0===c.length)throw new Error("Invalid date format.");return{separators:b,parts:c}},parseDate:function(c,e,f,g){function h(a,b){return b===!0&&(b=10),a<100&&(a+=2e3,a>(new Date).getFullYear()+b&&(a-=100)),a}function i(){var a=this.slice(0,j[n].length),b=j[n].slice(0,a.length);return a.toLowerCase()===b.toLowerCase()}if(!c)return b;if(c instanceof Date)return c;if("string"==typeof e&&(e=r.parseFormat(e)),e.toValue)return e.toValue(c,e,f);var j,l,m,n,o,p={d:"moveDay",m:"moveMonth",w:"moveWeek",y:"moveYear"},s={yesterday:"-1d",today:"+0d",tomorrow:"+1d"};if(c in s&&(c=s[c]),/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/i.test(c)){for(j=c.match(/([\-+]\d+)([dmwy])/gi),c=new Date,n=0;n<j.length;n++)l=j[n].match(/([\-+]\d+)([dmwy])/i),m=Number(l[1]),o=p[l[2].toLowerCase()],c=k.prototype[o](c,m);return k.prototype._zero_utc_time(c)}j=c&&c.match(this.nonpunctuation)||[];var t,u,v={},w=["yyyy","yy","M","MM","m","mm","d","dd"],x={yyyy:function(a,b){return a.setUTCFullYear(g?h(b,g):b)},m:function(a,b){if(isNaN(a))return a;for(b-=1;b<0;)b+=12;for(b%=12,a.setUTCMonth(b);a.getUTCMonth()!==b;)a.setUTCDate(a.getUTCDate()-1);return a},d:function(a,b){return a.setUTCDate(b)}};x.yy=x.yyyy,x.M=x.MM=x.mm=x.m,x.dd=x.d,c=d();var y=e.parts.slice();if(j.length!==y.length&&(y=a(y).filter(function(b,c){return a.inArray(c,w)!==-1}).toArray()),j.length===y.length){var z;for(n=0,z=y.length;n<z;n++){if(t=parseInt(j[n],10),l=y[n],isNaN(t))switch(l){case"MM":u=a(q[f].months).filter(i),t=a.inArray(u[0],q[f].months)+1;break;case"M":u=a(q[f].monthsShort).filter(i),t=a.inArray(u[0],q[f].monthsShort)+1}v[l]=t}var A,B;for(n=0;n<w.length;n++)B=w[n],B in v&&!isNaN(v[B])&&(A=new Date(c),x[B](A,v[B]),isNaN(A)||(c=A))}return c},formatDate:function(b,c,d){if(!b)return"";if("string"==typeof c&&(c=r.parseFormat(c)),c.toDisplay)return c.toDisplay(b,c,d);var e={d:b.getUTCDate(),D:q[d].daysShort[b.getUTCDay()],DD:q[d].days[b.getUTCDay()],m:b.getUTCMonth()+1,M:q[d].monthsShort[b.getUTCMonth()],MM:q[d].months[b.getUTCMonth()],yy:b.getUTCFullYear().toString().substring(2),yyyy:b.getUTCFullYear()};e.dd=(e.d<10?"0":"")+e.d,e.mm=(e.m<10?"0":"")+e.m,b=[];for(var f=a.extend([],c.separators),g=0,h=c.parts.length;g<=h;g++)f.length&&b.push(f.shift()),b.push(e[c.parts[g]]);return b.join("")},headTemplate:'<thead><tr><th colspan="7" class="datepicker-title"></th></tr><tr><th class="prev">'+o.templates.leftArrow+'</th><th colspan="5" class="datepicker-switch"></th><th class="next">'+o.templates.rightArrow+"</th></tr></thead>",
+contTemplate:'<tbody><tr><td colspan="7"></td></tr></tbody>',footTemplate:'<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>'};r.template='<div class="datepicker"><div class="datepicker-days"><table class="table-condensed">'+r.headTemplate+"<tbody></tbody>"+r.footTemplate+'</table></div><div class="datepicker-months"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+'</table></div><div class="datepicker-years"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+'</table></div><div class="datepicker-decades"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+'</table></div><div class="datepicker-centuries"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+"</table></div></div>",a.fn.datepicker.DPGlobal=r,a.fn.datepicker.noConflict=function(){return a.fn.datepicker=m,this},a.fn.datepicker.version="1.8.0",a.fn.datepicker.deprecated=function(a){var b=window.console;b&&b.warn&&b.warn("DEPRECATED: "+a)},a(document).on("focus.datepicker.data-api click.datepicker.data-api",'[data-provide="datepicker"]',function(b){var c=a(this);c.data("datepicker")||(b.preventDefault(),n.call(c,"show"))}),a(function(){n.call(a('[data-provide="datepicker-inline"]'))})}); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker-en-CA.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker-en-CA.min.js
new file mode 100644
index 0000000..0aab38f
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker-en-CA.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates["en-CA"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:0,format:"yyyy-mm-dd"},a.fn.datepicker.deprecated("This filename doesn't follow the convention, use bootstrap-datepicker.en-CA.js instead.")}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ar-tn.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ar-tn.min.js
new file mode 100644
index 0000000..9d70dc2
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ar-tn.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates["ar-tn"]={days:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت","الأحد"],daysShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت","أحد"],daysMin:["ح","ن","ث","ع","خ","ج","س","ح"],months:["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthsShort:["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],today:"هذا اليوم",rtl:!0}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ar.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ar.min.js
new file mode 100644
index 0000000..ece41af
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ar.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.ar={days:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت","الأحد"],daysShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت","أحد"],daysMin:["ح","ن","ث","ع","خ","ج","س","ح"],months:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthsShort:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],today:"هذا اليوم",rtl:!0}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.az.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.az.min.js
new file mode 100644
index 0000000..56bedf8
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.az.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.az={days:["Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə"],daysShort:["B.","B.e","Ç.a","Ç.","C.a","C.","Ş."],daysMin:["B.","B.e","Ç.a","Ç.","C.a","C.","Ş."],months:["Yanvar","Fevral","Mart","Aprel","May","İyun","İyul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr"],monthsShort:["Yan","Fev","Mar","Apr","May","İyun","İyul","Avq","Sen","Okt","Noy","Dek"],today:"Bu gün",weekStart:1}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bg.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bg.min.js
new file mode 100644
index 0000000..28e8b22
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bg.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.bg={days:["Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота"],daysShort:["Нед","Пон","Вто","Сря","Чет","Пет","Съб"],daysMin:["Н","П","В","С","Ч","П","С"],months:["Януари","Февруари","Март","Април","Май","Юни","Юли","Август","Септември","Октомври","Ноември","Декември"],monthsShort:["Ян","Фев","Мар","Апр","Май","Юни","Юли","Авг","Сеп","Окт","Ное","Дек"],today:"днес"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bn.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bn.min.js
new file mode 100644
index 0000000..f67b5e2
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bn.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.bn={days:["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"],daysShort:["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"],daysMin:["রবি","সোম","মঙ্গল","বুধ","বৃহস্পতি","শুক্র","শনি"],months:["জানুয়ারী","ফেব্রুয়ারি","মার্চ","এপ্রিল","মে","জুন","জুলাই","অগাস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর"],monthsShort:["জানুয়ারী","ফেব্রুয়ারি","মার্চ","এপ্রিল","মে","জুন","জুলাই","অগাস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর"],today:"আজ",monthsTitle:"মাস",clear:"পরিষ্কার",weekStart:0,format:"mm/dd/yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.br.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.br.min.js
new file mode 100644
index 0000000..af3e3bd
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.br.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.br={days:["Sul","Lun","Meurzh","Merc'her","Yaou","Gwener","Sadorn"],daysShort:["Sul","Lun","Meu.","Mer.","Yao.","Gwe.","Sad."],daysMin:["Su","L","Meu","Mer","Y","G","Sa"],months:["Genver","C'hwevrer","Meurzh","Ebrel","Mae","Mezheven","Gouere","Eost","Gwengolo","Here","Du","Kerzu"],monthsShort:["Genv.","C'hw.","Meur.","Ebre.","Mae","Mezh.","Goue.","Eost","Gwen.","Here","Du","Kerz."],today:"Hiziv",monthsTitle:"Miz",clear:"Dilemel",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bs.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bs.min.js
new file mode 100644
index 0000000..cfb06fd
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bs.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.bs={days:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],daysShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],daysMin:["N","Po","U","Sr","Č","Pe","Su"],months:["Januar","Februar","Mart","April","Maj","Juni","Juli","August","Septembar","Oktobar","Novembar","Decembar"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],today:"Danas",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ca.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ca.min.js
new file mode 100644
index 0000000..ac10789
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ca.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.ca={days:["Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte"],daysShort:["Diu","Dil","Dmt","Dmc","Dij","Div","Dis"],daysMin:["dg","dl","dt","dc","dj","dv","ds"],months:["Gener","Febrer","Març","Abril","Maig","Juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"],monthsShort:["Gen","Feb","Mar","Abr","Mai","Jun","Jul","Ago","Set","Oct","Nov","Des"],today:"Avui",monthsTitle:"Mesos",clear:"Esborrar",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cs.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cs.min.js
new file mode 100644
index 0000000..42dfd1a
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cs.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.cs={days:["Neděle","Pondělí","Úterý","Středa","Čtvrtek","Pátek","Sobota"],daysShort:["Ned","Pon","Úte","Stř","Čtv","Pát","Sob"],daysMin:["Ne","Po","Út","St","Čt","Pá","So"],months:["Leden","Únor","Březen","Duben","Květen","Červen","Červenec","Srpen","Září","Říjen","Listopad","Prosinec"],monthsShort:["Led","Úno","Bře","Dub","Kvě","Čer","Čnc","Srp","Zář","Říj","Lis","Pro"],today:"Dnes",clear:"Vymazat",monthsTitle:"Měsíc",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cy.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cy.min.js
new file mode 100644
index 0000000..f85ea03
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cy.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.cy={days:["Sul","Llun","Mawrth","Mercher","Iau","Gwener","Sadwrn"],daysShort:["Sul","Llu","Maw","Mer","Iau","Gwe","Sad"],daysMin:["Su","Ll","Ma","Me","Ia","Gwe","Sa"],months:["Ionawr","Chewfror","Mawrth","Ebrill","Mai","Mehefin","Gorfennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr"],monthsShort:["Ion","Chw","Maw","Ebr","Mai","Meh","Gor","Aws","Med","Hyd","Tach","Rha"],today:"Heddiw"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.da.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.da.min.js
new file mode 100644
index 0000000..53c8180
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.da.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.da={days:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],daysShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],daysMin:["Sø","Ma","Ti","On","To","Fr","Lø"],months:["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],today:"I Dag",weekStart:1,clear:"Nulstil",format:"dd/mm/yyyy",monthsTitle:"Måneder"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.de.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.de.min.js
new file mode 100644
index 0000000..1b5d6a2
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.de.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.de={days:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],daysShort:["Son","Mon","Die","Mit","Don","Fre","Sam"],daysMin:["So","Mo","Di","Mi","Do","Fr","Sa"],months:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthsShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],today:"Heute",monthsTitle:"Monate",clear:"Löschen",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.el.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.el.min.js
new file mode 100644
index 0000000..046e9eb
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.el.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.el={days:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],daysShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],daysMin:["Κυ","Δε","Τρ","Τε","Πε","Πα","Σα"],months:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],monthsShort:["Ιαν","Φεβ","Μαρ","Απρ","Μάι","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],today:"Σήμερα",clear:"Καθαρισμός",weekStart:1,format:"d/m/yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-AU.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-AU.min.js
new file mode 100644
index 0000000..b8d5f41
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-AU.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates["en-AU"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:1,format:"d/mm/yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-CA.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-CA.min.js
new file mode 100644
index 0000000..7b1070f
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-CA.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates["en-CA"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:0,format:"yyyy-mm-dd"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-GB.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-GB.min.js
new file mode 100644
index 0000000..2966f54
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-GB.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates["en-GB"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-IE.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-IE.min.js
new file mode 100644
index 0000000..dc8f71c
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-IE.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates["en-IE"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-NZ.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-NZ.min.js
new file mode 100644
index 0000000..c374a8d
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-NZ.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates["en-NZ"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:1,format:"d/mm/yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-ZA.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-ZA.min.js
new file mode 100644
index 0000000..885a928
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-ZA.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates["en-ZA"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:1,format:"yyyy/mm/d"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.eo.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.eo.min.js
new file mode 100644
index 0000000..736db02
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.eo.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.eo={days:["dimanĉo","lundo","mardo","merkredo","ĵaŭdo","vendredo","sabato"],daysShort:["dim.","lun.","mar.","mer.","ĵaŭ.","ven.","sam."],daysMin:["d","l","ma","me","ĵ","v","s"],months:["januaro","februaro","marto","aprilo","majo","junio","julio","aŭgusto","septembro","oktobro","novembro","decembro"],monthsShort:["jan.","feb.","mar.","apr.","majo","jun.","jul.","aŭg.","sep.","okt.","nov.","dec."],today:"Hodiaŭ",clear:"Nuligi",weekStart:1,format:"yyyy-mm-dd"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.es.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.es.min.js
new file mode 100644
index 0000000..f3cef5d
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.es.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.es={days:["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"],daysShort:["Dom","Lun","Mar","Mié","Jue","Vie","Sáb"],daysMin:["Do","Lu","Ma","Mi","Ju","Vi","Sa"],months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],monthsShort:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],today:"Hoy",monthsTitle:"Meses",clear:"Borrar",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.et.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.et.min.js
new file mode 100644
index 0000000..34cd9c6
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.et.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.et={days:["Pühapäev","Esmaspäev","Teisipäev","Kolmapäev","Neljapäev","Reede","Laupäev"],daysShort:["Pühap","Esmasp","Teisip","Kolmap","Neljap","Reede","Laup"],daysMin:["P","E","T","K","N","R","L"],months:["Jaanuar","Veebruar","Märts","Aprill","Mai","Juuni","Juuli","August","September","Oktoober","November","Detsember"],monthsShort:["Jaan","Veebr","Märts","Apr","Mai","Juuni","Juuli","Aug","Sept","Okt","Nov","Dets"],today:"Täna",clear:"Tühjenda",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.eu.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.eu.min.js
new file mode 100644
index 0000000..c5aa359
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.eu.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.eu={days:["Igandea","Astelehena","Asteartea","Asteazkena","Osteguna","Ostirala","Larunbata"],daysShort:["Ig","Al","Ar","Az","Og","Ol","Lr"],daysMin:["Ig","Al","Ar","Az","Og","Ol","Lr"],months:["Urtarrila","Otsaila","Martxoa","Apirila","Maiatza","Ekaina","Uztaila","Abuztua","Iraila","Urria","Azaroa","Abendua"],monthsShort:["Urt","Ots","Mar","Api","Mai","Eka","Uzt","Abu","Ira","Urr","Aza","Abe"],today:"Gaur",monthsTitle:"Hilabeteak",clear:"Ezabatu",weekStart:1,format:"yyyy/mm/dd"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fa.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fa.min.js
new file mode 100644
index 0000000..8575237
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fa.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.fa={days:["یک‌شنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنج‌شنبه","جمعه","شنبه","یک‌شنبه"],daysShort:["یک","دو","سه","چهار","پنج","جمعه","شنبه","یک"],daysMin:["ی","د","س","چ","پ","ج","ش","ی"],months:["ژانویه","فوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],monthsShort:["ژان","فور","مار","آور","مه","ژون","ژوی","اوت","سپت","اکت","نوا","دسا"],today:"امروز",clear:"پاک کن",weekStart:1,format:"yyyy/mm/dd"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fi.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fi.min.js
new file mode 100644
index 0000000..239dfb7
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fi.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.fi={days:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],daysShort:["sun","maa","tii","kes","tor","per","lau"],daysMin:["su","ma","ti","ke","to","pe","la"],months:["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],monthsShort:["tam","hel","maa","huh","tou","kes","hei","elo","syy","lok","mar","jou"],today:"tänään",clear:"Tyhjennä",weekStart:1,format:"d.m.yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fo.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fo.min.js
new file mode 100644
index 0000000..fa24e3a
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fo.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.fo={days:["Sunnudagur","Mánadagur","Týsdagur","Mikudagur","Hósdagur","Fríggjadagur","Leygardagur"],daysShort:["Sun","Mán","Týs","Mik","Hós","Frí","Ley"],daysMin:["Su","Má","Tý","Mi","Hó","Fr","Le"],months:["Januar","Februar","Marts","Apríl","Mei","Juni","Juli","August","Septembur","Oktobur","Novembur","Desembur"],monthsShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Des"],today:"Í Dag",clear:"Reinsa"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr-CH.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr-CH.min.js
new file mode 100644
index 0000000..1c6bcdc
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr-CH.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.fr={days:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],daysShort:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],daysMin:["D","L","Ma","Me","J","V","S"],months:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],monthsShort:["Jan","Fév","Mar","Avr","Mai","Jui","Jul","Aou","Sep","Oct","Nov","Déc"],today:"Aujourd'hui",monthsTitle:"Mois",clear:"Effacer",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr.min.js
new file mode 100644
index 0000000..244cfba
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.fr={days:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],daysShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],daysMin:["d","l","ma","me","j","v","s"],months:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthsShort:["janv.","févr.","mars","avril","mai","juin","juil.","août","sept.","oct.","nov.","déc."],today:"Aujourd'hui",monthsTitle:"Mois",clear:"Effacer",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.gl.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.gl.min.js
new file mode 100644
index 0000000..3d92606
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.gl.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.gl={days:["Domingo","Luns","Martes","Mércores","Xoves","Venres","Sábado"],daysShort:["Dom","Lun","Mar","Mér","Xov","Ven","Sáb"],daysMin:["Do","Lu","Ma","Me","Xo","Ve","Sa"],months:["Xaneiro","Febreiro","Marzo","Abril","Maio","Xuño","Xullo","Agosto","Setembro","Outubro","Novembro","Decembro"],monthsShort:["Xan","Feb","Mar","Abr","Mai","Xun","Xul","Ago","Sep","Out","Nov","Dec"],today:"Hoxe",clear:"Limpar",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.he.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.he.min.js
new file mode 100644
index 0000000..191cb45
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.he.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.he={days:["ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת","ראשון"],daysShort:["א","ב","ג","ד","ה","ו","ש","א"],daysMin:["א","ב","ג","ד","ה","ו","ש","א"],months:["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],monthsShort:["ינו","פבר","מרץ","אפר","מאי","יונ","יול","אוג","ספט","אוק","נוב","דצמ"],today:"היום",rtl:!0}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hi.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hi.min.js
new file mode 100644
index 0000000..635baff
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hi.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.hi={days:["रविवार","सोमवार","मंगलवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"],daysShort:["सूर्य","सोम","मंगल","बुध","गुरु","शुक्र","शनि"],daysMin:["र","सो","मं","बु","गु","शु","श"],months:["जनवरी","फ़रवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्टूबर","नवंबर","दिसम्बर"],monthsShort:["जन","फ़रवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितं","अक्टूबर","नवं","दिसम्बर"],today:"आज",monthsTitle:"महीने",clear:"साफ",weekStart:1,format:"dd / mm / yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hr.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hr.min.js
new file mode 100644
index 0000000..8b34bce
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hr.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.hr={days:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],daysShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],daysMin:["Ne","Po","Ut","Sr","Če","Pe","Su"],months:["Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],monthsShort:["Sij","Velj","Ožu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro"],today:"Danas"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hu.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hu.min.js
new file mode 100644
index 0000000..f9decf9
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hu.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.hu={days:["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],daysShort:["vas","hét","ked","sze","csü","pén","szo"],daysMin:["V","H","K","Sze","Cs","P","Szo"],months:["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],monthsShort:["jan","feb","már","ápr","máj","jún","júl","aug","sze","okt","nov","dec"],today:"ma",weekStart:1,clear:"töröl",titleFormat:"yyyy. MM",format:"yyyy.mm.dd"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hy.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hy.min.js
new file mode 100644
index 0000000..a1cf653
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hy.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.hy={days:["Կիրակի","Երկուշաբթի","Երեքշաբթի","Չորեքշաբթի","Հինգշաբթի","Ուրբաթ","Շաբաթ"],daysShort:["Կիր","Երկ","Երե","Չոր","Հին","Ուրբ","Շաբ"],daysMin:["Կի","Եկ","Եք","Չո","Հի","Ու","Շա"],months:["Հունվար","Փետրվար","Մարտ","Ապրիլ","Մայիս","Հունիս","Հուլիս","Օգոստոս","Սեպտեմբեր","Հոկտեմբեր","Նոյեմբեր","Դեկտեմբեր"],monthsShort:["Հնվ","Փետ","Մար","Ապր","Մայ","Հուն","Հուլ","Օգս","Սեպ","Հոկ","Նոյ","Դեկ"],today:"Այսօր",clear:"Ջնջել",format:"dd.mm.yyyy",weekStart:1,monthsTitle:"Ամիսնէր"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.id.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.id.min.js
new file mode 100644
index 0000000..7c3220a
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.id.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.id={days:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],daysShort:["Mgu","Sen","Sel","Rab","Kam","Jum","Sab"],daysMin:["Mg","Sn","Sl","Ra","Ka","Ju","Sa"],months:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],monthsShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Ags","Sep","Okt","Nov","Des"],today:"Hari Ini",clear:"Kosongkan"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.is.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.is.min.js
new file mode 100644
index 0000000..f49bd18
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.is.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.is={days:["Sunnudagur","Mánudagur","Þriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur"],daysShort:["Sun","Mán","Þri","Mið","Fim","Fös","Lau"],daysMin:["Su","Má","Þr","Mi","Fi","Fö","La"],months:["Janúar","Febrúar","Mars","Apríl","Maí","Júní","Júlí","Ágúst","September","Október","Nóvember","Desember"],monthsShort:["Jan","Feb","Mar","Apr","Maí","Jún","Júl","Ágú","Sep","Okt","Nóv","Des"],today:"Í Dag"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it-CH.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it-CH.min.js
new file mode 100644
index 0000000..7e1adbb
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it-CH.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.it={days:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],daysShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],daysMin:["Do","Lu","Ma","Me","Gi","Ve","Sa"],months:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],monthsShort:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],today:"Oggi",clear:"Cancella",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it.min.js
new file mode 100644
index 0000000..cc30766
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.it={days:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],daysShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],daysMin:["Do","Lu","Ma","Me","Gi","Ve","Sa"],months:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],monthsShort:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],today:"Oggi",monthsTitle:"Mesi",clear:"Cancella",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ja.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ja.min.js
new file mode 100644
index 0000000..e321f04
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ja.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.ja={days:["日曜","月曜","火曜","水曜","木曜","金曜","土曜"],daysShort:["日","月","火","水","木","金","土"],daysMin:["日","月","火","水","木","金","土"],months:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],monthsShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],today:"今日",format:"yyyy/mm/dd",titleFormat:"yyyy年mm月",clear:"クリア"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ka.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ka.min.js
new file mode 100644
index 0000000..84f14c0
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ka.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.ka={days:["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"],daysShort:["კვი","ორშ","სამ","ოთხ","ხუთ","პარ","შაბ"],daysMin:["კვ","ორ","სა","ოთ","ხუ","პა","შა"],months:["იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი"],monthsShort:["იან","თებ","მარ","აპრ","მაი","ივნ","ივლ","აგვ","სექ","ოქტ","ნოე","დეკ"],today:"დღეს",clear:"გასუფთავება",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kh.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kh.min.js
new file mode 100644
index 0000000..bf2abc5
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kh.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.kh={days:["អាទិត្យ","ចន្ទ","អង្គារ","ពុធ","ព្រហស្បតិ៍","សុក្រ","សៅរ៍"],daysShort:["អា.ទិ","ចន្ទ","អង្គារ","ពុធ","ព្រ.ហ","សុក្រ","សៅរ៍"],daysMin:["អា.ទិ","ចន្ទ","អង្គារ","ពុធ","ព្រ.ហ","សុក្រ","សៅរ៍"],months:["មករា","កុម្ភះ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ"],monthsShort:["មករា","កុម្ភះ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ"],today:"ថ្ងៃនេះ",clear:"សំអាត"},a.fn.datepicker.deprecated('The language code "kh" is deprecated and will be removed in 2.0. For Khmer support use "km" instead.')}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kk.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kk.min.js
new file mode 100644
index 0000000..f4e2f3f
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kk.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.kk={days:["Жексенбі","Дүйсенбі","Сейсенбі","Сәрсенбі","Бейсенбі","Жұма","Сенбі"],daysShort:["Жек","Дүй","Сей","Сәр","Бей","Жұм","Сен"],daysMin:["Жк","Дс","Сс","Ср","Бс","Жм","Сн"],months:["Қаңтар","Ақпан","Наурыз","Сәуір","Мамыр","Маусым","Шілде","Тамыз","Қыркүйек","Қазан","Қараша","Желтоқсан"],monthsShort:["Қаң","Ақп","Нау","Сәу","Мам","Мау","Шіл","Там","Қыр","Қаз","Қар","Жел"],today:"Бүгін",weekStart:1}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.km.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.km.min.js
new file mode 100644
index 0000000..648d83f
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.km.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.km={days:["អាទិត្យ","ចន្ទ","អង្គារ","ពុធ","ព្រហស្បតិ៍","សុក្រ","សៅរ៍"],daysShort:["អា.ទិ","ចន្ទ","អង្គារ","ពុធ","ព្រ.ហ","សុក្រ","សៅរ៍"],daysMin:["អា.ទិ","ចន្ទ","អង្គារ","ពុធ","ព្រ.ហ","សុក្រ","សៅរ៍"],months:["មករា","កុម្ភះ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ"],monthsShort:["មករា","កុម្ភះ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ"],today:"ថ្ងៃនេះ",clear:"សំអាត"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ko.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ko.min.js
new file mode 100644
index 0000000..9751ee5
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ko.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.ko={days:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],daysShort:["일","월","화","수","목","금","토"],daysMin:["일","월","화","수","목","금","토"],months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],monthsShort:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],today:"오늘",clear:"삭제",format:"yyyy-mm-dd",titleFormat:"yyyy년mm월",weekStart:0}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kr.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kr.min.js
new file mode 100644
index 0000000..4339340
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kr.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.kr={days:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],daysShort:["일","월","화","수","목","금","토"],daysMin:["일","월","화","수","목","금","토"],months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],monthsShort:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"]},a.fn.datepicker.deprecated('The language code "kr" is deprecated and will be removed in 2.0. For korean support use "ko" instead.')}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lt.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lt.min.js
new file mode 100644
index 0000000..da78ea8
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lt.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.lt={days:["Sekmadienis","Pirmadienis","Antradienis","Trečiadienis","Ketvirtadienis","Penktadienis","Šeštadienis"],daysShort:["S","Pr","A","T","K","Pn","Š"],daysMin:["Sk","Pr","An","Tr","Ke","Pn","Št"],months:["Sausis","Vasaris","Kovas","Balandis","Gegužė","Birželis","Liepa","Rugpjūtis","Rugsėjis","Spalis","Lapkritis","Gruodis"],monthsShort:["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rugp","Rugs","Spa","Lap","Gru"],today:"Šiandien",monthsTitle:"Mėnesiai",clear:"Išvalyti",weekStart:1,format:"yyyy-mm-dd"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lv.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lv.min.js
new file mode 100644
index 0000000..89cea00
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lv.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.lv={days:["Svētdiena","Pirmdiena","Otrdiena","Trešdiena","Ceturtdiena","Piektdiena","Sestdiena"],daysShort:["Sv","P","O","T","C","Pk","S"],daysMin:["Sv","Pr","Ot","Tr","Ce","Pk","Se"],months:["Janvāris","Februāris","Marts","Aprīlis","Maijs","Jūnijs","Jūlijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],monthsShort:["Jan","Feb","Mar","Apr","Mai","Jūn","Jūl","Aug","Sep","Okt","Nov","Dec"],monthsTitle:"Mēneši",today:"Šodien",clear:"Nodzēst",weekStart:1}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.me.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.me.min.js
new file mode 100644
index 0000000..c65a891
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.me.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.me={days:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],daysShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],daysMin:["Ne","Po","Ut","Sr","Če","Pe","Su"],months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],today:"Danas",weekStart:1,clear:"Izbriši",format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.mk.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.mk.min.js
new file mode 100644
index 0000000..46423f7
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.mk.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.mk={days:["Недела","Понеделник","Вторник","Среда","Четврток","Петок","Сабота"],daysShort:["Нед","Пон","Вто","Сре","Чет","Пет","Саб"],daysMin:["Не","По","Вт","Ср","Че","Пе","Са"],months:["Јануари","Февруари","Март","Април","Мај","Јуни","Јули","Август","Септември","Октомври","Ноември","Декември"],monthsShort:["Јан","Фев","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Ное","Дек"],today:"Денес",format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.mn.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.mn.min.js
new file mode 100644
index 0000000..6ebaec9
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.mn.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.mn={days:["Ням","Даваа","Мягмар","Лхагва","Пүрэв","Баасан","Бямба"],daysShort:["Ням","Дав","Мяг","Лха","Пүр","Баа","Бям"],daysMin:["Ня","Да","Мя","Лх","Пү","Ба","Бя"],months:["Хулгана","Үхэр","Бар","Туулай","Луу","Могой","Морь","Хонь","Бич","Тахиа","Нохой","Гахай"],monthsShort:["Хул","Үхэ","Бар","Туу","Луу","Мог","Мор","Хон","Бич","Тах","Нох","Гах"],today:"Өнөөдөр",clear:"Тодорхой",format:"yyyy.mm.dd",weekStart:1}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ms.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ms.min.js
new file mode 100644
index 0000000..47efafd
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ms.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.ms={days:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"],daysShort:["Aha","Isn","Sel","Rab","Kha","Jum","Sab"],daysMin:["Ah","Is","Se","Ra","Kh","Ju","Sa"],months:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"],monthsShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Ogo","Sep","Okt","Nov","Dis"],today:"Hari Ini",clear:"Bersihkan"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl-BE.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl-BE.min.js
new file mode 100644
index 0000000..85d3146
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl-BE.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates["nl-BE"]={days:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],daysShort:["zo","ma","di","wo","do","vr","za"],daysMin:["zo","ma","di","wo","do","vr","za"],months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthsShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],today:"Vandaag",monthsTitle:"Maanden",clear:"Leegmaken",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl.min.js
new file mode 100644
index 0000000..af977b7
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.nl={days:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],daysShort:["zo","ma","di","wo","do","vr","za"],daysMin:["zo","ma","di","wo","do","vr","za"],months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthsShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],today:"Vandaag",monthsTitle:"Maanden",clear:"Wissen",weekStart:1,format:"dd-mm-yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.no.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.no.min.js
new file mode 100644
index 0000000..03970b4
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.no.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.no={days:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],daysShort:["søn","man","tir","ons","tor","fre","lør"],daysMin:["sø","ma","ti","on","to","fr","lø"],months:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","vovember","desember"],monthsShort:["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],today:"i dag",monthsTitle:"Måneder",clear:"Nullstill",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.oc.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.oc.min.js
new file mode 100644
index 0000000..630fa16
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.oc.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.oc={days:["Dimenge","Diluns","Dimars","Dimècres","Dijòus","Divendres","Dissabte"],daysShort:["Dim","Dil","Dmr","Dmc","Dij","Div","Dis"],daysMin:["dg","dl","dr","dc","dj","dv","ds"],months:["Genièr","Febrièr","Març","Abrial","Mai","Junh","Julhet","Agost","Setembre","Octobre","Novembre","Decembre"],monthsShort:["Gen","Feb","Mar","Abr","Mai","Jun","Jul","Ago","Set","Oct","Nov","Dec"],today:"Uèi",monthsTitle:"Meses",clear:"Escafar",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pl.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pl.min.js
new file mode 100644
index 0000000..ffb30ec
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pl.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.pl={days:["Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota"],daysShort:["Niedz.","Pon.","Wt.","Śr.","Czw.","Piąt.","Sob."],daysMin:["Ndz.","Pn.","Wt.","Śr.","Czw.","Pt.","Sob."],months:["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"],monthsShort:["Sty.","Lut.","Mar.","Kwi.","Maj","Cze.","Lip.","Sie.","Wrz.","Paź.","Lis.","Gru."],today:"Dzisiaj",weekStart:1,clear:"Wyczyść",format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt-BR.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt-BR.min.js
new file mode 100644
index 0000000..2d3f8af
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt-BR.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates["pt-BR"]={days:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"],daysShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],daysMin:["Do","Se","Te","Qu","Qu","Se","Sa"],months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthsShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],today:"Hoje",monthsTitle:"Meses",clear:"Limpar",format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt.min.js
new file mode 100644
index 0000000..e2b4e64
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.pt={days:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"],daysShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],daysMin:["Do","Se","Te","Qu","Qu","Se","Sa"],months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthsShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],today:"Hoje",monthsTitle:"Meses",clear:"Limpar",format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ro.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ro.min.js
new file mode 100644
index 0000000..5fff298
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ro.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.ro={days:["Duminică","Luni","Marţi","Miercuri","Joi","Vineri","Sâmbătă"],daysShort:["Dum","Lun","Mar","Mie","Joi","Vin","Sâm"],daysMin:["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],months:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],monthsShort:["Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sep","Oct","Nov","Dec"],today:"Astăzi",clear:"Șterge",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs-latin.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs-latin.min.js
new file mode 100644
index 0000000..e520c95
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs-latin.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates["rs-latin"]={days:["Nedelja","Ponedeljak","Utorak","Sreda","Četvrtak","Petak","Subota"],daysShort:["Ned","Pon","Uto","Sre","Čet","Pet","Sub"],daysMin:["N","Po","U","Sr","Č","Pe","Su"],months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],today:"Danas",weekStart:1,format:"dd.mm.yyyy"},a.fn.datepicker.deprecated('This language code "rs-latin" is deprecated (invalid serbian language code) and will be removed in 2.0. For Serbian latin support use "sr-latin" instead.')}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs.min.js
new file mode 100644
index 0000000..ba95ae2
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.rs={days:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],daysShort:["Нед","Пон","Уто","Сре","Чет","Пет","Суб"],daysMin:["Н","По","У","Ср","Ч","Пе","Су"],months:["Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],monthsShort:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец"],today:"Данас",weekStart:1,format:"dd.mm.yyyy"},a.fn.datepicker.deprecated('This language code "rs" is deprecated (invalid serbian language code) and will be removed in 2.0. For Serbian support use "sr" instead.')}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ru.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ru.min.js
new file mode 100644
index 0000000..52bc010
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ru.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.ru={days:["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],daysShort:["Вск","Пнд","Втр","Срд","Чтв","Птн","Суб"],daysMin:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthsShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],today:"Сегодня",clear:"Очистить",format:"dd.mm.yyyy",weekStart:1,monthsTitle:"Месяцы"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.si.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.si.min.js
new file mode 100644
index 0000000..b9746b8
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.si.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.si={days:["ඉරිදා","සඳුදා","අඟහරුවාදා","බදාදා","බ්‍රහස්පතින්දා","සිකුරාදා","සෙනසුරාදා"],daysShort:["ඉරි","සඳු","අඟ","බදා","බ්‍රහ","සිකු","සෙන"],daysMin:["ඉ","ස","අ","බ","බ්‍ර","සි","සෙ"],months:["ජනවාරි","පෙබරවාරි","මාර්තු","අප්‍රේල්","මැයි","ජුනි","ජූලි","අගෝස්තු","සැප්තැම්බර්","ඔක්තෝබර්","නොවැම්බර්","දෙසැම්බර්"],monthsShort:["ජන","පෙබ","මාර්","අප්‍රේ","මැයි","ජුනි","ජූලි","අගෝ","සැප්","ඔක්","නොවැ","දෙසැ"],today:"අද",monthsTitle:"මාස",clear:"මකන්න",weekStart:0,format:"yyyy-mm-dd"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sk.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sk.min.js
new file mode 100644
index 0000000..79a9267
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sk.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.sk={days:["Nedeľa","Pondelok","Utorok","Streda","Štvrtok","Piatok","Sobota"],daysShort:["Ned","Pon","Uto","Str","Štv","Pia","Sob"],daysMin:["Ne","Po","Ut","St","Št","Pia","So"],months:["Január","Február","Marec","Apríl","Máj","Jún","Júl","August","September","Október","November","December"],monthsShort:["Jan","Feb","Mar","Apr","Máj","Jún","Júl","Aug","Sep","Okt","Nov","Dec"],today:"Dnes",clear:"Vymazať",weekStart:1,format:"d.m.yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sl.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sl.min.js
new file mode 100644
index 0000000..831cf73
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sl.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.sl={days:["Nedelja","Ponedeljek","Torek","Sreda","Četrtek","Petek","Sobota"],daysShort:["Ned","Pon","Tor","Sre","Čet","Pet","Sob"],daysMin:["Ne","Po","To","Sr","Če","Pe","So"],months:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],today:"Danes",weekStart:1}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sq.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sq.min.js
new file mode 100644
index 0000000..40f3e1f
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sq.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.sq={days:["E Diel","E Hënë","E Martē","E Mërkurë","E Enjte","E Premte","E Shtunë"],daysShort:["Die","Hën","Mar","Mër","Enj","Pre","Shtu"],daysMin:["Di","Hë","Ma","Më","En","Pr","Sht"],months:["Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","Nëntor","Dhjetor"],monthsShort:["Jan","Shk","Mar","Pri","Maj","Qer","Korr","Gu","Sht","Tet","Nën","Dhjet"],today:"Sot"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr-latin.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr-latin.min.js
new file mode 100644
index 0000000..c6b7001
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr-latin.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates["sr-latin"]={days:["Nedelja","Ponedeljak","Utorak","Sreda","Četvrtak","Petak","Subota"],daysShort:["Ned","Pon","Uto","Sre","Čet","Pet","Sub"],daysMin:["N","Po","U","Sr","Č","Pe","Su"],months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],today:"Danas",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr.min.js
new file mode 100644
index 0000000..4e46dbf
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.sr={days:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],daysShort:["Нед","Пон","Уто","Сре","Чет","Пет","Суб"],daysMin:["Н","По","У","Ср","Ч","Пе","Су"],months:["Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],monthsShort:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец"],today:"Данас",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sv.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sv.min.js
new file mode 100644
index 0000000..7ab6bec
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sv.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.sv={days:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],daysShort:["sön","mån","tis","ons","tor","fre","lör"],daysMin:["sö","må","ti","on","to","fr","lö"],months:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],monthsShort:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],today:"Idag",format:"yyyy-mm-dd",weekStart:1,clear:"Rensa"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sw.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sw.min.js
new file mode 100644
index 0000000..454d305
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sw.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.sw={days:["Jumapili","Jumatatu","Jumanne","Jumatano","Alhamisi","Ijumaa","Jumamosi"],daysShort:["J2","J3","J4","J5","Alh","Ij","J1"],daysMin:["2","3","4","5","A","I","1"],months:["Januari","Februari","Machi","Aprili","Mei","Juni","Julai","Agosti","Septemba","Oktoba","Novemba","Desemba"],monthsShort:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ago","Sep","Okt","Nov","Des"],today:"Leo"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ta.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ta.min.js
new file mode 100644
index 0000000..e790949
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ta.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.ta={days:["ஞாயிறு","திங்கள்","செவ்வாய்","புதன்","வியாழன்","வெள்ளி","சனி"],daysShort:["ஞாயி","திங்","செவ்","புத","வியா","வெள்","சனி"],daysMin:["ஞா","தி","செ","பு","வி","வெ","ச"],months:["ஜனவரி","பிப்ரவரி","மார்ச்","ஏப்ரல்","மே","ஜூன்","ஜூலை","ஆகஸ்டு","செப்டம்பர்","அக்டோபர்","நவம்பர்","டிசம்பர்"],monthsShort:["ஜன","பிப்","மார்","ஏப்","மே","ஜூன்","ஜூலை","ஆக","செப்","அக்","நவ","டிச"],today:"இன்று",monthsTitle:"மாதங்கள்",clear:"நீக்கு",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tg.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tg.min.js
new file mode 100644
index 0000000..104b6dd
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tg.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.tg={days:["Якшанбе","Душанбе","Сешанбе","Чоршанбе","Панҷшанбе","Ҷумъа","Шанбе"],daysShort:["Яшб","Дшб","Сшб","Чшб","Пшб","Ҷум","Шнб"],daysMin:["Яш","Дш","Сш","Чш","Пш","Ҷм","Шб"],months:["Январ","Феврал","Март","Апрел","Май","Июн","Июл","Август","Сентябр","Октябр","Ноябр","Декабр"],monthsShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],today:"Имрӯз",monthsTitle:"Моҳҳо",clear:"Тоза намудан",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.th.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.th.min.js
new file mode 100644
index 0000000..1e398ba
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.th.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.th={days:["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัส","ศุกร์","เสาร์","อาทิตย์"],daysShort:["อา","จ","อ","พ","พฤ","ศ","ส","อา"],daysMin:["อา","จ","อ","พ","พฤ","ศ","ส","อา"],months:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],monthsShort:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],today:"วันนี้"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tk.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tk.min.js
new file mode 100644
index 0000000..716edef
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tk.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.tk={days:["Ýekşenbe","Duşenbe","Sişenbe","Çarşenbe","Penşenbe","Anna","Şenbe"],daysShort:["Ýek","Duş","Siş","Çar","Pen","Ann","Şen"],daysMin:["Ýe","Du","Si","Ça","Pe","An","Şe"],months:["Ýanwar","Fewral","Mart","Aprel","Maý","Iýun","Iýul","Awgust","Sentýabr","Oktýabr","Noýabr","Dekabr"],monthsShort:["Ýan","Few","Mar","Apr","Maý","Iýn","Iýl","Awg","Sen","Okt","Noý","Dek"],today:"Bu gün",monthsTitle:"Aýlar",clear:"Aýyr",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tr.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tr.min.js
new file mode 100644
index 0000000..7889b11
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tr.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.tr={days:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],daysShort:["Pz","Pzt","Sal","Çrş","Prş","Cu","Cts"],daysMin:["Pz","Pzt","Sa","Çr","Pr","Cu","Ct"],months:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],monthsShort:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],today:"Bugün",clear:"Temizle",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uk.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uk.min.js
new file mode 100644
index 0000000..41b02e6
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uk.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.uk={days:["Неділя","Понеділок","Вівторок","Середа","Четвер","П'ятниця","Субота"],daysShort:["Нед","Пнд","Втр","Срд","Чтв","Птн","Суб"],daysMin:["Нд","Пн","Вт","Ср","Чт","Пт","Сб"],months:["Cічень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],monthsShort:["Січ","Лют","Бер","Кві","Тра","Чер","Лип","Сер","Вер","Жов","Лис","Гру"],today:"Сьогодні",clear:"Очистити",format:"dd.mm.yyyy",weekStart:1}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uz-cyrl.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uz-cyrl.min.js
new file mode 100644
index 0000000..a0a8f21
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uz-cyrl.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates["uz-cyrl"]={days:["Якшанба","Душанба","Сешанба","Чоршанба","Пайшанба","Жума","Шанба"],daysShort:["Якш","Ду","Се","Чор","Пай","Жу","Ша"],daysMin:["Як","Ду","Се","Чо","Па","Жу","Ша"],months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthsShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],today:"Бугун",clear:"Ўчириш",format:"dd.mm.yyyy",weekStart:1,monthsTitle:"Ойлар"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uz-latn.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uz-latn.min.js
new file mode 100644
index 0000000..2f58e34
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uz-latn.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates["uz-latn"]={days:["Yakshanba","Dushanba","Seshanba","Chorshanba","Payshanba","Juma","Shanba"],daysShort:["Yak","Du","Se","Chor","Pay","Ju","Sha"],daysMin:["Ya","Du","Se","Cho","Pa","Ju","Sha"],months:["Yanvar","Fevral","Mart","Aprel","May","Iyun","Iyul","Avgust","Sentabr","Oktabr","Noyabr","Dekabr"],monthsShort:["Yan","Fev","Mar","Apr","May","Iyn","Iyl","Avg","Sen","Okt","Noy","Dek"],today:"Bugun",clear:"O'chirish",format:"dd.mm.yyyy",weekStart:1,monthsTitle:"Oylar"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.vi.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.vi.min.js
new file mode 100644
index 0000000..3311d23
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.vi.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.vi={days:["Chủ nhật","Thứ hai","Thứ ba","Thứ tư","Thứ năm","Thứ sáu","Thứ bảy"],daysShort:["CN","Thứ 2","Thứ 3","Thứ 4","Thứ 5","Thứ 6","Thứ 7"],daysMin:["CN","T2","T3","T4","T5","T6","T7"],months:["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],monthsShort:["Th1","Th2","Th3","Th4","Th5","Th6","Th7","Th8","Th9","Th10","Th11","Th12"],today:"Hôm nay",clear:"Xóa",format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-CN.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-CN.min.js
new file mode 100644
index 0000000..1279176
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-CN.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates["zh-CN"]={days:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],daysShort:["周日","周一","周二","周三","周四","周五","周六"],daysMin:["日","一","二","三","四","五","六"],months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthsShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],today:"今日",clear:"清除",format:"yyyy年mm月dd日",titleFormat:"yyyy年mm月",weekStart:1}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-TW.min.js b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-TW.min.js
new file mode 100644
index 0000000..e309c1d
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-TW.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates["zh-TW"]={days:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],daysShort:["週日","週一","週二","週三","週四","週五","週六"],daysMin:["日","一","二","三","四","五","六"],months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthsShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],today:"今天",format:"yyyy年mm月dd日",weekStart:1,clear:"清除"}}(jQuery); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/docs/Makefile b/public/bower_components/bootstrap-datepicker/docs/Makefile
new file mode 100644
index 0000000..34b6ef8
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/Makefile
@@ -0,0 +1,153 @@
+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS =
+SPHINXBUILD = sphinx-build
+PAPER =
+BUILDDIR = _build
+
+# Internal variables.
+PAPEROPT_a4 = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+# the i18n builder cannot share the environment and doctrees with the others
+I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+
+.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
+
+help:
+ @echo "Please use \`make <target>' where <target> is one of"
+ @echo " html to make standalone HTML files"
+ @echo " dirhtml to make HTML files named index.html in directories"
+ @echo " singlehtml to make a single large HTML file"
+ @echo " pickle to make pickle files"
+ @echo " json to make JSON files"
+ @echo " htmlhelp to make HTML files and a HTML help project"
+ @echo " qthelp to make HTML files and a qthelp project"
+ @echo " devhelp to make HTML files and a Devhelp project"
+ @echo " epub to make an epub"
+ @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+ @echo " latexpdf to make LaTeX files and run them through pdflatex"
+ @echo " text to make text files"
+ @echo " man to make manual pages"
+ @echo " texinfo to make Texinfo files"
+ @echo " info to make Texinfo files and run them through makeinfo"
+ @echo " gettext to make PO message catalogs"
+ @echo " changes to make an overview of all changed/added/deprecated items"
+ @echo " linkcheck to check all external links for integrity"
+ @echo " doctest to run all doctests embedded in the documentation (if enabled)"
+
+clean:
+ -rm -rf $(BUILDDIR)/*
+
+html:
+ $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
+
+dirhtml:
+ $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
+
+singlehtml:
+ $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
+ @echo
+ @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
+
+pickle:
+ $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
+ @echo
+ @echo "Build finished; now you can process the pickle files."
+
+json:
+ $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
+ @echo
+ @echo "Build finished; now you can process the JSON files."
+
+htmlhelp:
+ $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
+ @echo
+ @echo "Build finished; now you can run HTML Help Workshop with the" \
+ ".hhp project file in $(BUILDDIR)/htmlhelp."
+
+qthelp:
+ $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
+ @echo
+ @echo "Build finished; now you can run "qcollectiongenerator" with the" \
+ ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
+ @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/bootstrap-datepicker.qhcp"
+ @echo "To view the help file:"
+ @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/bootstrap-datepicker.qhc"
+
+devhelp:
+ $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
+ @echo
+ @echo "Build finished."
+ @echo "To view the help file:"
+ @echo "# mkdir -p $$HOME/.local/share/devhelp/bootstrap-datepicker"
+ @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/bootstrap-datepicker"
+ @echo "# devhelp"
+
+epub:
+ $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
+ @echo
+ @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
+
+latex:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo
+ @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
+ @echo "Run \`make' in that directory to run these through (pdf)latex" \
+ "(use \`make latexpdf' here to do that automatically)."
+
+latexpdf:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo "Running LaTeX files through pdflatex..."
+ $(MAKE) -C $(BUILDDIR)/latex all-pdf
+ @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+text:
+ $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
+ @echo
+ @echo "Build finished. The text files are in $(BUILDDIR)/text."
+
+man:
+ $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
+ @echo
+ @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
+
+texinfo:
+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+ @echo
+ @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
+ @echo "Run \`make' in that directory to run these through makeinfo" \
+ "(use \`make info' here to do that automatically)."
+
+info:
+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+ @echo "Running Texinfo files through makeinfo..."
+ make -C $(BUILDDIR)/texinfo info
+ @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
+
+gettext:
+ $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
+ @echo
+ @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
+
+changes:
+ $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
+ @echo
+ @echo "The overview file is in $(BUILDDIR)/changes."
+
+linkcheck:
+ $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
+ @echo
+ @echo "Link check complete; look for any errors in the above output " \
+ "or in $(BUILDDIR)/linkcheck/output.txt."
+
+doctest:
+ $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
+ @echo "Testing of doctests in the sources finished, look at the " \
+ "results in $(BUILDDIR)/doctest/output.txt."
diff --git a/public/bower_components/bootstrap-datepicker/docs/README.md b/public/bower_components/bootstrap-datepicker/docs/README.md
new file mode 100644
index 0000000..58028f3
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/README.md
@@ -0,0 +1,20 @@
+Documentation
+=============
+
+Project documentation is built using [Sphinx docs](http://sphinx-doc.org/), which uses [ReST](http://docutils.sourceforge.net/rst.html) for markup. This allows the docs to cover a vast amount of topics without using a thousand-line README file.
+
+Sphinx docs is pip-installable via `pip install sphinx`. Once installed, open a command line in the docs folder and run the following commands:
+
+```bash
+$ sudo pip install -r requirements.txt
+```
+
+This will install the requirements needed for the generating the docs. Afterwards you can run:
+
+```bash
+$ make html
+```
+
+The docs will be generated, the output files will be placed in the `_build/html/` directory, and can be browsed (locally) with any browser.
+
+The docs can also be found online at <http://bootstrap-datepicker.readthedocs.org/>.
diff --git a/public/bower_components/bootstrap-datepicker/docs/_screenshots/demo_head.html b/public/bower_components/bootstrap-datepicker/docs/_screenshots/demo_head.html
new file mode 100644
index 0000000..64d2e7c
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_screenshots/demo_head.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <link rel="stylesheet" href="script/common.css">
+ <script src="script/common.js"></script>
+ <script>
+ function setup(){
+ var dp = $('.base').datepicker().data('datepicker');
+
+ dp.focusDate = new Date(Date.UTC(2013, 7, 14));
+ dp.update();
+
+ $('.date').datepicker({
+ format: 'mm-dd-yyyy'
+ });
+ $('.inline').datepicker();
+ }
+ </script>
+ </head>
+ <body data-capture=".base, .date, .datepicker">
+ <div class="row">
+ <div class="col-sm-3">
+ <input type="text" class="form-control base" value="08/03/2013">
+ </div>
+ <div class="col-sm-offset-1 col-sm-3">
+ <div class="input-group date">
+ <input type="text" class="form-control" value="10-05-2003" readonly>
+ <div class="input-group-addon">
+ <span class="glyphicon glyphicon-th"></span>
+ </div>
+ </div>
+ </div>
+ <div class="col-sm-offset-1 col-sm-4 inline" data-date="01/03/2004"></div>
+ </div>
+ </body>
+</html>
diff --git a/public/bower_components/bootstrap-datepicker/docs/_screenshots/markup_component.html b/public/bower_components/bootstrap-datepicker/docs/_screenshots/markup_component.html
new file mode 100644
index 0000000..2b99921
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_screenshots/markup_component.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <link rel="stylesheet" href="script/common.css">
+ <script src="script/common.js"></script>
+ <script>
+ function setup(){
+ $('.date').datepicker({
+ format: 'mm-dd-yyyy'
+ });
+ }
+ </script>
+ </head>
+ <body data-capture=".input-group, .datepicker">
+ <div class="row">
+ <div class="col-sm-offset-4 col-sm-3">
+ <div class="input-group date">
+ <input type="text" class="form-control" value="12-02-2012">
+ <div class="input-group-addon">
+ <span class="glyphicon glyphicon-th"></span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/public/bower_components/bootstrap-datepicker/docs/_screenshots/markup_daterange.html b/public/bower_components/bootstrap-datepicker/docs/_screenshots/markup_daterange.html
new file mode 100644
index 0000000..9d158e7
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_screenshots/markup_daterange.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <link rel="stylesheet" href="script/common.css">
+ <script src="script/common.js"></script>
+ <script>
+ function setup(){
+ $('.input-daterange').datepicker({
+ format: 'yyyy-mm-dd'
+ });
+ }
+ </script>
+ </head>
+ <body data-capture=".input-daterange, .datepicker" data-show="input:first, input:last">
+ <div class="row">
+ <div class="col-sm-5">
+ <div class="input-group input-daterange">
+ <input type="text" class="form-control" value="2012-04-05">
+ <div class="input-group-addon">to</div>
+ <input type="text" class="form-control" value="2012-04-19">
+ </div>
+ </div>
+ <div class="col-sm-5">
+ <div class="input-group input-daterange">
+ <input type="text" class="form-control" value="2012-04-05">
+ <div class="input-group-addon">to</div>
+ <input type="text" class="form-control" value="2012-04-19">
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/public/bower_components/bootstrap-datepicker/docs/_screenshots/markup_inline.html b/public/bower_components/bootstrap-datepicker/docs/_screenshots/markup_inline.html
new file mode 100644
index 0000000..ff4e8ed
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_screenshots/markup_inline.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <link rel="stylesheet" href="script/common.css">
+ <script src="script/common.js"></script>
+ <script>
+ function setup(){
+ $('div').datepicker();
+ }
+ </script>
+ </head>
+ <body data-capture=".datepicker">
+ <div data-date="12/03/2012"></div>
+ </body>
+</html>
diff --git a/public/bower_components/bootstrap-datepicker/docs/_screenshots/markup_input.html b/public/bower_components/bootstrap-datepicker/docs/_screenshots/markup_input.html
new file mode 100644
index 0000000..2e1c289
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_screenshots/markup_input.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <link rel="stylesheet" href="script/common.css">
+ <script src="script/common.js"></script>
+ <script>
+ function setup(){
+ $('input').datepicker({
+ format: 'mm-dd-yyyy'
+ });
+ }
+ </script>
+ </head>
+ <body data-capture="input, .datepicker">
+ <div class="row">
+ <div class="col-sm-offset-4 col-sm-3">
+ <input type="text" class="form-control" value="02-16-2012">
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_calendarweeks.html b/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_calendarweeks.html
new file mode 100644
index 0000000..7565f89
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_calendarweeks.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <link rel="stylesheet" href="script/common.css">
+ <script src="script/common.js"></script>
+ <script>
+ function setup(){
+ $('input').datepicker({
+ format: 'mm-dd-yyyy',
+ calendarWeeks: true
+ });
+ }
+ </script>
+ </head>
+ <body data-capture="input, .datepicker">
+ <div class="row">
+ <div class="col-sm-3">
+ <input type="text" class="form-control" value="01-16-2012">
+ </div>
+ <div class="col-sm-offset-2 col-sm-3">
+ <input type="text" class="form-control" value="12-16-2012">
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_clearbtn.html b/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_clearbtn.html
new file mode 100644
index 0000000..a4b5ef0
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_clearbtn.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <link rel="stylesheet" href="script/common.css">
+ <script src="script/common.js"></script>
+ <script>
+ function setup(){
+ $('input').datepicker({
+ format: 'mm-dd-yyyy',
+ clearBtn: true
+ });
+ }
+ </script>
+ </head>
+ <body data-capture="input, .datepicker">
+ <div class="row">
+ <div class="col-sm-offset-4 col-sm-3">
+ <input type="text" class="form-control" value="03-03-2013">
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_daysofweekdisabled.html b/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_daysofweekdisabled.html
new file mode 100644
index 0000000..bd31b38
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_daysofweekdisabled.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <link rel="stylesheet" href="script/common.css">
+ <script src="script/common.js"></script>
+ <script>
+ function setup(){
+ $('input').datepicker({
+ format: 'mm-dd-yyyy',
+ daysOfWeekDisabled: [0, 6]
+ });
+ }
+ </script>
+ </head>
+ <body data-capture="input, .datepicker">
+ <div class="row">
+ <div class="col-sm-offset-4 col-sm-3">
+ <input type="text" class="form-control" value="03-05-2013">
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_enddate.html b/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_enddate.html
new file mode 100644
index 0000000..43da9d9
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_enddate.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <link rel="stylesheet" href="script/common.css">
+ <script src="script/common.js"></script>
+ <script>
+ function setup(){
+ $('input').datepicker({
+ format: 'mm-dd-yyyy',
+ endDate: '03-14-2013'
+ });
+ }
+ </script>
+ </head>
+ <body data-capture="input, .datepicker">
+ <div class="row">
+ <div class="col-sm-offset-4 col-sm-3">
+ <input type="text" class="form-control" value="03-03-2013">
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_language.html b/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_language.html
new file mode 100644
index 0000000..37f5930
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_language.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <link rel="stylesheet" href="script/common.css">
+ <style>
+ .row + .row {
+ margin-top: 30px;
+ }
+ </style>
+ <script src="script/common.js"></script>
+ <script src="../../js/locales/bootstrap-datepicker.es.js" charset="UTF-8"></script>
+ <script src="../../js/locales/bootstrap-datepicker.fr.js" charset="UTF-8"></script>
+ <script src="../../js/locales/bootstrap-datepicker.zh-TW.js" charset="UTF-8"></script>
+ <script src="../../js/locales/bootstrap-datepicker.ru.js" charset="UTF-8"></script>
+ <script src="../../js/locales/bootstrap-datepicker.ja.js" charset="UTF-8"></script>
+ <script>
+ function setup(){
+ $('[data-date]').datepicker({
+ format: 'mm/dd/yyyy' // To override locale-specific formats
+ });
+ }
+ </script>
+ </head>
+ <body data-capture=".datepicker">
+ <div class="row">
+ <div class="col-sm-4" data-date="03/03/2013" data-date-language="en"></div>
+ <div class="col-sm-4" data-date="03/03/2013" data-date-start-view="1" data-date-language="es"></div>
+ <div class="col-sm-4" data-date="03/03/2013" data-date-language="fr"></div>
+ </div>
+ <div class="row">
+ <div class="col-sm-4" data-date="03/03/2013" data-date-start-view="1" data-date-language="zh-TW"></div>
+ <div class="col-sm-4" data-date="03/03/2013" data-date-language="ja"></div>
+ <div class="col-sm-4" data-date="03/03/2013" data-date-start-view="1" data-date-language="ru"></div>
+ </div>
+ </body>
+</html>
diff --git a/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_multidate.html b/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_multidate.html
new file mode 100644
index 0000000..191b239
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_multidate.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <link rel="stylesheet" href="script/common.css">
+ <script src="script/common.js"></script>
+ <script>
+ function setup(){
+ $('input').datepicker({
+ multidate: true
+ });
+ }
+ </script>
+ </head>
+ <body data-capture="input, .datepicker">
+ <div class="row">
+ <div class="col-sm-4">
+ <input type="text" class="form-control" value="03/03/2013,03/16/2013">
+ </div>
+ <div class="col-sm-4">
+ <input type="text" class="form-control" value="03/03/2013,06/16/2013" data-date-start-view="1">
+ </div>
+ <div class="col-sm-4">
+ <input type="text" class="form-control" value="03/03/2013,03/16/2014" data-date-start-view="2">
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_startdate.html b/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_startdate.html
new file mode 100644
index 0000000..ce97784
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_startdate.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <link rel="stylesheet" href="script/common.css">
+ <script src="script/common.js"></script>
+ <script>
+ function setup(){
+ $('input').datepicker({
+ format: 'mm-dd-yyyy',
+ startDate: '03-14-2013'
+ });
+ }
+ </script>
+ </head>
+ <body data-capture="input, .datepicker">
+ <div class="row">
+ <div class="col-sm-offset-4 col-sm-3">
+ <input type="text" class="form-control" value="03-18-2013">
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_todaybtn.html b/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_todaybtn.html
new file mode 100644
index 0000000..0843012
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_todaybtn.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <link rel="stylesheet" href="script/common.css">
+ <script src="script/common.js"></script>
+ <script>
+ function setup(){
+ $('input').datepicker({
+ todayBtn: true
+ });
+ }
+ </script>
+ </head>
+ <body data-capture="input, .datepicker">
+ <div class="row">
+ <div class="col-sm-offset-4 col-sm-3">
+ <input type="text" class="form-control" value="03/03/2013">
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_todayhighlight.html b/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_todayhighlight.html
new file mode 100644
index 0000000..fb38008
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_todayhighlight.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <link rel="stylesheet" href="script/common.css">
+ <script src="script/common.js"></script>
+ <script>
+ function patch_date(f){
+ var NativeDate = window.Date;
+ var date = function date(y,m,d,h,i,s,j){
+ switch(arguments.length){
+ case 0: return date.now ? new NativeDate(date.now) : new NativeDate();
+ case 1: return new NativeDate(y);
+ case 2: return new NativeDate(y,m);
+ case 3: return new NativeDate(y,m,d);
+ case 4: return new NativeDate(y,m,d,h);
+ case 5: return new NativeDate(y,m,d,h,i);
+ case 6: return new NativeDate(y,m,d,h,i,s);
+ case 7: return new NativeDate(y,y,m,d,h,i,s,j);
+ }
+ };
+ date.UTC = NativeDate.UTC;
+ return function(){
+ Array.prototype.push.call(arguments, date);
+ window.Date = date;
+ f.apply(this, arguments);
+ window.Date = NativeDate;
+ };
+ }
+ var setup = patch_date(function(Date){
+ Date.now = new Date(2013, 2, 18);
+ $('input').datepicker({
+ todayHighlight: true
+ });
+ });
+ </script>
+ </head>
+ <body data-capture="input, .datepicker">
+ <div class="row">
+ <div class="col-sm-3">
+ <input type="text" class="form-control" value="03/03/2013">
+ </div>
+ <div class="col-sm-offset-2 col-sm-3">
+ <input type="text" class="form-control" value="03/18/2013">
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_weekstart.html b/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_weekstart.html
new file mode 100644
index 0000000..e55a04f
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_screenshots/option_weekstart.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <link rel="stylesheet" href="script/common.css">
+ <script src="script/common.js"></script>
+ <script>
+ function setup(){
+ $('input').datepicker();
+ }
+ </script>
+ </head>
+ <body data-capture="input, .datepicker">
+ <div class="row">
+ <div class="col-sm-3">
+ <input type="text" class="form-control" value="03/03/2013" data-date-week-start="2">
+ </div>
+ <div class="col-sm-offset-1 col-sm-3">
+ <input type="text" class="form-control" value="03/03/2013" data-date-week-start="4">
+ </div>
+ <div class="col-sm-offset-1 col-sm-3">
+ <input type="text" class="form-control" value="03/03/2013" data-date-week-start="6">
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/public/bower_components/bootstrap-datepicker/docs/_screenshots/script/common.css b/public/bower_components/bootstrap-datepicker/docs/_screenshots/script/common.css
new file mode 100644
index 0000000..0535e8c
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_screenshots/script/common.css
@@ -0,0 +1,9 @@
+@import url('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css');
+@import url('../../../dist/css/bootstrap-datepicker3.min.css');
+
+body {
+ /* Padding around all elements to allow space for screenshots */
+ padding: 10px;
+ /* Transparent background for PNG screenshots */
+ background: none;
+}
diff --git a/public/bower_components/bootstrap-datepicker/docs/_screenshots/script/common.js b/public/bower_components/bootstrap-datepicker/docs/_screenshots/script/common.js
new file mode 100644
index 0000000..ebadc02
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_screenshots/script/common.js
@@ -0,0 +1,2 @@
+document.write("<script src='https://code.jquery.com/jquery-3.1.1.min.js'></script>");
+document.write("<script src='../../js/bootstrap-datepicker.js'></script>");
diff --git a/public/bower_components/bootstrap-datepicker/docs/_screenshots/script/debug.js b/public/bower_components/bootstrap-datepicker/docs/_screenshots/script/debug.js
new file mode 100644
index 0000000..e609fa6
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_screenshots/script/debug.js
@@ -0,0 +1,21 @@
+/*
+ Usage: $ phantomjs --remote-debugger-port=9001 --remote-debugger-autorun=yes debug.js page.html
+
+ Open Chrome tab to http://localhost:9001/; open second link (ie, path to page.html)
+*/
+var system = require('system' ), fs = require('fs'), webpage = require('webpage');
+
+(function(phantom){
+ var page=webpage.create();
+
+ function debugPage(){
+ console.log("Refresh a second debugger-port page and open a second webkit inspector for the target page.");
+ console.log("Letting this page continue will then trigger a break in the target page.");
+ debugger; // pause here in first web browser tab for steps 5 & 6
+ page.open(system.args[1]);
+ page.evaluateAsync(function() {
+ debugger; // step 7 will wait here in the second web browser tab
+ });
+ }
+ debugPage();
+}(phantom));
diff --git a/public/bower_components/bootstrap-datepicker/docs/_screenshots/script/html-imports.min.js b/public/bower_components/bootstrap-datepicker/docs/_screenshots/script/html-imports.min.js
new file mode 100644
index 0000000..368d226
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_screenshots/script/html-imports.min.js
@@ -0,0 +1,30 @@
+// Copyright (c) 2012 The Polymer Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+window.HTMLImports=window.HTMLImports||{flags:{}},function(a){var b=(a.path,a.xhr),c=function(a,b){this.cache={},this.onload=a,this.oncomplete=b,this.inflight=0,this.pending={}};c.prototype={addNodes:function(a){this.inflight+=a.length,d(a,this.require,this),this.checkDone()},require:function(a){var b=a.src||a.href;a.__nodeUrl=b,this.dedupe(b,a)||this.fetch(b,a)},dedupe:function(a,b){return this.pending[a]?(this.pending[a].push(b),!0):this.cache[a]?(this.onload(a,b,this.cache[a]),this.tail(),!0):(this.pending[a]=[b],!1)},fetch:function(a,c){var d=function(b,d){this.receive(a,c,b,d)}.bind(this);b.load(a,d)},receive:function(a,b,c,d){c||(this.cache[a]=d),this.pending[a].forEach(function(b){c||this.onload(a,b,d),this.tail()},this),this.pending[a]=null},tail:function(){--this.inflight,this.checkDone()},checkDone:function(){this.inflight||this.oncomplete()}},b=b||{async:!0,ok:function(a){return a.status>=200&&a.status<300||304===a.status||0===a.status},load:function(c,d,e){var f=new XMLHttpRequest;return(a.flags.debug||a.flags.bust)&&(c+="?"+Math.random()),f.open("GET",c,b.async),f.addEventListener("readystatechange",function(){4===f.readyState&&d.call(e,!b.ok(f)&&f,f.response||f.responseText,c)}),f.send(),f},loadDocument:function(a,b,c){this.load(a,b,c).responseType="document"}};var d=Array.prototype.forEach.call.bind(Array.prototype.forEach);a.xhr=b,a.Loader=c}(window.HTMLImports),function(a){function b(a){return c(a,j)}function c(a,b){return"link"===a.localName&&a.getAttribute("rel")===b}function d(a){return"script"===a.localName}function e(a,b){var c=a;c instanceof Document||(c=document.implementation.createHTMLDocument(j)),c._URL=b;var d=c.createElement("base");return d.setAttribute("href",b),c.baseURI||(c.baseURI=b),c.head.appendChild(d),a instanceof Document||(c.body.innerHTML=a),window.HTMLTemplateElement&&HTMLTemplateElement.bootstrap&&HTMLTemplateElement.bootstrap(c),c}function f(a,b){function c(){k==l&&requestAnimationFrame(a)}function d(){k++,c()}b=b||o;var e=HTMLImports.isIE?"complete":"interactive",h="complete"===b.readyState||b.readyState===e;if(!h){var i=function(){("complete"===b.readyState||b.readyState===e)&&(b.removeEventListener("readystatechange",i),f(a,b))};return void b.addEventListener("readystatechange",i)}var j=b.querySelectorAll("link[rel=import]"),k=0,l=j.length;if(l)for(var m,n=0;l>n&&(m=j[n]);n++)g(m)?d.call(m):(m.addEventListener("load",d),m.addEventListener("error",d));else c()}function g(a){return i?a.import&&"loading"!==a.import.readyState:a.__importParsed}var h="import"in document.createElement("link"),i=!a.flags.imports&&h,j="import";if(!i){{var k,l=a.Loader,m=(a.xhr,"stylesheet"),n={documents:{},cache:{},preloadSelectors:["link[rel="+j+"]","template","script[src]:not([type])",'script[src][type="text/javascript"]'].join(","),loader:function(a){if(k&&k.inflight){var b=k.oncomplete;return k.oncomplete=function(){b(),a()},k}return k=new l(n.loaded,a),k.cache=n.cache,k},load:function(a,b){k=n.loader(b),n.preload(a)},preload:function(a){var b=this.marshalNodes(a);k.addNodes(b)},marshalNodes:function(a){var b=a.querySelectorAll(n.preloadSelectors);return b=this.filterMainDocumentNodes(a,b),b=this.extractTemplateNodes(b)},filterMainDocumentNodes:function(a,b){return a===document&&(b=Array.prototype.filter.call(b,function(a){return!d(a)})),b},extractTemplateNodes:function(a){var b=[];return a=Array.prototype.filter.call(a,function(a){if("template"===a.localName){if(a.content){var c=a.content.querySelectorAll("link[rel="+m+"]");c.length&&(b=b.concat(Array.prototype.slice.call(c,0)))}return!1}return!0}),b.length&&(a=a.concat(b)),a},loaded:function(a,c,d){if(b(c)){var f=n.documents[a];f||(f=e(d,a),n.documents[a]=f,n.preload(f)),c.import=c.content=d=f}c.__resource=d}};Array.prototype.forEach.call.bind(Array.prototype.forEach)}a.importer=n}var o=window.ShadowDOMPolyfill?wrap(document):document;Object.defineProperty(o,"_currentScript",{get:function(){return HTMLImports.currentScript||o.currentScript},writeable:!0,configurable:!0}),a.hasNative=h,a.useNative=i,a.whenImportsReady=f,a.IMPORT_LINK_TYPE=j,a.isImportLoaded=g}(window.HTMLImports),function(a){function b(a){var b=a.ownerDocument.createElement("style");return b.textContent=a.textContent,g.resolveUrlsInStyle(b),b}function c(a,b){this.doc=a,this.doc.__loadTracker=this,this.callback=b}function d(a){return"link"===a.localName&&a.getAttribute("rel")===h}function e(a){return a.parentNode&&!f(a)}function f(a){return a.ownerDocument===document||a.ownerDocument.impl===document}var g=a.path,h="import",i=/Trident/.test(navigator.userAgent),j={selectors:["link[rel="+h+"]","link[rel=stylesheet]","style","script:not([type])",'script[type="text/javascript"]'],map:{link:"parseLink",script:"parseScript",style:"parseStyle"},parse:function(a,b){if(a.__importParsed)b&&b();else{a.__importParsed=!0;for(var d,e=new c(a,b),f=a.querySelectorAll(j.selectors),g=a.scripts?a.scripts.length:0,h=0;h<f.length&&(d=f[h]);h++)j[j.map[d.localName]](d),a.scripts&&g!==a.scripts.length&&(g=a.scripts.length,f=a.querySelectorAll(j.selectors));e.open()}},parseLink:function(a){if(d(a)){if(this.trackElement(a),a.__resource?j.parse(a.__resource,function(){a.dispatchEvent(new CustomEvent("load",{bubbles:!1}))}):a.dispatchEvent(new CustomEvent("error",{bubbles:!1})),a.__pending)for(var b;a.__pending.length;)b=a.__pending.shift(),b&&b({target:a});a.__importParsed=!0}else e(a)&&(a.href=a.href),this.parseGeneric(a)},trackElement:function(a){i&&"style"===a.localName||a.ownerDocument.__loadTracker.require(a)},parseStyle:function(a){a=e(a)?b(a):a,this.parseGeneric(a)},parseGeneric:function(a){f(a)||(this.trackElement(a),document.head.appendChild(a))},parseScript:function(b){if(e(b)){var c=(b.__resource||b.textContent).trim();if(c){var d=b.__nodeUrl;if(!d){d=b.ownerDocument.baseURI;var f="["+Math.floor(1e3*(Math.random()+1))+"]",g=c.match(/Polymer\(['"]([^'"]*)/);f=g&&g[1]||f,d+="/"+f+".js"}c+="\n//# sourceURL="+d+"\n",a.currentScript=b,eval.call(window,c),a.currentScript=null}}}},k=/(url\()([^)]*)(\))/g,l=/(@import[\s]*)([^;]*)(;)/g,g={resolveUrlsInStyle:function(a){var b=a.ownerDocument,c=b.createElement("a");return a.textContent=this.resolveUrlsInCssText(a.textContent,c),a},resolveUrlsInCssText:function(a,b){var c=this.replaceUrls(a,b,k);return c=this.replaceUrls(c,b,l)},replaceUrls:function(a,b,c){return a.replace(c,function(a,c,d,e){var f=d.replace(/["']/g,"");return b.href=f,f=b.href,c+"'"+f+"'"+e})}};c.prototype={pending:0,isOpen:!1,open:function(){this.isOpen=!0,this.checkDone()},add:function(){this.pending++},require:function(a){this.add();var b=this,c=function(a){b.receive(a)};if(d(a))a.__pending=a.__pending||[],a.__pending.push(c);else for(var e,f=["load","error"],g=0,h=f.length;h>g&&(e=f[g]);g++)a.addEventListener(e,c)},receive:function(){this.pending--,this.checkDone()},checkDone:function(){this.isOpen&&this.pending<=0&&this.callback&&(this.isOpen=!1,this.callback())}};Array.prototype.forEach.call.bind(Array.prototype.forEach);a.parser=j,a.path=g,a.isIE=i}(HTMLImports),function(){function a(){HTMLImports.ready=!0,HTMLImports.readyTime=(new Date).getTime(),c.dispatchEvent(new CustomEvent("HTMLImportsLoaded",{bubbles:!0}))}function b(){HTMLImports.useNative||HTMLImports.importer.load(c,function(){HTMLImports.parser.parse(c)})}"function"!=typeof window.CustomEvent&&(window.CustomEvent=function(a,b){var c=document.createEvent("HTMLEvents");return c.initEvent(a,b.bubbles===!1?!1:!0,b.cancelable===!1?!1:!0,b.detail),c});var c=window.ShadowDOMPolyfill?window.ShadowDOMPolyfill.wrapIfNeeded(document):document;HTMLImports.useNative||("complete"===document.readyState||"interactive"===document.readyState&&!window.attachEvent?b():document.addEventListener("DOMContentLoaded",b)),HTMLImports.whenImportsReady(function(){a()})}();
+//# sourceMappingURL=html-imports.min.map \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/docs/_screenshots/script/screenshot.js b/public/bower_components/bootstrap-datepicker/docs/_screenshots/script/screenshot.js
new file mode 100644
index 0000000..920d030
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_screenshots/script/screenshot.js
@@ -0,0 +1,69 @@
+/* jshint phantom:true, devel:true */
+/* Usage: phantomjs screenshot.js in.html out.png */
+
+var sys = require('system'),
+ page = new WebPage();
+page.viewportSize = {
+ width: 800,
+ height: 600
+};
+
+page.open(sys.args[1], function(status){
+ if (status !== 'success'){
+ console.log('Bad status: %s', status);
+ phantom.exit(1);
+ }
+ window.setTimeout(function(){
+ var box = page.evaluate(function(){
+ var lefts, rights, tops, bottoms,
+ padding = 10, // px
+ selection, show;
+
+ // Call setup method
+ if (window.setup)
+ window.setup();
+ // Show all pickers, or only those marked for showing
+ show = $('body').data('show');
+ show = show ? $(show) : $('*');
+ show
+ .filter(function(){
+ return 'datepicker' in $(this).data();
+ })
+ .datepicker('show');
+
+ // Get bounds of selected elements
+ selection = $($('body').data('capture'));
+ tops = selection.map(function(){
+ return $(this).offset().top;
+ }).toArray();
+ lefts = selection.map(function(){
+ return $(this).offset().left;
+ }).toArray();
+ bottoms = selection.map(function(){
+ return $(this).offset().top + $(this).outerHeight();
+ }).toArray();
+ rights = selection.map(function(){
+ return $(this).offset().left + $(this).outerWidth();
+ }).toArray();
+
+ // Convert bounds to single bounding box
+ var b = {
+ top: Math.min.apply(Math, tops),
+ left: Math.min.apply(Math, lefts)
+ };
+ b.width = Math.max.apply(Math, rights) - b.left;
+ b.height = Math.max.apply(Math, bottoms) - b.top;
+
+ // Return bounding box
+ return {
+ top: Math.max(b.top - padding, 0),
+ left: Math.max(b.left - padding, 0),
+ width: b.width + 2 * padding,
+ height: b.height + 2 * padding
+ };
+ });
+ page.clipRect = box;
+ page.render(sys.args[2]);
+ phantom.exit();
+ }, 1);
+});
diff --git a/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/demo_head.png b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/demo_head.png
new file mode 100644
index 0000000..1207162
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/demo_head.png
Binary files differ
diff --git a/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_component.png b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_component.png
new file mode 100644
index 0000000..18df9d0
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_component.png
Binary files differ
diff --git a/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_daterange.png b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_daterange.png
new file mode 100644
index 0000000..9c9a2d4
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_daterange.png
Binary files differ
diff --git a/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_inline.png b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_inline.png
new file mode 100644
index 0000000..2e811ee
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_inline.png
Binary files differ
diff --git a/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_input.png b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_input.png
new file mode 100644
index 0000000..e085207
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_input.png
Binary files differ
diff --git a/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_calendarweeks.png b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_calendarweeks.png
new file mode 100644
index 0000000..588bb8d
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_calendarweeks.png
Binary files differ
diff --git a/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_clearbtn.png b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_clearbtn.png
new file mode 100644
index 0000000..a80cd12
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_clearbtn.png
Binary files differ
diff --git a/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_daysofweekdisabled.png b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_daysofweekdisabled.png
new file mode 100644
index 0000000..23efc19
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_daysofweekdisabled.png
Binary files differ
diff --git a/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_enddate.png b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_enddate.png
new file mode 100644
index 0000000..9b960a2
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_enddate.png
Binary files differ
diff --git a/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_language.png b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_language.png
new file mode 100644
index 0000000..de84074
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_language.png
Binary files differ
diff --git a/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_multidate.png b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_multidate.png
new file mode 100644
index 0000000..25dd5a8
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_multidate.png
Binary files differ
diff --git a/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_startdate.png b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_startdate.png
new file mode 100644
index 0000000..7766476
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_startdate.png
Binary files differ
diff --git a/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_todaybtn.png b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_todaybtn.png
new file mode 100644
index 0000000..de4a145
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_todaybtn.png
Binary files differ
diff --git a/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_todayhighlight.png b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_todayhighlight.png
new file mode 100644
index 0000000..f15408d
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_todayhighlight.png
Binary files differ
diff --git a/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_weekstart.png b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_weekstart.png
new file mode 100644
index 0000000..bafbe9e
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_weekstart.png
Binary files differ
diff --git a/public/bower_components/bootstrap-datepicker/docs/conf.py b/public/bower_components/bootstrap-datepicker/docs/conf.py
new file mode 100644
index 0000000..131dd52
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/conf.py
@@ -0,0 +1,249 @@
+# -*- coding: utf-8 -*-
+#
+# bootstrap-datepicker documentation build configuration file, created by
+# sphinx-quickstart on Fri Aug 2 14:45:57 2013.
+#
+# This file is execfile()d with the current directory set to its containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+import sys, os
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+#version = ''
+# The full version, including alpha/beta/rc tags.
+#release = ''
+
+import sphinx_rtd_theme
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#sys.path.insert(0, os.path.abspath('.'))
+
+# -- General configuration -----------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#needs_sphinx = '1.0'
+
+primary_domain = 'js'
+
+# Add any Sphinx extension module names here, as strings. They can be extensions
+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+extensions = []
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix of source filenames.
+source_suffix = '.rst'
+
+# The encoding of source files.
+#source_encoding = 'utf-8-sig'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'bootstrap-datepicker'
+copyright = u'2016, eternicode'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+#today = ''
+# Else, today_fmt is used as the format for a strftime call.
+#today_fmt = '%B %d, %Y'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+exclude_patterns = ['_build']
+
+# The reST default role (used for this markup: `text`) to use for all documents.
+#default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+#add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+#add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+#show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+highlight_language = 'javascript'
+
+# A list of ignored prefixes for module index sorting.
+#modindex_common_prefix = []
+
+
+# -- Options for HTML output ---------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+html_theme = 'sphinx_rtd_theme'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further. For a list of options available for each theme, see the
+# documentation.
+#html_theme_options = {}
+
+# Add any paths that contain custom themes here, relative to this directory.
+# html_theme_path = ['_themes',]
+html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
+
+# The name for this set of Sphinx documents. If None, it defaults to
+# "<project> v<release> documentation".
+#html_title = None
+
+# A shorter title for the navigation bar. Default is the same as html_title.
+#html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+#html_logo = None
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+#html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+#html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+#html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+#html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+#html_domain_indices = True
+
+# If false, no index is generated.
+#html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+#html_show_sourcelink = True
+
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+#html_show_sphinx = True
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+#html_show_copyright = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it. The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# This is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = None
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'bootstrap-datepickerdoc'
+
+
+# -- Options for LaTeX output --------------------------------------------------
+
+latex_elements = {
+# The paper size ('letterpaper' or 'a4paper').
+#'papersize': 'letterpaper',
+
+# The font size ('10pt', '11pt' or '12pt').
+#'pointsize': '10pt',
+
+# Additional stuff for the LaTeX preamble.
+#'preamble': '',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title, author, documentclass [howto/manual]).
+latex_documents = [
+ ('index', 'bootstrap-datepicker.tex', u'bootstrap-datepicker Documentation',
+ u'eternicode', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+#latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# If true, show page references after internal links.
+#latex_show_pagerefs = False
+
+# If true, show URL addresses after external links.
+#latex_show_urls = False
+
+# Documents to append as an appendix to all manuals.
+#latex_appendices = []
+
+# If false, no module index is generated.
+#latex_domain_indices = True
+
+
+# -- Options for manual page output --------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+ ('index', 'bootstrap-datepicker', u'bootstrap-datepicker Documentation',
+ [u'eternicode'], 1)
+]
+
+# If true, show URL addresses after external links.
+#man_show_urls = False
+
+
+# -- Options for Texinfo output ------------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+# dir menu entry, description, category)
+texinfo_documents = [
+ ('index', 'bootstrap-datepicker', u'bootstrap-datepicker Documentation',
+ u'eternicode', 'bootstrap-datepicker', 'One line description of project.',
+ 'Miscellaneous'),
+]
+
+# Documents to append as an appendix to all manuals.
+#texinfo_appendices = []
+
+# If false, no module index is generated.
+#texinfo_domain_indices = True
+
+# How to display URL addresses: 'footnote', 'no', or 'inline'.
+#texinfo_show_urls = 'footnote'
diff --git a/public/bower_components/bootstrap-datepicker/docs/events.rst b/public/bower_components/bootstrap-datepicker/docs/events.rst
new file mode 100644
index 0000000..89ffddb
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/events.rst
@@ -0,0 +1,63 @@
+Events
+======
+
+Datepicker triggers a number of events in certain circumstances. All events have extra data attached to the event object that is passed to any event handlers
+
+::
+
+ $('.datepicker').datepicker()
+ .on(picker_event, function(e) {
+ // `e` here contains the extra attributes
+ });
+
+* ``date``: the relevant Date object, in local timezone. For a multidate picker, this will be the latest date picked.
+* ``dates``: an Array of Date objects, in local timezone, when using a multidate picker.
+* ``format([ix], [format])``: a function to make formatting ``date`` easier. ``ix`` can be the index of a Date in the ``dates`` array to format; if absent, the last date selected will be used. ``format`` can be any format string that datepicker supports; if absent, the format set on the datepicker will be used. Both arguments are optional.
+
+
+show
+----
+
+Fired when the date picker is displayed.
+
+
+hide
+----
+
+Fired when the date picker is hidden.
+
+
+clearDate
+---------
+
+Fired when the date is cleared, normally when the "clear" button (enabled with the ``clearBtn`` option) is pressed.
+
+
+changeDate
+----------
+
+Fired when the date is changed.
+
+
+changeMonth
+-----------
+
+Fired when the *view* month is changed from year view.
+
+
+changeYear
+----------
+
+Fired when the *view* year is changed from decade view.
+
+
+changeDecade
+------------
+
+Fired when the *view* decade is changed from century view.
+
+
+changeCentury
+-------------
+
+Fired when the *view* century is changed from millennium view.
diff --git a/public/bower_components/bootstrap-datepicker/docs/i18n.rst b/public/bower_components/bootstrap-datepicker/docs/i18n.rst
new file mode 100644
index 0000000..ba2928a
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/i18n.rst
@@ -0,0 +1,36 @@
+I18N
+====
+
+The plugin supports i18n for the month and weekday names and the ``weekStart`` option. The default is English ("en"); other available translations are available in the ``js/locales/`` directory, simply include your desired locale after the plugin. To add more languages, simply add a key to ``$.fn.datepicker.dates``, before calling ``.datepicker()``. Example
+
+::
+
+ $.fn.datepicker.dates['en'] = {
+ days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
+ daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
+ daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
+ months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
+ today: "Today",
+ clear: "Clear",
+ format: "mm/dd/yyyy",
+ titleFormat: "MM yyyy", /* Leverages same syntax as 'format' */
+ weekStart: 0
+ };
+
+Right-to-left languages may also include ``rtl: true`` to make the calendar display appropriately.
+
+If your browser (or those of your users) is displaying characters wrong, chances are the browser is loading the javascript file with a non-unicode encoding. Simply add ``charset="UTF-8"`` to your ``script`` tag:
+
+.. code-block:: html
+
+ <script src="bootstrap-datepicker.XX.js" charset="UTF-8"></script>
+
+::
+
+ $('.datepicker').datepicker({
+ language: 'XX'
+ });
+
+.. figure:: _static/screenshots/option_language.png
+ :align: center
diff --git a/public/bower_components/bootstrap-datepicker/docs/index.rst b/public/bower_components/bootstrap-datepicker/docs/index.rst
new file mode 100644
index 0000000..0eacf83
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/index.rst
@@ -0,0 +1,127 @@
+bootstrap-datepicker
+====================
+
+Bootstrap-datepicker provides a flexible datepicker widget in the Bootstrap style.
+
+.. figure:: _static/screenshots/demo_head.png
+ :align: center
+
+Versions are incremented according to `semver <http://semver.org/>`_.
+
+`Online Demo <https://eternicode.github.io/bootstrap-datepicker/>`_
+
+
+Requirements
+------------
+
+* `Bootstrap`_ 2.0.4+
+* `jQuery`_ 1.7.1+
+
+.. _Bootstrap: https://getbootstrap.com/
+.. _jQuery: https://jquery.com/
+
+These are the specific versions bootstrap-datepicker is tested against (``js`` files) and built against (``css`` files). Use other versions at your own risk.
+
+
+Dependencies
+------------
+
+Requires bootstrap's dropdown component (``dropdowns.less``) for some styles, and bootstrap's sprites (``sprites.less`` and associated images) for arrows.
+
+A standalone .css file (including necessary dropdown styles and alternative, text-based arrows) can be generated by running ``build/build_standalone.less`` through the ``lessc`` compiler::
+
+ $ lessc build/build_standalone.less datepicker.css
+
+
+Usage
+-----
+
+Call the datepicker via javascript::
+
+ $('.datepicker').datepicker();
+
+
+Data API
+^^^^^^^^
+
+As with bootstrap's own plugins, datepicker provides a data-api that can be used to instantiate datepickers without the need for custom javascript. For most datepickers, simply set ``data-provide="datepicker"`` on the element you want to initialize, and it will be intialized lazily, in true bootstrap fashion. For inline datepickers, use ``data-provide="datepicker-inline"``; these will be immediately initialized on page load, and cannot be lazily loaded.
+
+.. code-block:: html
+
+ <input data-provide="datepicker">
+
+Markup with component
+
+.. code-block:: html
+
+ <div class="input-group date" data-provide="datepicker">
+ <input type="text" class="form-control">
+ <div class="input-group-addon">
+ <span class="glyphicon glyphicon-th"></span>
+ </div>
+ </div>
+
+You can disable datepicker's data-api in the same way as you would disable other bootstrap plugins::
+
+ $(document).off('.datepicker.data-api');
+
+
+Configuration
+^^^^^^^^^^^^^
+
+:doc:`options` are passed to the ``datepicker`` function via an options hash at instantiation::
+
+ $('.datepicker').datepicker({
+ format: 'mm/dd/yyyy',
+ startDate: '-3d'
+ });
+
+Most options may be provided as data-attributes on the target element:
+
+.. code-block:: html
+
+ <input class="datepicker" data-date-format="mm/dd/yyyy">
+
+::
+
+ $('.datepicker').datepicker({
+ startDate: '-3d'
+ });
+
+Defaults for all options can be modified directly by changing values in the ``$.fn.datepicker.defaults`` hash::
+
+ $.fn.datepicker.defaults.format = "mm/dd/yyyy";
+ $('.datepicker').datepicker({
+ startDate: '-3d'
+ });
+
+
+Stylesheets
+^^^^^^^^^^^
+
+There are a few different stylesheets included in the library. This is an overview of what each file is to be used for:
+
+:code:`bootstrap-datepicker.css` gives legacy support for twitter bootstrap v2, :code:`bootstrap-datepicker3.css` is used for twitter bootstrap v3 support
+and :code:`bootstrap-datepicker.standalone.css` can be used to include the datepicker without depending on the twitter bootstrap library.
+
+No Conflict mode
+^^^^^^^^^^^^^^^^
+
+``$.fn.datepicker.noConflict`` provides a way to avoid conflict with other jQuery datepicker plugins::
+
+ var datepicker = $.fn.datepicker.noConflict(); // return $.fn.datepicker to previously assigned value
+ $.fn.bootstrapDP = datepicker; // give $().bootstrapDP the bootstrap-datepicker functionality
+
+
+
+Table of Contents
+-----------------
+
+.. toctree::
+
+ markup
+ options
+ methods
+ events
+ keyboard
+ i18n
diff --git a/public/bower_components/bootstrap-datepicker/docs/keyboard.rst b/public/bower_components/bootstrap-datepicker/docs/keyboard.rst
new file mode 100644
index 0000000..e34ba65
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/keyboard.rst
@@ -0,0 +1,27 @@
+Keyboard support
+================
+
+The datepicker includes keyboard navigation. The "focused date" is kept track of and highlighted (as with mouse hover) during keyboard nav, and is cleared when a date is toggled or the picker is hidden.
+
+up, down, left, right arrow keys
+--------------------------------
+
+By themselves, left/right will move focus backward/forward one day, up/down will move focus back/forward one week.
+
+With the shift key, up/left will move focus backward one month, down/right will move focus forward one month.
+
+With the ctrl key, up/left will move focus backward one year, down/right will move focus forward one year.
+
+Shift+ctrl behaves the same as ctrl -- that is, it does not change both month and year simultaneously, only the year.
+
+enter
+-----
+
+When the picker is visible, enter will toggle the focused date (if there is one). When the picker is not visible, enter will have normal effects -- submitting the current form, etc.
+
+When the date is deselected, the ``clearDate`` event is triggered; otherwise, the ``changeDate`` event is triggered. If ``autoclose`` is enabled, the picker will be hidden after selection or deselection.
+
+escape
+------
+
+The escape key can be used to clear the focused date and hide and re-show the datepicker; hiding the picker is necessary if the user wants to manually edit the value.
diff --git a/public/bower_components/bootstrap-datepicker/docs/make.bat b/public/bower_components/bootstrap-datepicker/docs/make.bat
new file mode 100644
index 0000000..282b37a
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/make.bat
@@ -0,0 +1,190 @@
+@ECHO OFF
+
+REM Command file for Sphinx documentation
+
+if "%SPHINXBUILD%" == "" (
+ set SPHINXBUILD=sphinx-build
+)
+set BUILDDIR=_build
+set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
+set I18NSPHINXOPTS=%SPHINXOPTS% .
+if NOT "%PAPER%" == "" (
+ set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
+ set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
+)
+
+if "%1" == "" goto help
+
+if "%1" == "help" (
+ :help
+ echo.Please use `make ^<target^>` where ^<target^> is one of
+ echo. html to make standalone HTML files
+ echo. dirhtml to make HTML files named index.html in directories
+ echo. singlehtml to make a single large HTML file
+ echo. pickle to make pickle files
+ echo. json to make JSON files
+ echo. htmlhelp to make HTML files and a HTML help project
+ echo. qthelp to make HTML files and a qthelp project
+ echo. devhelp to make HTML files and a Devhelp project
+ echo. epub to make an epub
+ echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
+ echo. text to make text files
+ echo. man to make manual pages
+ echo. texinfo to make Texinfo files
+ echo. gettext to make PO message catalogs
+ echo. changes to make an overview over all changed/added/deprecated items
+ echo. linkcheck to check all external links for integrity
+ echo. doctest to run all doctests embedded in the documentation if enabled
+ goto end
+)
+
+if "%1" == "clean" (
+ for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
+ del /q /s %BUILDDIR%\*
+ goto end
+)
+
+if "%1" == "html" (
+ %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The HTML pages are in %BUILDDIR%/html.
+ goto end
+)
+
+if "%1" == "dirhtml" (
+ %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
+ goto end
+)
+
+if "%1" == "singlehtml" (
+ %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
+ goto end
+)
+
+if "%1" == "pickle" (
+ %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished; now you can process the pickle files.
+ goto end
+)
+
+if "%1" == "json" (
+ %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished; now you can process the JSON files.
+ goto end
+)
+
+if "%1" == "htmlhelp" (
+ %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished; now you can run HTML Help Workshop with the ^
+.hhp project file in %BUILDDIR%/htmlhelp.
+ goto end
+)
+
+if "%1" == "qthelp" (
+ %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished; now you can run "qcollectiongenerator" with the ^
+.qhcp project file in %BUILDDIR%/qthelp, like this:
+ echo.^> qcollectiongenerator %BUILDDIR%\qthelp\bootstrap-datepicker.qhcp
+ echo.To view the help file:
+ echo.^> assistant -collectionFile %BUILDDIR%\qthelp\bootstrap-datepicker.ghc
+ goto end
+)
+
+if "%1" == "devhelp" (
+ %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished.
+ goto end
+)
+
+if "%1" == "epub" (
+ %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The epub file is in %BUILDDIR%/epub.
+ goto end
+)
+
+if "%1" == "latex" (
+ %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
+ goto end
+)
+
+if "%1" == "text" (
+ %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The text files are in %BUILDDIR%/text.
+ goto end
+)
+
+if "%1" == "man" (
+ %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The manual pages are in %BUILDDIR%/man.
+ goto end
+)
+
+if "%1" == "texinfo" (
+ %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
+ goto end
+)
+
+if "%1" == "gettext" (
+ %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
+ goto end
+)
+
+if "%1" == "changes" (
+ %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.The overview file is in %BUILDDIR%/changes.
+ goto end
+)
+
+if "%1" == "linkcheck" (
+ %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Link check complete; look for any errors in the above output ^
+or in %BUILDDIR%/linkcheck/output.txt.
+ goto end
+)
+
+if "%1" == "doctest" (
+ %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Testing of doctests in the sources finished, look at the ^
+results in %BUILDDIR%/doctest/output.txt.
+ goto end
+)
+
+:end
diff --git a/public/bower_components/bootstrap-datepicker/docs/markup.rst b/public/bower_components/bootstrap-datepicker/docs/markup.rst
new file mode 100644
index 0000000..546b844
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/markup.rst
@@ -0,0 +1,89 @@
+Markup
+=======
+
+The following are examples of supported markup. On their own, these will not provide a datepicker widget; you will need to instantiate the datepicker on the markup.
+
+
+input
+-----
+
+The simplest case: focusing the input (clicking or tabbing into it) will show the picker.
+
+.. code-block:: html
+
+ <input type="text" class="form-control" value="02-16-2012">
+
+.. figure:: _static/screenshots/markup_input.png
+ :align: center
+
+component
+---------
+
+Adding the ``date`` class to an ``input-group`` bootstrap component will allow the ``input-group-addon`` elements to trigger the picker.
+
+.. code-block:: html
+
+ <div class="input-group date">
+ <input type="text" class="form-control" value="12-02-2012">
+ <div class="input-group-addon">
+ <span class="glyphicon glyphicon-th"></span>
+ </div>
+ </div>
+
+.. figure:: _static/screenshots/markup_component.png
+ :align: center
+
+.. _daterange:
+
+date-range
+----------
+
+Using the ``input-daterange`` construct with multiple child inputs will instantiate one picker per input and link them together to allow selecting ranges.
+
+.. code-block:: html
+
+ <div class="input-group input-daterange">
+ <input type="text" class="form-control" value="2012-04-05">
+ <div class="input-group-addon">to</div>
+ <input type="text" class="form-control" value="2012-04-19">
+ </div>
+
+.. figure:: _static/screenshots/markup_daterange.png
+ :align: center
+
+Note that that ``input-daterange`` itself does not implement the ``datepicker`` methods. Methods should be directly called to the inputs. For example:
+
+::
+
+ $('.input-daterange input').each(function() {
+ $(this).datepicker('clearDates');
+ });
+
+inline or embedded
+------------------
+
+Instantiating the datepicker on a simple div will give an embedded picker that is always visible.
+
+.. code-block:: html
+
+ <div data-date="12/03/2012"></div>
+
+.. figure:: _static/screenshots/markup_inline.png
+ :align: center
+
+
+Example to save the embedded datepicker value to a hidden field
+
+.. code-block:: html
+
+ <div id="datepicker" data-date="12/03/2012"></div>
+ <input type="hidden" id="my_hidden_input">
+
+::
+
+ $('#datepicker').datepicker();
+ $('#datepicker').on('changeDate', function() {
+ $('#my_hidden_input').val(
+ $('#datepicker').datepicker('getFormattedDate')
+ );
+ });
diff --git a/public/bower_components/bootstrap-datepicker/docs/methods.rst b/public/bower_components/bootstrap-datepicker/docs/methods.rst
new file mode 100644
index 0000000..f4be72b
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/methods.rst
@@ -0,0 +1,226 @@
+Methods
+=======
+
+Methods are called on a datepicker by calling the ``datepicker`` function with a string first argument, followed by any arguments the method takes
+
+::
+
+ $('.datepicker').datepicker('method', arg1, arg2);
+
+
+destroy
+-------
+
+Arguments: None
+
+Remove the datepicker. Removes attached events, internal attached objects, and added HTML elements.
+
+*Alias: remove*
+
+
+show
+----
+
+Arguments: None
+
+Show the picker.
+
+
+hide
+----
+
+Arguments: None
+
+Hide the picker.
+
+
+update
+------
+
+Arguments:
+
+* date (String|Date|Array, optional)
+* date (String|Date, optional)
+* ...
+
+Update the datepicker with given arguments or the current input value.
+The arguments can be either an array of strings, an array of Date objects, multiples strings or multiples Date objects.
+If ``date`` arguments are provided and they are Date objects, it is assumed to be "local" Date objects, and will be converted to UTC for internal use.
+
+::
+
+ $('.datepicker').datepicker('update');
+ $('.datepicker').datepicker('update', '2011-03-05');
+ $('.datepicker').datepicker('update', '2011-03-05', '2011-03-07');
+ $('.datepicker').datepicker('update', new Date(2011, 2, 5));
+ $('.datepicker').datepicker('update', [new Date(2011, 2, 5), new Date(2011, 2, 7)]);
+
+To reset the datepicker and clear the selected date, pass an empty string with ``update``:
+
+::
+
+ $('.datepicker').datepicker('update', '');
+
+
+setDate
+-------
+
+Arguments:
+
+* date (Date)
+
+Sets the internal date. ``date`` is assumed to be a "local" date object, and will be converted to UTC for internal use.
+
+
+setUTCDate
+----------
+
+Arguments:
+
+* date (Date)
+
+Sets the internal date. ``date`` is assumed to be a UTC date object, and will not be converted.
+
+
+setDates
+--------
+
+Arguments:
+
+* date[, date[, ...]] (Date)
+
+or
+
+* [date[, date[, ...]]] (Array)
+
+Sets the internal date list; accepts multiple dates or a single array of dates as arguments. Each ``date`` is assumed to be a "local" date object, and will be converted to UTC for internal use. For use with multidate pickers.
+
+
+clearDates
+----------
+
+Arguments: None
+
+Clear dates.
+
+
+setUTCDates
+-----------
+
+Arguments:
+
+* date[, date[, ...]] (Date)
+
+or
+
+* [date[, date[, ...]]] (Array)
+
+Sets the internal date list. Each ``date`` is assumed to be a UTC date object, and will not be converted. For use with multidate pickers.
+
+
+getDate
+-------
+
+Arguments: None
+
+Returns a localized date object representing the internal date object of the first datepicker in the selection. For multidate pickers, returns the latest date selected.
+
+
+getUTCDate
+----------
+
+Arguments: None
+
+Returns the internal UTC date object, as-is and unconverted to local time, of the first datepicker in the selection. For multidate pickers, returns the latest date selected.
+
+
+getDates
+--------
+
+Arguments: None
+
+Returns a list of localized date objects representing the internal date objects of the first datepicker in the selection. For use with multidate pickers.
+
+
+getUTCDates
+-----------
+
+Arguments: None
+
+Returns the internal list of UTC date objects, as they are and unconverted to local time, of the first datepicker in the selection. For use with multidate pickers.
+
+
+getStartDate
+------------
+
+Arguments: None
+
+Returns the lower date limit on the datepicker.
+
+
+getEndDate
+----------
+
+Arguments: None
+
+Returns the upper date limit on the datepicker.
+
+
+setStartDate
+------------
+
+Arguments:
+
+* startDate (Date)
+
+Sets a new lower date limit on the datepicker. See :ref:`startDate` for valid values.
+
+Omit startDate (or provide an otherwise falsey value) to unset the limit.
+
+
+setEndDate
+----------
+
+Arguments:
+
+* endDate (Date)
+
+Sets a new upper date limit on the datepicker. See :ref:`endDate` for valid values.
+
+Omit endDate (or provide an otherwise falsey value) to unset the limit.
+
+
+setDatesDisabled
+----------------
+
+Arguments:
+
+* datesDisabled (String|Array)
+
+Sets the days that should be disabled. See :ref:`datesDisabled` for valid values.
+
+Omit datesDisabled (or provide an otherwise falsey value) to unset the disabled days.
+
+
+setDaysOfWeekDisabled
+---------------------
+
+Arguments:
+
+* daysOfWeekDisabled (String|Array)
+
+Sets the days of week that should be disabled. See :ref:`daysOfWeekDisabled` for valid values.
+
+Omit daysOfWeekDisabled (or provide an otherwise falsey value) to unset the disabled days of week.
+
+
+setDaysOfWeekHighlighted
+------------------------
+
+Arguments:
+
+* daysOfWeekHighlighted (String|Array)
+
+Sets the days of week that should be highlighted. See :ref:`daysOfWeekHighlighted` for valid values.
+
+Omit daysOfWeekHighlighted (or provide an otherwise falsey value) to unset the highlighted days of week.
diff --git a/public/bower_components/bootstrap-datepicker/docs/options.rst b/public/bower_components/bootstrap-datepicker/docs/options.rst
new file mode 100644
index 0000000..0cf544f
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/options.rst
@@ -0,0 +1,567 @@
+Options
+=======
+
+All options that take a "Date" can handle a ``Date`` object; a String formatted according to the given ``format``; or a timedelta relative to today, eg "-1d", "+6m +1y", etc, where valid units are "d" (day), "w" (week), "m" (month), and "y" (year). Use "0" as today.
+There are also aliases for the relative timedelta's: "yesterday" equals "-1d", "today" is equal to "+0d" and "tomorrow" is equal to "+1d".
+
+Most options can be provided via data-attributes. An option can be converted to a data-attribute by taking its name, replacing each uppercase letter with its lowercase equivalent preceded by a dash, and prepending "data-date-" to the result. For example, ``startDate`` would be ``data-date-start-date``, ``format`` would be ``data-date-format``, and ``daysOfWeekDisabled`` would be ``data-date-days-of-week-disabled``.
+
+See the `quick reference`_ for an overview of all options and their default values
+
+autoclose
+---------
+
+Boolean. Default: false
+
+Whether or not to close the datepicker immediately when a date is selected.
+
+
+assumeNearbyYear
+----------------
+
+Boolean or Integer. Default: false
+
+If true, manually-entered dates with two-digit years, such as "5/1/15", will be parsed as "2015", not "15". If the year is less than 10 years in advance, the picker will use the current century, otherwise, it will use the previous one. For example "5/1/15" would parse to May 1st, 2015, but "5/1/97" would be May 1st, 1997.
+
+To configure the number of years in advance that the picker will still use the current century, use an Integer instead of the Boolean true. E.g. "assumeNearbyYear: 20"
+
+
+beforeShowDay
+-------------
+
+Function(Date). Default: $.noop
+
+A function that takes a date as a parameter and returns one of the following values:
+
+ * undefined to have no effect
+ * A Boolean, indicating whether or not this date is selectable
+ * A String representing additional CSS classes to apply to the date's cell
+ * An object with the following properties:
+
+ * ``enabled``: same as the Boolean value above
+ * ``classes``: same as the String value above
+ * ``tooltip``: a tooltip to apply to this date, via the ``title`` HTML attribute
+ * ``content``: the content to display in the day cell, rather than the default (day of month as text)
+
+
+beforeShowMonth
+---------------
+
+Function(Date). Default: $.noop
+
+A function that takes a date as a parameter and returns one of the following values:
+
+ * undefined to have no effect
+ * A Boolean, indicating whether or not this month is selectable
+ * A String representing additional CSS classes to apply to the month's cell
+ * An object with the following properties:
+
+ * ``enabled``: same as the Boolean value above
+ * ``classes``: same as the String value above
+ * ``tooltip``: a tooltip to apply to this date, via the ``title`` HTML attribute
+
+
+beforeShowYear
+--------------
+
+Function(Date). Default: $.noop
+
+A function that takes a date as a parameter and returns one of the following values:
+
+ * undefined to have no effect
+ * A Boolean, indicating whether or not this year is selectable
+ * A String representing additional CSS classes to apply to the year's cell
+ * An object with the following properties:
+
+ * ``enabled``: same as the Boolean value above
+ * ``classes``: same as the String value above
+ * ``tooltip``: a tooltip to apply to this year, via the ``title`` HTML attribute
+
+
+beforeShowDecade
+----------------
+
+Function(Date). Default: $.noop
+
+A function that takes a date as a parameter and returns one of the following values:
+
+ * undefined to have no effect
+ * A Boolean, indicating whether or not this year is selectable
+ * A String representing additional CSS classes to apply to the year's cell
+ * An object with the following properties:
+
+ * ``enabled``: same as the Boolean value above
+ * ``classes``: same as the String value above
+ * ``tooltip``: a tooltip to apply to this year, via the ``title`` HTML attribute
+
+
+beforeShowCentury
+-----------------
+
+Function(Date). Default: $.noop
+
+A function that takes a date as a parameter and returns one of the following values:
+
+ * undefined to have no effect
+ * A Boolean, indicating whether or not this year is selectable
+ * A String representing additional CSS classes to apply to the year's cell
+ * An object with the following properties:
+
+ * ``enabled``: same as the Boolean value above
+ * ``classes``: same as the String value above
+ * ``tooltip``: a tooltip to apply to this year, via the ``title`` HTML attribute
+
+
+calendarWeeks
+-------------
+
+Boolean. Default: false
+
+Whether or not to show week numbers to the left of week rows.
+
+.. figure:: _static/screenshots/option_calendarweeks.png
+ :align: center
+
+
+clearBtn
+--------
+
+Boolean. Default: false
+
+If true, displays a "Clear" button at the bottom of the datepicker to clear the input value. If "autoclose" is also set to true, this button will also close the datepicker.
+
+.. figure:: _static/screenshots/option_clearbtn.png
+ :align: center
+
+
+container
+---------
+
+String. Default: "body"
+
+Appends the date picker popup to a specific element; eg: container: '#picker-container' (will default to "body")
+
+.. _datesDisabled:
+
+
+datesDisabled
+-------------
+
+String, Array. Default: []
+
+Array of date strings or a single date string formatted in the given date format
+
+.. _daysOfWeekDisabled:
+
+
+daysOfWeekDisabled
+------------------
+
+String, Array. Default: []
+
+Days of the week that should be disabled. Values are 0 (Sunday) to 6 (Saturday). Multiple values should be comma-separated. Example: disable weekends: ``'06'`` or ``'0,6'`` or ``[0,6]``.
+
+.. figure:: _static/screenshots/option_daysofweekdisabled.png
+ :align: center
+
+.. _daysOfWeekHighlighted:
+
+
+daysOfWeekHighlighted
+---------------------
+
+String, Array. Default: []
+
+Days of the week that should be highlighted. Values are 0 (Sunday) to 6 (Saturday). Multiple values should be comma-separated. Example: highlight weekends: ``'06'`` or ``'0,6'`` or ``[0,6]``.
+
+
+defaultViewDate
+---------------
+
+Date, String or Object with keys ``year``, ``month``, and ``day``. Default: today
+
+Date to view when initially opening the calendar. The internal value of the date remains today as default, but when the datepicker is first opened the calendar will open to ``defaultViewDate`` rather than today. If this option is not used, "today" remains the default view date.
+
+This option can be:
+ * A date, which should be in local timezone.
+ * A string which must be parsable with ``format``.
+ * An object with keys ``year``, ``month`` and ``day`` (can't be set from a data attribute). If the given object is missing any of the required keys, their defaults are:
+
+ * ``year``: the current year
+ * ``month``: 0 (Note that it starts with 0 for January)
+ * ``day``: 1
+
+disableTouchKeyboard
+--------------------
+
+Boolean. Default: false
+
+If true, no keyboard will show on mobile devices
+
+
+enableOnReadonly
+----------------
+
+Boolean. Default: true
+
+If false the datepicker will not show on a readonly datepicker field.
+
+.. _endDate:
+
+
+endDate
+-------
+
+Date or String. Default: End of time
+
+The latest date that may be selected; all later dates will be disabled.
+
+Date should be in local timezone. String must be parsable with ``format``.
+
+.. figure:: _static/screenshots/option_enddate.png
+ :align: center
+
+.. code-block:: html
+
+ <input type="text" class="form-control" data-date-end-date="0d">
+
+Will disable all dates after today.
+
+
+forceParse
+----------
+
+Boolean. Default: true
+
+Whether or not to force parsing of the input value when the picker is closed. That is, when an invalid date is left in the input field by the user, the picker will forcibly parse that value, and set the input's value to the new, valid date, conforming to the given `format`.
+
+
+format
+------
+
+String. Default: "mm/dd/yyyy"
+
+The date format, combination of d, dd, D, DD, m, mm, M, MM, yy, yyyy.
+
+* d, dd: Numeric date, no leading zero and leading zero, respectively. Eg, 5, 05.
+* D, DD: Abbreviated and full weekday names, respectively. Eg, Mon, Monday.
+* m, mm: Numeric month, no leading zero and leading zero, respectively. Eg, 7, 07.
+* M, MM: Abbreviated and full month names, respectively. Eg, Jan, January
+* yy, yyyy: 2- and 4-digit years, respectively. Eg, 12, 2012.
+
+Object.
+
+Custom formatting options
+
+* toDisplay: function (date, format, language) to convert date object to string, that will be stored in input field
+* toValue: function (date, format, language) to convert string object to date, that will be used in date selection
+
+::
+
+ $('.datepicker').datepicker({
+ format: {
+ /*
+ * Say our UI should display a week ahead,
+ * but textbox should store the actual date.
+ * This is useful if we need UI to select local dates,
+ * but store in UTC
+ */
+ toDisplay: function (date, format, language) {
+ var d = new Date(date);
+ d.setDate(d.getDate() - 7);
+ return d.toISOString();
+ },
+ toValue: function (date, format, language) {
+ var d = new Date(date);
+ d.setDate(d.getDate() + 7);
+ return new Date(d);
+ }
+ }
+ });
+
+
+immediateUpdates
+----------------
+
+Boolean. Default: false
+
+If true, selecting a year or month in the datepicker will update the input value immediately. Otherwise, only selecting a day of the month will update the input value immediately.
+
+
+inputs
+------
+
+Array, jQuery. Default: None
+
+A list of inputs to be used in a range picker, which will be attached to the selected element. Allows for explicitly creating a range picker on a non-standard element.
+
+.. code-block:: html
+
+ <div id="event_period">
+ <input type="text" class="actual_range">
+ <input type="text" class="actual_range">
+ </div>
+
+::
+
+ $('#event_period').datepicker({
+ inputs: $('.actual_range')
+ });
+
+
+keepEmptyValues
+---------------
+
+Boolean. Default: false
+
+Only effective in a range picker. If true, the selected value does not get propagated to other, currently empty, pickers in the range.
+
+
+keyboardNavigation
+------------------
+
+Boolean. Default: true
+
+Whether or not to allow date navigation by arrow keys.
+
+Keyboard navigation is not supported at all for embedded / inline mode. Also it's not working if input element hasn't focus. This could be an issue if used as component or if opened by `show` method.
+
+
+language
+--------
+
+String. Default: "en"
+
+The IETF code (eg "en" for English, "pt-BR" for Brazilian Portuguese) of the language to use for month and day names. These will also be used as the input's value (and subsequently sent to the server in the case of form submissions). If a full code (eg "de-DE") is supplied the picker will first check for an "de-DE" language and if not found will fallback and check for a "de" language. If an unknown language code is given, English will be used. See :doc:`i18n`.
+
+.. figure:: _static/screenshots/option_language.png
+ :align: center
+
+
+maxViewMode
+-----------
+
+Number, String. Default: 4, "centuries"
+
+Set a maximum limit for the view mode. Accepts: 0 or "days" or "month", 1 or "months" or "year", 2 or "years" or "decade", 3 or "decades" or "century", and 4 or "centuries" or "millenium".
+Gives the ability to pick only a day, a month, a year or a decade. The day is set to the 1st for "months", the month is set to January for "years", the year is set to the first year from the decade for "decades", and the year is set to the first from the millennium for "centuries".
+
+
+minViewMode
+-----------
+
+Number, String. Default: 0, "days"
+
+Set a minimum limit for the view mode. Accepts: 0 or "days" or "month", 1 or "months" or "year", 2 or "years" or "decade", 3 or "decades" or "century", and 4 or "centuries" or "millenium".
+Gives the ability to pick only a month, a year or a decade. The day is set to the 1st for "months", and the month is set to January for "years", the year is set to the first year from the decade for "decades", and the year is set to the first from the millennium for "centuries".
+
+
+multidate
+---------
+
+Boolean, Number. Default: false
+
+Enable multidate picking. Each date in month view acts as a toggle button, keeping track of which dates the user has selected in order. If a number is given, the picker will limit how many dates can be selected to that number, dropping the oldest dates from the list when the number is exceeded. ``true`` equates to no limit. The input's value (if present) is set to a string generated by joining the dates, formatted, with ``multidateSeparator``.
+
+For selecting 2 dates as a range please see :ref:`daterange`
+
+.. figure:: _static/screenshots/option_multidate.png
+ :align: center
+
+
+multidateSeparator
+------------------
+
+String. Default: ","
+
+The string that will appear between dates when generating the input's value. When parsing the input's value for a multidate picker, this will also be used to split the incoming string to separate multiple formatted dates; as such, it is highly recommended that you not use a string that could be a substring of a formatted date (eg, using '-' to separate dates when your format is 'yyyy-mm-dd').
+
+
+orientation
+-----------
+
+String. Default: "auto"
+
+A space-separated string consisting of one or two of "left" or "right", "top" or "bottom", and "auto" (may be omitted); for example, "top left", "bottom" (horizontal orientation will default to "auto"), "right" (vertical orientation will default to "auto"), "auto top". Allows for fixed placement of the picker popup.
+
+"orientation" refers to the location of the picker popup's "anchor"; you can also think of it as the location of the trigger element (input, component, etc) relative to the picker.
+
+"auto" triggers "smart orientation" of the picker. Horizontal orientation will default to "left" and left offset will be tweaked to keep the picker inside the browser viewport; vertical orientation will simply choose "top" or "bottom", whichever will show more of the picker in the viewport.
+
+
+showOnFocus
+-----------
+
+Boolean. Default: true
+
+If false, the datepicker will be prevented from showing when the input field associated with it receives focus.
+
+.. _startdate:
+
+startDate
+---------
+
+Date or String. Default: Beginning of time
+
+The earliest date that may be selected; all earlier dates will be disabled.
+
+Date should be in local timezone. String must be parsable with ``format``.
+
+.. figure:: _static/screenshots/option_startdate.png
+ :align: center
+
+
+startView
+---------
+
+Number, String. Default: 0, "days"
+
+The view that the datepicker should show when it is opened. Accepts: 0 or "days" or "month", 1 or "months" or "year", 2 or "years" or "decade", 3 or "decades" or "century", and 4 or "centuries" or "millenium". Useful for date-of-birth datepickers.
+
+
+templates
+---------
+
+Object. Default:
+
+::
+
+ {
+ leftArrow: '&laquo;',
+ rightArrow: '&raquo;'
+ }
+
+The templates used to generate some parts of the picker. Each property must be a string with only text, or valid html.
+You can use this property to use custom icons libs. for example:
+
+::
+
+ {
+ leftArrow: '<i class="fa fa-long-arrow-left"></i>',
+ rightArrow: '<i class="fa fa-long-arrow-right"></i>'
+ }
+
+
+showWeekDays
+------------
+
+Boolean. Default: true
+
+If false, the datepicker will not append the names of the weekdays to its view. Default behavior is appending the weekdays.
+
+
+title
+-----
+
+String. Default: ""
+
+The string that will appear on top of the datepicker. If empty the title will be hidden.
+
+
+todayBtn
+--------
+
+Boolean, "linked". Default: false
+
+If true or "linked", displays a "Today" button at the bottom of the datepicker to select the current date. If true, the "Today" button will only move the current date into view; if "linked", the current date will also be selected.
+
+.. figure:: _static/screenshots/option_todaybtn.png
+ :align: center
+
+
+todayHighlight
+--------------
+
+Boolean. Default: false
+
+If true, highlights the current date.
+
+.. figure:: _static/screenshots/option_todayhighlight.png
+ :align: center
+
+
+toggleActive
+------------
+
+Boolean. Default: false
+
+If true, selecting the currently active date in the datepicker will unset the respective date. This option is always true when the multidate option is being used.
+
+
+updateViewDate
+--------------
+
+Boolean. Default: true
+
+If false viewDate is set according to `value` on initialization and updated
+* if a day in last oder next month is selected or
+* if dates are changed by `setDate`, `setDates`, `setUTCDate` and `setUTCDates` methods.
+If `multidate` option is `true` the last selected date or the last date in array
+passed to `setDates` or `setUTCDates` is used.
+
+weekStart
+---------
+
+Integer. Default: 0
+
+Day of the week start. 0 (Sunday) to 6 (Saturday)
+
+.. figure:: _static/screenshots/option_weekstart.png
+ :align: center
+
+
+zIndexOffset
+------------
+
+Integer. Default: 10
+
+The CSS z-index of the open datepicker is the maximum z-index of the input and all of its DOM ancestors *plus* the ``zIndexOffset``.
+
+Quick reference
+===============
+
+This is a quick overview of all the options and their default values
+
+===================== =============
+Option Default value
+===================== =============
+autoclose false
+assumeNearbyYear false
+beforeShowDay
+beforeShowMonth
+beforeShowYear
+beforeShowDecade
+beforeShowCentury
+calendarWeeks false
+clearBtn false
+container 'body'
+datesDisabled []
+daysOfWeekDisabled []
+daysOfWeekHighlighted []
+defaultViewDate today
+disableTouchKeyboard false
+enableOnReadonly true
+endDate Infinity
+forceParse true
+format 'mm/dd/yyyy'
+immediateUpdates false
+inputs
+keepEmptyValues false
+keyboardNavigation true
+language 'en'
+maxViewMode 4 'centuries'
+minViewMode 0 'days'
+multidate false
+multidateSeparator ','
+orientation 'auto'
+showOnFocus true
+startDate -Infinity
+startView 0 'days' (current month)
+templates
+title ''
+todayBtn false
+todayHighlight true
+toggleActive false
+weekStart 0 (Sunday)
+zIndexOffset 10
+===================== =============
diff --git a/public/bower_components/bootstrap-datepicker/docs/requirements.txt b/public/bower_components/bootstrap-datepicker/docs/requirements.txt
new file mode 100644
index 0000000..483a4e9
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/docs/requirements.txt
@@ -0,0 +1 @@
+sphinx_rtd_theme
diff --git a/public/bower_components/bootstrap-datepicker/grunt/.jshintrc b/public/bower_components/bootstrap-datepicker/grunt/.jshintrc
new file mode 100644
index 0000000..0ea0495
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/grunt/.jshintrc
@@ -0,0 +1,7 @@
+{
+ "extends" : "../js/.jshintrc",
+ "asi" : false,
+ "browser" : false,
+ "es3" : false,
+ "node" : true
+}
diff --git a/public/bower_components/bootstrap-datepicker/js/.jscsrc b/public/bower_components/bootstrap-datepicker/js/.jscsrc
new file mode 100644
index 0000000..638b14e
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/.jscsrc
@@ -0,0 +1,22 @@
+{
+ "requireSpaceAfterKeywords": [
+ "if", "else", "for", "while", "do", "switch", "return"
+ ],
+ "disallowSpacesInFunctionExpression": {
+ "beforeOpeningRoundBrace": true,
+ "beforeOpeningCurlyBrace": true
+ },
+ "disallowSpacesInsideObjectBrackets": true,
+ "disallowSpacesInsideArrayBrackets": true,
+ "disallowSpacesInsideParentheses": true,
+ "disallowQuotedKeysInObjects": "allButReserved",
+ "disallowSpaceAfterObjectKeys": true,
+ "requireSpaceAfterBinaryOperators": ["==", "===", "!=", "!==", ">", "<", ">=", "<="],
+ "requireSpaceBeforeBinaryOperators": ["==", "===", "!=", "!==", ">", "<", ">=", "<="],
+ "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"],
+ "disallowSpaceBeforeBinaryOperators": [","],
+ "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"],
+ "validateLineBreaks": "LF",
+ "requireKeywordsOnNewLine": ["return", "break", "delete"],
+ "requireLineFeedAtFileEnd": true
+}
diff --git a/public/bower_components/bootstrap-datepicker/js/.jshintrc b/public/bower_components/bootstrap-datepicker/js/.jshintrc
new file mode 100644
index 0000000..3b76658
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/.jshintrc
@@ -0,0 +1,25 @@
+{
+ // Extra globals.
+ "predef" : [
+ "require",
+ "define"
+ ],
+ "jquery": true,
+ "browser": true,
+
+ "eqeqeq": true,
+ "freeze": true,
+ //"indent": 4, // when we move to spaces
+ "latedef": false,
+ "undef": true,
+ "unused": false,
+ "immed": true,
+ "trailing": true,
+ "maxcomplexity": 50, // Can we get this under 5?
+ //"maxlen": 120,
+
+ "-W014": false, // Bad line breaking before ? (in tertiary operator)
+ "-W065": false, // Missing radix parameter to parseInt (defaults to 10)
+ "-W069": false, // Literal accessor is better written in dot notation
+ "-W100": false // Silently deleted characters (in locales)
+}
diff --git a/public/bower_components/bootstrap-datepicker/js/bootstrap-datepicker.js b/public/bower_components/bootstrap-datepicker/js/bootstrap-datepicker.js
new file mode 100644
index 0000000..8725526
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/bootstrap-datepicker.js
@@ -0,0 +1,2048 @@
+/* =========================================================
+ * bootstrap-datepicker.js
+ * Repo: https://github.com/uxsolutions/bootstrap-datepicker/
+ * Demo: https://eternicode.github.io/bootstrap-datepicker/
+ * Docs: https://bootstrap-datepicker.readthedocs.org/
+ * =========================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================================================= */
+
+(function(factory){
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function($, undefined){
+ function UTCDate(){
+ return new Date(Date.UTC.apply(Date, arguments));
+ }
+ function UTCToday(){
+ var today = new Date();
+ return UTCDate(today.getFullYear(), today.getMonth(), today.getDate());
+ }
+ function isUTCEquals(date1, date2) {
+ return (
+ date1.getUTCFullYear() === date2.getUTCFullYear() &&
+ date1.getUTCMonth() === date2.getUTCMonth() &&
+ date1.getUTCDate() === date2.getUTCDate()
+ );
+ }
+ function alias(method, deprecationMsg){
+ return function(){
+ if (deprecationMsg !== undefined) {
+ $.fn.datepicker.deprecated(deprecationMsg);
+ }
+
+ return this[method].apply(this, arguments);
+ };
+ }
+ function isValidDate(d) {
+ return d && !isNaN(d.getTime());
+ }
+
+ var DateArray = (function(){
+ var extras = {
+ get: function(i){
+ return this.slice(i)[0];
+ },
+ contains: function(d){
+ // Array.indexOf is not cross-browser;
+ // $.inArray doesn't work with Dates
+ var val = d && d.valueOf();
+ for (var i=0, l=this.length; i < l; i++)
+ // Use date arithmetic to allow dates with different times to match
+ if (0 <= this[i].valueOf() - val && this[i].valueOf() - val < 1000*60*60*24)
+ return i;
+ return -1;
+ },
+ remove: function(i){
+ this.splice(i,1);
+ },
+ replace: function(new_array){
+ if (!new_array)
+ return;
+ if (!$.isArray(new_array))
+ new_array = [new_array];
+ this.clear();
+ this.push.apply(this, new_array);
+ },
+ clear: function(){
+ this.length = 0;
+ },
+ copy: function(){
+ var a = new DateArray();
+ a.replace(this);
+ return a;
+ }
+ };
+
+ return function(){
+ var a = [];
+ a.push.apply(a, arguments);
+ $.extend(a, extras);
+ return a;
+ };
+ })();
+
+
+ // Picker object
+
+ var Datepicker = function(element, options){
+ $.data(element, 'datepicker', this);
+ this._process_options(options);
+
+ this.dates = new DateArray();
+ this.viewDate = this.o.defaultViewDate;
+ this.focusDate = null;
+
+ this.element = $(element);
+ this.isInput = this.element.is('input');
+ this.inputField = this.isInput ? this.element : this.element.find('input');
+ this.component = this.element.hasClass('date') ? this.element.find('.add-on, .input-group-addon, .btn') : false;
+ if (this.component && this.component.length === 0)
+ this.component = false;
+ this.isInline = !this.component && this.element.is('div');
+
+ this.picker = $(DPGlobal.template);
+
+ // Checking templates and inserting
+ if (this._check_template(this.o.templates.leftArrow)) {
+ this.picker.find('.prev').html(this.o.templates.leftArrow);
+ }
+
+ if (this._check_template(this.o.templates.rightArrow)) {
+ this.picker.find('.next').html(this.o.templates.rightArrow);
+ }
+
+ this._buildEvents();
+ this._attachEvents();
+
+ if (this.isInline){
+ this.picker.addClass('datepicker-inline').appendTo(this.element);
+ }
+ else {
+ this.picker.addClass('datepicker-dropdown dropdown-menu');
+ }
+
+ if (this.o.rtl){
+ this.picker.addClass('datepicker-rtl');
+ }
+
+ if (this.o.calendarWeeks) {
+ this.picker.find('.datepicker-days .datepicker-switch, thead .datepicker-title, tfoot .today, tfoot .clear')
+ .attr('colspan', function(i, val){
+ return Number(val) + 1;
+ });
+ }
+
+ this._process_options({
+ startDate: this._o.startDate,
+ endDate: this._o.endDate,
+ daysOfWeekDisabled: this.o.daysOfWeekDisabled,
+ daysOfWeekHighlighted: this.o.daysOfWeekHighlighted,
+ datesDisabled: this.o.datesDisabled
+ });
+
+ this._allow_update = false;
+ this.setViewMode(this.o.startView);
+ this._allow_update = true;
+
+ this.fillDow();
+ this.fillMonths();
+
+ this.update();
+
+ if (this.isInline){
+ this.show();
+ }
+ };
+
+ Datepicker.prototype = {
+ constructor: Datepicker,
+
+ _resolveViewName: function(view){
+ $.each(DPGlobal.viewModes, function(i, viewMode){
+ if (view === i || $.inArray(view, viewMode.names) !== -1){
+ view = i;
+ return false;
+ }
+ });
+
+ return view;
+ },
+
+ _resolveDaysOfWeek: function(daysOfWeek){
+ if (!$.isArray(daysOfWeek))
+ daysOfWeek = daysOfWeek.split(/[,\s]*/);
+ return $.map(daysOfWeek, Number);
+ },
+
+ _check_template: function(tmp){
+ try {
+ // If empty
+ if (tmp === undefined || tmp === "") {
+ return false;
+ }
+ // If no html, everything ok
+ if ((tmp.match(/[<>]/g) || []).length <= 0) {
+ return true;
+ }
+ // Checking if html is fine
+ var jDom = $(tmp);
+ return jDom.length > 0;
+ }
+ catch (ex) {
+ return false;
+ }
+ },
+
+ _process_options: function(opts){
+ // Store raw options for reference
+ this._o = $.extend({}, this._o, opts);
+ // Processed options
+ var o = this.o = $.extend({}, this._o);
+
+ // Check if "de-DE" style date is available, if not language should
+ // fallback to 2 letter code eg "de"
+ var lang = o.language;
+ if (!dates[lang]){
+ lang = lang.split('-')[0];
+ if (!dates[lang])
+ lang = defaults.language;
+ }
+ o.language = lang;
+
+ // Retrieve view index from any aliases
+ o.startView = this._resolveViewName(o.startView);
+ o.minViewMode = this._resolveViewName(o.minViewMode);
+ o.maxViewMode = this._resolveViewName(o.maxViewMode);
+
+ // Check view is between min and max
+ o.startView = Math.max(this.o.minViewMode, Math.min(this.o.maxViewMode, o.startView));
+
+ // true, false, or Number > 0
+ if (o.multidate !== true){
+ o.multidate = Number(o.multidate) || false;
+ if (o.multidate !== false)
+ o.multidate = Math.max(0, o.multidate);
+ }
+ o.multidateSeparator = String(o.multidateSeparator);
+
+ o.weekStart %= 7;
+ o.weekEnd = (o.weekStart + 6) % 7;
+
+ var format = DPGlobal.parseFormat(o.format);
+ if (o.startDate !== -Infinity){
+ if (!!o.startDate){
+ if (o.startDate instanceof Date)
+ o.startDate = this._local_to_utc(this._zero_time(o.startDate));
+ else
+ o.startDate = DPGlobal.parseDate(o.startDate, format, o.language, o.assumeNearbyYear);
+ }
+ else {
+ o.startDate = -Infinity;
+ }
+ }
+ if (o.endDate !== Infinity){
+ if (!!o.endDate){
+ if (o.endDate instanceof Date)
+ o.endDate = this._local_to_utc(this._zero_time(o.endDate));
+ else
+ o.endDate = DPGlobal.parseDate(o.endDate, format, o.language, o.assumeNearbyYear);
+ }
+ else {
+ o.endDate = Infinity;
+ }
+ }
+
+ o.daysOfWeekDisabled = this._resolveDaysOfWeek(o.daysOfWeekDisabled||[]);
+ o.daysOfWeekHighlighted = this._resolveDaysOfWeek(o.daysOfWeekHighlighted||[]);
+
+ o.datesDisabled = o.datesDisabled||[];
+ if (!$.isArray(o.datesDisabled)) {
+ o.datesDisabled = o.datesDisabled.split(',');
+ }
+ o.datesDisabled = $.map(o.datesDisabled, function(d){
+ return DPGlobal.parseDate(d, format, o.language, o.assumeNearbyYear);
+ });
+
+ var plc = String(o.orientation).toLowerCase().split(/\s+/g),
+ _plc = o.orientation.toLowerCase();
+ plc = $.grep(plc, function(word){
+ return /^auto|left|right|top|bottom$/.test(word);
+ });
+ o.orientation = {x: 'auto', y: 'auto'};
+ if (!_plc || _plc === 'auto')
+ ; // no action
+ else if (plc.length === 1){
+ switch (plc[0]){
+ case 'top':
+ case 'bottom':
+ o.orientation.y = plc[0];
+ break;
+ case 'left':
+ case 'right':
+ o.orientation.x = plc[0];
+ break;
+ }
+ }
+ else {
+ _plc = $.grep(plc, function(word){
+ return /^left|right$/.test(word);
+ });
+ o.orientation.x = _plc[0] || 'auto';
+
+ _plc = $.grep(plc, function(word){
+ return /^top|bottom$/.test(word);
+ });
+ o.orientation.y = _plc[0] || 'auto';
+ }
+ if (o.defaultViewDate instanceof Date || typeof o.defaultViewDate === 'string') {
+ o.defaultViewDate = DPGlobal.parseDate(o.defaultViewDate, format, o.language, o.assumeNearbyYear);
+ } else if (o.defaultViewDate) {
+ var year = o.defaultViewDate.year || new Date().getFullYear();
+ var month = o.defaultViewDate.month || 0;
+ var day = o.defaultViewDate.day || 1;
+ o.defaultViewDate = UTCDate(year, month, day);
+ } else {
+ o.defaultViewDate = UTCToday();
+ }
+ },
+ _events: [],
+ _secondaryEvents: [],
+ _applyEvents: function(evs){
+ for (var i=0, el, ch, ev; i < evs.length; i++){
+ el = evs[i][0];
+ if (evs[i].length === 2){
+ ch = undefined;
+ ev = evs[i][1];
+ } else if (evs[i].length === 3){
+ ch = evs[i][1];
+ ev = evs[i][2];
+ }
+ el.on(ev, ch);
+ }
+ },
+ _unapplyEvents: function(evs){
+ for (var i=0, el, ev, ch; i < evs.length; i++){
+ el = evs[i][0];
+ if (evs[i].length === 2){
+ ch = undefined;
+ ev = evs[i][1];
+ } else if (evs[i].length === 3){
+ ch = evs[i][1];
+ ev = evs[i][2];
+ }
+ el.off(ev, ch);
+ }
+ },
+ _buildEvents: function(){
+ var events = {
+ keyup: $.proxy(function(e){
+ if ($.inArray(e.keyCode, [27, 37, 39, 38, 40, 32, 13, 9]) === -1)
+ this.update();
+ }, this),
+ keydown: $.proxy(this.keydown, this),
+ paste: $.proxy(this.paste, this)
+ };
+
+ if (this.o.showOnFocus === true) {
+ events.focus = $.proxy(this.show, this);
+ }
+
+ if (this.isInput) { // single input
+ this._events = [
+ [this.element, events]
+ ];
+ }
+ // component: input + button
+ else if (this.component && this.inputField.length) {
+ this._events = [
+ // For components that are not readonly, allow keyboard nav
+ [this.inputField, events],
+ [this.component, {
+ click: $.proxy(this.show, this)
+ }]
+ ];
+ }
+ else {
+ this._events = [
+ [this.element, {
+ click: $.proxy(this.show, this),
+ keydown: $.proxy(this.keydown, this)
+ }]
+ ];
+ }
+ this._events.push(
+ // Component: listen for blur on element descendants
+ [this.element, '*', {
+ blur: $.proxy(function(e){
+ this._focused_from = e.target;
+ }, this)
+ }],
+ // Input: listen for blur on element
+ [this.element, {
+ blur: $.proxy(function(e){
+ this._focused_from = e.target;
+ }, this)
+ }]
+ );
+
+ if (this.o.immediateUpdates) {
+ // Trigger input updates immediately on changed year/month
+ this._events.push([this.element, {
+ 'changeYear changeMonth': $.proxy(function(e){
+ this.update(e.date);
+ }, this)
+ }]);
+ }
+
+ this._secondaryEvents = [
+ [this.picker, {
+ click: $.proxy(this.click, this)
+ }],
+ [this.picker, '.prev, .next', {
+ click: $.proxy(this.navArrowsClick, this)
+ }],
+ [this.picker, '.day:not(.disabled)', {
+ click: $.proxy(this.dayCellClick, this)
+ }],
+ [$(window), {
+ resize: $.proxy(this.place, this)
+ }],
+ [$(document), {
+ 'mousedown touchstart': $.proxy(function(e){
+ // Clicked outside the datepicker, hide it
+ if (!(
+ this.element.is(e.target) ||
+ this.element.find(e.target).length ||
+ this.picker.is(e.target) ||
+ this.picker.find(e.target).length ||
+ this.isInline
+ )){
+ this.hide();
+ }
+ }, this)
+ }]
+ ];
+ },
+ _attachEvents: function(){
+ this._detachEvents();
+ this._applyEvents(this._events);
+ },
+ _detachEvents: function(){
+ this._unapplyEvents(this._events);
+ },
+ _attachSecondaryEvents: function(){
+ this._detachSecondaryEvents();
+ this._applyEvents(this._secondaryEvents);
+ },
+ _detachSecondaryEvents: function(){
+ this._unapplyEvents(this._secondaryEvents);
+ },
+ _trigger: function(event, altdate){
+ var date = altdate || this.dates.get(-1),
+ local_date = this._utc_to_local(date);
+
+ this.element.trigger({
+ type: event,
+ date: local_date,
+ viewMode: this.viewMode,
+ dates: $.map(this.dates, this._utc_to_local),
+ format: $.proxy(function(ix, format){
+ if (arguments.length === 0){
+ ix = this.dates.length - 1;
+ format = this.o.format;
+ } else if (typeof ix === 'string'){
+ format = ix;
+ ix = this.dates.length - 1;
+ }
+ format = format || this.o.format;
+ var date = this.dates.get(ix);
+ return DPGlobal.formatDate(date, format, this.o.language);
+ }, this)
+ });
+ },
+
+ show: function(){
+ if (this.inputField.prop('disabled') || (this.inputField.prop('readonly') && this.o.enableOnReadonly === false))
+ return;
+ if (!this.isInline)
+ this.picker.appendTo(this.o.container);
+ this.place();
+ this.picker.show();
+ this._attachSecondaryEvents();
+ this._trigger('show');
+ if ((window.navigator.msMaxTouchPoints || 'ontouchstart' in document) && this.o.disableTouchKeyboard) {
+ $(this.element).blur();
+ }
+ return this;
+ },
+
+ hide: function(){
+ if (this.isInline || !this.picker.is(':visible'))
+ return this;
+ this.focusDate = null;
+ this.picker.hide().detach();
+ this._detachSecondaryEvents();
+ this.setViewMode(this.o.startView);
+
+ if (this.o.forceParse && this.inputField.val())
+ this.setValue();
+ this._trigger('hide');
+ return this;
+ },
+
+ destroy: function(){
+ this.hide();
+ this._detachEvents();
+ this._detachSecondaryEvents();
+ this.picker.remove();
+ delete this.element.data().datepicker;
+ if (!this.isInput){
+ delete this.element.data().date;
+ }
+ return this;
+ },
+
+ paste: function(e){
+ var dateString;
+ if (e.originalEvent.clipboardData && e.originalEvent.clipboardData.types
+ && $.inArray('text/plain', e.originalEvent.clipboardData.types) !== -1) {
+ dateString = e.originalEvent.clipboardData.getData('text/plain');
+ } else if (window.clipboardData) {
+ dateString = window.clipboardData.getData('Text');
+ } else {
+ return;
+ }
+ this.setDate(dateString);
+ this.update();
+ e.preventDefault();
+ },
+
+ _utc_to_local: function(utc){
+ if (!utc) {
+ return utc;
+ }
+
+ var local = new Date(utc.getTime() + (utc.getTimezoneOffset() * 60000));
+
+ if (local.getTimezoneOffset() !== utc.getTimezoneOffset()) {
+ local = new Date(utc.getTime() + (local.getTimezoneOffset() * 60000));
+ }
+
+ return local;
+ },
+ _local_to_utc: function(local){
+ return local && new Date(local.getTime() - (local.getTimezoneOffset()*60000));
+ },
+ _zero_time: function(local){
+ return local && new Date(local.getFullYear(), local.getMonth(), local.getDate());
+ },
+ _zero_utc_time: function(utc){
+ return utc && UTCDate(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate());
+ },
+
+ getDates: function(){
+ return $.map(this.dates, this._utc_to_local);
+ },
+
+ getUTCDates: function(){
+ return $.map(this.dates, function(d){
+ return new Date(d);
+ });
+ },
+
+ getDate: function(){
+ return this._utc_to_local(this.getUTCDate());
+ },
+
+ getUTCDate: function(){
+ var selected_date = this.dates.get(-1);
+ if (selected_date !== undefined) {
+ return new Date(selected_date);
+ } else {
+ return null;
+ }
+ },
+
+ clearDates: function(){
+ this.inputField.val('');
+ this.update();
+ this._trigger('changeDate');
+
+ if (this.o.autoclose) {
+ this.hide();
+ }
+ },
+
+ setDates: function(){
+ var args = $.isArray(arguments[0]) ? arguments[0] : arguments;
+ this.update.apply(this, args);
+ this._trigger('changeDate');
+ this.setValue();
+ return this;
+ },
+
+ setUTCDates: function(){
+ var args = $.isArray(arguments[0]) ? arguments[0] : arguments;
+ this.setDates.apply(this, $.map(args, this._utc_to_local));
+ return this;
+ },
+
+ setDate: alias('setDates'),
+ setUTCDate: alias('setUTCDates'),
+ remove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead'),
+
+ setValue: function(){
+ var formatted = this.getFormattedDate();
+ this.inputField.val(formatted);
+ return this;
+ },
+
+ getFormattedDate: function(format){
+ if (format === undefined)
+ format = this.o.format;
+
+ var lang = this.o.language;
+ return $.map(this.dates, function(d){
+ return DPGlobal.formatDate(d, format, lang);
+ }).join(this.o.multidateSeparator);
+ },
+
+ getStartDate: function(){
+ return this.o.startDate;
+ },
+
+ setStartDate: function(startDate){
+ this._process_options({startDate: startDate});
+ this.update();
+ this.updateNavArrows();
+ return this;
+ },
+
+ getEndDate: function(){
+ return this.o.endDate;
+ },
+
+ setEndDate: function(endDate){
+ this._process_options({endDate: endDate});
+ this.update();
+ this.updateNavArrows();
+ return this;
+ },
+
+ setDaysOfWeekDisabled: function(daysOfWeekDisabled){
+ this._process_options({daysOfWeekDisabled: daysOfWeekDisabled});
+ this.update();
+ return this;
+ },
+
+ setDaysOfWeekHighlighted: function(daysOfWeekHighlighted){
+ this._process_options({daysOfWeekHighlighted: daysOfWeekHighlighted});
+ this.update();
+ return this;
+ },
+
+ setDatesDisabled: function(datesDisabled){
+ this._process_options({datesDisabled: datesDisabled});
+ this.update();
+ return this;
+ },
+
+ place: function(){
+ if (this.isInline)
+ return this;
+ var calendarWidth = this.picker.outerWidth(),
+ calendarHeight = this.picker.outerHeight(),
+ visualPadding = 10,
+ container = $(this.o.container),
+ windowWidth = container.width(),
+ scrollTop = this.o.container === 'body' ? $(document).scrollTop() : container.scrollTop(),
+ appendOffset = container.offset();
+
+ var parentsZindex = [0];
+ this.element.parents().each(function(){
+ var itemZIndex = $(this).css('z-index');
+ if (itemZIndex !== 'auto' && Number(itemZIndex) !== 0) parentsZindex.push(Number(itemZIndex));
+ });
+ var zIndex = Math.max.apply(Math, parentsZindex) + this.o.zIndexOffset;
+ var offset = this.component ? this.component.parent().offset() : this.element.offset();
+ var height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false);
+ var width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false);
+ var left = offset.left - appendOffset.left;
+ var top = offset.top - appendOffset.top;
+
+ if (this.o.container !== 'body') {
+ top += scrollTop;
+ }
+
+ this.picker.removeClass(
+ 'datepicker-orient-top datepicker-orient-bottom '+
+ 'datepicker-orient-right datepicker-orient-left'
+ );
+
+ if (this.o.orientation.x !== 'auto'){
+ this.picker.addClass('datepicker-orient-' + this.o.orientation.x);
+ if (this.o.orientation.x === 'right')
+ left -= calendarWidth - width;
+ }
+ // auto x orientation is best-placement: if it crosses a window
+ // edge, fudge it sideways
+ else {
+ if (offset.left < 0) {
+ // component is outside the window on the left side. Move it into visible range
+ this.picker.addClass('datepicker-orient-left');
+ left -= offset.left - visualPadding;
+ } else if (left + calendarWidth > windowWidth) {
+ // the calendar passes the widow right edge. Align it to component right side
+ this.picker.addClass('datepicker-orient-right');
+ left += width - calendarWidth;
+ } else {
+ if (this.o.rtl) {
+ // Default to right
+ this.picker.addClass('datepicker-orient-right');
+ } else {
+ // Default to left
+ this.picker.addClass('datepicker-orient-left');
+ }
+ }
+ }
+
+ // auto y orientation is best-situation: top or bottom, no fudging,
+ // decision based on which shows more of the calendar
+ var yorient = this.o.orientation.y,
+ top_overflow;
+ if (yorient === 'auto'){
+ top_overflow = -scrollTop + top - calendarHeight;
+ yorient = top_overflow < 0 ? 'bottom' : 'top';
+ }
+
+ this.picker.addClass('datepicker-orient-' + yorient);
+ if (yorient === 'top')
+ top -= calendarHeight + parseInt(this.picker.css('padding-top'));
+ else
+ top += height;
+
+ if (this.o.rtl) {
+ var right = windowWidth - (left + width);
+ this.picker.css({
+ top: top,
+ right: right,
+ zIndex: zIndex
+ });
+ } else {
+ this.picker.css({
+ top: top,
+ left: left,
+ zIndex: zIndex
+ });
+ }
+ return this;
+ },
+
+ _allow_update: true,
+ update: function(){
+ if (!this._allow_update)
+ return this;
+
+ var oldDates = this.dates.copy(),
+ dates = [],
+ fromArgs = false;
+ if (arguments.length){
+ $.each(arguments, $.proxy(function(i, date){
+ if (date instanceof Date)
+ date = this._local_to_utc(date);
+ dates.push(date);
+ }, this));
+ fromArgs = true;
+ } else {
+ dates = this.isInput
+ ? this.element.val()
+ : this.element.data('date') || this.inputField.val();
+ if (dates && this.o.multidate)
+ dates = dates.split(this.o.multidateSeparator);
+ else
+ dates = [dates];
+ delete this.element.data().date;
+ }
+
+ dates = $.map(dates, $.proxy(function(date){
+ return DPGlobal.parseDate(date, this.o.format, this.o.language, this.o.assumeNearbyYear);
+ }, this));
+ dates = $.grep(dates, $.proxy(function(date){
+ return (
+ !this.dateWithinRange(date) ||
+ !date
+ );
+ }, this), true);
+ this.dates.replace(dates);
+
+ if (this.o.updateViewDate) {
+ if (this.dates.length)
+ this.viewDate = new Date(this.dates.get(-1));
+ else if (this.viewDate < this.o.startDate)
+ this.viewDate = new Date(this.o.startDate);
+ else if (this.viewDate > this.o.endDate)
+ this.viewDate = new Date(this.o.endDate);
+ else
+ this.viewDate = this.o.defaultViewDate;
+ }
+
+ if (fromArgs){
+ // setting date by clicking
+ this.setValue();
+ this.element.change();
+ }
+ else if (this.dates.length){
+ // setting date by typing
+ if (String(oldDates) !== String(this.dates) && fromArgs) {
+ this._trigger('changeDate');
+ this.element.change();
+ }
+ }
+ if (!this.dates.length && oldDates.length) {
+ this._trigger('clearDate');
+ this.element.change();
+ }
+
+ this.fill();
+ return this;
+ },
+
+ fillDow: function(){
+ if (this.o.showWeekDays) {
+ var dowCnt = this.o.weekStart,
+ html = '<tr>';
+ if (this.o.calendarWeeks){
+ html += '<th class="cw">&#160;</th>';
+ }
+ while (dowCnt < this.o.weekStart + 7){
+ html += '<th class="dow';
+ if ($.inArray(dowCnt, this.o.daysOfWeekDisabled) !== -1)
+ html += ' disabled';
+ html += '">'+dates[this.o.language].daysMin[(dowCnt++)%7]+'</th>';
+ }
+ html += '</tr>';
+ this.picker.find('.datepicker-days thead').append(html);
+ }
+ },
+
+ fillMonths: function(){
+ var localDate = this._utc_to_local(this.viewDate);
+ var html = '';
+ var focused;
+ for (var i = 0; i < 12; i++){
+ focused = localDate && localDate.getMonth() === i ? ' focused' : '';
+ html += '<span class="month' + focused + '">' + dates[this.o.language].monthsShort[i] + '</span>';
+ }
+ this.picker.find('.datepicker-months td').html(html);
+ },
+
+ setRange: function(range){
+ if (!range || !range.length)
+ delete this.range;
+ else
+ this.range = $.map(range, function(d){
+ return d.valueOf();
+ });
+ this.fill();
+ },
+
+ getClassNames: function(date){
+ var cls = [],
+ year = this.viewDate.getUTCFullYear(),
+ month = this.viewDate.getUTCMonth(),
+ today = UTCToday();
+ if (date.getUTCFullYear() < year || (date.getUTCFullYear() === year && date.getUTCMonth() < month)){
+ cls.push('old');
+ } else if (date.getUTCFullYear() > year || (date.getUTCFullYear() === year && date.getUTCMonth() > month)){
+ cls.push('new');
+ }
+ if (this.focusDate && date.valueOf() === this.focusDate.valueOf())
+ cls.push('focused');
+ // Compare internal UTC date with UTC today, not local today
+ if (this.o.todayHighlight && isUTCEquals(date, today)) {
+ cls.push('today');
+ }
+ if (this.dates.contains(date) !== -1)
+ cls.push('active');
+ if (!this.dateWithinRange(date)){
+ cls.push('disabled');
+ }
+ if (this.dateIsDisabled(date)){
+ cls.push('disabled', 'disabled-date');
+ }
+ if ($.inArray(date.getUTCDay(), this.o.daysOfWeekHighlighted) !== -1){
+ cls.push('highlighted');
+ }
+
+ if (this.range){
+ if (date > this.range[0] && date < this.range[this.range.length-1]){
+ cls.push('range');
+ }
+ if ($.inArray(date.valueOf(), this.range) !== -1){
+ cls.push('selected');
+ }
+ if (date.valueOf() === this.range[0]){
+ cls.push('range-start');
+ }
+ if (date.valueOf() === this.range[this.range.length-1]){
+ cls.push('range-end');
+ }
+ }
+ return cls;
+ },
+
+ _fill_yearsView: function(selector, cssClass, factor, year, startYear, endYear, beforeFn){
+ var html = '';
+ var step = factor / 10;
+ var view = this.picker.find(selector);
+ var startVal = Math.floor(year / factor) * factor;
+ var endVal = startVal + step * 9;
+ var focusedVal = Math.floor(this.viewDate.getFullYear() / step) * step;
+ var selected = $.map(this.dates, function(d){
+ return Math.floor(d.getUTCFullYear() / step) * step;
+ });
+
+ var classes, tooltip, before;
+ for (var currVal = startVal - step; currVal <= endVal + step; currVal += step) {
+ classes = [cssClass];
+ tooltip = null;
+
+ if (currVal === startVal - step) {
+ classes.push('old');
+ } else if (currVal === endVal + step) {
+ classes.push('new');
+ }
+ if ($.inArray(currVal, selected) !== -1) {
+ classes.push('active');
+ }
+ if (currVal < startYear || currVal > endYear) {
+ classes.push('disabled');
+ }
+ if (currVal === focusedVal) {
+ classes.push('focused');
+ }
+
+ if (beforeFn !== $.noop) {
+ before = beforeFn(new Date(currVal, 0, 1));
+ if (before === undefined) {
+ before = {};
+ } else if (typeof before === 'boolean') {
+ before = {enabled: before};
+ } else if (typeof before === 'string') {
+ before = {classes: before};
+ }
+ if (before.enabled === false) {
+ classes.push('disabled');
+ }
+ if (before.classes) {
+ classes = classes.concat(before.classes.split(/\s+/));
+ }
+ if (before.tooltip) {
+ tooltip = before.tooltip;
+ }
+ }
+
+ html += '<span class="' + classes.join(' ') + '"' + (tooltip ? ' title="' + tooltip + '"' : '') + '>' + currVal + '</span>';
+ }
+
+ view.find('.datepicker-switch').text(startVal + '-' + endVal);
+ view.find('td').html(html);
+ },
+
+ fill: function(){
+ var d = new Date(this.viewDate),
+ year = d.getUTCFullYear(),
+ month = d.getUTCMonth(),
+ startYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,
+ startMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,
+ endYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,
+ endMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,
+ todaytxt = dates[this.o.language].today || dates['en'].today || '',
+ cleartxt = dates[this.o.language].clear || dates['en'].clear || '',
+ titleFormat = dates[this.o.language].titleFormat || dates['en'].titleFormat,
+ tooltip,
+ before;
+ if (isNaN(year) || isNaN(month))
+ return;
+ this.picker.find('.datepicker-days .datepicker-switch')
+ .text(DPGlobal.formatDate(d, titleFormat, this.o.language));
+ this.picker.find('tfoot .today')
+ .text(todaytxt)
+ .css('display', this.o.todayBtn === true || this.o.todayBtn === 'linked' ? 'table-cell' : 'none');
+ this.picker.find('tfoot .clear')
+ .text(cleartxt)
+ .css('display', this.o.clearBtn === true ? 'table-cell' : 'none');
+ this.picker.find('thead .datepicker-title')
+ .text(this.o.title)
+ .css('display', typeof this.o.title === 'string' && this.o.title !== '' ? 'table-cell' : 'none');
+ this.updateNavArrows();
+ this.fillMonths();
+ var prevMonth = UTCDate(year, month, 0),
+ day = prevMonth.getUTCDate();
+ prevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.o.weekStart + 7)%7);
+ var nextMonth = new Date(prevMonth);
+ if (prevMonth.getUTCFullYear() < 100){
+ nextMonth.setUTCFullYear(prevMonth.getUTCFullYear());
+ }
+ nextMonth.setUTCDate(nextMonth.getUTCDate() + 42);
+ nextMonth = nextMonth.valueOf();
+ var html = [];
+ var weekDay, clsName;
+ while (prevMonth.valueOf() < nextMonth){
+ weekDay = prevMonth.getUTCDay();
+ if (weekDay === this.o.weekStart){
+ html.push('<tr>');
+ if (this.o.calendarWeeks){
+ // ISO 8601: First week contains first thursday.
+ // ISO also states week starts on Monday, but we can be more abstract here.
+ var
+ // Start of current week: based on weekstart/current date
+ ws = new Date(+prevMonth + (this.o.weekStart - weekDay - 7) % 7 * 864e5),
+ // Thursday of this week
+ th = new Date(Number(ws) + (7 + 4 - ws.getUTCDay()) % 7 * 864e5),
+ // First Thursday of year, year from thursday
+ yth = new Date(Number(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay()) % 7 * 864e5),
+ // Calendar week: ms between thursdays, div ms per day, div 7 days
+ calWeek = (th - yth) / 864e5 / 7 + 1;
+ html.push('<td class="cw">'+ calWeek +'</td>');
+ }
+ }
+ clsName = this.getClassNames(prevMonth);
+ clsName.push('day');
+
+ var content = prevMonth.getUTCDate();
+
+ if (this.o.beforeShowDay !== $.noop){
+ before = this.o.beforeShowDay(this._utc_to_local(prevMonth));
+ if (before === undefined)
+ before = {};
+ else if (typeof before === 'boolean')
+ before = {enabled: before};
+ else if (typeof before === 'string')
+ before = {classes: before};
+ if (before.enabled === false)
+ clsName.push('disabled');
+ if (before.classes)
+ clsName = clsName.concat(before.classes.split(/\s+/));
+ if (before.tooltip)
+ tooltip = before.tooltip;
+ if (before.content)
+ content = before.content;
+ }
+
+ //Check if uniqueSort exists (supported by jquery >=1.12 and >=2.2)
+ //Fallback to unique function for older jquery versions
+ if ($.isFunction($.uniqueSort)) {
+ clsName = $.uniqueSort(clsName);
+ } else {
+ clsName = $.unique(clsName);
+ }
+
+ html.push('<td class="'+clsName.join(' ')+'"' + (tooltip ? ' title="'+tooltip+'"' : '') + ' data-date="' + prevMonth.getTime().toString() + '">' + content + '</td>');
+ tooltip = null;
+ if (weekDay === this.o.weekEnd){
+ html.push('</tr>');
+ }
+ prevMonth.setUTCDate(prevMonth.getUTCDate() + 1);
+ }
+ this.picker.find('.datepicker-days tbody').html(html.join(''));
+
+ var monthsTitle = dates[this.o.language].monthsTitle || dates['en'].monthsTitle || 'Months';
+ var months = this.picker.find('.datepicker-months')
+ .find('.datepicker-switch')
+ .text(this.o.maxViewMode < 2 ? monthsTitle : year)
+ .end()
+ .find('tbody span').removeClass('active');
+
+ $.each(this.dates, function(i, d){
+ if (d.getUTCFullYear() === year)
+ months.eq(d.getUTCMonth()).addClass('active');
+ });
+
+ if (year < startYear || year > endYear){
+ months.addClass('disabled');
+ }
+ if (year === startYear){
+ months.slice(0, startMonth).addClass('disabled');
+ }
+ if (year === endYear){
+ months.slice(endMonth+1).addClass('disabled');
+ }
+
+ if (this.o.beforeShowMonth !== $.noop){
+ var that = this;
+ $.each(months, function(i, month){
+ var moDate = new Date(year, i, 1);
+ var before = that.o.beforeShowMonth(moDate);
+ if (before === undefined)
+ before = {};
+ else if (typeof before === 'boolean')
+ before = {enabled: before};
+ else if (typeof before === 'string')
+ before = {classes: before};
+ if (before.enabled === false && !$(month).hasClass('disabled'))
+ $(month).addClass('disabled');
+ if (before.classes)
+ $(month).addClass(before.classes);
+ if (before.tooltip)
+ $(month).prop('title', before.tooltip);
+ });
+ }
+
+ // Generating decade/years picker
+ this._fill_yearsView(
+ '.datepicker-years',
+ 'year',
+ 10,
+ year,
+ startYear,
+ endYear,
+ this.o.beforeShowYear
+ );
+
+ // Generating century/decades picker
+ this._fill_yearsView(
+ '.datepicker-decades',
+ 'decade',
+ 100,
+ year,
+ startYear,
+ endYear,
+ this.o.beforeShowDecade
+ );
+
+ // Generating millennium/centuries picker
+ this._fill_yearsView(
+ '.datepicker-centuries',
+ 'century',
+ 1000,
+ year,
+ startYear,
+ endYear,
+ this.o.beforeShowCentury
+ );
+ },
+
+ updateNavArrows: function(){
+ if (!this._allow_update)
+ return;
+
+ var d = new Date(this.viewDate),
+ year = d.getUTCFullYear(),
+ month = d.getUTCMonth(),
+ startYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,
+ startMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,
+ endYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,
+ endMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,
+ prevIsDisabled,
+ nextIsDisabled,
+ factor = 1;
+ switch (this.viewMode){
+ case 4:
+ factor *= 10;
+ /* falls through */
+ case 3:
+ factor *= 10;
+ /* falls through */
+ case 2:
+ factor *= 10;
+ /* falls through */
+ case 1:
+ prevIsDisabled = Math.floor(year / factor) * factor < startYear;
+ nextIsDisabled = Math.floor(year / factor) * factor + factor > endYear;
+ break;
+ case 0:
+ prevIsDisabled = year <= startYear && month < startMonth;
+ nextIsDisabled = year >= endYear && month > endMonth;
+ break;
+ }
+
+ this.picker.find('.prev').toggleClass('disabled', prevIsDisabled);
+ this.picker.find('.next').toggleClass('disabled', nextIsDisabled);
+ },
+
+ click: function(e){
+ e.preventDefault();
+ e.stopPropagation();
+
+ var target, dir, day, year, month;
+ target = $(e.target);
+
+ // Clicked on the switch
+ if (target.hasClass('datepicker-switch') && this.viewMode !== this.o.maxViewMode){
+ this.setViewMode(this.viewMode + 1);
+ }
+
+ // Clicked on today button
+ if (target.hasClass('today') && !target.hasClass('day')){
+ this.setViewMode(0);
+ this._setDate(UTCToday(), this.o.todayBtn === 'linked' ? null : 'view');
+ }
+
+ // Clicked on clear button
+ if (target.hasClass('clear')){
+ this.clearDates();
+ }
+
+ if (!target.hasClass('disabled')){
+ // Clicked on a month, year, decade, century
+ if (target.hasClass('month')
+ || target.hasClass('year')
+ || target.hasClass('decade')
+ || target.hasClass('century')) {
+ this.viewDate.setUTCDate(1);
+
+ day = 1;
+ if (this.viewMode === 1){
+ month = target.parent().find('span').index(target);
+ year = this.viewDate.getUTCFullYear();
+ this.viewDate.setUTCMonth(month);
+ } else {
+ month = 0;
+ year = Number(target.text());
+ this.viewDate.setUTCFullYear(year);
+ }
+
+ this._trigger(DPGlobal.viewModes[this.viewMode - 1].e, this.viewDate);
+
+ if (this.viewMode === this.o.minViewMode){
+ this._setDate(UTCDate(year, month, day));
+ } else {
+ this.setViewMode(this.viewMode - 1);
+ this.fill();
+ }
+ }
+ }
+
+ if (this.picker.is(':visible') && this._focused_from){
+ this._focused_from.focus();
+ }
+ delete this._focused_from;
+ },
+
+ dayCellClick: function(e){
+ var $target = $(e.currentTarget);
+ var timestamp = $target.data('date');
+ var date = new Date(timestamp);
+
+ if (this.o.updateViewDate) {
+ if (date.getUTCFullYear() !== this.viewDate.getUTCFullYear()) {
+ this._trigger('changeYear', this.viewDate);
+ }
+
+ if (date.getUTCMonth() !== this.viewDate.getUTCMonth()) {
+ this._trigger('changeMonth', this.viewDate);
+ }
+ }
+ this._setDate(date);
+ },
+
+ // Clicked on prev or next
+ navArrowsClick: function(e){
+ var $target = $(e.currentTarget);
+ var dir = $target.hasClass('prev') ? -1 : 1;
+ if (this.viewMode !== 0){
+ dir *= DPGlobal.viewModes[this.viewMode].navStep * 12;
+ }
+ this.viewDate = this.moveMonth(this.viewDate, dir);
+ this._trigger(DPGlobal.viewModes[this.viewMode].e, this.viewDate);
+ this.fill();
+ },
+
+ _toggle_multidate: function(date){
+ var ix = this.dates.contains(date);
+ if (!date){
+ this.dates.clear();
+ }
+
+ if (ix !== -1){
+ if (this.o.multidate === true || this.o.multidate > 1 || this.o.toggleActive){
+ this.dates.remove(ix);
+ }
+ } else if (this.o.multidate === false) {
+ this.dates.clear();
+ this.dates.push(date);
+ }
+ else {
+ this.dates.push(date);
+ }
+
+ if (typeof this.o.multidate === 'number')
+ while (this.dates.length > this.o.multidate)
+ this.dates.remove(0);
+ },
+
+ _setDate: function(date, which){
+ if (!which || which === 'date')
+ this._toggle_multidate(date && new Date(date));
+ if ((!which && this.o.updateViewDate) || which === 'view')
+ this.viewDate = date && new Date(date);
+
+ this.fill();
+ this.setValue();
+ if (!which || which !== 'view') {
+ this._trigger('changeDate');
+ }
+ this.inputField.trigger('change');
+ if (this.o.autoclose && (!which || which === 'date')){
+ this.hide();
+ }
+ },
+
+ moveDay: function(date, dir){
+ var newDate = new Date(date);
+ newDate.setUTCDate(date.getUTCDate() + dir);
+
+ return newDate;
+ },
+
+ moveWeek: function(date, dir){
+ return this.moveDay(date, dir * 7);
+ },
+
+ moveMonth: function(date, dir){
+ if (!isValidDate(date))
+ return this.o.defaultViewDate;
+ if (!dir)
+ return date;
+ var new_date = new Date(date.valueOf()),
+ day = new_date.getUTCDate(),
+ month = new_date.getUTCMonth(),
+ mag = Math.abs(dir),
+ new_month, test;
+ dir = dir > 0 ? 1 : -1;
+ if (mag === 1){
+ test = dir === -1
+ // If going back one month, make sure month is not current month
+ // (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02)
+ ? function(){
+ return new_date.getUTCMonth() === month;
+ }
+ // If going forward one month, make sure month is as expected
+ // (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02)
+ : function(){
+ return new_date.getUTCMonth() !== new_month;
+ };
+ new_month = month + dir;
+ new_date.setUTCMonth(new_month);
+ // Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11
+ new_month = (new_month + 12) % 12;
+ }
+ else {
+ // For magnitudes >1, move one month at a time...
+ for (var i=0; i < mag; i++)
+ // ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...
+ new_date = this.moveMonth(new_date, dir);
+ // ...then reset the day, keeping it in the new month
+ new_month = new_date.getUTCMonth();
+ new_date.setUTCDate(day);
+ test = function(){
+ return new_month !== new_date.getUTCMonth();
+ };
+ }
+ // Common date-resetting loop -- if date is beyond end of month, make it
+ // end of month
+ while (test()){
+ new_date.setUTCDate(--day);
+ new_date.setUTCMonth(new_month);
+ }
+ return new_date;
+ },
+
+ moveYear: function(date, dir){
+ return this.moveMonth(date, dir*12);
+ },
+
+ moveAvailableDate: function(date, dir, fn){
+ do {
+ date = this[fn](date, dir);
+
+ if (!this.dateWithinRange(date))
+ return false;
+
+ fn = 'moveDay';
+ }
+ while (this.dateIsDisabled(date));
+
+ return date;
+ },
+
+ weekOfDateIsDisabled: function(date){
+ return $.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1;
+ },
+
+ dateIsDisabled: function(date){
+ return (
+ this.weekOfDateIsDisabled(date) ||
+ $.grep(this.o.datesDisabled, function(d){
+ return isUTCEquals(date, d);
+ }).length > 0
+ );
+ },
+
+ dateWithinRange: function(date){
+ return date >= this.o.startDate && date <= this.o.endDate;
+ },
+
+ keydown: function(e){
+ if (!this.picker.is(':visible')){
+ if (e.keyCode === 40 || e.keyCode === 27) { // allow down to re-show picker
+ this.show();
+ e.stopPropagation();
+ }
+ return;
+ }
+ var dateChanged = false,
+ dir, newViewDate,
+ focusDate = this.focusDate || this.viewDate;
+ switch (e.keyCode){
+ case 27: // escape
+ if (this.focusDate){
+ this.focusDate = null;
+ this.viewDate = this.dates.get(-1) || this.viewDate;
+ this.fill();
+ }
+ else
+ this.hide();
+ e.preventDefault();
+ e.stopPropagation();
+ break;
+ case 37: // left
+ case 38: // up
+ case 39: // right
+ case 40: // down
+ if (!this.o.keyboardNavigation || this.o.daysOfWeekDisabled.length === 7)
+ break;
+ dir = e.keyCode === 37 || e.keyCode === 38 ? -1 : 1;
+ if (this.viewMode === 0) {
+ if (e.ctrlKey){
+ newViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear');
+
+ if (newViewDate)
+ this._trigger('changeYear', this.viewDate);
+ } else if (e.shiftKey){
+ newViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth');
+
+ if (newViewDate)
+ this._trigger('changeMonth', this.viewDate);
+ } else if (e.keyCode === 37 || e.keyCode === 39){
+ newViewDate = this.moveAvailableDate(focusDate, dir, 'moveDay');
+ } else if (!this.weekOfDateIsDisabled(focusDate)){
+ newViewDate = this.moveAvailableDate(focusDate, dir, 'moveWeek');
+ }
+ } else if (this.viewMode === 1) {
+ if (e.keyCode === 38 || e.keyCode === 40) {
+ dir = dir * 4;
+ }
+ newViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth');
+ } else if (this.viewMode === 2) {
+ if (e.keyCode === 38 || e.keyCode === 40) {
+ dir = dir * 4;
+ }
+ newViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear');
+ }
+ if (newViewDate){
+ this.focusDate = this.viewDate = newViewDate;
+ this.setValue();
+ this.fill();
+ e.preventDefault();
+ }
+ break;
+ case 13: // enter
+ if (!this.o.forceParse)
+ break;
+ focusDate = this.focusDate || this.dates.get(-1) || this.viewDate;
+ if (this.o.keyboardNavigation) {
+ this._toggle_multidate(focusDate);
+ dateChanged = true;
+ }
+ this.focusDate = null;
+ this.viewDate = this.dates.get(-1) || this.viewDate;
+ this.setValue();
+ this.fill();
+ if (this.picker.is(':visible')){
+ e.preventDefault();
+ e.stopPropagation();
+ if (this.o.autoclose)
+ this.hide();
+ }
+ break;
+ case 9: // tab
+ this.focusDate = null;
+ this.viewDate = this.dates.get(-1) || this.viewDate;
+ this.fill();
+ this.hide();
+ break;
+ }
+ if (dateChanged){
+ if (this.dates.length)
+ this._trigger('changeDate');
+ else
+ this._trigger('clearDate');
+ this.inputField.trigger('change');
+ }
+ },
+
+ setViewMode: function(viewMode){
+ this.viewMode = viewMode;
+ this.picker
+ .children('div')
+ .hide()
+ .filter('.datepicker-' + DPGlobal.viewModes[this.viewMode].clsName)
+ .show();
+ this.updateNavArrows();
+ this._trigger('changeViewMode', new Date(this.viewDate));
+ }
+ };
+
+ var DateRangePicker = function(element, options){
+ $.data(element, 'datepicker', this);
+ this.element = $(element);
+ this.inputs = $.map(options.inputs, function(i){
+ return i.jquery ? i[0] : i;
+ });
+ delete options.inputs;
+
+ this.keepEmptyValues = options.keepEmptyValues;
+ delete options.keepEmptyValues;
+
+ datepickerPlugin.call($(this.inputs), options)
+ .on('changeDate', $.proxy(this.dateUpdated, this));
+
+ this.pickers = $.map(this.inputs, function(i){
+ return $.data(i, 'datepicker');
+ });
+ this.updateDates();
+ };
+ DateRangePicker.prototype = {
+ updateDates: function(){
+ this.dates = $.map(this.pickers, function(i){
+ return i.getUTCDate();
+ });
+ this.updateRanges();
+ },
+ updateRanges: function(){
+ var range = $.map(this.dates, function(d){
+ return d.valueOf();
+ });
+ $.each(this.pickers, function(i, p){
+ p.setRange(range);
+ });
+ },
+ clearDates: function(){
+ $.each(this.pickers, function(i, p){
+ p.clearDates();
+ });
+ },
+ dateUpdated: function(e){
+ // `this.updating` is a workaround for preventing infinite recursion
+ // between `changeDate` triggering and `setUTCDate` calling. Until
+ // there is a better mechanism.
+ if (this.updating)
+ return;
+ this.updating = true;
+
+ var dp = $.data(e.target, 'datepicker');
+
+ if (dp === undefined) {
+ return;
+ }
+
+ var new_date = dp.getUTCDate(),
+ keep_empty_values = this.keepEmptyValues,
+ i = $.inArray(e.target, this.inputs),
+ j = i - 1,
+ k = i + 1,
+ l = this.inputs.length;
+ if (i === -1)
+ return;
+
+ $.each(this.pickers, function(i, p){
+ if (!p.getUTCDate() && (p === dp || !keep_empty_values))
+ p.setUTCDate(new_date);
+ });
+
+ if (new_date < this.dates[j]){
+ // Date being moved earlier/left
+ while (j >= 0 && new_date < this.dates[j]){
+ this.pickers[j--].setUTCDate(new_date);
+ }
+ } else if (new_date > this.dates[k]){
+ // Date being moved later/right
+ while (k < l && new_date > this.dates[k]){
+ this.pickers[k++].setUTCDate(new_date);
+ }
+ }
+ this.updateDates();
+
+ delete this.updating;
+ },
+ destroy: function(){
+ $.map(this.pickers, function(p){ p.destroy(); });
+ $(this.inputs).off('changeDate', this.dateUpdated);
+ delete this.element.data().datepicker;
+ },
+ remove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead')
+ };
+
+ function opts_from_el(el, prefix){
+ // Derive options from element data-attrs
+ var data = $(el).data(),
+ out = {}, inkey,
+ replace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])');
+ prefix = new RegExp('^' + prefix.toLowerCase());
+ function re_lower(_,a){
+ return a.toLowerCase();
+ }
+ for (var key in data)
+ if (prefix.test(key)){
+ inkey = key.replace(replace, re_lower);
+ out[inkey] = data[key];
+ }
+ return out;
+ }
+
+ function opts_from_locale(lang){
+ // Derive options from locale plugins
+ var out = {};
+ // Check if "de-DE" style date is available, if not language should
+ // fallback to 2 letter code eg "de"
+ if (!dates[lang]){
+ lang = lang.split('-')[0];
+ if (!dates[lang])
+ return;
+ }
+ var d = dates[lang];
+ $.each(locale_opts, function(i,k){
+ if (k in d)
+ out[k] = d[k];
+ });
+ return out;
+ }
+
+ var old = $.fn.datepicker;
+ var datepickerPlugin = function(option){
+ var args = Array.apply(null, arguments);
+ args.shift();
+ var internal_return;
+ this.each(function(){
+ var $this = $(this),
+ data = $this.data('datepicker'),
+ options = typeof option === 'object' && option;
+ if (!data){
+ var elopts = opts_from_el(this, 'date'),
+ // Preliminary otions
+ xopts = $.extend({}, defaults, elopts, options),
+ locopts = opts_from_locale(xopts.language),
+ // Options priority: js args, data-attrs, locales, defaults
+ opts = $.extend({}, defaults, locopts, elopts, options);
+ if ($this.hasClass('input-daterange') || opts.inputs){
+ $.extend(opts, {
+ inputs: opts.inputs || $this.find('input').toArray()
+ });
+ data = new DateRangePicker(this, opts);
+ }
+ else {
+ data = new Datepicker(this, opts);
+ }
+ $this.data('datepicker', data);
+ }
+ if (typeof option === 'string' && typeof data[option] === 'function'){
+ internal_return = data[option].apply(data, args);
+ }
+ });
+
+ if (
+ internal_return === undefined ||
+ internal_return instanceof Datepicker ||
+ internal_return instanceof DateRangePicker
+ )
+ return this;
+
+ if (this.length > 1)
+ throw new Error('Using only allowed for the collection of a single element (' + option + ' function)');
+ else
+ return internal_return;
+ };
+ $.fn.datepicker = datepickerPlugin;
+
+ var defaults = $.fn.datepicker.defaults = {
+ assumeNearbyYear: false,
+ autoclose: false,
+ beforeShowDay: $.noop,
+ beforeShowMonth: $.noop,
+ beforeShowYear: $.noop,
+ beforeShowDecade: $.noop,
+ beforeShowCentury: $.noop,
+ calendarWeeks: false,
+ clearBtn: false,
+ toggleActive: false,
+ daysOfWeekDisabled: [],
+ daysOfWeekHighlighted: [],
+ datesDisabled: [],
+ endDate: Infinity,
+ forceParse: true,
+ format: 'mm/dd/yyyy',
+ keepEmptyValues: false,
+ keyboardNavigation: true,
+ language: 'en',
+ minViewMode: 0,
+ maxViewMode: 4,
+ multidate: false,
+ multidateSeparator: ',',
+ orientation: "auto",
+ rtl: false,
+ startDate: -Infinity,
+ startView: 0,
+ todayBtn: false,
+ todayHighlight: false,
+ updateViewDate: true,
+ weekStart: 0,
+ disableTouchKeyboard: false,
+ enableOnReadonly: true,
+ showOnFocus: true,
+ zIndexOffset: 10,
+ container: 'body',
+ immediateUpdates: false,
+ title: '',
+ templates: {
+ leftArrow: '&#x00AB;',
+ rightArrow: '&#x00BB;'
+ },
+ showWeekDays: true
+ };
+ var locale_opts = $.fn.datepicker.locale_opts = [
+ 'format',
+ 'rtl',
+ 'weekStart'
+ ];
+ $.fn.datepicker.Constructor = Datepicker;
+ var dates = $.fn.datepicker.dates = {
+ en: {
+ days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
+ daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
+ daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
+ months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
+ today: "Today",
+ clear: "Clear",
+ titleFormat: "MM yyyy"
+ }
+ };
+
+ var DPGlobal = {
+ viewModes: [
+ {
+ names: ['days', 'month'],
+ clsName: 'days',
+ e: 'changeMonth'
+ },
+ {
+ names: ['months', 'year'],
+ clsName: 'months',
+ e: 'changeYear',
+ navStep: 1
+ },
+ {
+ names: ['years', 'decade'],
+ clsName: 'years',
+ e: 'changeDecade',
+ navStep: 10
+ },
+ {
+ names: ['decades', 'century'],
+ clsName: 'decades',
+ e: 'changeCentury',
+ navStep: 100
+ },
+ {
+ names: ['centuries', 'millennium'],
+ clsName: 'centuries',
+ e: 'changeMillennium',
+ navStep: 1000
+ }
+ ],
+ validParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,
+ nonpunctuation: /[^ -\/:-@\u5e74\u6708\u65e5\[-`{-~\t\n\r]+/g,
+ parseFormat: function(format){
+ if (typeof format.toValue === 'function' && typeof format.toDisplay === 'function')
+ return format;
+ // IE treats \0 as a string end in inputs (truncating the value),
+ // so it's a bad format delimiter, anyway
+ var separators = format.replace(this.validParts, '\0').split('\0'),
+ parts = format.match(this.validParts);
+ if (!separators || !separators.length || !parts || parts.length === 0){
+ throw new Error("Invalid date format.");
+ }
+ return {separators: separators, parts: parts};
+ },
+ parseDate: function(date, format, language, assumeNearby){
+ if (!date)
+ return undefined;
+ if (date instanceof Date)
+ return date;
+ if (typeof format === 'string')
+ format = DPGlobal.parseFormat(format);
+ if (format.toValue)
+ return format.toValue(date, format, language);
+ var fn_map = {
+ d: 'moveDay',
+ m: 'moveMonth',
+ w: 'moveWeek',
+ y: 'moveYear'
+ },
+ dateAliases = {
+ yesterday: '-1d',
+ today: '+0d',
+ tomorrow: '+1d'
+ },
+ parts, part, dir, i, fn;
+ if (date in dateAliases){
+ date = dateAliases[date];
+ }
+ if (/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/i.test(date)){
+ parts = date.match(/([\-+]\d+)([dmwy])/gi);
+ date = new Date();
+ for (i=0; i < parts.length; i++){
+ part = parts[i].match(/([\-+]\d+)([dmwy])/i);
+ dir = Number(part[1]);
+ fn = fn_map[part[2].toLowerCase()];
+ date = Datepicker.prototype[fn](date, dir);
+ }
+ return Datepicker.prototype._zero_utc_time(date);
+ }
+
+ parts = date && date.match(this.nonpunctuation) || [];
+
+ function applyNearbyYear(year, threshold){
+ if (threshold === true)
+ threshold = 10;
+
+ // if year is 2 digits or less, than the user most likely is trying to get a recent century
+ if (year < 100){
+ year += 2000;
+ // if the new year is more than threshold years in advance, use last century
+ if (year > ((new Date()).getFullYear()+threshold)){
+ year -= 100;
+ }
+ }
+
+ return year;
+ }
+
+ var parsed = {},
+ setters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'],
+ setters_map = {
+ yyyy: function(d,v){
+ return d.setUTCFullYear(assumeNearby ? applyNearbyYear(v, assumeNearby) : v);
+ },
+ m: function(d,v){
+ if (isNaN(d))
+ return d;
+ v -= 1;
+ while (v < 0) v += 12;
+ v %= 12;
+ d.setUTCMonth(v);
+ while (d.getUTCMonth() !== v)
+ d.setUTCDate(d.getUTCDate()-1);
+ return d;
+ },
+ d: function(d,v){
+ return d.setUTCDate(v);
+ }
+ },
+ val, filtered;
+ setters_map['yy'] = setters_map['yyyy'];
+ setters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m'];
+ setters_map['dd'] = setters_map['d'];
+ date = UTCToday();
+ var fparts = format.parts.slice();
+ // Remove noop parts
+ if (parts.length !== fparts.length){
+ fparts = $(fparts).filter(function(i,p){
+ return $.inArray(p, setters_order) !== -1;
+ }).toArray();
+ }
+ // Process remainder
+ function match_part(){
+ var m = this.slice(0, parts[i].length),
+ p = parts[i].slice(0, m.length);
+ return m.toLowerCase() === p.toLowerCase();
+ }
+ if (parts.length === fparts.length){
+ var cnt;
+ for (i=0, cnt = fparts.length; i < cnt; i++){
+ val = parseInt(parts[i], 10);
+ part = fparts[i];
+ if (isNaN(val)){
+ switch (part){
+ case 'MM':
+ filtered = $(dates[language].months).filter(match_part);
+ val = $.inArray(filtered[0], dates[language].months) + 1;
+ break;
+ case 'M':
+ filtered = $(dates[language].monthsShort).filter(match_part);
+ val = $.inArray(filtered[0], dates[language].monthsShort) + 1;
+ break;
+ }
+ }
+ parsed[part] = val;
+ }
+ var _date, s;
+ for (i=0; i < setters_order.length; i++){
+ s = setters_order[i];
+ if (s in parsed && !isNaN(parsed[s])){
+ _date = new Date(date);
+ setters_map[s](_date, parsed[s]);
+ if (!isNaN(_date))
+ date = _date;
+ }
+ }
+ }
+ return date;
+ },
+ formatDate: function(date, format, language){
+ if (!date)
+ return '';
+ if (typeof format === 'string')
+ format = DPGlobal.parseFormat(format);
+ if (format.toDisplay)
+ return format.toDisplay(date, format, language);
+ var val = {
+ d: date.getUTCDate(),
+ D: dates[language].daysShort[date.getUTCDay()],
+ DD: dates[language].days[date.getUTCDay()],
+ m: date.getUTCMonth() + 1,
+ M: dates[language].monthsShort[date.getUTCMonth()],
+ MM: dates[language].months[date.getUTCMonth()],
+ yy: date.getUTCFullYear().toString().substring(2),
+ yyyy: date.getUTCFullYear()
+ };
+ val.dd = (val.d < 10 ? '0' : '') + val.d;
+ val.mm = (val.m < 10 ? '0' : '') + val.m;
+ date = [];
+ var seps = $.extend([], format.separators);
+ for (var i=0, cnt = format.parts.length; i <= cnt; i++){
+ if (seps.length)
+ date.push(seps.shift());
+ date.push(val[format.parts[i]]);
+ }
+ return date.join('');
+ },
+ headTemplate: '<thead>'+
+ '<tr>'+
+ '<th colspan="7" class="datepicker-title"></th>'+
+ '</tr>'+
+ '<tr>'+
+ '<th class="prev">'+defaults.templates.leftArrow+'</th>'+
+ '<th colspan="5" class="datepicker-switch"></th>'+
+ '<th class="next">'+defaults.templates.rightArrow+'</th>'+
+ '</tr>'+
+ '</thead>',
+ contTemplate: '<tbody><tr><td colspan="7"></td></tr></tbody>',
+ footTemplate: '<tfoot>'+
+ '<tr>'+
+ '<th colspan="7" class="today"></th>'+
+ '</tr>'+
+ '<tr>'+
+ '<th colspan="7" class="clear"></th>'+
+ '</tr>'+
+ '</tfoot>'
+ };
+ DPGlobal.template = '<div class="datepicker">'+
+ '<div class="datepicker-days">'+
+ '<table class="table-condensed">'+
+ DPGlobal.headTemplate+
+ '<tbody></tbody>'+
+ DPGlobal.footTemplate+
+ '</table>'+
+ '</div>'+
+ '<div class="datepicker-months">'+
+ '<table class="table-condensed">'+
+ DPGlobal.headTemplate+
+ DPGlobal.contTemplate+
+ DPGlobal.footTemplate+
+ '</table>'+
+ '</div>'+
+ '<div class="datepicker-years">'+
+ '<table class="table-condensed">'+
+ DPGlobal.headTemplate+
+ DPGlobal.contTemplate+
+ DPGlobal.footTemplate+
+ '</table>'+
+ '</div>'+
+ '<div class="datepicker-decades">'+
+ '<table class="table-condensed">'+
+ DPGlobal.headTemplate+
+ DPGlobal.contTemplate+
+ DPGlobal.footTemplate+
+ '</table>'+
+ '</div>'+
+ '<div class="datepicker-centuries">'+
+ '<table class="table-condensed">'+
+ DPGlobal.headTemplate+
+ DPGlobal.contTemplate+
+ DPGlobal.footTemplate+
+ '</table>'+
+ '</div>'+
+ '</div>';
+
+ $.fn.datepicker.DPGlobal = DPGlobal;
+
+
+ /* DATEPICKER NO CONFLICT
+ * =================== */
+
+ $.fn.datepicker.noConflict = function(){
+ $.fn.datepicker = old;
+ return this;
+ };
+
+ /* DATEPICKER VERSION
+ * =================== */
+ $.fn.datepicker.version = '1.8.0';
+
+ $.fn.datepicker.deprecated = function(msg){
+ var console = window.console;
+ if (console && console.warn) {
+ console.warn('DEPRECATED: ' + msg);
+ }
+ };
+
+
+ /* DATEPICKER DATA-API
+ * ================== */
+
+ $(document).on(
+ 'focus.datepicker.data-api click.datepicker.data-api',
+ '[data-provide="datepicker"]',
+ function(e){
+ var $this = $(this);
+ if ($this.data('datepicker'))
+ return;
+ e.preventDefault();
+ // component click requires us to explicitly show it
+ datepickerPlugin.call($this, 'show');
+ }
+ );
+ $(function(){
+ datepickerPlugin.call($('[data-provide="datepicker-inline"]'));
+ });
+
+}));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker-en-CA.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker-en-CA.js
new file mode 100644
index 0000000..853773f
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker-en-CA.js
@@ -0,0 +1,22 @@
+/**
+ * Canadian English translation for bootstrap-datepicker
+ * Mike Nacey <mnacey@gmail.com>
+ * DEPRECATED: This filename doesn't follow the convention, use bootstrap-datepicker.en-CA.js instead
+ */
+;(function($){
+ $.fn.datepicker.dates['en-CA'] = {
+ days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
+ daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
+ daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
+ months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
+ today: "Today",
+ monthsTitle: "Months",
+ clear: "Clear",
+ weekStart: 0,
+ format: "yyyy-mm-dd"
+ };
+
+ $.fn.datepicker.deprecated('This filename doesn\'t follow the convention, use bootstrap-datepicker.en-CA.js instead.');
+
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ar-tn.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ar-tn.js
new file mode 100644
index 0000000..110fe91
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ar-tn.js
@@ -0,0 +1,15 @@
+/**
+ * Arabic-Tunisia translation for bootstrap-datepicker
+ * Souhaieb Besbes <besbes.souhaieb@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['ar-tn'] = {
+ days: ["الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت", "الأحد"],
+ daysShort: ["أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت", "أحد"],
+ daysMin: ["ح", "ن", "ث", "ع", "خ", "ج", "س", "ح"],
+ months: ["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],
+ monthsShort: ["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],
+ today: "هذا اليوم",
+ rtl: true
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ar.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ar.js
new file mode 100644
index 0000000..12ae182
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ar.js
@@ -0,0 +1,15 @@
+/**
+ * Arabic translation for bootstrap-datepicker
+ * Mohammed Alshehri <alshehri866@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['ar'] = {
+ days: ["الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت", "الأحد"],
+ daysShort: ["أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت", "أحد"],
+ daysMin: ["ح", "ن", "ث", "ع", "خ", "ج", "س", "ح"],
+ months: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"],
+ monthsShort: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"],
+ today: "هذا اليوم",
+ rtl: true
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.az.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.az.js
new file mode 100644
index 0000000..460bfd4
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.az.js
@@ -0,0 +1,12 @@
+// Azerbaijani
+;(function($){
+ $.fn.datepicker.dates['az'] = {
+ days: ["Bazar", "Bazar ertəsi", "Çərşənbə axşamı", "Çərşənbə", "Cümə axşamı", "Cümə", "Şənbə"],
+ daysShort: ["B.", "B.e", "Ç.a", "Ç.", "C.a", "C.", "Ş."],
+ daysMin: ["B.", "B.e", "Ç.a", "Ç.", "C.a", "C.", "Ş."],
+ months: ["Yanvar", "Fevral", "Mart", "Aprel", "May", "İyun", "İyul", "Avqust", "Sentyabr", "Oktyabr", "Noyabr", "Dekabr"],
+ monthsShort: ["Yan", "Fev", "Mar", "Apr", "May", "İyun", "İyul", "Avq", "Sen", "Okt", "Noy", "Dek"],
+ today: "Bu gün",
+ weekStart: 1
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.bg.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.bg.js
new file mode 100644
index 0000000..3193e19
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.bg.js
@@ -0,0 +1,14 @@
+/**
+ * Bulgarian translation for bootstrap-datepicker
+ * Apostol Apostolov <apostol.s.apostolov@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['bg'] = {
+ days: ["Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота"],
+ daysShort: ["Нед", "Пон", "Вто", "Сря", "Чет", "Пет", "Съб"],
+ daysMin: ["Н", "П", "В", "С", "Ч", "П", "С"],
+ months: ["Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"],
+ monthsShort: ["Ян", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Ное", "Дек"],
+ today: "днес"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.bn.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.bn.js
new file mode 100644
index 0000000..05e9ccf
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.bn.js
@@ -0,0 +1,19 @@
+/**
+ * Bengali (Bangla) translation for bootstrap-datepicker
+ * Karim Khan <kkhancse91@gmail.com>
+ * Orif N. Jr. <orif.zade@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['bn'] = {
+ days: ["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"],
+ daysShort: ["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"],
+ daysMin: ["রবি","সোম","মঙ্গল","বুধ","বৃহস্পতি","শুক্র","শনি"],
+ months: ["জানুয়ারী","ফেব্রুয়ারি","মার্চ","এপ্রিল","মে","জুন","জুলাই","অগাস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর"],
+ monthsShort: ["জানুয়ারী","ফেব্রুয়ারি","মার্চ","এপ্রিল","মে","জুন","জুলাই","অগাস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর"],
+ today: "আজ",
+ monthsTitle: "মাস",
+ clear: "পরিষ্কার",
+ weekStart: 0,
+ format: "mm/dd/yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.br.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.br.js
new file mode 100644
index 0000000..e71e194
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.br.js
@@ -0,0 +1,18 @@
+/**
+ * Breton translation for bootstrap-datepicker
+ * Gwenn Meynier <tornoz@laposte.net>
+ */
+;(function($){
+ $.fn.datepicker.dates['br'] = {
+ days: ["Sul", "Lun", "Meurzh", "Merc'her", "Yaou", "Gwener", "Sadorn"],
+ daysShort: ["Sul", "Lun", "Meu.", "Mer.", "Yao.", "Gwe.", "Sad."],
+ daysMin: ["Su", "L", "Meu", "Mer", "Y", "G", "Sa"],
+ months: ["Genver", "C'hwevrer", "Meurzh", "Ebrel", "Mae", "Mezheven", "Gouere", "Eost", "Gwengolo", "Here", "Du", "Kerzu"],
+ monthsShort: ["Genv.", "C'hw.", "Meur.", "Ebre.", "Mae", "Mezh.", "Goue.", "Eost", "Gwen.", "Here", "Du", "Kerz."],
+ today: "Hiziv",
+ monthsTitle: "Miz",
+ clear: "Dilemel",
+ weekStart: 1,
+ format: "dd/mm/yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.bs.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.bs.js
new file mode 100644
index 0000000..4a76529
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.bs.js
@@ -0,0 +1,15 @@
+/**
+ * Bosnian translation for bootstrap-datepicker
+ */
+;(function($){
+ $.fn.datepicker.dates['bs'] = {
+ days: ["Nedjelja","Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"],
+ daysShort: ["Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"],
+ daysMin: ["N", "Po", "U", "Sr", "Č", "Pe", "Su"],
+ months: ["Januar", "Februar", "Mart", "April", "Maj", "Juni", "Juli", "August", "Septembar", "Oktobar", "Novembar", "Decembar"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
+ today: "Danas",
+ weekStart: 1,
+ format: "dd.mm.yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ca.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ca.js
new file mode 100644
index 0000000..6ba993c
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ca.js
@@ -0,0 +1,18 @@
+/**
+ * Catalan translation for bootstrap-datepicker
+ * J. Garcia <jogaco.en@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['ca'] = {
+ days: ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"],
+ daysShort: ["Diu", "Dil", "Dmt", "Dmc", "Dij", "Div", "Dis"],
+ daysMin: ["dg", "dl", "dt", "dc", "dj", "dv", "ds"],
+ months: ["Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"],
+ monthsShort: ["Gen", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Oct", "Nov", "Des"],
+ today: "Avui",
+ monthsTitle: "Mesos",
+ clear: "Esborrar",
+ weekStart: 1,
+ format: "dd/mm/yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.cs.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.cs.js
new file mode 100644
index 0000000..d482650
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.cs.js
@@ -0,0 +1,19 @@
+/**
+ * Czech translation for bootstrap-datepicker
+ * Matěj Koubík <matej@koubik.name>
+ * Fixes by Michal Remiš <michal.remis@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['cs'] = {
+ days: ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"],
+ daysShort: ["Ned", "Pon", "Úte", "Stř", "Čtv", "Pát", "Sob"],
+ daysMin: ["Ne", "Po", "Út", "St", "Čt", "Pá", "So"],
+ months: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"],
+ monthsShort: ["Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Čnc", "Srp", "Zář", "Říj", "Lis", "Pro"],
+ today: "Dnes",
+ clear: "Vymazat",
+ monthsTitle: "Měsíc",
+ weekStart: 1,
+ format: "dd.mm.yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.cy.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.cy.js
new file mode 100644
index 0000000..553933b
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.cy.js
@@ -0,0 +1,14 @@
+/**
+ * Welsh translation for bootstrap-datepicker
+ * S. Morris <s.morris@bangor.ac.uk>
+ */
+;(function($){
+ $.fn.datepicker.dates['cy'] = {
+ days: ["Sul", "Llun", "Mawrth", "Mercher", "Iau", "Gwener", "Sadwrn"],
+ daysShort: ["Sul", "Llu", "Maw", "Mer", "Iau", "Gwe", "Sad"],
+ daysMin: ["Su", "Ll", "Ma", "Me", "Ia", "Gwe", "Sa"],
+ months: ["Ionawr", "Chewfror", "Mawrth", "Ebrill", "Mai", "Mehefin", "Gorfennaf", "Awst", "Medi", "Hydref", "Tachwedd", "Rhagfyr"],
+ monthsShort: ["Ion", "Chw", "Maw", "Ebr", "Mai", "Meh", "Gor", "Aws", "Med", "Hyd", "Tach", "Rha"],
+ today: "Heddiw"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.da.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.da.js
new file mode 100644
index 0000000..022edd6
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.da.js
@@ -0,0 +1,19 @@
+/**
+ * Danish translation for bootstrap-datepicker
+ * Christian Pedersen <http://github.com/chripede>
+ * Ivan Mylyanyk <https://github.com/imylyanyk>
+ */
+;(function($){
+ $.fn.datepicker.dates['da'] = {
+ days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"],
+ daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"],
+ daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø"],
+ months: ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
+ today: "I Dag",
+ weekStart: 1,
+ clear: "Nulstil",
+ format: "dd/mm/yyyy",
+ monthsTitle:"Måneder"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.de.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.de.js
new file mode 100644
index 0000000..52e7a9b
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.de.js
@@ -0,0 +1,18 @@
+/**
+ * German translation for bootstrap-datepicker
+ * Sam Zurcher <sam@orelias.ch>
+ */
+;(function($){
+ $.fn.datepicker.dates['de'] = {
+ days: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"],
+ daysShort: ["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"],
+ daysMin: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
+ months: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
+ monthsShort: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"],
+ today: "Heute",
+ monthsTitle: "Monate",
+ clear: "Löschen",
+ weekStart: 1,
+ format: "dd.mm.yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.el.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.el.js
new file mode 100644
index 0000000..5e00c7d
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.el.js
@@ -0,0 +1,16 @@
+/**
+ * Greek translation for bootstrap-datepicker
+ */
+;(function($){
+ $.fn.datepicker.dates['el'] = {
+ days: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"],
+ daysShort: ["Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ"],
+ daysMin: ["Κυ", "Δε", "Τρ", "Τε", "Πε", "Πα", "Σα"],
+ months: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"],
+ monthsShort: ["Ιαν", "Φεβ", "Μαρ", "Απρ", "Μάι", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ"],
+ today: "Σήμερα",
+ clear: "Καθαρισμός",
+ weekStart: 1,
+ format: "d/m/yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-AU.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-AU.js
new file mode 100644
index 0000000..5f1fa24
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-AU.js
@@ -0,0 +1,18 @@
+/**
+ * Australian English translation for bootstrap-datepicker
+ * Steve Chapman <steven.p.chapman@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['en-AU'] = {
+ days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
+ daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
+ daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
+ months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
+ today: "Today",
+ monthsTitle: "Months",
+ clear: "Clear",
+ weekStart: 1,
+ format: "d/mm/yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-CA.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-CA.js
new file mode 100644
index 0000000..1a8e563
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-CA.js
@@ -0,0 +1,18 @@
+/**
+ * Canadian English translation for bootstrap-datepicker
+ * Mike Nacey <mnacey@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['en-CA'] = {
+ days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
+ daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
+ daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
+ months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
+ today: "Today",
+ monthsTitle: "Months",
+ clear: "Clear",
+ weekStart: 0,
+ format: "yyyy-mm-dd"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-GB.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-GB.js
new file mode 100644
index 0000000..4f09467
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-GB.js
@@ -0,0 +1,18 @@
+/**
+ * British English translation for bootstrap-datepicker
+ * Xavier Dutreilh <xavier@dutreilh.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['en-GB'] = {
+ days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
+ daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
+ daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
+ months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
+ today: "Today",
+ monthsTitle: "Months",
+ clear: "Clear",
+ weekStart: 1,
+ format: "dd/mm/yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-IE.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-IE.js
new file mode 100644
index 0000000..188e4fc
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-IE.js
@@ -0,0 +1,17 @@
+/**
+ * Irish English translation for bootstrap-datepicker
+ */
+;(function($){
+ $.fn.datepicker.dates['en-IE'] = {
+ days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
+ daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
+ daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
+ months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
+ today: "Today",
+ monthsTitle: "Months",
+ clear: "Clear",
+ weekStart: 1,
+ format: "dd/mm/yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-NZ.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-NZ.js
new file mode 100644
index 0000000..9b6910b
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-NZ.js
@@ -0,0 +1,17 @@
+/**
+ * New Zealand English translation for bootstrap-datepicker
+ */
+;(function($){
+ $.fn.datepicker.dates['en-NZ'] = {
+ days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
+ daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
+ daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
+ months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
+ today: "Today",
+ monthsTitle: "Months",
+ clear: "Clear",
+ weekStart: 1,
+ format: "d/mm/yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-ZA.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-ZA.js
new file mode 100644
index 0000000..54b68f8
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-ZA.js
@@ -0,0 +1,17 @@
+/**
+ * South African English translation for bootstrap-datepicker
+ */
+;(function($){
+ $.fn.datepicker.dates['en-ZA'] = {
+ days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
+ daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
+ daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
+ months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
+ today: "Today",
+ monthsTitle: "Months",
+ clear: "Clear",
+ weekStart: 1,
+ format: "yyyy/mm/d"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.eo.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.eo.js
new file mode 100644
index 0000000..98e4988
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.eo.js
@@ -0,0 +1,17 @@
+/**
+ * Esperanto translation for bootstrap-datepicker
+ * Emmanuel Debanne <https://github.com/debanne>
+ */
+;(function($){
+ $.fn.datepicker.dates['eo'] = {
+ days: ["dimanĉo", "lundo", "mardo", "merkredo", "ĵaŭdo", "vendredo", "sabato"],
+ daysShort: ["dim.", "lun.", "mar.", "mer.", "ĵaŭ.", "ven.", "sam."],
+ daysMin: ["d", "l", "ma", "me", "ĵ", "v", "s"],
+ months: ["januaro", "februaro", "marto", "aprilo", "majo", "junio", "julio", "aŭgusto", "septembro", "oktobro", "novembro", "decembro"],
+ monthsShort: ["jan.", "feb.", "mar.", "apr.", "majo", "jun.", "jul.", "aŭg.", "sep.", "okt.", "nov.", "dec."],
+ today: "Hodiaŭ",
+ clear: "Nuligi",
+ weekStart: 1,
+ format: "yyyy-mm-dd"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.es.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.es.js
new file mode 100644
index 0000000..ac9dd35
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.es.js
@@ -0,0 +1,18 @@
+/**
+ * Spanish translation for bootstrap-datepicker
+ * Bruno Bonamin <bruno.bonamin@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['es'] = {
+ days: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"],
+ daysShort: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"],
+ daysMin: ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa"],
+ months: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
+ monthsShort: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"],
+ today: "Hoy",
+ monthsTitle: "Meses",
+ clear: "Borrar",
+ weekStart: 1,
+ format: "dd/mm/yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.et.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.et.js
new file mode 100644
index 0000000..7f7100d
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.et.js
@@ -0,0 +1,18 @@
+/**
+ * Estonian translation for bootstrap-datepicker
+ * Ando Roots <https://github.com/anroots>
+ * Fixes by Illimar Tambek <<https://github.com/ragulka>
+ */
+;(function($){
+ $.fn.datepicker.dates['et'] = {
+ days: ["Pühapäev", "Esmaspäev", "Teisipäev", "Kolmapäev", "Neljapäev", "Reede", "Laupäev"],
+ daysShort: ["Pühap", "Esmasp", "Teisip", "Kolmap", "Neljap", "Reede", "Laup"],
+ daysMin: ["P", "E", "T", "K", "N", "R", "L"],
+ months: ["Jaanuar", "Veebruar", "Märts", "Aprill", "Mai", "Juuni", "Juuli", "August", "September", "Oktoober", "November", "Detsember"],
+ monthsShort: ["Jaan", "Veebr", "Märts", "Apr", "Mai", "Juuni", "Juuli", "Aug", "Sept", "Okt", "Nov", "Dets"],
+ today: "Täna",
+ clear: "Tühjenda",
+ weekStart: 1,
+ format: "dd.mm.yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.eu.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.eu.js
new file mode 100644
index 0000000..c2c3c0a
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.eu.js
@@ -0,0 +1,19 @@
+/**
+ * Basque translation for bootstrap-datepicker
+ * Arkaitz Etxeberria <kondi80@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['eu'] = {
+ days: ['Igandea', 'Astelehena', 'Asteartea', 'Asteazkena', 'Osteguna', 'Ostirala', 'Larunbata'],
+ daysShort: ['Ig', 'Al', 'Ar', 'Az', 'Og', 'Ol', 'Lr'],
+ daysMin: ['Ig', 'Al', 'Ar', 'Az', 'Og', 'Ol', 'Lr'],
+ months: ['Urtarrila', 'Otsaila', 'Martxoa', 'Apirila', 'Maiatza', 'Ekaina', 'Uztaila', 'Abuztua', 'Iraila', 'Urria', 'Azaroa', 'Abendua'],
+ monthsShort: ['Urt', 'Ots', 'Mar', 'Api', 'Mai', 'Eka', 'Uzt', 'Abu', 'Ira', 'Urr', 'Aza', 'Abe'],
+ today: "Gaur",
+ monthsTitle: "Hilabeteak",
+ clear: "Ezabatu",
+ weekStart: 1,
+ format: "yyyy/mm/dd"
+ };
+}(jQuery));
+
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fa.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fa.js
new file mode 100644
index 0000000..6503c85
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fa.js
@@ -0,0 +1,17 @@
+/**
+ * Persian translation for bootstrap-datepicker
+ * Mostafa Rokooie <mostafa.rokooie@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['fa'] = {
+ days: ["یک‌شنبه", "دوشنبه", "سه‌شنبه", "چهارشنبه", "پنج‌شنبه", "جمعه", "شنبه", "یک‌شنبه"],
+ daysShort: ["یک", "دو", "سه", "چهار", "پنج", "جمعه", "شنبه", "یک"],
+ daysMin: ["ی", "د", "س", "چ", "پ", "ج", "ش", "ی"],
+ months: ["ژانویه", "فوریه", "مارس", "آوریل", "مه", "ژوئن", "ژوئیه", "اوت", "سپتامبر", "اکتبر", "نوامبر", "دسامبر"],
+ monthsShort: ["ژان", "فور", "مار", "آور", "مه", "ژون", "ژوی", "اوت", "سپت", "اکت", "نوا", "دسا"],
+ today: "امروز",
+ clear: "پاک کن",
+ weekStart: 1,
+ format: "yyyy/mm/dd"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fi.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fi.js
new file mode 100644
index 0000000..220f6b2
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fi.js
@@ -0,0 +1,17 @@
+/**
+ * Finnish translation for bootstrap-datepicker
+ * Jaakko Salonen <https://github.com/jsalonen>
+ */
+;(function($){
+ $.fn.datepicker.dates['fi'] = {
+ days: ["sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai"],
+ daysShort: ["sun", "maa", "tii", "kes", "tor", "per", "lau"],
+ daysMin: ["su", "ma", "ti", "ke", "to", "pe", "la"],
+ months: ["tammikuu", "helmikuu", "maaliskuu", "huhtikuu", "toukokuu", "kesäkuu", "heinäkuu", "elokuu", "syyskuu", "lokakuu", "marraskuu", "joulukuu"],
+ monthsShort: ["tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mar", "jou"],
+ today: "tänään",
+ clear: "Tyhjennä",
+ weekStart: 1,
+ format: "d.m.yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fo.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fo.js
new file mode 100644
index 0000000..eaada07
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fo.js
@@ -0,0 +1,15 @@
+/**
+ * Faroese translation for bootstrap-datepicker
+ * Theodor Johannesen <http://github.com/theodorjohannesen>
+ */
+;(function($){
+ $.fn.datepicker.dates['fo'] = {
+ days: ["Sunnudagur", "Mánadagur", "Týsdagur", "Mikudagur", "Hósdagur", "Fríggjadagur", "Leygardagur"],
+ daysShort: ["Sun", "Mán", "Týs", "Mik", "Hós", "Frí", "Ley"],
+ daysMin: ["Su", "Má", "Tý", "Mi", "Hó", "Fr", "Le"],
+ months: ["Januar", "Februar", "Marts", "Apríl", "Mei", "Juni", "Juli", "August", "Septembur", "Oktobur", "Novembur", "Desembur"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"],
+ today: "Í Dag",
+ clear: "Reinsa"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr-CH.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr-CH.js
new file mode 100644
index 0000000..79b5026
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr-CH.js
@@ -0,0 +1,21 @@
+/**
+ * French (Switzerland) translation for bootstrap-datepicker
+ * Christoph Jossi <c.jossi@ascami.ch>
+ * Based on
+ * French translation for bootstrap-datepicker
+ * Nico Mollet <nico.mollet@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['fr'] = {
+ days: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"],
+ daysShort: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"],
+ daysMin: ["D", "L", "Ma", "Me", "J", "V", "S"],
+ months: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"],
+ monthsShort: ["Jan", "Fév", "Mar", "Avr", "Mai", "Jui", "Jul", "Aou", "Sep", "Oct", "Nov", "Déc"],
+ today: "Aujourd'hui",
+ monthsTitle: "Mois",
+ clear: "Effacer",
+ weekStart: 1,
+ format: "dd.mm.yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr.js
new file mode 100644
index 0000000..df65ed6
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr.js
@@ -0,0 +1,18 @@
+/**
+ * French translation for bootstrap-datepicker
+ * Nico Mollet <nico.mollet@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['fr'] = {
+ days: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"],
+ daysShort: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
+ daysMin: ["d", "l", "ma", "me", "j", "v", "s"],
+ months: ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"],
+ monthsShort: ["janv.", "févr.", "mars", "avril", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."],
+ today: "Aujourd'hui",
+ monthsTitle: "Mois",
+ clear: "Effacer",
+ weekStart: 1,
+ format: "dd/mm/yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.gl.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.gl.js
new file mode 100644
index 0000000..592ce00
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.gl.js
@@ -0,0 +1,13 @@
+;(function($){
+ $.fn.datepicker.dates['gl'] = {
+ days: ["Domingo", "Luns", "Martes", "Mércores", "Xoves", "Venres", "Sábado"],
+ daysShort: ["Dom", "Lun", "Mar", "Mér", "Xov", "Ven", "Sáb"],
+ daysMin: ["Do", "Lu", "Ma", "Me", "Xo", "Ve", "Sa"],
+ months: ["Xaneiro", "Febreiro", "Marzo", "Abril", "Maio", "Xuño", "Xullo", "Agosto", "Setembro", "Outubro", "Novembro", "Decembro"],
+ monthsShort: ["Xan", "Feb", "Mar", "Abr", "Mai", "Xun", "Xul", "Ago", "Sep", "Out", "Nov", "Dec"],
+ today: "Hoxe",
+ clear: "Limpar",
+ weekStart: 1,
+ format: "dd/mm/yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.he.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.he.js
new file mode 100644
index 0000000..2e17393
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.he.js
@@ -0,0 +1,15 @@
+/**
+ * Hebrew translation for bootstrap-datepicker
+ * Sagie Maoz <sagie@maoz.info>
+ */
+;(function($){
+ $.fn.datepicker.dates['he'] = {
+ days: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת", "ראשון"],
+ daysShort: ["א", "ב", "ג", "ד", "ה", "ו", "ש", "א"],
+ daysMin: ["א", "ב", "ג", "ד", "ה", "ו", "ש", "א"],
+ months: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"],
+ monthsShort: ["ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ"],
+ today: "היום",
+ rtl: true
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hi.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hi.js
new file mode 100644
index 0000000..c15b485
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hi.js
@@ -0,0 +1,18 @@
+/**
+ * Hindi translation for bootstrap-datepicker
+ * Visar Uruqi <visar.uruqi@gmail.com>
+ */
+; (function($){
+ $.fn.datepicker.dates['hi'] = {
+ days: ["रविवार", "सोमवार", "मंगलवार", "बुधवार", "गुरुवार", "शुक्रवार", "शनिवार"],
+ daysShort: ["सूर्य", "सोम", "मंगल", "बुध", "गुरु", "शुक्र", "शनि"],
+ daysMin: ["र", "सो", "मं", "बु", "गु", "शु", "श"],
+ months: ["जनवरी", "फ़रवरी", "मार्च", "अप्रैल", "मई", "जून", "जुलाई", "अगस्त", "सितम्बर", "अक्टूबर", "नवंबर", "दिसम्बर"],
+ monthsShort: ["जन", "फ़रवरी", "मार्च", "अप्रैल", "मई", "जून", "जुलाई", "अगस्त", "सितं", "अक्टूबर", "नवं", "दिसम्बर"],
+ today: "आज",
+ monthsTitle: "महीने",
+ clear: "साफ",
+ weekStart: 1,
+ format: "dd / mm / yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hr.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hr.js
new file mode 100644
index 0000000..ec72952
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hr.js
@@ -0,0 +1,13 @@
+/**
+ * Croatian localisation
+ */
+;(function($){
+ $.fn.datepicker.dates['hr'] = {
+ days: ["Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"],
+ daysShort: ["Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"],
+ daysMin: ["Ne", "Po", "Ut", "Sr", "Če", "Pe", "Su"],
+ months: ["Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"],
+ monthsShort: ["Sij", "Velj", "Ožu", "Tra", "Svi", "Lip", "Srp", "Kol", "Ruj", "Lis", "Stu", "Pro"],
+ today: "Danas"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hu.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hu.js
new file mode 100644
index 0000000..03a36ee
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hu.js
@@ -0,0 +1,18 @@
+/**
+ * Hungarian translation for bootstrap-datepicker
+ * Sotus László <lacisan@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['hu'] = {
+ days: ["vasárnap", "hétfő", "kedd", "szerda", "csütörtök", "péntek", "szombat"],
+ daysShort: ["vas", "hét", "ked", "sze", "csü", "pén", "szo"],
+ daysMin: ["V", "H", "K", "Sze", "Cs", "P", "Szo"],
+ months: ["január", "február", "március", "április", "május", "június", "július", "augusztus", "szeptember", "október", "november", "december"],
+ monthsShort: ["jan", "feb", "már", "ápr", "máj", "jún", "júl", "aug", "sze", "okt", "nov", "dec"],
+ today: "ma",
+ weekStart: 1,
+ clear: "töröl",
+ titleFormat: "yyyy. MM",
+ format: "yyyy.mm.dd"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hy.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hy.js
new file mode 100644
index 0000000..a67c1b2
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hy.js
@@ -0,0 +1,18 @@
+/**
+ * Armenian translation for bootstrap-datepicker
+ * Hayk Chamyan <hamshen@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['hy'] = {
+ days: ["Կիրակի", "Երկուշաբթի", "Երեքշաբթի", "Չորեքշաբթի", "Հինգշաբթի", "Ուրբաթ", "Շաբաթ"],
+ daysShort: ["Կիր", "Երկ", "Երե", "Չոր", "Հին", "Ուրբ", "Շաբ"],
+ daysMin: ["Կի", "Եկ", "Եք", "Չո", "Հի", "Ու", "Շա"],
+ months: ["Հունվար", "Փետրվար", "Մարտ", "Ապրիլ", "Մայիս", "Հունիս", "Հուլիս", "Օգոստոս", "Սեպտեմբեր", "Հոկտեմբեր", "Նոյեմբեր", "Դեկտեմբեր"],
+ monthsShort: ["Հնվ", "Փետ", "Մար", "Ապր", "Մայ", "Հուն", "Հուլ", "Օգս", "Սեպ", "Հոկ", "Նոյ", "Դեկ"],
+ today: "Այսօր",
+ clear: "Ջնջել",
+ format: "dd.mm.yyyy",
+ weekStart: 1,
+ monthsTitle: 'Ամիսնէր'
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.id.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.id.js
new file mode 100644
index 0000000..832045a
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.id.js
@@ -0,0 +1,15 @@
+/**
+ * Bahasa translation for bootstrap-datepicker
+ * Azwar Akbar <azwar.akbar@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['id'] = {
+ days: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"],
+ daysShort: ["Mgu", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"],
+ daysMin: ["Mg", "Sn", "Sl", "Ra", "Ka", "Ju", "Sa"],
+ months: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ags", "Sep", "Okt", "Nov", "Des"],
+ today: "Hari Ini",
+ clear: "Kosongkan"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.is.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.is.js
new file mode 100644
index 0000000..2eef5e1
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.is.js
@@ -0,0 +1,14 @@
+/**
+ * Icelandic translation for bootstrap-datepicker
+ * Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['is'] = {
+ days: ["Sunnudagur", "Mánudagur", "Þriðjudagur", "Miðvikudagur", "Fimmtudagur", "Föstudagur", "Laugardagur"],
+ daysShort: ["Sun", "Mán", "Þri", "Mið", "Fim", "Fös", "Lau"],
+ daysMin: ["Su", "Má", "Þr", "Mi", "Fi", "Fö", "La"],
+ months: ["Janúar", "Febrúar", "Mars", "Apríl", "Maí", "Júní", "Júlí", "Ágúst", "September", "Október", "Nóvember", "Desember"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maí", "Jún", "Júl", "Ágú", "Sep", "Okt", "Nóv", "Des"],
+ today: "Í Dag"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.it-CH.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.it-CH.js
new file mode 100644
index 0000000..b4496aa
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.it-CH.js
@@ -0,0 +1,20 @@
+/**
+ * Italian (Switzerland) translation for bootstrap-datepicker
+ * Christoph Jossi <c.jossi@ascami.ch>
+ * Based on
+ * Italian translation for bootstrap-datepicker
+ * Enrico Rubboli <rubboli@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['it'] = {
+ days: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"],
+ daysShort: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"],
+ daysMin: ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa"],
+ months: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"],
+ monthsShort: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"],
+ today: "Oggi",
+ clear: "Cancella",
+ weekStart: 1,
+ format: "dd.mm.yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.it.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.it.js
new file mode 100644
index 0000000..1722031
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.it.js
@@ -0,0 +1,18 @@
+/**
+ * Italian translation for bootstrap-datepicker
+ * Enrico Rubboli <rubboli@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['it'] = {
+ days: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"],
+ daysShort: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"],
+ daysMin: ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa"],
+ months: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"],
+ monthsShort: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"],
+ today: "Oggi",
+ monthsTitle: "Mesi",
+ clear: "Cancella",
+ weekStart: 1,
+ format: "dd/mm/yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ja.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ja.js
new file mode 100644
index 0000000..c64a614
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ja.js
@@ -0,0 +1,17 @@
+/**
+ * Japanese translation for bootstrap-datepicker
+ * Norio Suzuki <https://github.com/suzuki/>
+ */
+;(function($){
+ $.fn.datepicker.dates['ja'] = {
+ days: ["日曜", "月曜", "火曜", "水曜", "木曜", "金曜", "土曜"],
+ daysShort: ["日", "月", "火", "水", "木", "金", "土"],
+ daysMin: ["日", "月", "火", "水", "木", "金", "土"],
+ months: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
+ monthsShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
+ today: "今日",
+ format: "yyyy/mm/dd",
+ titleFormat: "yyyy年mm月",
+ clear: "クリア"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ka.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ka.js
new file mode 100644
index 0000000..c49e453
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ka.js
@@ -0,0 +1,17 @@
+/**
+ * Georgian translation for bootstrap-datepicker
+ * Levan Melikishvili <levani0101@yahoo.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['ka'] = {
+ days: ["კვირა", "ორშაბათი", "სამშაბათი", "ოთხშაბათი", "ხუთშაბათი", "პარასკევი", "შაბათი"],
+ daysShort: ["კვი", "ორშ", "სამ", "ოთხ", "ხუთ", "პარ", "შაბ"],
+ daysMin: ["კვ", "ორ", "სა", "ოთ", "ხუ", "პა", "შა"],
+ months: ["იანვარი", "თებერვალი", "მარტი", "აპრილი", "მაისი", "ივნისი", "ივლისი", "აგვისტო", "სექტემბერი", "ოქტომბერი", "ნოემბერი", "დეკემბერი"],
+ monthsShort: ["იან", "თებ", "მარ", "აპრ", "მაი", "ივნ", "ივლ", "აგვ", "სექ", "ოქტ", "ნოე", "დეკ"],
+ today: "დღეს",
+ clear: "გასუფთავება",
+ weekStart: 1,
+ format: "dd.mm.yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.kh.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.kh.js
new file mode 100644
index 0000000..2c9eb0f
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.kh.js
@@ -0,0 +1,21 @@
+/**
+ * Cambodia (Khmer) translation for bootstrap-datepicker
+ * Lytay TOUCH <lytaytouch@gmail.com>
+ *
+ * DEPRECATED: This language code 'kh' is deprecated and will be removed in 2.0.
+ * Khmer support is now in a 'km' translation file to follow the ISO language
+ * code - http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
+ */
+;(function($){
+ $.fn.datepicker.dates['kh'] = {
+ days: ["អាទិត្យ", "ចន្ទ", "អង្គារ", "ពុធ", "ព្រហស្បតិ៍", "សុក្រ", "សៅរ៍"],
+ daysShort: ["អា.ទិ", "ចន្ទ", "អង្គារ", "ពុធ", "ព្រ.ហ", "សុក្រ", "សៅរ៍"],
+ daysMin: ["អា.ទិ", "ចន្ទ", "អង្គារ", "ពុធ", "ព្រ.ហ", "សុក្រ", "សៅរ៍"],
+ months: ["មករា", "កុម្ភះ", "មិនា", "មេសា", "ឧសភា", "មិថុនា", "កក្កដា", "សីហា", "កញ្ញា", "តុលា", "វិច្ឆិកា", "ធ្នូ"],
+ monthsShort: ["មករា", "កុម្ភះ", "មិនា", "មេសា", "ឧសភា", "មិថុនា", "កក្កដា", "សីហា", "កញ្ញា", "តុលា", "វិច្ឆិកា", "ធ្នូ"],
+ today: "ថ្ងៃនេះ",
+ clear: "សំអាត"
+ };
+
+ $.fn.datepicker.deprecated('The language code "kh" is deprecated and will be removed in 2.0. For Khmer support use "km" instead.');
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.kk.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.kk.js
new file mode 100644
index 0000000..9ffa8ca
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.kk.js
@@ -0,0 +1,15 @@
+/**
+ * Kazakh translation for bootstrap-datepicker
+ * Yerzhan Tolekov <era.tolekov@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['kk'] = {
+ days: ["Жексенбі", "Дүйсенбі", "Сейсенбі", "Сәрсенбі", "Бейсенбі", "Жұма", "Сенбі"],
+ daysShort: ["Жек", "Дүй", "Сей", "Сәр", "Бей", "Жұм", "Сен"],
+ daysMin: ["Жк", "Дс", "Сс", "Ср", "Бс", "Жм", "Сн"],
+ months: ["Қаңтар", "Ақпан", "Наурыз", "Сәуір", "Мамыр", "Маусым", "Шілде", "Тамыз", "Қыркүйек", "Қазан", "Қараша", "Желтоқсан"],
+ monthsShort: ["Қаң", "Ақп", "Нау", "Сәу", "Мам", "Мау", "Шіл", "Там", "Қыр", "Қаз", "Қар", "Жел"],
+ today: "Бүгін",
+ weekStart: 1
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.km.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.km.js
new file mode 100644
index 0000000..8a71c8e
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.km.js
@@ -0,0 +1,15 @@
+/**
+ * Khmer translation for bootstrap-datepicker
+ * This is the Updated Version of: https://github.com/uxsolutions/bootstrap-datepicker/blob/71308d42cce9524284c50c6fac50422d1790ac0f/js/locales/bootstrap-datepicker.kh.js
+ */
+;(function($){
+ $.fn.datepicker.dates['km'] = {
+ days: ["អាទិត្យ", "ចន្ទ", "អង្គារ", "ពុធ", "ព្រហស្បតិ៍", "សុក្រ", "សៅរ៍"],
+ daysShort: ["អា.ទិ", "ចន្ទ", "អង្គារ", "ពុធ", "ព្រ.ហ", "សុក្រ", "សៅរ៍"],
+ daysMin: ["អា.ទិ", "ចន្ទ", "អង្គារ", "ពុធ", "ព្រ.ហ", "សុក្រ", "សៅរ៍"],
+ months: ["មករា", "កុម្ភះ", "មិនា", "មេសា", "ឧសភា", "មិថុនា", "កក្កដា", "សីហា", "កញ្ញា", "តុលា", "វិច្ឆិកា", "ធ្នូ"],
+ monthsShort: ["មករា", "កុម្ភះ", "មិនា", "មេសា", "ឧសភា", "មិថុនា", "កក្កដា", "សីហា", "កញ្ញា", "តុលា", "វិច្ឆិកា", "ធ្នូ"],
+ today: "ថ្ងៃនេះ",
+ clear: "សំអាត"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ko.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ko.js
new file mode 100644
index 0000000..95514b2
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ko.js
@@ -0,0 +1,18 @@
+/**
+ * Korean translation for bootstrap-datepicker
+ * This is a port from https://github.com/moment/moment/blob/develop/src/locale/ko.js
+ */
+;(function($){
+ $.fn.datepicker.dates['ko'] = {
+ days: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"],
+ daysShort: ["일", "월", "화", "수", "목", "금", "토"],
+ daysMin: ["일", "월", "화", "수", "목", "금", "토"],
+ months: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
+ monthsShort: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
+ today: "오늘",
+ clear: "삭제",
+ format: "yyyy-mm-dd",
+ titleFormat: "yyyy년mm월",
+ weekStart: 0
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.kr.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.kr.js
new file mode 100644
index 0000000..8f9cda9
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.kr.js
@@ -0,0 +1,19 @@
+/**
+ * Korean translation for bootstrap-datepicker
+ * Gu Youn <http://github.com/guyoun>
+ *
+ * DEPRECATED: This language code 'kr' is deprecated and will be removed in 2.0.
+ * Korean support is now in a 'ko' translation file to follow the ISO language
+ * code - http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
+ */
+;(function($){
+ $.fn.datepicker.dates['kr'] = {
+ days: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"],
+ daysShort: ["일", "월", "화", "수", "목", "금", "토"],
+ daysMin: ["일", "월", "화", "수", "목", "금", "토"],
+ months: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
+ monthsShort: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"]
+ };
+
+ $.fn.datepicker.deprecated('The language code "kr" is deprecated and will be removed in 2.0. For korean support use "ko" instead.');
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.lt.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.lt.js
new file mode 100644
index 0000000..4845f26
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.lt.js
@@ -0,0 +1,19 @@
+/**
+ * Lithuanian translation for bootstrap-datepicker
+ * Šarūnas Gliebus <ssharunas@yahoo.co.uk>
+ */
+
+;(function($){
+ $.fn.datepicker.dates['lt'] = {
+ days: ["Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis"],
+ daysShort: ["S", "Pr", "A", "T", "K", "Pn", "Š"],
+ daysMin: ["Sk", "Pr", "An", "Tr", "Ke", "Pn", "Št"],
+ months: ["Sausis", "Vasaris", "Kovas", "Balandis", "Gegužė", "Birželis", "Liepa", "Rugpjūtis", "Rugsėjis", "Spalis", "Lapkritis", "Gruodis"],
+ monthsShort: ["Sau", "Vas", "Kov", "Bal", "Geg", "Bir", "Lie", "Rugp", "Rugs", "Spa", "Lap", "Gru"],
+ today: "Šiandien",
+ monthsTitle:"Mėnesiai",
+ clear:"Išvalyti",
+ weekStart: 1,
+ format:"yyyy-mm-dd"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.lv.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.lv.js
new file mode 100644
index 0000000..530aa56
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.lv.js
@@ -0,0 +1,18 @@
+/**
+ * Latvian translation for bootstrap-datepicker
+ * Artis Avotins <artis@apit.lv>
+ */
+
+;(function($){
+ $.fn.datepicker.dates['lv'] = {
+ days: ["Svētdiena", "Pirmdiena", "Otrdiena", "Trešdiena", "Ceturtdiena", "Piektdiena", "Sestdiena"],
+ daysShort: ["Sv", "P", "O", "T", "C", "Pk", "S"],
+ daysMin: ["Sv", "Pr", "Ot", "Tr", "Ce", "Pk", "Se"],
+ months: ["Janvāris", "Februāris", "Marts", "Aprīlis", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jūn", "Jūl", "Aug", "Sep", "Okt", "Nov", "Dec"],
+ monthsTitle: "Mēneši",
+ today: "Šodien",
+ clear: "Nodzēst",
+ weekStart: 1
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.me.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.me.js
new file mode 100644
index 0000000..e581325
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.me.js
@@ -0,0 +1,17 @@
+/**
+ * Montenegrin translation for bootstrap-datepicker
+ * Miodrag Nikač <miodrag@restartit.me>
+ */
+;(function($){
+ $.fn.datepicker.dates['me'] = {
+ days: ["Nedjelja","Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"],
+ daysShort: ["Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"],
+ daysMin: ["Ne", "Po", "Ut", "Sr", "Če", "Pe", "Su"],
+ months: ["Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"],
+ today: "Danas",
+ weekStart: 1,
+ clear: "Izbriši",
+ format: "dd.mm.yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.mk.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.mk.js
new file mode 100644
index 0000000..2f041ba
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.mk.js
@@ -0,0 +1,15 @@
+/**
+ * Macedonian translation for bootstrap-datepicker
+ * Marko Aleksic <psybaron@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['mk'] = {
+ days: ["Недела", "Понеделник", "Вторник", "Среда", "Четврток", "Петок", "Сабота"],
+ daysShort: ["Нед", "Пон", "Вто", "Сре", "Чет", "Пет", "Саб"],
+ daysMin: ["Не", "По", "Вт", "Ср", "Че", "Пе", "Са"],
+ months: ["Јануари", "Февруари", "Март", "Април", "Мај", "Јуни", "Јули", "Август", "Септември", "Октомври", "Ноември", "Декември"],
+ monthsShort: ["Јан", "Фев", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Ное", "Дек"],
+ today: "Денес",
+ format: "dd.mm.yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.mn.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.mn.js
new file mode 100644
index 0000000..b3a66e8
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.mn.js
@@ -0,0 +1,17 @@
+/**
+ * Mongolian translation for bootstrap-datepicker
+ * Andrey Torsunov <andrey.torsunov@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['mn'] = {
+ days: ["Ням", "Даваа", "Мягмар", "Лхагва", "Пүрэв", "Баасан", "Бямба"],
+ daysShort: ["Ням", "Дав", "Мяг", "Лха", "Пүр", "Баа", "Бям"],
+ daysMin: ["Ня", "Да", "Мя", "Лх", "Пү", "Ба", "Бя"],
+ months: ["Хулгана", "Үхэр", "Бар", "Туулай", "Луу", "Могой", "Морь", "Хонь", "Бич", "Тахиа", "Нохой", "Гахай"],
+ monthsShort: ["Хул", "Үхэ", "Бар", "Туу", "Луу", "Мог", "Мор", "Хон", "Бич", "Тах", "Нох", "Гах"],
+ today: "Өнөөдөр",
+ clear: "Тодорхой",
+ format: "yyyy.mm.dd",
+ weekStart: 1
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ms.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ms.js
new file mode 100644
index 0000000..8bb4194
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ms.js
@@ -0,0 +1,15 @@
+/**
+ * Malay translation for bootstrap-datepicker
+ * Ateman Faiz <noorulfaiz@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['ms'] = {
+ days: ["Ahad", "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu"],
+ daysShort: ["Aha", "Isn", "Sel", "Rab", "Kha", "Jum", "Sab"],
+ daysMin: ["Ah", "Is", "Se", "Ra", "Kh", "Ju", "Sa"],
+ months: ["Januari", "Februari", "Mac", "April", "Mei", "Jun", "Julai", "Ogos", "September", "Oktober", "November", "Disember"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ogo", "Sep", "Okt", "Nov", "Dis"],
+ today: "Hari Ini",
+ clear: "Bersihkan"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl-BE.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl-BE.js
new file mode 100644
index 0000000..aadc374
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl-BE.js
@@ -0,0 +1,18 @@
+/**
+ * Belgium-Dutch translation for bootstrap-datepicker
+ * Julien Poulin <poulin_julien@hotmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['nl-BE'] = {
+ days: ["zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"],
+ daysShort: ["zo", "ma", "di", "wo", "do", "vr", "za"],
+ daysMin: ["zo", "ma", "di", "wo", "do", "vr", "za"],
+ months: ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"],
+ monthsShort: ["jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec"],
+ today: "Vandaag",
+ monthsTitle: "Maanden",
+ clear: "Leegmaken",
+ weekStart: 1,
+ format: "dd/mm/yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl.js
new file mode 100644
index 0000000..bef19cf
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl.js
@@ -0,0 +1,18 @@
+/**
+ * Dutch translation for bootstrap-datepicker
+ * Reinier Goltstein <mrgoltstein@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['nl'] = {
+ days: ["zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"],
+ daysShort: ["zo", "ma", "di", "wo", "do", "vr", "za"],
+ daysMin: ["zo", "ma", "di", "wo", "do", "vr", "za"],
+ months: ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"],
+ monthsShort: ["jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec"],
+ today: "Vandaag",
+ monthsTitle: "Maanden",
+ clear: "Wissen",
+ weekStart: 1,
+ format: "dd-mm-yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.no.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.no.js
new file mode 100644
index 0000000..dc0a191
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.no.js
@@ -0,0 +1,18 @@
+/**
+ * Norwegian translation for bootstrap-datepicker
+ * George Gooding <george@nettsentrisk.no>
+ */
+;(function($){
+ $.fn.datepicker.dates['no'] = {
+ days: ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag'],
+ daysShort: ['søn', 'man', 'tir', 'ons', 'tor', 'fre', 'lør'],
+ daysMin: ['sø', 'ma', 'ti', 'on', 'to', 'fr', 'lø'],
+ months: ['januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', 'august', 'september', 'oktober', 'vovember', 'desember'],
+ monthsShort: ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'des'],
+ today: 'i dag',
+ monthsTitle: 'Måneder',
+ clear: 'Nullstill',
+ weekStart: 1,
+ format: 'dd.mm.yyyy'
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.oc.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.oc.js
new file mode 100644
index 0000000..fada007
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.oc.js
@@ -0,0 +1,17 @@
+/**
+ * Occitan translation for bootstrap-datepicker
+ */
+;(function($){
+ $.fn.datepicker.dates['oc'] = {
+ days: ["Dimenge", "Diluns", "Dimars", "Dimècres", "Dijòus", "Divendres", "Dissabte"],
+ daysShort: ["Dim", "Dil", "Dmr", "Dmc", "Dij", "Div", "Dis"],
+ daysMin: ["dg", "dl", "dr", "dc", "dj", "dv", "ds"],
+ months: ["Genièr", "Febrièr", "Març", "Abrial", "Mai", "Junh", "Julhet", "Agost", "Setembre", "Octobre", "Novembre", "Decembre"],
+ monthsShort: ["Gen", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Oct", "Nov", "Dec"],
+ today: "Uèi",
+ monthsTitle: "Meses",
+ clear: "Escafar",
+ weekStart: 1,
+ format: "dd/mm/yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.pl.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.pl.js
new file mode 100644
index 0000000..26c7ae8
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.pl.js
@@ -0,0 +1,17 @@
+/**
+ * Polish translation for bootstrap-datepicker
+ * Robert <rtpm@gazeta.pl>
+ */
+;(function($){
+ $.fn.datepicker.dates['pl'] = {
+ days: ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"],
+ daysShort: ["Niedz.", "Pon.", "Wt.", "Śr.", "Czw.", "Piąt.", "Sob."],
+ daysMin: ["Ndz.", "Pn.", "Wt.", "Śr.", "Czw.", "Pt.", "Sob."],
+ months: ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"],
+ monthsShort: ["Sty.", "Lut.", "Mar.", "Kwi.", "Maj", "Cze.", "Lip.", "Sie.", "Wrz.", "Paź.", "Lis.", "Gru."],
+ today: "Dzisiaj",
+ weekStart: 1,
+ clear: "Wyczyść",
+ format: "dd.mm.yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt-BR.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt-BR.js
new file mode 100644
index 0000000..852160b
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt-BR.js
@@ -0,0 +1,17 @@
+/**
+ * Brazilian translation for bootstrap-datepicker
+ * Cauan Cabral <cauan@radig.com.br>
+ */
+;(function($){
+ $.fn.datepicker.dates['pt-BR'] = {
+ days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"],
+ daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"],
+ daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa"],
+ months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
+ monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"],
+ today: "Hoje",
+ monthsTitle: "Meses",
+ clear: "Limpar",
+ format: "dd/mm/yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt.js
new file mode 100644
index 0000000..011e01e
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt.js
@@ -0,0 +1,18 @@
+/**
+ * Portuguese translation for bootstrap-datepicker
+ * Original code: Cauan Cabral <cauan@radig.com.br>
+ * Tiago Melo <tiago.blackcode@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['pt'] = {
+ days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"],
+ daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"],
+ daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa"],
+ months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
+ monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"],
+ today: "Hoje",
+ monthsTitle: "Meses",
+ clear: "Limpar",
+ format: "dd/mm/yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ro.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ro.js
new file mode 100644
index 0000000..6637e99
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ro.js
@@ -0,0 +1,17 @@
+/**
+ * Romanian translation for bootstrap-datepicker
+ * Cristian Vasile <cristi.mie@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['ro'] = {
+ days: ["Duminică", "Luni", "Marţi", "Miercuri", "Joi", "Vineri", "Sâmbătă"],
+ daysShort: ["Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm"],
+ daysMin: ["Du", "Lu", "Ma", "Mi", "Jo", "Vi", "Sâ"],
+ months: ["Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"],
+ monthsShort: ["Ian", "Feb", "Mar", "Apr", "Mai", "Iun", "Iul", "Aug", "Sep", "Oct", "Nov", "Dec"],
+ today: "Astăzi",
+ clear: "Șterge",
+ weekStart: 1,
+ format: "dd/mm/yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs-latin.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs-latin.js
new file mode 100644
index 0000000..48e7cea
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs-latin.js
@@ -0,0 +1,20 @@
+/**
+ * Serbian latin translation for bootstrap-datepicker
+ * Bojan Milosavlević <milboj@gmail.com>
+ *
+ * DEPRECATED: This language code 'rs-latin' is deprecated (invalid serbian language code) and will be removed in 2.0.
+ */
+;(function($){
+ $.fn.datepicker.dates['rs-latin'] = {
+ days: ["Nedelja","Ponedeljak", "Utorak", "Sreda", "Četvrtak", "Petak", "Subota"],
+ daysShort: ["Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub"],
+ daysMin: ["N", "Po", "U", "Sr", "Č", "Pe", "Su"],
+ months: ["Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"],
+ today: "Danas",
+ weekStart: 1,
+ format: "dd.mm.yyyy"
+ };
+
+ $.fn.datepicker.deprecated('This language code "rs-latin" is deprecated (invalid serbian language code) and will be removed in 2.0. For Serbian latin support use "sr-latin" instead.');
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs.js
new file mode 100644
index 0000000..96ef403
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs.js
@@ -0,0 +1,20 @@
+/**
+ * Serbian cyrillic translation for bootstrap-datepicker
+ * Bojan Milosavlević <milboj@gmail.com>
+ *
+ * DEPRECATED: This language code 'rs' is deprecated (invalid serbian language code) and will be removed in 2.0.
+ */
+;(function($){
+ $.fn.datepicker.dates['rs'] = {
+ days: ["Недеља","Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота"],
+ daysShort: ["Нед", "Пон", "Уто", "Сре", "Чет", "Пет", "Суб"],
+ daysMin: ["Н", "По", "У", "Ср", "Ч", "Пе", "Су"],
+ months: ["Јануар", "Фебруар", "Март", "Април", "Мај", "Јун", "Јул", "Август", "Септембар", "Октобар", "Новембар", "Децембар"],
+ monthsShort: ["Јан", "Феб", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Нов", "Дец"],
+ today: "Данас",
+ weekStart: 1,
+ format: "dd.mm.yyyy"
+ };
+
+ $.fn.datepicker.deprecated('This language code "rs" is deprecated (invalid serbian language code) and will be removed in 2.0. For Serbian support use "sr" instead.');
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ru.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ru.js
new file mode 100644
index 0000000..0c793ce
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ru.js
@@ -0,0 +1,18 @@
+/**
+ * Russian translation for bootstrap-datepicker
+ * Victor Taranenko <darwin@snowdale.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['ru'] = {
+ days: ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"],
+ daysShort: ["Вск", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб"],
+ daysMin: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"],
+ months: ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"],
+ monthsShort: ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"],
+ today: "Сегодня",
+ clear: "Очистить",
+ format: "dd.mm.yyyy",
+ weekStart: 1,
+ monthsTitle: 'Месяцы'
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.si.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.si.js
new file mode 100644
index 0000000..806e580
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.si.js
@@ -0,0 +1,18 @@
+/**
+ * Sinhala translation for bootstrap-datepicker
+ * Chanaka Fernando <chanaka.fernando@hotmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['si'] = {
+ days: ["ඉරිදා", "සඳුදා", "අඟහරුවාදා", "බදාදා", "බ්‍රහස්පතින්දා", "සිකුරාදා", "සෙනසුරාදා"],
+ daysShort: ["ඉරි", "සඳු", "අඟ", "බදා", "බ්‍රහ", "සිකු", "සෙන"],
+ daysMin: ["ඉ", "ස", "අ", "බ", "බ්‍ර", "සි", "සෙ"],
+ months: ["ජනවාරි", "පෙබරවාරි", "මාර්තු", "අප්‍රේල්", "මැයි", "ජුනි", "ජූලි", "අගෝස්තු", "සැප්තැම්බර්", "ඔක්තෝබර්", "නොවැම්බර්", "දෙසැම්බර්"],
+ monthsShort: ["ජන", "පෙබ", "මාර්", "අප්‍රේ", "මැයි", "ජුනි", "ජූලි", "අගෝ", "සැප්", "ඔක්", "නොවැ", "දෙසැ"],
+ today: "අද",
+ monthsTitle: "මාස",
+ clear: "මකන්න",
+ weekStart: 0,
+ format: "yyyy-mm-dd"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sk.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sk.js
new file mode 100644
index 0000000..3881386
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sk.js
@@ -0,0 +1,18 @@
+/**
+ * Slovak translation for bootstrap-datepicker
+ * Marek Lichtner <marek@licht.sk>
+ * Fixes by Michal Remiš <michal.remis@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates["sk"] = {
+ days: ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota"],
+ daysShort: ["Ned", "Pon", "Uto", "Str", "Štv", "Pia", "Sob"],
+ daysMin: ["Ne", "Po", "Ut", "St", "Št", "Pia", "So"],
+ months: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec"],
+ today: "Dnes",
+ clear: "Vymazať",
+ weekStart: 1,
+ format: "d.m.yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sl.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sl.js
new file mode 100644
index 0000000..4a33748
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sl.js
@@ -0,0 +1,15 @@
+/**
+ * Slovene translation for bootstrap-datepicker
+ * Gregor Rudolf <gregor.rudolf@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['sl'] = {
+ days: ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Četrtek", "Petek", "Sobota"],
+ daysShort: ["Ned", "Pon", "Tor", "Sre", "Čet", "Pet", "Sob"],
+ daysMin: ["Ne", "Po", "To", "Sr", "Če", "Pe", "So"],
+ months: ["Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"],
+ today: "Danes",
+ weekStart: 1
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sq.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sq.js
new file mode 100644
index 0000000..11f9469
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sq.js
@@ -0,0 +1,15 @@
+/**
+ * Albanian translation for bootstrap-datepicker
+ * Tomor Pupovci <http://www.github.com/ttomor>
+ */
+;(function($){
+ $.fn.datepicker.dates['sq'] = {
+ days: ["E Diel", "E Hënë", "E Martē", "E Mërkurë", "E Enjte", "E Premte", "E Shtunë"],
+ daysShort: ["Die", "Hën", "Mar", "Mër", "Enj", "Pre", "Shtu"],
+ daysMin: ["Di", "Hë", "Ma", "Më", "En", "Pr", "Sht"],
+ months: ["Janar", "Shkurt", "Mars", "Prill", "Maj", "Qershor", "Korrik", "Gusht", "Shtator", "Tetor", "Nëntor", "Dhjetor"],
+ monthsShort: ["Jan", "Shk", "Mar", "Pri", "Maj", "Qer", "Korr", "Gu", "Sht", "Tet", "Nën", "Dhjet"],
+ today: "Sot"
+ };
+}(jQuery));
+
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr-latin.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr-latin.js
new file mode 100644
index 0000000..0587963
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr-latin.js
@@ -0,0 +1,16 @@
+/**
+ * Serbian latin translation for bootstrap-datepicker
+ * Bojan Milosavlević <milboj@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['sr-latin'] = {
+ days: ["Nedelja","Ponedeljak", "Utorak", "Sreda", "Četvrtak", "Petak", "Subota"],
+ daysShort: ["Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub"],
+ daysMin: ["N", "Po", "U", "Sr", "Č", "Pe", "Su"],
+ months: ["Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"],
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"],
+ today: "Danas",
+ weekStart: 1,
+ format: "dd.mm.yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr.js
new file mode 100644
index 0000000..a0dcb83
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr.js
@@ -0,0 +1,16 @@
+/**
+ * Serbian cyrillic translation for bootstrap-datepicker
+ * Bojan Milosavlević <milboj@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['sr'] = {
+ days: ["Недеља","Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота"],
+ daysShort: ["Нед", "Пон", "Уто", "Сре", "Чет", "Пет", "Суб"],
+ daysMin: ["Н", "По", "У", "Ср", "Ч", "Пе", "Су"],
+ months: ["Јануар", "Фебруар", "Март", "Април", "Мај", "Јун", "Јул", "Август", "Септембар", "Октобар", "Новембар", "Децембар"],
+ monthsShort: ["Јан", "Феб", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Нов", "Дец"],
+ today: "Данас",
+ weekStart: 1,
+ format: "dd.mm.yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sv.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sv.js
new file mode 100644
index 0000000..53c0c0d
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sv.js
@@ -0,0 +1,17 @@
+/**
+ * Swedish translation for bootstrap-datepicker
+ * Patrik Ragnarsson <patrik@starkast.net>
+ */
+;(function($){
+ $.fn.datepicker.dates['sv'] = {
+ days: ["söndag", "måndag", "tisdag", "onsdag", "torsdag", "fredag", "lördag"],
+ daysShort: ["sön", "mån", "tis", "ons", "tor", "fre", "lör"],
+ daysMin: ["sö", "må", "ti", "on", "to", "fr", "lö"],
+ months: ["januari", "februari", "mars", "april", "maj", "juni", "juli", "augusti", "september", "oktober", "november", "december"],
+ monthsShort: ["jan", "feb", "mar", "apr", "maj", "jun", "jul", "aug", "sep", "okt", "nov", "dec"],
+ today: "Idag",
+ format: "yyyy-mm-dd",
+ weekStart: 1,
+ clear: "Rensa"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sw.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sw.js
new file mode 100644
index 0000000..0e447b8
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sw.js
@@ -0,0 +1,15 @@
+/**
+ * Swahili translation for bootstrap-datepicker
+ * Edwin Mugendi <https://github.com/edwinmugendi>
+ * Source: http://scriptsource.org/cms/scripts/page.php?item_id=entry_detail&uid=xnfaqyzcku
+ */
+;(function($){
+ $.fn.datepicker.dates['sw'] = {
+ days: ["Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"],
+ daysShort: ["J2", "J3", "J4", "J5", "Alh", "Ij", "J1"],
+ daysMin: ["2", "3", "4", "5", "A", "I", "1"],
+ months: ["Januari", "Februari", "Machi", "Aprili", "Mei", "Juni", "Julai", "Agosti", "Septemba", "Oktoba", "Novemba", "Desemba"],
+ monthsShort: ["Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"],
+ today: "Leo"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ta.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ta.js
new file mode 100644
index 0000000..85e7656
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ta.js
@@ -0,0 +1,18 @@
+/**
+ * Tamil translation for bootstrap-datepicker
+ * Abubacker Siddik A <abuabdul86@hotmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['ta'] = {
+ days: ["ஞாயிறு", "திங்கள்", "செவ்வாய்", "புதன்", "வியாழன்", "வெள்ளி", "சனி"],
+ daysShort: ["ஞாயி", "திங்", "செவ்", "புத", "வியா", "வெள்", "சனி"],
+ daysMin: ["ஞா", "தி", "செ", "பு", "வி", "வெ", "ச"],
+ months: ["ஜனவரி", "பிப்ரவரி", "மார்ச்", "ஏப்ரல்", "மே", "ஜூன்", "ஜூலை", "ஆகஸ்டு", "செப்டம்பர்", "அக்டோபர்", "நவம்பர்", "டிசம்பர்"],
+ monthsShort: ["ஜன", "பிப்", "மார்", "ஏப்", "மே", "ஜூன்", "ஜூலை", "ஆக", "செப்", "அக்", "நவ", "டிச"],
+ today: "இன்று",
+ monthsTitle: "மாதங்கள்",
+ clear: "நீக்கு",
+ weekStart: 1,
+ format: "dd/mm/yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.tg.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.tg.js
new file mode 100644
index 0000000..26863a0
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.tg.js
@@ -0,0 +1,19 @@
+/**
+ * Tajik (cyrillic) translation for bootstrap-datepicker
+ * Bakhtiyor Bahritidinov <i@bakhtiyor.tj>
+ * Orif N. Jr. <orif.zade@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['tg'] = {
+ days: ["Якшанбе", "Душанбе", "Сешанбе", "Чоршанбе", "Панҷшанбе", "Ҷумъа", "Шанбе"],
+ daysShort: ["Яшб", "Дшб", "Сшб", "Чшб", "Пшб", "Ҷум", "Шнб"],
+ daysMin: ["Яш", "Дш", "Сш", "Чш", "Пш", "Ҷм", "Шб"],
+ months: ["Январ", "Феврал", "Март", "Апрел", "Май", "Июн", "Июл", "Август", "Сентябр", "Октябр", "Ноябр", "Декабр"],
+ monthsShort: ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"],
+ today: "Имрӯз",
+ monthsTitle: "Моҳҳо",
+ clear: "Тоза намудан",
+ weekStart: 1,
+ format: "dd.mm.yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.th.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.th.js
new file mode 100644
index 0000000..562b063
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.th.js
@@ -0,0 +1,14 @@
+/**
+ * Thai translation for bootstrap-datepicker
+ * Suchau Jiraprapot <seroz24@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['th'] = {
+ days: ["อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัส", "ศุกร์", "เสาร์", "อาทิตย์"],
+ daysShort: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"],
+ daysMin: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"],
+ months: ["มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฎาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม"],
+ monthsShort: ["ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค."],
+ today: "วันนี้"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.tk.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.tk.js
new file mode 100644
index 0000000..b06b6dc
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.tk.js
@@ -0,0 +1,18 @@
+/**
+ * Turkmen translation for bootstrap-datepicker
+ * N'Bayramberdiyev <nbayramberdiyev@outlook.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['tk'] = {
+ days: ["Ýekşenbe", "Duşenbe", "Sişenbe", "Çarşenbe", "Penşenbe", "Anna", "Şenbe"],
+ daysShort: ["Ýek", "Duş", "Siş", "Çar", "Pen", "Ann", "Şen"],
+ daysMin: ["Ýe", "Du", "Si", "Ça", "Pe", "An", "Şe"],
+ months: ["Ýanwar", "Fewral", "Mart", "Aprel", "Maý", "Iýun", "Iýul", "Awgust", "Sentýabr", "Oktýabr", "Noýabr", "Dekabr"],
+ monthsShort: ["Ýan", "Few", "Mar", "Apr", "Maý", "Iýn", "Iýl", "Awg", "Sen", "Okt", "Noý", "Dek"],
+ today: "Bu gün",
+ monthsTitle: "Aýlar",
+ clear: "Aýyr",
+ weekStart: 1,
+ format: "dd.mm.yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.tr.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.tr.js
new file mode 100644
index 0000000..0c8b0de
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.tr.js
@@ -0,0 +1,18 @@
+/**
+ * Turkish translation for bootstrap-datepicker
+ * Serkan Algur <kaisercrazy_2@hotmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['tr'] = {
+ days: ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"],
+ daysShort: ["Pz", "Pzt", "Sal", "Çrş", "Prş", "Cu", "Cts"],
+ daysMin: ["Pz", "Pzt", "Sa", "Çr", "Pr", "Cu", "Ct"],
+ months: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"],
+ monthsShort: ["Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara"],
+ today: "Bugün",
+ clear: "Temizle",
+ weekStart: 1,
+ format: "dd.mm.yyyy"
+ };
+}(jQuery));
+
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.uk.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.uk.js
new file mode 100644
index 0000000..1c4cf15
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.uk.js
@@ -0,0 +1,17 @@
+/**
+ * Ukrainian translation for bootstrap-datepicker
+ * Igor Polynets
+ */
+;(function($){
+ $.fn.datepicker.dates['uk'] = {
+ days: ["Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота"],
+ daysShort: ["Нед", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб"],
+ daysMin: ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"],
+ months: ["Cічень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"],
+ monthsShort: ["Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру"],
+ today: "Сьогодні",
+ clear: "Очистити",
+ format: "dd.mm.yyyy",
+ weekStart: 1
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.uz-cyrl.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.uz-cyrl.js
new file mode 100644
index 0000000..ce55543
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.uz-cyrl.js
@@ -0,0 +1,18 @@
+/**
+ * Uzbek latin translation for bootstrap-datepicker
+ * Kakhramonov Javlonbek <kakjavlon@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['uz-cyrl'] = {
+ days: ["Якшанба", "Душанба", "Сешанба", "Чоршанба", "Пайшанба", "Жума", "Шанба"],
+ daysShort: ["Якш", "Ду", "Се", "Чор", "Пай", "Жу", "Ша"],
+ daysMin: ["Як", "Ду", "Се", "Чо", "Па", "Жу", "Ша"],
+ months: ["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],
+ monthsShort: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],
+ today: "Бугун",
+ clear: "Ўчириш",
+ format: "dd.mm.yyyy",
+ weekStart: 1,
+ monthsTitle: 'Ойлар'
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.uz-latn.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.uz-latn.js
new file mode 100644
index 0000000..70fda67
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.uz-latn.js
@@ -0,0 +1,18 @@
+/**
+ * Uzbek latin translation for bootstrap-datepicker
+ * Kakhramonov Javlonbek <kakjavlon@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['uz-latn'] = {
+ days: ["Yakshanba", "Dushanba", "Seshanba", "Chorshanba", "Payshanba", "Juma", "Shanba"],
+ daysShort: ["Yak", "Du", "Se", "Chor", "Pay", "Ju", "Sha"],
+ daysMin: ["Ya", "Du", "Se", "Cho", "Pa", "Ju", "Sha"],
+ months: ["Yanvar", "Fevral", "Mart", "Aprel", "May", "Iyun", "Iyul", "Avgust", "Sentabr", "Oktabr", "Noyabr", "Dekabr"],
+ monthsShort: ["Yan", "Fev", "Mar", "Apr", "May", "Iyn", "Iyl", "Avg", "Sen", "Okt", "Noy", "Dek"],
+ today: "Bugun",
+ clear: "O'chirish",
+ format: "dd.mm.yyyy",
+ weekStart: 1,
+ monthsTitle: 'Oylar'
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.vi.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.vi.js
new file mode 100644
index 0000000..0e8afc1
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.vi.js
@@ -0,0 +1,16 @@
+/**
+ * Vietnamese translation for bootstrap-datepicker
+ * An Vo <https://github.com/anvoz/>
+ */
+;(function($){
+ $.fn.datepicker.dates['vi'] = {
+ days: ["Chủ nhật", "Thứ hai", "Thứ ba", "Thứ tư", "Thứ năm", "Thứ sáu", "Thứ bảy"],
+ daysShort: ["CN", "Thứ 2", "Thứ 3", "Thứ 4", "Thứ 5", "Thứ 6", "Thứ 7"],
+ daysMin: ["CN", "T2", "T3", "T4", "T5", "T6", "T7"],
+ months: ["Tháng 1", "Tháng 2", "Tháng 3", "Tháng 4", "Tháng 5", "Tháng 6", "Tháng 7", "Tháng 8", "Tháng 9", "Tháng 10", "Tháng 11", "Tháng 12"],
+ monthsShort: ["Th1", "Th2", "Th3", "Th4", "Th5", "Th6", "Th7", "Th8", "Th9", "Th10", "Th11", "Th12"],
+ today: "Hôm nay",
+ clear: "Xóa",
+ format: "dd/mm/yyyy"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-CN.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-CN.js
new file mode 100644
index 0000000..b927d2c
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-CN.js
@@ -0,0 +1,18 @@
+/**
+ * Simplified Chinese translation for bootstrap-datepicker
+ * Yuan Cheung <advanimal@gmail.com>
+ */
+;(function($){
+ $.fn.datepicker.dates['zh-CN'] = {
+ days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
+ daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
+ daysMin: ["日", "一", "二", "三", "四", "五", "六"],
+ months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
+ monthsShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
+ today: "今日",
+ clear: "清除",
+ format: "yyyy年mm月dd日",
+ titleFormat: "yyyy年mm月",
+ weekStart: 1
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-TW.js b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-TW.js
new file mode 100644
index 0000000..ff241b5
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-TW.js
@@ -0,0 +1,18 @@
+/**
+ * Traditional Chinese translation for bootstrap-datepicker
+ * Rung-Sheng Jang <daniel@i-trend.co.cc>
+ * FrankWu <frankwu100@gmail.com> Fix more appropriate use of Traditional Chinese habit
+ */
+;(function($){
+ $.fn.datepicker.dates['zh-TW'] = {
+ days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
+ daysShort: ["週日", "週一", "週二", "週三", "週四", "週五", "週六"],
+ daysMin: ["日", "一", "二", "三", "四", "五", "六"],
+ months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
+ monthsShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
+ today: "今天",
+ format: "yyyy年mm月dd日",
+ weekStart: 1,
+ clear: "清除"
+ };
+}(jQuery));
diff --git a/public/bower_components/bootstrap-datepicker/less/.csslintrc b/public/bower_components/bootstrap-datepicker/less/.csslintrc
new file mode 100644
index 0000000..005b862
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/less/.csslintrc
@@ -0,0 +1,19 @@
+{
+ "adjoining-classes": false,
+ "box-sizing": false,
+ "box-model": false,
+ "compatible-vendor-prefixes": false,
+ "floats": false,
+ "font-sizes": false,
+ "gradients": false,
+ "important": false,
+ "known-properties": false,
+ "outline-none": false,
+ "qualified-headings": false,
+ "regex-selectors": false,
+ "shorthand": false,
+ "text-indent": false,
+ "unique-headings": false,
+ "universal-selector": false,
+ "unqualified-attributes": false
+}
diff --git a/public/bower_components/bootstrap-datepicker/less/datepicker.less b/public/bower_components/bootstrap-datepicker/less/datepicker.less
new file mode 100644
index 0000000..b1f8183
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/less/datepicker.less
@@ -0,0 +1,242 @@
+.datepicker {
+ padding: 4px;
+ .border-radius(@baseBorderRadius);
+ &-inline {
+ width: 220px;
+ }
+ direction: ltr;
+ &-rtl {
+ direction: rtl;
+ &.dropdown-menu { left: auto; }
+ table tr td span {
+ float: right;
+ }
+ }
+ &-dropdown {
+ top: 0;
+ left: 0;
+ &:before {
+ content: '';
+ display: inline-block;
+ border-left: 7px solid transparent;
+ border-right: 7px solid transparent;
+ border-bottom: 7px solid @grayLight;
+ border-top: 0;
+ border-bottom-color: rgba(0,0,0,.2);
+ position: absolute;
+ }
+ &:after {
+ content: '';
+ display: inline-block;
+ border-left: 6px solid transparent;
+ border-right: 6px solid transparent;
+ border-bottom: 6px solid @white;
+ border-top: 0;
+ position: absolute;
+ }
+ &.datepicker-orient-left:before { left: 6px; }
+ &.datepicker-orient-left:after { left: 7px; }
+ &.datepicker-orient-right:before { right: 6px; }
+ &.datepicker-orient-right:after { right: 7px; }
+ &.datepicker-orient-bottom:before { top: -7px; }
+ &.datepicker-orient-bottom:after { top: -6px; }
+ &.datepicker-orient-top:before {
+ bottom: -7px;
+ border-bottom: 0;
+ border-top: 7px solid @grayLight;
+ }
+ &.datepicker-orient-top:after {
+ bottom: -6px;
+ border-bottom: 0;
+ border-top: 6px solid @white;
+ }
+ }
+ table {
+ margin: 0;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ }
+ td, th {
+ text-align: center;
+ width: 20px;
+ height: 20px;
+ .border-radius(4px);
+
+ border: none;
+ }
+ // Inline display inside a table presents some problems with
+ // border and background colors.
+ .table-striped & table tr {
+ td, th {
+ background-color: transparent;
+ }
+ }
+ table tr td {
+ &.day:hover,
+ &.day.focused {
+ background: @grayLighter;
+ cursor: pointer;
+ }
+ &.old,
+ &.new {
+ color: @grayLight;
+ }
+ &.disabled,
+ &.disabled:hover {
+ background: none;
+ color: @grayLight;
+ cursor: default;
+ }
+ &.highlighted {
+ background: @infoBackground;
+ border-radius: 0;
+ }
+ &.today,
+ &.today:hover,
+ &.today.disabled,
+ &.today.disabled:hover {
+ @todayBackground: lighten(@orange, 30%);
+ .buttonBackground(@todayBackground, spin(@todayBackground, 20));
+ color: #000;
+ }
+ &.today:hover:hover { // Thank bootstrap 2.0 for this selector...
+ // TODO: Bump min BS to 2.1, use @textColor in buttonBackground above
+ color: #000;
+ }
+ &.today.active:hover {
+ color: #fff;
+ }
+ &.range,
+ &.range:hover,
+ &.range.disabled,
+ &.range.disabled:hover {
+ background: @grayLighter;
+ .border-radius(0);
+ }
+ &.range.today,
+ &.range.today:hover,
+ &.range.today.disabled,
+ &.range.today.disabled:hover {
+ @todayBackground: mix(@orange, @grayLighter, 50%);
+ .buttonBackground(@todayBackground, spin(@todayBackground, 20));
+ .border-radius(0);
+ }
+ &.selected,
+ &.selected:hover,
+ &.selected.disabled,
+ &.selected.disabled:hover {
+ .buttonBackground(lighten(@grayLight, 10), darken(@grayLight, 10));
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ }
+ &.active,
+ &.active:hover,
+ &.active.disabled,
+ &.active.disabled:hover {
+ .buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ }
+ span {
+ display: block;
+ width: 23%;
+ height: 54px;
+ line-height: 54px;
+ float: left;
+ margin: 1%;
+ cursor: pointer;
+ .border-radius(4px);
+ &:hover,
+ &.focused {
+ background: @grayLighter;
+ }
+ &.disabled,
+ &.disabled:hover {
+ background: none;
+ color: @grayLight;
+ cursor: default;
+ }
+ &.active,
+ &.active:hover,
+ &.active.disabled,
+ &.active.disabled:hover {
+ .buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ }
+ &.old,
+ &.new {
+ color: @grayLight;
+ }
+ }
+ }
+
+ .datepicker-switch {
+ width: 145px;
+ }
+
+ .datepicker-switch,
+ .prev,
+ .next,
+ tfoot tr th {
+ cursor: pointer;
+ &:hover {
+ background: @grayLighter;
+ }
+ }
+
+ .prev, .next {
+ &.disabled {
+ visibility: hidden;
+ }
+ }
+
+ // Basic styling for calendar-week cells
+ .cw {
+ font-size: 10px;
+ width: 12px;
+ padding: 0 2px 0 5px;
+ vertical-align: middle;
+ }
+}
+.input-append,
+.input-prepend {
+ &.date .add-on {
+ cursor: pointer;
+
+ i {
+ margin-top: 3px;
+ }
+ }
+}
+.input-daterange {
+ input {
+ text-align:center;
+ }
+ input:first-child {
+ .border-radius(3px 0 0 3px);
+ }
+ input:last-child {
+ .border-radius(0 3px 3px 0);
+ }
+ .add-on {
+ display: inline-block;
+ width: auto;
+ min-width: 16px;
+ height: @baseLineHeight;
+ padding: 4px 5px;
+ font-weight: normal;
+ line-height: @baseLineHeight;
+ text-align: center;
+ text-shadow: 0 1px 0 @white;
+ vertical-align: middle;
+ background-color: @grayLighter;
+ border: 1px solid #ccc;
+ margin-left: -5px;
+ margin-right: -5px;
+ }
+}
diff --git a/public/bower_components/bootstrap-datepicker/less/datepicker3.less b/public/bower_components/bootstrap-datepicker/less/datepicker3.less
new file mode 100644
index 0000000..91e8181
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/less/datepicker3.less
@@ -0,0 +1,257 @@
+.datepicker {
+ border-radius: @border-radius-base;
+ &-inline {
+ width: 220px;
+ }
+ direction: ltr;
+ &-rtl {
+ direction: rtl;
+ &.dropdown-menu { left: auto; }
+ table tr td span {
+ float: right;
+ }
+ }
+ &-dropdown {
+ top: 0;
+ left: 0;
+ padding: 4px;
+ &:before {
+ content: '';
+ display: inline-block;
+ border-left: 7px solid transparent;
+ border-right: 7px solid transparent;
+ border-bottom: 7px solid @dropdown-border;
+ border-top: 0;
+ border-bottom-color: rgba(0,0,0,.2);
+ position: absolute;
+ }
+ &:after {
+ content: '';
+ display: inline-block;
+ border-left: 6px solid transparent;
+ border-right: 6px solid transparent;
+ border-bottom: 6px solid @dropdown-bg;
+ border-top: 0;
+ position: absolute;
+ }
+ &.datepicker-orient-left:before { left: 6px; }
+ &.datepicker-orient-left:after { left: 7px; }
+ &.datepicker-orient-right:before { right: 6px; }
+ &.datepicker-orient-right:after { right: 7px; }
+ &.datepicker-orient-bottom:before { top: -7px; }
+ &.datepicker-orient-bottom:after { top: -6px; }
+ &.datepicker-orient-top:before {
+ bottom: -7px;
+ border-bottom: 0;
+ border-top: 7px solid @dropdown-border;
+ }
+ &.datepicker-orient-top:after {
+ bottom: -6px;
+ border-bottom: 0;
+ border-top: 6px solid @dropdown-bg;
+ }
+ }
+ table {
+ margin: 0;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ tr {
+ td, th {
+ text-align: center;
+ width: 30px;
+ height: 30px;
+ border-radius: 4px;
+ border: none;
+ }
+ }
+ }
+ // Inline display inside a table presents some problems with
+ // border and background colors.
+ .table-striped & table tr {
+ td, th {
+ background-color: transparent;
+ }
+ }
+ table tr td {
+ &.old,
+ &.new {
+ color: @btn-link-disabled-color;
+ }
+ &.day:hover,
+ &.focused {
+ background: @gray-lighter;
+ cursor: pointer;
+ }
+ &.disabled,
+ &.disabled:hover {
+ background: none;
+ color: @btn-link-disabled-color;
+ cursor: default;
+ }
+ &.highlighted {
+ @highlighted-bg: @state-info-bg;
+ .button-variant(#000, @highlighted-bg, darken(@highlighted-bg, 20%));
+ border-radius: 0;
+
+ &.focused {
+ background: darken(@highlighted-bg, 10%);
+ }
+
+ &.disabled,
+ &.disabled:active {
+ background: @highlighted-bg;
+ color: @btn-link-disabled-color;
+ }
+ }
+ &.today {
+ @today-bg: lighten(orange, 30%);
+ .button-variant(#000, @today-bg, darken(@today-bg, 20%));
+
+ &.focused {
+ background: darken(@today-bg, 10%);
+ }
+
+ &.disabled,
+ &.disabled:active {
+ background: @today-bg;
+ color: @btn-link-disabled-color;
+ }
+ }
+ &.range {
+ @range-bg: @gray-lighter;
+ .button-variant(#000, @range-bg, darken(@range-bg, 20%));
+ border-radius: 0;
+
+ &.focused {
+ background: darken(@range-bg, 10%);
+ }
+
+ &.disabled,
+ &.disabled:active {
+ background: @range-bg;
+ color: @btn-link-disabled-color;
+ }
+ }
+ &.range.highlighted {
+ @range-highlighted-bg: mix(@state-info-bg, @gray-lighter, 50%);
+ .button-variant(#000, @range-highlighted-bg, darken(@range-highlighted-bg, 20%));
+
+ &.focused {
+ background: darken(@range-highlighted-bg, 10%);
+ }
+
+ &.disabled,
+ &.disabled:active {
+ background: @range-highlighted-bg;
+ color: @btn-link-disabled-color;
+ }
+ }
+ &.range.today {
+ @range-today-bg: mix(orange, @gray-lighter, 50%);
+ .button-variant(#000, @range-today-bg, darken(@range-today-bg, 20%));
+
+ &.disabled,
+ &.disabled:active {
+ background: @range-today-bg;
+ color: @btn-link-disabled-color;
+ }
+ }
+ &.selected,
+ &.selected.highlighted {
+ .button-variant(#fff, @gray-light, @gray);
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ }
+ &.active,
+ &.active.highlighted {
+ .button-variant(@btn-primary-color, @btn-primary-bg, @btn-primary-border);
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ }
+ span {
+ display: block;
+ width: 23%;
+ height: 54px;
+ line-height: 54px;
+ float: left;
+ margin: 1%;
+ cursor: pointer;
+ border-radius: 4px;
+ &:hover,
+ &.focused {
+ background: @gray-lighter;
+ }
+ &.disabled,
+ &.disabled:hover {
+ background: none;
+ color: @btn-link-disabled-color;
+ cursor: default;
+ }
+ &.active,
+ &.active:hover,
+ &.active.disabled,
+ &.active.disabled:hover {
+ .button-variant(@btn-primary-color, @btn-primary-bg, @btn-primary-border);
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ }
+ &.old,
+ &.new {
+ color: @btn-link-disabled-color;
+ }
+ }
+ }
+
+ .datepicker-switch {
+ width: 145px;
+ }
+
+ .datepicker-switch,
+ .prev,
+ .next,
+ tfoot tr th {
+ cursor: pointer;
+ &:hover {
+ background: @gray-lighter;
+ }
+ }
+
+ .prev, .next {
+ &.disabled {
+ visibility: hidden;
+ }
+ }
+
+ // Basic styling for calendar-week cells
+ .cw {
+ font-size: 10px;
+ width: 12px;
+ padding: 0 2px 0 5px;
+ vertical-align: middle;
+ }
+}
+.input-group.date .input-group-addon {
+ cursor: pointer;
+}
+.input-daterange {
+ width: 100%;
+ input {
+ text-align: center;
+ }
+ input:first-child {
+ border-radius: 3px 0 0 3px;
+ }
+ input:last-child {
+ border-radius: 0 3px 3px 0;
+ }
+ .input-group-addon {
+ width: auto;
+ min-width: 16px;
+ padding: 4px 5px;
+ line-height: @line-height-base;
+ border-width: 1px 0;
+ margin-left: -5px;
+ margin-right: -5px;
+ }
+}
diff --git a/public/bower_components/bootstrap-datepicker/package.json b/public/bower_components/bootstrap-datepicker/package.json
new file mode 100644
index 0000000..b2e1e75
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/package.json
@@ -0,0 +1,48 @@
+{
+ "name": "bootstrap-datepicker",
+ "description": "A datepicker for Bootstrap",
+ "version": "1.8.0",
+ "license": "Apache-2.0",
+ "keywords": [
+ "datepicker",
+ "bootstrap"
+ ],
+ "main": "./dist/js/bootstrap-datepicker.js",
+ "files": [
+ "build",
+ "dist",
+ "js/**/*.js",
+ "less/*.less",
+ "LICENSE"
+ ],
+ "homepage": "https://github.com/uxsolutions/bootstrap-datepicker",
+ "author": "Andrew Rowls <eternicode@gmail.com>",
+ "scripts": {
+ "test": "grunt test"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/uxsolutions/bootstrap-datepicker.git"
+ },
+ "dependencies": {
+ "jquery": ">=1.7.1 <4.0.0"
+ },
+ "devDependencies": {
+ "grunt": "^1.0.1",
+ "grunt-banner": "~0.6.0",
+ "grunt-contrib-clean": "^1.0.0",
+ "grunt-contrib-compress": "^1.4.1",
+ "grunt-contrib-concat": "^1.0.1",
+ "grunt-contrib-csslint": "^2.0.0",
+ "grunt-contrib-cssmin": "^1.0.2",
+ "grunt-contrib-jshint": "^1.1.0",
+ "grunt-contrib-less": "^1.4.0",
+ "grunt-contrib-qunit": "^1.2.0",
+ "grunt-contrib-uglify": "^2.0.0",
+ "grunt-jscs": "^3.0.1",
+ "grunt-string-replace": "^1.3.1",
+ "load-grunt-tasks": "^3.5.2",
+ "phantomjs-prebuilt": "~2.1.8",
+ "time-grunt": "^1.4.0"
+ }
+}
diff --git a/public/bower_components/bootstrap-datepicker/tests/README.md b/public/bower_components/bootstrap-datepicker/tests/README.md
new file mode 100644
index 0000000..dc3ce9d
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/README.md
@@ -0,0 +1,30 @@
+Unit tests, written with [QUnit](https://qunitjs.com), are used to
+expose bugs for squashing, prevent bugs from respawning, and suppress new
+bugs when adding new features and making changes.
+
+# Running the tests
+
+The simplest way to run the tests is to open `tests/tests.html` in your browser.
+The test suites will automatically run themselves and present their results.
+
+To run the tests from the command line (after running jshint and jscs, which is
+recommended), install Grunt and run the `test` task from anywhere within the
+repo:
+
+ $ grunt test
+
+# Adding tests
+
+Tests go in js files in the `tests/suites/` directory tree. QUnit organizes
+tests into suites called "modules"; there is one module per js file. If the
+tests you are adding do not fit into an existing module, create a new one at
+`tests/suites/<new module>.js`, where `<new module>` is a broad yet
+descriptive name for the suite. If tests have many year-specific cases (ie,
+behave differently in leap years vs normal years, or have specific buggy
+behavior in a certain year), create the module in a new directory,
+`tests/suites/<new module>/<year>.js`, where `<new module>` is the decriptive
+name and `<year>` is the four-digit year the tests pertain to.
+
+In order for new tests to be run, they must be imported into `tests/tests.html`.
+Find the script includes headed by the html comment `<!-- Test suites -->`, and
+add a new one to the list which includes the new js files.
diff --git a/public/bower_components/bootstrap-datepicker/tests/assets/coverage.js b/public/bower_components/bootstrap-datepicker/tests/assets/coverage.js
new file mode 100644
index 0000000..2e5704b
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/assets/coverage.js
@@ -0,0 +1,48 @@
+(function(){
+ //we want this at global scope so outside callers can find it. In a more realistic implementation we
+ //should probably put it in a namespace.
+ window.getCoverageByLine = function(silent) {
+ var key = null;
+ var lines = null;
+ var source = null;
+ //look for code coverage data
+ if (typeof window._$jscoverage === 'object') {
+ for (key in _$jscoverage) {}
+ lines = _$jscoverage[key];
+ }
+
+ if (!lines && !silent) {
+ console.log('code coverage data is NOT available');
+ }
+
+ return { 'key': key, 'lines': lines };
+ };
+
+ QUnit.done = function(t) {
+ var cvgInfo = getCoverageByLine(true);
+ if (!!cvgInfo.key) {
+ var testableLines = 0;
+ var testedLines = 0;
+ var untestableLines = 0;
+ for (lineIdx in cvgInfo.lines) {
+ var cvg = cvgInfo.lines[lineIdx];
+ if (typeof cvg === 'number') {
+ testableLines += 1;
+ if (cvg > 0) {
+ testedLines += 1;
+ }
+ } else {
+ untestableLines += 1;
+ }
+ }
+ var coverage = '' + Math.floor(100 * testedLines / testableLines) + '%';
+
+ var result = document.getElementById('qunit-testresult');
+ if (result != null) {
+ result.innerHTML = result.innerHTML + ' ' + coverage + ' test coverage of ' + cvgInfo.key;
+ } else {
+ console.log('can\'t find test-result element to update');
+ }
+ }
+ };
+}()); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/tests/assets/jquery-1.7.1.min.js b/public/bower_components/bootstrap-datepicker/tests/assets/jquery-1.7.1.min.js
new file mode 100644
index 0000000..198b3ff
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/assets/jquery-1.7.1.min.js
@@ -0,0 +1,4 @@
+/*! jQuery v1.7.1 jquery.com | jquery.org/license */
+(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function cb(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bT,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border")for(;g<h;g++)c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0;return d+"px"}d=bz(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0;if(c)for(;g<h;g++)d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0);return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="<div style='width:4px;'></div>",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h<g;h++)e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},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(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};
+f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++)r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function()
+{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bp)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bn(k[i]);else bn(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bq=/alpha\([^)]*\)/i,br=/opacity=([^)]*)/,bs=/([A-Z]|^ms)/g,bt=/^-?\d+(?:px)?$/i,bu=/^-?\d/,bv=/^([\-+])=([\-+.\de]+)/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bv.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bC(a,b,d);f.swap(a,bw,function(){e=bC(a,b,d)});return e}},set:function(a,b){if(!bt.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cv(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cn.test(h)?(o=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o==="show"?"hide":"show"),j[o]()):j[h]()):(k=co.exec(h),l=j.cur(),k?(m=parseFloat(k[2]),n=k[3]||(f.cssNumber[i]?"":"px"),n!=="px"&&(f.style(this,i,(m||1)+n),l=(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=(k[1]==="-="?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cr||cs(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)===b&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cp&&(cp=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cr||cs(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cp),cp=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(["width","height"],function(a,b){f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.support.fixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.support.fixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file
diff --git a/public/bower_components/bootstrap-datepicker/tests/assets/mock.js b/public/bower_components/bootstrap-datepicker/tests/assets/mock.js
new file mode 100644
index 0000000..a7d07dc
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/assets/mock.js
@@ -0,0 +1,49 @@
+;(function(){
+
+window.patch_date = function patch(f){
+ var NativeDate = window.Date;
+ var date = function date(y,m,d,h,i,s,j){
+ switch(arguments.length){
+ case 0: return date.now ? new NativeDate(date.now) : new NativeDate();
+ case 1: return new NativeDate(y);
+ case 2: return new NativeDate(y,m);
+ case 3: return new NativeDate(y,m,d);
+ case 4: return new NativeDate(y,m,d,h);
+ case 5: return new NativeDate(y,m,d,h,i);
+ case 6: return new NativeDate(y,m,d,h,i,s);
+ case 7: return new NativeDate(y,y,m,d,h,i,s,j);
+ }
+ };
+ date.UTC = NativeDate.UTC;
+ return function(){
+ Array.prototype.push.call(arguments, date);
+ window.Date = date;
+ f.apply(this, arguments);
+ window.Date = NativeDate;
+ };
+};
+
+
+window.patch_show_hide = function patch(f){
+ var oldShow = $.fn.show,
+ newShow = function () {
+ $(this).removeClass('foo');
+ return oldShow.apply(this, arguments);
+ };
+
+ var oldHide = $.fn.hide,
+ newHide = function () {
+ $(this).addClass('foo');
+ return oldHide.apply(this, arguments);
+ };
+
+ return function(){
+ $.fn.show = newShow;
+ $.fn.hide = newHide;
+ f.apply(this, arguments);
+ $.fn.show = oldShow;
+ $.fn.hide = oldHide;
+ };
+};
+
+}());
diff --git a/public/bower_components/bootstrap-datepicker/tests/assets/qunit-logging.js b/public/bower_components/bootstrap-datepicker/tests/assets/qunit-logging.js
new file mode 100644
index 0000000..5bef1a5
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/assets/qunit-logging.js
@@ -0,0 +1,29 @@
+// Dummy logging calls (ie, if tests are run in IE)
+window.console = window.console || {};
+window.console.log = window.console.log || function(){};
+window.console.debug = window.console.debug || function(){};
+window.console.info = window.console.info || function(){};
+window.console.warn = window.console.warn || function(){};
+window.console.error = window.console.error || function(){};
+
+(function() {
+ var modName, testName;
+
+ //arg: { name }
+ QUnit.testStart = function(t) {
+ modName = t.module;
+ testName = t.name;
+ };
+
+ //arg: { name, failed, passed, total }
+ QUnit.testDone = function(t) {
+ if (t.failed)
+ console.log('Test "' + t.module + ': ' + t.name + '" completed: ' + (0 === t.failed ? 'pass' : 'FAIL') + '\n')
+ };
+
+ //{ result, actual, expected, message }
+ QUnit.log = function(t) {
+ if (!t.result)
+ console.log('Test "' + modName + ': ' + testName + '" assertion failed. Expected <' + t.expected + '> Actual <' + t.actual + '>' + (t.message ? ': \'' + t.message + '\'' : ''));
+ };
+}());
diff --git a/public/bower_components/bootstrap-datepicker/tests/assets/qunit.css b/public/bower_components/bootstrap-datepicker/tests/assets/qunit.css
new file mode 100644
index 0000000..b948bae
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/assets/qunit.css
@@ -0,0 +1,235 @@
+/**
+ * QUnit v1.5.0 - A JavaScript Unit Testing Framework
+ *
+ * http://docs.jquery.com/QUnit
+ *
+ * Copyright (c) 2012 John Resig, Jörn Zaefferer
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * or GPL (GPL-LICENSE.txt) licenses.
+ */
+
+/** Font Family and Sizes */
+
+#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
+ font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
+}
+
+#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
+#qunit-tests { font-size: smaller; }
+
+
+/** Resets */
+
+#qunit-tests, #qunit-tests ol, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult {
+ margin: 0;
+ padding: 0;
+}
+
+
+/** Header */
+
+#qunit-header {
+ padding: 0.5em 0 0.5em 1em;
+
+ color: #8699a4;
+ background-color: #0d3349;
+
+ font-size: 1.5em;
+ line-height: 1em;
+ font-weight: normal;
+
+ border-radius: 15px 15px 0 0;
+ -moz-border-radius: 15px 15px 0 0;
+ -webkit-border-top-right-radius: 15px;
+ -webkit-border-top-left-radius: 15px;
+}
+
+#qunit-header a {
+ text-decoration: none;
+ color: #c2ccd1;
+}
+
+#qunit-header a:hover,
+#qunit-header a:focus {
+ color: #fff;
+}
+
+#qunit-header label {
+ display: inline-block;
+}
+
+#qunit-banner {
+ height: 5px;
+}
+
+#qunit-testrunner-toolbar {
+ padding: 0.5em 0 0.5em 2em;
+ color: #5E740B;
+ background-color: #eee;
+}
+
+#qunit-userAgent {
+ padding: 0.5em 0 0.5em 2.5em;
+ background-color: #2b81af;
+ color: #fff;
+ text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
+}
+
+
+/** Tests: Pass/Fail */
+
+#qunit-tests {
+ list-style-position: inside;
+}
+
+#qunit-tests li {
+ padding: 0.4em 0.5em 0.4em 2.5em;
+ border-bottom: 1px solid #fff;
+ list-style-position: inside;
+}
+
+#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running {
+ display: none;
+}
+
+#qunit-tests li strong {
+ cursor: pointer;
+}
+
+#qunit-tests li a {
+ padding: 0.5em;
+ color: #c2ccd1;
+ text-decoration: none;
+}
+#qunit-tests li a:hover,
+#qunit-tests li a:focus {
+ color: #000;
+}
+
+#qunit-tests ol {
+ margin-top: 0.5em;
+ padding: 0.5em;
+
+ background-color: #fff;
+
+ border-radius: 15px;
+ -moz-border-radius: 15px;
+ -webkit-border-radius: 15px;
+
+ box-shadow: inset 0px 2px 13px #999;
+ -moz-box-shadow: inset 0px 2px 13px #999;
+ -webkit-box-shadow: inset 0px 2px 13px #999;
+}
+
+#qunit-tests table {
+ border-collapse: collapse;
+ margin-top: .2em;
+}
+
+#qunit-tests th {
+ text-align: right;
+ vertical-align: top;
+ padding: 0 .5em 0 0;
+}
+
+#qunit-tests td {
+ vertical-align: top;
+}
+
+#qunit-tests pre {
+ margin: 0;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
+
+#qunit-tests del {
+ background-color: #e0f2be;
+ color: #374e0c;
+ text-decoration: none;
+}
+
+#qunit-tests ins {
+ background-color: #ffcaca;
+ color: #500;
+ text-decoration: none;
+}
+
+/*** Test Counts */
+
+#qunit-tests b.counts { color: black; }
+#qunit-tests b.passed { color: #5E740B; }
+#qunit-tests b.failed { color: #710909; }
+
+#qunit-tests li li {
+ margin: 0.5em;
+ padding: 0.4em 0.5em 0.4em 0.5em;
+ background-color: #fff;
+ border-bottom: none;
+ list-style-position: inside;
+}
+
+/*** Passing Styles */
+
+#qunit-tests li li.pass {
+ color: #5E740B;
+ background-color: #fff;
+ border-left: 26px solid #C6E746;
+}
+
+#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; }
+#qunit-tests .pass .test-name { color: #366097; }
+
+#qunit-tests .pass .test-actual,
+#qunit-tests .pass .test-expected { color: #999999; }
+
+#qunit-banner.qunit-pass { background-color: #C6E746; }
+
+/*** Failing Styles */
+
+#qunit-tests li li.fail {
+ color: #710909;
+ background-color: #fff;
+ border-left: 26px solid #EE5757;
+ white-space: pre;
+}
+
+#qunit-tests > li:last-child {
+ border-radius: 0 0 15px 15px;
+ -moz-border-radius: 0 0 15px 15px;
+ -webkit-border-bottom-right-radius: 15px;
+ -webkit-border-bottom-left-radius: 15px;
+}
+
+#qunit-tests .fail { color: #000000; background-color: #EE5757; }
+#qunit-tests .fail .test-name,
+#qunit-tests .fail .module-name { color: #000000; }
+
+#qunit-tests .fail .test-actual { color: #EE5757; }
+#qunit-tests .fail .test-expected { color: green; }
+
+#qunit-banner.qunit-fail { background-color: #EE5757; }
+
+
+/** Result */
+
+#qunit-testresult {
+ padding: 0.5em 0.5em 0.5em 2.5em;
+
+ color: #2b81af;
+ background-color: #D2E0E6;
+
+ border-bottom: 1px solid white;
+}
+#qunit-testresult .module-name {
+ font-weight: bold;
+}
+
+/** Fixture */
+
+#qunit-fixture {
+ position: absolute;
+ top: -10000px;
+ left: -10000px;
+ width: 1000px;
+ height: 1000px;
+}
diff --git a/public/bower_components/bootstrap-datepicker/tests/assets/qunit.js b/public/bower_components/bootstrap-datepicker/tests/assets/qunit.js
new file mode 100644
index 0000000..66dd721
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/assets/qunit.js
@@ -0,0 +1,1669 @@
+/**
+ * QUnit v1.5.0 - A JavaScript Unit Testing Framework
+ *
+ * http://docs.jquery.com/QUnit
+ *
+ * Copyright (c) 2012 John Resig, Jörn Zaefferer
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * or GPL (GPL-LICENSE.txt) licenses.
+ */
+
+(function(window) {
+
+var defined = {
+ setTimeout: typeof window.setTimeout !== "undefined",
+ sessionStorage: (function() {
+ var x = "qunit-test-string";
+ try {
+ sessionStorage.setItem(x, x);
+ sessionStorage.removeItem(x);
+ return true;
+ } catch(e) {
+ return false;
+ }
+ }())
+};
+
+var testId = 0,
+ toString = Object.prototype.toString,
+ hasOwn = Object.prototype.hasOwnProperty;
+
+var Test = function(name, testName, expected, async, callback) {
+ this.name = name;
+ this.testName = testName;
+ this.expected = expected;
+ this.async = async;
+ this.callback = callback;
+ this.assertions = [];
+};
+Test.prototype = {
+ init: function() {
+ var tests = id("qunit-tests");
+ if (tests) {
+ var b = document.createElement("strong");
+ b.innerHTML = "Running " + this.name;
+ var li = document.createElement("li");
+ li.appendChild( b );
+ li.className = "running";
+ li.id = this.id = "test-output" + testId++;
+ tests.appendChild( li );
+ }
+ },
+ setup: function() {
+ if (this.module != config.previousModule) {
+ if ( config.previousModule ) {
+ runLoggingCallbacks('moduleDone', QUnit, {
+ name: config.previousModule,
+ failed: config.moduleStats.bad,
+ passed: config.moduleStats.all - config.moduleStats.bad,
+ total: config.moduleStats.all
+ } );
+ }
+ config.previousModule = this.module;
+ config.moduleStats = { all: 0, bad: 0 };
+ runLoggingCallbacks( 'moduleStart', QUnit, {
+ name: this.module
+ } );
+ } else if (config.autorun) {
+ runLoggingCallbacks( 'moduleStart', QUnit, {
+ name: this.module
+ } );
+ }
+
+ config.current = this;
+ this.testEnvironment = extend({
+ setup: function() {},
+ teardown: function() {}
+ }, this.moduleTestEnvironment);
+
+ runLoggingCallbacks( 'testStart', QUnit, {
+ name: this.testName,
+ module: this.module
+ });
+
+ // allow utility functions to access the current test environment
+ // TODO why??
+ QUnit.current_testEnvironment = this.testEnvironment;
+
+ if ( !config.pollution ) {
+ saveGlobal();
+ }
+ if ( config.notrycatch ) {
+ this.testEnvironment.setup.call(this.testEnvironment);
+ return;
+ }
+ try {
+ this.testEnvironment.setup.call(this.testEnvironment);
+ } catch(e) {
+ QUnit.pushFailure( "Setup failed on " + this.testName + ": " + e.message, extractStacktrace( e, 1 ) );
+ }
+ },
+ run: function() {
+ config.current = this;
+
+ var running = id("qunit-testresult");
+
+ if ( running ) {
+ running.innerHTML = "Running: <br/>" + this.name;
+ }
+
+ if ( this.async ) {
+ QUnit.stop();
+ }
+
+ if ( config.notrycatch ) {
+ this.callback.call(this.testEnvironment);
+ return;
+ }
+ try {
+ this.callback.call(this.testEnvironment);
+ } catch(e) {
+ QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + ": " + e.message, extractStacktrace( e, 1 ) );
+ // else next test will carry the responsibility
+ saveGlobal();
+
+ // Restart the tests if they're blocking
+ if ( config.blocking ) {
+ QUnit.start();
+ }
+ }
+ },
+ teardown: function() {
+ config.current = this;
+ if ( config.notrycatch ) {
+ this.testEnvironment.teardown.call(this.testEnvironment);
+ return;
+ } else {
+ try {
+ this.testEnvironment.teardown.call(this.testEnvironment);
+ } catch(e) {
+ QUnit.pushFailure( "Teardown failed on " + this.testName + ": " + e.message, extractStacktrace( e, 1 ) );
+ }
+ }
+ checkPollution();
+ },
+ finish: function() {
+ config.current = this;
+ if ( this.expected != null && this.expected != this.assertions.length ) {
+ QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run" );
+ } else if ( this.expected == null && !this.assertions.length ) {
+ QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions." );
+ }
+
+ var good = 0, bad = 0,
+ li, i,
+ tests = id("qunit-tests");
+
+ config.stats.all += this.assertions.length;
+ config.moduleStats.all += this.assertions.length;
+
+ if ( tests ) {
+ var ol = document.createElement("ol");
+
+ for ( i = 0; i < this.assertions.length; i++ ) {
+ var assertion = this.assertions[i];
+
+ li = document.createElement("li");
+ li.className = assertion.result ? "pass" : "fail";
+ li.innerHTML = assertion.message || (assertion.result ? "okay" : "failed");
+ ol.appendChild( li );
+
+ if ( assertion.result ) {
+ good++;
+ } else {
+ bad++;
+ config.stats.bad++;
+ config.moduleStats.bad++;
+ }
+ }
+
+ // store result when possible
+ if ( QUnit.config.reorder && defined.sessionStorage ) {
+ if (bad) {
+ sessionStorage.setItem("qunit-test-" + this.module + "-" + this.testName, bad);
+ } else {
+ sessionStorage.removeItem("qunit-test-" + this.module + "-" + this.testName);
+ }
+ }
+
+ if (bad === 0) {
+ ol.style.display = "none";
+ }
+
+ var b = document.createElement("strong");
+ b.innerHTML = this.name + " <b class='counts'>(<b class='failed'>" + bad + "</b>, <b class='passed'>" + good + "</b>, " + this.assertions.length + ")</b>";
+
+ var a = document.createElement("a");
+ a.innerHTML = "Rerun";
+ a.href = QUnit.url({ filter: getText([b]).replace(/\([^)]+\)$/, "").replace(/(^\s*|\s*$)/g, "") });
+
+ addEvent(b, "click", function() {
+ var next = b.nextSibling.nextSibling,
+ display = next.style.display;
+ next.style.display = display === "none" ? "block" : "none";
+ });
+
+ addEvent(b, "dblclick", function(e) {
+ var target = e && e.target ? e.target : window.event.srcElement;
+ if ( target.nodeName.toLowerCase() == "span" || target.nodeName.toLowerCase() == "b" ) {
+ target = target.parentNode;
+ }
+ if ( window.location && target.nodeName.toLowerCase() === "strong" ) {
+ window.location = QUnit.url({ filter: getText([target]).replace(/\([^)]+\)$/, "").replace(/(^\s*|\s*$)/g, "") });
+ }
+ });
+
+ li = id(this.id);
+ li.className = bad ? "fail" : "pass";
+ li.removeChild( li.firstChild );
+ li.appendChild( b );
+ li.appendChild( a );
+ li.appendChild( ol );
+
+ } else {
+ for ( i = 0; i < this.assertions.length; i++ ) {
+ if ( !this.assertions[i].result ) {
+ bad++;
+ config.stats.bad++;
+ config.moduleStats.bad++;
+ }
+ }
+ }
+
+ QUnit.reset();
+
+ runLoggingCallbacks( 'testDone', QUnit, {
+ name: this.testName,
+ module: this.module,
+ failed: bad,
+ passed: this.assertions.length - bad,
+ total: this.assertions.length
+ } );
+ },
+
+ queue: function() {
+ var test = this;
+ synchronize(function() {
+ test.init();
+ });
+ function run() {
+ // each of these can by async
+ synchronize(function() {
+ test.setup();
+ });
+ synchronize(function() {
+ test.run();
+ });
+ synchronize(function() {
+ test.teardown();
+ });
+ synchronize(function() {
+ test.finish();
+ });
+ }
+ // defer when previous test run passed, if storage is available
+ var bad = QUnit.config.reorder && defined.sessionStorage && +sessionStorage.getItem("qunit-test-" + this.module + "-" + this.testName);
+ if (bad) {
+ run();
+ } else {
+ synchronize(run, true);
+ }
+ }
+
+};
+
+var QUnit = {
+
+ // call on start of module test to prepend name to all tests
+ module: function(name, testEnvironment) {
+ config.currentModule = name;
+ config.currentModuleTestEnviroment = testEnvironment;
+ },
+
+ asyncTest: function(testName, expected, callback) {
+ if ( arguments.length === 2 ) {
+ callback = expected;
+ expected = null;
+ }
+
+ QUnit.test(testName, expected, callback, true);
+ },
+
+ test: function(testName, expected, callback, async) {
+ var name = '<span class="test-name">' + escapeInnerText(testName) + '</span>';
+
+ if ( arguments.length === 2 ) {
+ callback = expected;
+ expected = null;
+ }
+
+ if ( config.currentModule ) {
+ name = '<span class="module-name">' + config.currentModule + "</span>: " + name;
+ }
+
+ if ( !validTest(config.currentModule + ": " + testName) ) {
+ return;
+ }
+
+ var test = new Test(name, testName, expected, async, callback);
+ test.module = config.currentModule;
+ test.moduleTestEnvironment = config.currentModuleTestEnviroment;
+ test.queue();
+ },
+
+ // Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through.
+ expect: function(asserts) {
+ config.current.expected = asserts;
+ },
+
+ // Asserts true.
+ // @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
+ ok: function(result, msg) {
+ if (!config.current) {
+ throw new Error("ok() assertion outside test context, was " + sourceFromStacktrace(2));
+ }
+ result = !!result;
+ var details = {
+ result: result,
+ message: msg
+ };
+ msg = escapeInnerText(msg || (result ? "okay" : "failed"));
+ if ( !result ) {
+ var source = sourceFromStacktrace(2);
+ if (source) {
+ details.source = source;
+ msg += '<table><tr class="test-source"><th>Source: </th><td><pre>' + escapeInnerText(source) + '</pre></td></tr></table>';
+ }
+ }
+ runLoggingCallbacks( 'log', QUnit, details );
+ config.current.assertions.push({
+ result: result,
+ message: msg
+ });
+ },
+
+ // Checks that the first two arguments are equal, with an optional message. Prints out both actual and expected values.
+ // @example equal( format("Received {0} bytes.", 2), "Received 2 bytes." );
+ equal: function(actual, expected, message) {
+ QUnit.push(expected == actual, actual, expected, message);
+ },
+
+ notEqual: function(actual, expected, message) {
+ QUnit.push(expected != actual, actual, expected, message);
+ },
+
+ deepEqual: function(actual, expected, message) {
+ QUnit.push(QUnit.equiv(actual, expected), actual, expected, message);
+ },
+
+ notDeepEqual: function(actual, expected, message) {
+ QUnit.push(!QUnit.equiv(actual, expected), actual, expected, message);
+ },
+
+ strictEqual: function(actual, expected, message) {
+ QUnit.push(expected === actual, actual, expected, message);
+ },
+
+ notStrictEqual: function(actual, expected, message) {
+ QUnit.push(expected !== actual, actual, expected, message);
+ },
+
+ raises: function(block, expected, message) {
+ var actual, ok = false;
+
+ if (typeof expected === 'string') {
+ message = expected;
+ expected = null;
+ }
+
+ try {
+ block.call(config.current.testEnvironment);
+ } catch (e) {
+ actual = e;
+ }
+
+ if (actual) {
+ // we don't want to validate thrown error
+ if (!expected) {
+ ok = true;
+ // expected is a regexp
+ } else if (QUnit.objectType(expected) === "regexp") {
+ ok = expected.test(actual);
+ // expected is a constructor
+ } else if (actual instanceof expected) {
+ ok = true;
+ // expected is a validation function which returns true is validation passed
+ } else if (expected.call({}, actual) === true) {
+ ok = true;
+ }
+ }
+
+ QUnit.ok(ok, message);
+ },
+
+ start: function(count) {
+ config.semaphore -= count || 1;
+ if (config.semaphore > 0) {
+ // don't start until equal number of stop-calls
+ return;
+ }
+ if (config.semaphore < 0) {
+ // ignore if start is called more often then stop
+ config.semaphore = 0;
+ }
+ // A slight delay, to avoid any current callbacks
+ if ( defined.setTimeout ) {
+ window.setTimeout(function() {
+ if (config.semaphore > 0) {
+ return;
+ }
+ if ( config.timeout ) {
+ clearTimeout(config.timeout);
+ }
+
+ config.blocking = false;
+ process(true);
+ }, 13);
+ } else {
+ config.blocking = false;
+ process(true);
+ }
+ },
+
+ stop: function(count) {
+ config.semaphore += count || 1;
+ config.blocking = true;
+
+ if ( config.testTimeout && defined.setTimeout ) {
+ clearTimeout(config.timeout);
+ config.timeout = window.setTimeout(function() {
+ QUnit.ok( false, "Test timed out" );
+ config.semaphore = 1;
+ QUnit.start();
+ }, config.testTimeout);
+ }
+ }
+};
+
+//We want access to the constructor's prototype
+(function() {
+ function F(){}
+ F.prototype = QUnit;
+ QUnit = new F();
+ //Make F QUnit's constructor so that we can add to the prototype later
+ QUnit.constructor = F;
+}());
+
+// deprecated; still export them to window to provide clear error messages
+// next step: remove entirely
+QUnit.equals = function() {
+ QUnit.push(false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead");
+};
+QUnit.same = function() {
+ QUnit.push(false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead");
+};
+
+// Maintain internal state
+var config = {
+ // The queue of tests to run
+ queue: [],
+
+ // block until document ready
+ blocking: true,
+
+ // when enabled, show only failing tests
+ // gets persisted through sessionStorage and can be changed in UI via checkbox
+ hidepassed: false,
+
+ // by default, run previously failed tests first
+ // very useful in combination with "Hide passed tests" checked
+ reorder: true,
+
+ // by default, modify document.title when suite is done
+ altertitle: true,
+
+ urlConfig: ['noglobals', 'notrycatch'],
+
+ //logging callback queues
+ begin: [],
+ done: [],
+ log: [],
+ testStart: [],
+ testDone: [],
+ moduleStart: [],
+ moduleDone: []
+};
+
+// Load paramaters
+(function() {
+ var location = window.location || { search: "", protocol: "file:" },
+ params = location.search.slice( 1 ).split( "&" ),
+ length = params.length,
+ urlParams = {},
+ current;
+
+ if ( params[ 0 ] ) {
+ for ( var i = 0; i < length; i++ ) {
+ current = params[ i ].split( "=" );
+ current[ 0 ] = decodeURIComponent( current[ 0 ] );
+ // allow just a key to turn on a flag, e.g., test.html?noglobals
+ current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true;
+ urlParams[ current[ 0 ] ] = current[ 1 ];
+ }
+ }
+
+ QUnit.urlParams = urlParams;
+ config.filter = urlParams.filter;
+
+ // Figure out if we're running the tests from a server or not
+ QUnit.isLocal = location.protocol === 'file:';
+}());
+
+// Expose the API as global variables, unless an 'exports'
+// object exists, in that case we assume we're in CommonJS - export everything at the end
+if ( typeof exports === "undefined" || typeof require === "undefined" ) {
+ extend(window, QUnit);
+ window.QUnit = QUnit;
+}
+
+// define these after exposing globals to keep them in these QUnit namespace only
+extend(QUnit, {
+ config: config,
+
+ // Initialize the configuration options
+ init: function() {
+ extend(config, {
+ stats: { all: 0, bad: 0 },
+ moduleStats: { all: 0, bad: 0 },
+ started: +new Date(),
+ updateRate: 1000,
+ blocking: false,
+ autostart: true,
+ autorun: false,
+ filter: "",
+ queue: [],
+ semaphore: 0
+ });
+
+ var qunit = id( "qunit" );
+ if ( qunit ) {
+ qunit.innerHTML =
+ '<h1 id="qunit-header">' + escapeInnerText( document.title ) + '</h1>' +
+ '<h2 id="qunit-banner"></h2>' +
+ '<div id="qunit-testrunner-toolbar"></div>' +
+ '<h2 id="qunit-userAgent"></h2>' +
+ '<ol id="qunit-tests"></ol>';
+ }
+
+ var tests = id( "qunit-tests" ),
+ banner = id( "qunit-banner" ),
+ result = id( "qunit-testresult" );
+
+ if ( tests ) {
+ tests.innerHTML = "";
+ }
+
+ if ( banner ) {
+ banner.className = "";
+ }
+
+ if ( result ) {
+ result.parentNode.removeChild( result );
+ }
+
+ if ( tests ) {
+ result = document.createElement( "p" );
+ result.id = "qunit-testresult";
+ result.className = "result";
+ tests.parentNode.insertBefore( result, tests );
+ result.innerHTML = 'Running...<br/>&nbsp;';
+ }
+ },
+
+ // Resets the test setup. Useful for tests that modify the DOM.
+ // If jQuery is available, uses jQuery's html(), otherwise just innerHTML.
+ reset: function() {
+ if ( window.jQuery ) {
+ jQuery( "#qunit-fixture" ).html( config.fixture );
+ } else {
+ var main = id( 'qunit-fixture' );
+ if ( main ) {
+ main.innerHTML = config.fixture;
+ }
+ }
+ },
+
+ // Trigger an event on an element.
+ // @example triggerEvent( document.body, "click" );
+ triggerEvent: function( elem, type, event ) {
+ if ( document.createEvent ) {
+ event = document.createEvent("MouseEvents");
+ event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,
+ 0, 0, 0, 0, 0, false, false, false, false, 0, null);
+ elem.dispatchEvent( event );
+
+ } else if ( elem.fireEvent ) {
+ elem.fireEvent("on"+type);
+ }
+ },
+
+ // Safe object type checking
+ is: function( type, obj ) {
+ return QUnit.objectType( obj ) == type;
+ },
+
+ objectType: function( obj ) {
+ if (typeof obj === "undefined") {
+ return "undefined";
+
+ // consider: typeof null === object
+ }
+ if (obj === null) {
+ return "null";
+ }
+
+ var type = toString.call( obj ).match(/^\[object\s(.*)\]$/)[1] || '';
+
+ switch (type) {
+ case 'Number':
+ if (isNaN(obj)) {
+ return "nan";
+ }
+ return "number";
+ case 'String':
+ case 'Boolean':
+ case 'Array':
+ case 'Date':
+ case 'RegExp':
+ case 'Function':
+ return type.toLowerCase();
+ }
+ if (typeof obj === "object") {
+ return "object";
+ }
+ return undefined;
+ },
+
+ push: function(result, actual, expected, message) {
+ if (!config.current) {
+ throw new Error("assertion outside test context, was " + sourceFromStacktrace());
+ }
+ var details = {
+ result: result,
+ message: message,
+ actual: actual,
+ expected: expected
+ };
+
+ message = escapeInnerText(message) || (result ? "okay" : "failed");
+ message = '<span class="test-message">' + message + "</span>";
+ var output = message;
+ if (!result) {
+ expected = escapeInnerText(QUnit.jsDump.parse(expected));
+ actual = escapeInnerText(QUnit.jsDump.parse(actual));
+ output += '<table><tr class="test-expected"><th>Expected: </th><td><pre>' + expected + '</pre></td></tr>';
+ if (actual != expected) {
+ output += '<tr class="test-actual"><th>Result: </th><td><pre>' + actual + '</pre></td></tr>';
+ output += '<tr class="test-diff"><th>Diff: </th><td><pre>' + QUnit.diff(expected, actual) +'</pre></td></tr>';
+ }
+ var source = sourceFromStacktrace();
+ if (source) {
+ details.source = source;
+ output += '<tr class="test-source"><th>Source: </th><td><pre>' + escapeInnerText(source) + '</pre></td></tr>';
+ }
+ output += "</table>";
+ }
+
+ runLoggingCallbacks( 'log', QUnit, details );
+
+ config.current.assertions.push({
+ result: !!result,
+ message: output
+ });
+ },
+
+ pushFailure: function(message, source) {
+ var details = {
+ result: false,
+ message: message
+ };
+ var output = escapeInnerText(message);
+ if (source) {
+ details.source = source;
+ output += '<table><tr class="test-source"><th>Source: </th><td><pre>' + escapeInnerText(source) + '</pre></td></tr></table>';
+ }
+ runLoggingCallbacks( 'log', QUnit, details );
+ config.current.assertions.push({
+ result: false,
+ message: output
+ });
+ },
+
+ url: function( params ) {
+ params = extend( extend( {}, QUnit.urlParams ), params );
+ var querystring = "?",
+ key;
+ for ( key in params ) {
+ if ( !hasOwn.call( params, key ) ) {
+ continue;
+ }
+ querystring += encodeURIComponent( key ) + "=" +
+ encodeURIComponent( params[ key ] ) + "&";
+ }
+ return window.location.pathname + querystring.slice( 0, -1 );
+ },
+
+ extend: extend,
+ id: id,
+ addEvent: addEvent
+});
+
+//QUnit.constructor is set to the empty F() above so that we can add to it's prototype later
+//Doing this allows us to tell if the following methods have been overwritten on the actual
+//QUnit object, which is a deprecated way of using the callbacks.
+extend(QUnit.constructor.prototype, {
+ // Logging callbacks; all receive a single argument with the listed properties
+ // run test/logs.html for any related changes
+ begin: registerLoggingCallback('begin'),
+ // done: { failed, passed, total, runtime }
+ done: registerLoggingCallback('done'),
+ // log: { result, actual, expected, message }
+ log: registerLoggingCallback('log'),
+ // testStart: { name }
+ testStart: registerLoggingCallback('testStart'),
+ // testDone: { name, failed, passed, total }
+ testDone: registerLoggingCallback('testDone'),
+ // moduleStart: { name }
+ moduleStart: registerLoggingCallback('moduleStart'),
+ // moduleDone: { name, failed, passed, total }
+ moduleDone: registerLoggingCallback('moduleDone')
+});
+
+if ( typeof document === "undefined" || document.readyState === "complete" ) {
+ config.autorun = true;
+}
+
+QUnit.load = function() {
+ runLoggingCallbacks( 'begin', QUnit, {} );
+
+ // Initialize the config, saving the execution queue
+ var oldconfig = extend({}, config);
+ QUnit.init();
+ extend(config, oldconfig);
+
+ config.blocking = false;
+
+ var urlConfigHtml = '', len = config.urlConfig.length;
+ for ( var i = 0, val; i < len; i++ ) {
+ val = config.urlConfig[i];
+ config[val] = QUnit.urlParams[val];
+ urlConfigHtml += '<label><input name="' + val + '" type="checkbox"' + ( config[val] ? ' checked="checked"' : '' ) + '>' + val + '</label>';
+ }
+
+ var userAgent = id("qunit-userAgent");
+ if ( userAgent ) {
+ userAgent.innerHTML = navigator.userAgent;
+ }
+ var banner = id("qunit-header");
+ if ( banner ) {
+ banner.innerHTML = '<a href="' + QUnit.url({ filter: undefined }) + '"> ' + banner.innerHTML + '</a> ' + urlConfigHtml;
+ addEvent( banner, "change", function( event ) {
+ var params = {};
+ params[ event.target.name ] = event.target.checked ? true : undefined;
+ window.location = QUnit.url( params );
+ });
+ }
+
+ var toolbar = id("qunit-testrunner-toolbar");
+ if ( toolbar ) {
+ var filter = document.createElement("input");
+ filter.type = "checkbox";
+ filter.id = "qunit-filter-pass";
+ addEvent( filter, "click", function() {
+ var ol = document.getElementById("qunit-tests");
+ if ( filter.checked ) {
+ ol.className = ol.className + " hidepass";
+ } else {
+ var tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " ";
+ ol.className = tmp.replace(/ hidepass /, " ");
+ }
+ if ( defined.sessionStorage ) {
+ if (filter.checked) {
+ sessionStorage.setItem("qunit-filter-passed-tests", "true");
+ } else {
+ sessionStorage.removeItem("qunit-filter-passed-tests");
+ }
+ }
+ });
+ if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem("qunit-filter-passed-tests") ) {
+ filter.checked = true;
+ var ol = document.getElementById("qunit-tests");
+ ol.className = ol.className + " hidepass";
+ }
+ toolbar.appendChild( filter );
+
+ var label = document.createElement("label");
+ label.setAttribute("for", "qunit-filter-pass");
+ label.innerHTML = "Hide passed tests";
+ toolbar.appendChild( label );
+ }
+
+ var main = id('qunit-fixture');
+ if ( main ) {
+ config.fixture = main.innerHTML;
+ }
+
+ if (config.autostart) {
+ QUnit.start();
+ }
+};
+
+addEvent(window, "load", QUnit.load);
+
+// addEvent(window, "error") gives us a useless event object
+window.onerror = function( message, file, line ) {
+ if ( QUnit.config.current ) {
+ QUnit.pushFailure( message, file + ":" + line );
+ } else {
+ QUnit.test( "global failure", function() {
+ QUnit.pushFailure( message, file + ":" + line );
+ });
+ }
+};
+
+function done() {
+ config.autorun = true;
+
+ // Log the last module results
+ if ( config.currentModule ) {
+ runLoggingCallbacks( 'moduleDone', QUnit, {
+ name: config.currentModule,
+ failed: config.moduleStats.bad,
+ passed: config.moduleStats.all - config.moduleStats.bad,
+ total: config.moduleStats.all
+ } );
+ }
+
+ var banner = id("qunit-banner"),
+ tests = id("qunit-tests"),
+ runtime = +new Date() - config.started,
+ passed = config.stats.all - config.stats.bad,
+ html = [
+ 'Tests completed in ',
+ runtime,
+ ' milliseconds.<br/>',
+ '<span class="passed">',
+ passed,
+ '</span> tests of <span class="total">',
+ config.stats.all,
+ '</span> passed, <span class="failed">',
+ config.stats.bad,
+ '</span> failed.'
+ ].join('');
+
+ if ( banner ) {
+ banner.className = (config.stats.bad ? "qunit-fail" : "qunit-pass");
+ }
+
+ if ( tests ) {
+ id( "qunit-testresult" ).innerHTML = html;
+ }
+
+ if ( config.altertitle && typeof document !== "undefined" && document.title ) {
+ // show ✖ for good, ✔ for bad suite result in title
+ // use escape sequences in case file gets loaded with non-utf-8-charset
+ document.title = [
+ (config.stats.bad ? "\u2716" : "\u2714"),
+ document.title.replace(/^[\u2714\u2716] /i, "")
+ ].join(" ");
+ }
+
+ // clear own sessionStorage items if all tests passed
+ if ( config.reorder && defined.sessionStorage && config.stats.bad === 0 ) {
+ var key;
+ for ( var i = 0; i < sessionStorage.length; i++ ) {
+ key = sessionStorage.key( i++ );
+ if ( key.indexOf("qunit-test-") === 0 ) {
+ sessionStorage.removeItem( key );
+ }
+ }
+ }
+
+ runLoggingCallbacks( 'done', QUnit, {
+ failed: config.stats.bad,
+ passed: passed,
+ total: config.stats.all,
+ runtime: runtime
+ } );
+}
+
+function validTest( name ) {
+ var filter = config.filter,
+ run = false;
+
+ if ( !filter ) {
+ return true;
+ }
+
+ var not = filter.charAt( 0 ) === "!";
+ if ( not ) {
+ filter = filter.slice( 1 );
+ }
+
+ if ( name.indexOf( filter ) !== -1 ) {
+ return !not;
+ }
+
+ if ( not ) {
+ run = true;
+ }
+
+ return run;
+}
+
+// so far supports only Firefox, Chrome and Opera (buggy), Safari (for real exceptions)
+// Later Safari and IE10 are supposed to support error.stack as well
+// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack
+function extractStacktrace( e, offset ) {
+ offset = offset || 3;
+ if (e.stacktrace) {
+ // Opera
+ return e.stacktrace.split("\n")[offset + 3];
+ } else if (e.stack) {
+ // Firefox, Chrome
+ var stack = e.stack.split("\n");
+ if (/^error$/i.test(stack[0])) {
+ stack.shift();
+ }
+ return stack[offset];
+ } else if (e.sourceURL) {
+ // Safari, PhantomJS
+ // hopefully one day Safari provides actual stacktraces
+ // exclude useless self-reference for generated Error objects
+ if ( /qunit.js$/.test( e.sourceURL ) ) {
+ return;
+ }
+ // for actual exceptions, this is useful
+ return e.sourceURL + ":" + e.line;
+ }
+}
+function sourceFromStacktrace(offset) {
+ try {
+ throw new Error();
+ } catch ( e ) {
+ return extractStacktrace( e, offset );
+ }
+}
+
+function escapeInnerText(s) {
+ if (!s) {
+ return "";
+ }
+ s = s + "";
+ return s.replace(/[\&<>]/g, function(s) {
+ switch(s) {
+ case "&": return "&amp;";
+ case "<": return "&lt;";
+ case ">": return "&gt;";
+ default: return s;
+ }
+ });
+}
+
+function synchronize( callback, last ) {
+ config.queue.push( callback );
+
+ if ( config.autorun && !config.blocking ) {
+ process(last);
+ }
+}
+
+function process( last ) {
+ function next() {
+ process( last );
+ }
+ var start = new Date().getTime();
+ config.depth = config.depth ? config.depth + 1 : 1;
+
+ while ( config.queue.length && !config.blocking ) {
+ if ( !defined.setTimeout || config.updateRate <= 0 || ( ( new Date().getTime() - start ) < config.updateRate ) ) {
+ config.queue.shift()();
+ } else {
+ window.setTimeout( next, 13 );
+ break;
+ }
+ }
+ config.depth--;
+ if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) {
+ done();
+ }
+}
+
+function saveGlobal() {
+ config.pollution = [];
+
+ if ( config.noglobals ) {
+ for ( var key in window ) {
+ if ( !hasOwn.call( window, key ) ) {
+ continue;
+ }
+ config.pollution.push( key );
+ }
+ }
+}
+
+function checkPollution( name ) {
+ var old = config.pollution;
+ saveGlobal();
+
+ var newGlobals = diff( config.pollution, old );
+ if ( newGlobals.length > 0 ) {
+ QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join(", ") );
+ }
+
+ var deletedGlobals = diff( old, config.pollution );
+ if ( deletedGlobals.length > 0 ) {
+ QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join(", ") );
+ }
+}
+
+// returns a new Array with the elements that are in a but not in b
+function diff( a, b ) {
+ var result = a.slice();
+ for ( var i = 0; i < result.length; i++ ) {
+ for ( var j = 0; j < b.length; j++ ) {
+ if ( result[i] === b[j] ) {
+ result.splice(i, 1);
+ i--;
+ break;
+ }
+ }
+ }
+ return result;
+}
+
+function extend(a, b) {
+ for ( var prop in b ) {
+ if ( b[prop] === undefined ) {
+ delete a[prop];
+
+ // Avoid "Member not found" error in IE8 caused by setting window.constructor
+ } else if ( prop !== "constructor" || a !== window ) {
+ a[prop] = b[prop];
+ }
+ }
+
+ return a;
+}
+
+function addEvent(elem, type, fn) {
+ if ( elem.addEventListener ) {
+ elem.addEventListener( type, fn, false );
+ } else if ( elem.attachEvent ) {
+ elem.attachEvent( "on" + type, fn );
+ } else {
+ fn();
+ }
+}
+
+function id(name) {
+ return !!(typeof document !== "undefined" && document && document.getElementById) &&
+ document.getElementById( name );
+}
+
+function registerLoggingCallback(key){
+ return function(callback){
+ config[key].push( callback );
+ };
+}
+
+// Supports deprecated method of completely overwriting logging callbacks
+function runLoggingCallbacks(key, scope, args) {
+ //debugger;
+ var callbacks;
+ if ( QUnit.hasOwnProperty(key) ) {
+ QUnit[key].call(scope, args);
+ } else {
+ callbacks = config[key];
+ for( var i = 0; i < callbacks.length; i++ ) {
+ callbacks[i].call( scope, args );
+ }
+ }
+}
+
+// Test for equality any JavaScript type.
+// Author: Philippe Rathé <prathe@gmail.com>
+QUnit.equiv = (function() {
+
+ var innerEquiv; // the real equiv function
+ var callers = []; // stack to decide between skip/abort functions
+ var parents = []; // stack to avoiding loops from circular referencing
+
+ // Call the o related callback with the given arguments.
+ function bindCallbacks(o, callbacks, args) {
+ var prop = QUnit.objectType(o);
+ if (prop) {
+ if (QUnit.objectType(callbacks[prop]) === "function") {
+ return callbacks[prop].apply(callbacks, args);
+ } else {
+ return callbacks[prop]; // or undefined
+ }
+ }
+ }
+
+ var getProto = Object.getPrototypeOf || function (obj) {
+ return obj.__proto__;
+ };
+
+ var callbacks = (function () {
+
+ // for string, boolean, number and null
+ function useStrictEquality(b, a) {
+ if (b instanceof a.constructor || a instanceof b.constructor) {
+ // to catch short annotaion VS 'new' annotation of a
+ // declaration
+ // e.g. var i = 1;
+ // var j = new Number(1);
+ return a == b;
+ } else {
+ return a === b;
+ }
+ }
+
+ return {
+ "string" : useStrictEquality,
+ "boolean" : useStrictEquality,
+ "number" : useStrictEquality,
+ "null" : useStrictEquality,
+ "undefined" : useStrictEquality,
+
+ "nan" : function(b) {
+ return isNaN(b);
+ },
+
+ "date" : function(b, a) {
+ return QUnit.objectType(b) === "date" && a.valueOf() === b.valueOf();
+ },
+
+ "regexp" : function(b, a) {
+ return QUnit.objectType(b) === "regexp" &&
+ // the regex itself
+ a.source === b.source &&
+ // and its modifers
+ a.global === b.global &&
+ // (gmi) ...
+ a.ignoreCase === b.ignoreCase &&
+ a.multiline === b.multiline;
+ },
+
+ // - skip when the property is a method of an instance (OOP)
+ // - abort otherwise,
+ // initial === would have catch identical references anyway
+ "function" : function() {
+ var caller = callers[callers.length - 1];
+ return caller !== Object && typeof caller !== "undefined";
+ },
+
+ "array" : function(b, a) {
+ var i, j, loop;
+ var len;
+
+ // b could be an object literal here
+ if (QUnit.objectType(b) !== "array") {
+ return false;
+ }
+
+ len = a.length;
+ if (len !== b.length) { // safe and faster
+ return false;
+ }
+
+ // track reference to avoid circular references
+ parents.push(a);
+ for (i = 0; i < len; i++) {
+ loop = false;
+ for (j = 0; j < parents.length; j++) {
+ if (parents[j] === a[i]) {
+ loop = true;// dont rewalk array
+ }
+ }
+ if (!loop && !innerEquiv(a[i], b[i])) {
+ parents.pop();
+ return false;
+ }
+ }
+ parents.pop();
+ return true;
+ },
+
+ "object" : function(b, a) {
+ var i, j, loop;
+ var eq = true; // unless we can proove it
+ var aProperties = [], bProperties = []; // collection of
+ // strings
+
+ // comparing constructors is more strict than using
+ // instanceof
+ if (a.constructor !== b.constructor) {
+ // Allow objects with no prototype to be equivalent to
+ // objects with Object as their constructor.
+ if (!((getProto(a) === null && getProto(b) === Object.prototype) ||
+ (getProto(b) === null && getProto(a) === Object.prototype)))
+ {
+ return false;
+ }
+ }
+
+ // stack constructor before traversing properties
+ callers.push(a.constructor);
+ // track reference to avoid circular references
+ parents.push(a);
+
+ for (i in a) { // be strict: don't ensures hasOwnProperty
+ // and go deep
+ loop = false;
+ for (j = 0; j < parents.length; j++) {
+ if (parents[j] === a[i]) {
+ // don't go down the same path twice
+ loop = true;
+ }
+ }
+ aProperties.push(i); // collect a's properties
+
+ if (!loop && !innerEquiv(a[i], b[i])) {
+ eq = false;
+ break;
+ }
+ }
+
+ callers.pop(); // unstack, we are done
+ parents.pop();
+
+ for (i in b) {
+ bProperties.push(i); // collect b's properties
+ }
+
+ // Ensures identical properties name
+ return eq && innerEquiv(aProperties.sort(), bProperties.sort());
+ }
+ };
+ }());
+
+ innerEquiv = function() { // can take multiple arguments
+ var args = Array.prototype.slice.apply(arguments);
+ if (args.length < 2) {
+ return true; // end transition
+ }
+
+ return (function(a, b) {
+ if (a === b) {
+ return true; // catch the most you can
+ } else if (a === null || b === null || typeof a === "undefined" ||
+ typeof b === "undefined" ||
+ QUnit.objectType(a) !== QUnit.objectType(b)) {
+ return false; // don't lose time with error prone cases
+ } else {
+ return bindCallbacks(a, callbacks, [ b, a ]);
+ }
+
+ // apply transition with (1..n) arguments
+ }(args[0], args[1]) && arguments.callee.apply(this, args.splice(1, args.length - 1)));
+ };
+
+ return innerEquiv;
+
+}());
+
+/**
+ * jsDump Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com |
+ * http://flesler.blogspot.com Licensed under BSD
+ * (http://www.opensource.org/licenses/bsd-license.php) Date: 5/15/2008
+ *
+ * @projectDescription Advanced and extensible data dumping for Javascript.
+ * @version 1.0.0
+ * @author Ariel Flesler
+ * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html}
+ */
+QUnit.jsDump = (function() {
+ function quote( str ) {
+ return '"' + str.toString().replace(/"/g, '\\"') + '"';
+ }
+ function literal( o ) {
+ return o + '';
+ }
+ function join( pre, arr, post ) {
+ var s = jsDump.separator(),
+ base = jsDump.indent(),
+ inner = jsDump.indent(1);
+ if ( arr.join ) {
+ arr = arr.join( ',' + s + inner );
+ }
+ if ( !arr ) {
+ return pre + post;
+ }
+ return [ pre, inner + arr, base + post ].join(s);
+ }
+ function array( arr, stack ) {
+ var i = arr.length, ret = new Array(i);
+ this.up();
+ while ( i-- ) {
+ ret[i] = this.parse( arr[i] , undefined , stack);
+ }
+ this.down();
+ return join( '[', ret, ']' );
+ }
+
+ var reName = /^function (\w+)/;
+
+ var jsDump = {
+ parse: function( obj, type, stack ) { //type is used mostly internally, you can fix a (custom)type in advance
+ stack = stack || [ ];
+ var parser = this.parsers[ type || this.typeOf(obj) ];
+ type = typeof parser;
+ var inStack = inArray(obj, stack);
+ if (inStack != -1) {
+ return 'recursion('+(inStack - stack.length)+')';
+ }
+ //else
+ if (type == 'function') {
+ stack.push(obj);
+ var res = parser.call( this, obj, stack );
+ stack.pop();
+ return res;
+ }
+ // else
+ return (type == 'string') ? parser : this.parsers.error;
+ },
+ typeOf: function( obj ) {
+ var type;
+ if ( obj === null ) {
+ type = "null";
+ } else if (typeof obj === "undefined") {
+ type = "undefined";
+ } else if (QUnit.is("RegExp", obj)) {
+ type = "regexp";
+ } else if (QUnit.is("Date", obj)) {
+ type = "date";
+ } else if (QUnit.is("Function", obj)) {
+ type = "function";
+ } else if (typeof obj.setInterval !== undefined && typeof obj.document !== "undefined" && typeof obj.nodeType === "undefined") {
+ type = "window";
+ } else if (obj.nodeType === 9) {
+ type = "document";
+ } else if (obj.nodeType) {
+ type = "node";
+ } else if (
+ // native arrays
+ toString.call( obj ) === "[object Array]" ||
+ // NodeList objects
+ ( typeof obj.length === "number" && typeof obj.item !== "undefined" && ( obj.length ? obj.item(0) === obj[0] : ( obj.item( 0 ) === null && typeof obj[0] === "undefined" ) ) )
+ ) {
+ type = "array";
+ } else {
+ type = typeof obj;
+ }
+ return type;
+ },
+ separator: function() {
+ return this.multiline ? this.HTML ? '<br />' : '\n' : this.HTML ? '&nbsp;' : ' ';
+ },
+ indent: function( extra ) {// extra can be a number, shortcut for increasing-calling-decreasing
+ if ( !this.multiline ) {
+ return '';
+ }
+ var chr = this.indentChar;
+ if ( this.HTML ) {
+ chr = chr.replace(/\t/g,' ').replace(/ /g,'&nbsp;');
+ }
+ return new Array( this._depth_ + (extra||0) ).join(chr);
+ },
+ up: function( a ) {
+ this._depth_ += a || 1;
+ },
+ down: function( a ) {
+ this._depth_ -= a || 1;
+ },
+ setParser: function( name, parser ) {
+ this.parsers[name] = parser;
+ },
+ // The next 3 are exposed so you can use them
+ quote: quote,
+ literal: literal,
+ join: join,
+ //
+ _depth_: 1,
+ // This is the list of parsers, to modify them, use jsDump.setParser
+ parsers: {
+ window: '[Window]',
+ document: '[Document]',
+ error: '[ERROR]', //when no parser is found, shouldn't happen
+ unknown: '[Unknown]',
+ 'null': 'null',
+ 'undefined': 'undefined',
+ 'function': function( fn ) {
+ var ret = 'function',
+ name = 'name' in fn ? fn.name : (reName.exec(fn)||[])[1];//functions never have name in IE
+ if ( name ) {
+ ret += ' ' + name;
+ }
+ ret += '(';
+
+ ret = [ ret, QUnit.jsDump.parse( fn, 'functionArgs' ), '){'].join('');
+ return join( ret, QUnit.jsDump.parse(fn,'functionCode'), '}' );
+ },
+ array: array,
+ nodelist: array,
+ 'arguments': array,
+ object: function( map, stack ) {
+ var ret = [ ], keys, key, val, i;
+ QUnit.jsDump.up();
+ if (Object.keys) {
+ keys = Object.keys( map );
+ } else {
+ keys = [];
+ for (key in map) { keys.push( key ); }
+ }
+ keys.sort();
+ for (i = 0; i < keys.length; i++) {
+ key = keys[ i ];
+ val = map[ key ];
+ ret.push( QUnit.jsDump.parse( key, 'key' ) + ': ' + QUnit.jsDump.parse( val, undefined, stack ) );
+ }
+ QUnit.jsDump.down();
+ return join( '{', ret, '}' );
+ },
+ node: function( node ) {
+ var open = QUnit.jsDump.HTML ? '&lt;' : '<',
+ close = QUnit.jsDump.HTML ? '&gt;' : '>';
+
+ var tag = node.nodeName.toLowerCase(),
+ ret = open + tag;
+
+ for ( var a in QUnit.jsDump.DOMAttrs ) {
+ var val = node[QUnit.jsDump.DOMAttrs[a]];
+ if ( val ) {
+ ret += ' ' + a + '=' + QUnit.jsDump.parse( val, 'attribute' );
+ }
+ }
+ return ret + close + open + '/' + tag + close;
+ },
+ functionArgs: function( fn ) {//function calls it internally, it's the arguments part of the function
+ var l = fn.length;
+ if ( !l ) {
+ return '';
+ }
+
+ var args = new Array(l);
+ while ( l-- ) {
+ args[l] = String.fromCharCode(97+l);//97 is 'a'
+ }
+ return ' ' + args.join(', ') + ' ';
+ },
+ key: quote, //object calls it internally, the key part of an item in a map
+ functionCode: '[code]', //function calls it internally, it's the content of the function
+ attribute: quote, //node calls it internally, it's an html attribute value
+ string: quote,
+ date: quote,
+ regexp: literal, //regex
+ number: literal,
+ 'boolean': literal
+ },
+ DOMAttrs:{//attributes to dump from nodes, name=>realName
+ id:'id',
+ name:'name',
+ 'class':'className'
+ },
+ HTML:false,//if true, entities are escaped ( <, >, \t, space and \n )
+ indentChar:' ',//indentation unit
+ multiline:true //if true, items in a collection, are separated by a \n, else just a space.
+ };
+
+ return jsDump;
+}());
+
+// from Sizzle.js
+function getText( elems ) {
+ var ret = "", elem;
+
+ for ( var i = 0; elems[i]; i++ ) {
+ elem = elems[i];
+
+ // Get the text from text nodes and CDATA nodes
+ if ( elem.nodeType === 3 || elem.nodeType === 4 ) {
+ ret += elem.nodeValue;
+
+ // Traverse everything else, except comment nodes
+ } else if ( elem.nodeType !== 8 ) {
+ ret += getText( elem.childNodes );
+ }
+ }
+
+ return ret;
+}
+
+//from jquery.js
+function inArray( elem, array ) {
+ if ( array.indexOf ) {
+ return array.indexOf( elem );
+ }
+
+ for ( var i = 0, length = array.length; i < length; i++ ) {
+ if ( array[ i ] === elem ) {
+ return i;
+ }
+ }
+
+ return -1;
+}
+
+/*
+ * Javascript Diff Algorithm
+ * By John Resig (http://ejohn.org/)
+ * Modified by Chu Alan "sprite"
+ *
+ * Released under the MIT license.
+ *
+ * More Info:
+ * http://ejohn.org/projects/javascript-diff-algorithm/
+ *
+ * Usage: QUnit.diff(expected, actual)
+ *
+ * QUnit.diff("the quick brown fox jumped over", "the quick fox jumps over") == "the quick <del>brown </del> fox <del>jumped </del><ins>jumps </ins> over"
+ */
+QUnit.diff = (function() {
+ function diff(o, n) {
+ var ns = {};
+ var os = {};
+ var i;
+
+ for (i = 0; i < n.length; i++) {
+ if (ns[n[i]] == null) {
+ ns[n[i]] = {
+ rows: [],
+ o: null
+ };
+ }
+ ns[n[i]].rows.push(i);
+ }
+
+ for (i = 0; i < o.length; i++) {
+ if (os[o[i]] == null) {
+ os[o[i]] = {
+ rows: [],
+ n: null
+ };
+ }
+ os[o[i]].rows.push(i);
+ }
+
+ for (i in ns) {
+ if ( !hasOwn.call( ns, i ) ) {
+ continue;
+ }
+ if (ns[i].rows.length == 1 && typeof(os[i]) != "undefined" && os[i].rows.length == 1) {
+ n[ns[i].rows[0]] = {
+ text: n[ns[i].rows[0]],
+ row: os[i].rows[0]
+ };
+ o[os[i].rows[0]] = {
+ text: o[os[i].rows[0]],
+ row: ns[i].rows[0]
+ };
+ }
+ }
+
+ for (i = 0; i < n.length - 1; i++) {
+ if (n[i].text != null && n[i + 1].text == null && n[i].row + 1 < o.length && o[n[i].row + 1].text == null &&
+ n[i + 1] == o[n[i].row + 1]) {
+ n[i + 1] = {
+ text: n[i + 1],
+ row: n[i].row + 1
+ };
+ o[n[i].row + 1] = {
+ text: o[n[i].row + 1],
+ row: i + 1
+ };
+ }
+ }
+
+ for (i = n.length - 1; i > 0; i--) {
+ if (n[i].text != null && n[i - 1].text == null && n[i].row > 0 && o[n[i].row - 1].text == null &&
+ n[i - 1] == o[n[i].row - 1]) {
+ n[i - 1] = {
+ text: n[i - 1],
+ row: n[i].row - 1
+ };
+ o[n[i].row - 1] = {
+ text: o[n[i].row - 1],
+ row: i - 1
+ };
+ }
+ }
+
+ return {
+ o: o,
+ n: n
+ };
+ }
+
+ return function(o, n) {
+ o = o.replace(/\s+$/, '');
+ n = n.replace(/\s+$/, '');
+ var out = diff(o === "" ? [] : o.split(/\s+/), n === "" ? [] : n.split(/\s+/));
+
+ var str = "";
+ var i;
+
+ var oSpace = o.match(/\s+/g);
+ if (oSpace == null) {
+ oSpace = [" "];
+ }
+ else {
+ oSpace.push(" ");
+ }
+ var nSpace = n.match(/\s+/g);
+ if (nSpace == null) {
+ nSpace = [" "];
+ }
+ else {
+ nSpace.push(" ");
+ }
+
+ if (out.n.length === 0) {
+ for (i = 0; i < out.o.length; i++) {
+ str += '<del>' + out.o[i] + oSpace[i] + "</del>";
+ }
+ }
+ else {
+ if (out.n[0].text == null) {
+ for (n = 0; n < out.o.length && out.o[n].text == null; n++) {
+ str += '<del>' + out.o[n] + oSpace[n] + "</del>";
+ }
+ }
+
+ for (i = 0; i < out.n.length; i++) {
+ if (out.n[i].text == null) {
+ str += '<ins>' + out.n[i] + nSpace[i] + "</ins>";
+ }
+ else {
+ var pre = "";
+
+ for (n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++) {
+ pre += '<del>' + out.o[n] + oSpace[n] + "</del>";
+ }
+ str += " " + out.n[i].text + nSpace[i] + pre;
+ }
+ }
+ }
+
+ return str;
+ };
+}());
+
+// for CommonJS enviroments, export everything
+if ( typeof exports !== "undefined" || typeof require !== "undefined" ) {
+ extend(exports, QUnit);
+}
+
+// get at whatever the global object is, like window in browsers
+}( (function() {return this;}.call()) ));
diff --git a/public/bower_components/bootstrap-datepicker/tests/assets/utils.js b/public/bower_components/bootstrap-datepicker/tests/assets/utils.js
new file mode 100644
index 0000000..6f9cac5
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/assets/utils.js
@@ -0,0 +1,21 @@
+function UTCDate(){
+ return new Date(Date.UTC.apply(Date, arguments));
+}
+
+
+function format_date(date){
+ var y = date.getUTCFullYear(),
+ m = date.getUTCMonth() + 1,
+ d = date.getUTCDate(),
+ h = date.getUTCHours(),
+ i = date.getUTCMinutes(),
+ s = date.getUTCSeconds(),
+ l = date.getUTCMilliseconds();
+ function z(i){return (i <= 9 ? '0'+i : i);}
+ return y+'-'+z(m)+'-'+z(d)+' '+z(h)+':'+z(i)+':'+z(s)+'.'+z(l);
+}
+
+
+function datesEqual(actual, expected, message){
+ QUnit.push(QUnit.equiv(actual, expected), format_date(actual), format_date(expected), message);
+}
diff --git a/public/bower_components/bootstrap-datepicker/tests/suites/calendar-weeks.js b/public/bower_components/bootstrap-datepicker/tests/suites/calendar-weeks.js
new file mode 100644
index 0000000..258c29c
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/suites/calendar-weeks.js
@@ -0,0 +1,48 @@
+module('Calendar Weeks', {
+ setup: function(){
+ this.input = $('<input type="text">')
+ .appendTo('#qunit-fixture')
+ .val('2013-01-14')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ calendarWeeks: true
+ })
+ .focus(); // Activate for visibility checks
+ this.dp = this.input.data('datepicker');
+ this.picker = this.dp.picker;
+ },
+ teardown: function(){
+ this.picker.remove();
+ }
+});
+
+test('adds cw header column', function(){
+ var target = this.picker.find('.datepicker-days thead tr:nth-child(3) th:first-child');
+ ok(target.hasClass('cw'), 'First column heading is from cw column');
+});
+
+test('adds calendar week cells to each day row', function(){
+ var target = this.picker.find('.datepicker-days tbody tr');
+
+ expect(target.length);
+ target.each(function(i){
+ var t = $(this).children().first();
+ ok(t.hasClass('cw'), "First column is cw column");
+ });
+});
+
+test('displays correct calendar week', function(){
+ var target = this.picker.find('.datepicker-days tbody tr');
+
+ expect(target.length);
+ target.each(function(i){
+ var t = $(this).children().first();
+ equal(t.text(), i+1, "Displays correct calendar weeks");
+ });
+});
+
+test('it prepends column to switcher thead row', function(){
+ var target = this.picker.find('.datepicker-days thead tr:nth-child(2)');
+ equal(target.children().length, 3, 'first row has 3 columns');
+ ok(!target.children().first().hasClass('cw'), 'cw column is not prepended');
+});
diff --git a/public/bower_components/bootstrap-datepicker/tests/suites/component.js b/public/bower_components/bootstrap-datepicker/tests/suites/component.js
new file mode 100644
index 0000000..7540b73
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/suites/component.js
@@ -0,0 +1,267 @@
+module('Component', {
+ setup: function(){
+ this.component = $('<div class="input-append date" id="datepicker">'+
+ '<input size="16" type="text" value="12-02-2012" readonly>'+
+ '<span class="add-on"><i class="icon-th"></i></span>'+
+ '</div>')
+ .appendTo('#qunit-fixture')
+ .datepicker({format: "dd-mm-yyyy"});
+ this.input = this.component.find('input');
+ this.addon = this.component.find('.add-on');
+ this.dp = this.component.data('datepicker');
+ this.picker = this.dp.picker;
+ },
+ teardown: function(){
+ this.picker.remove();
+ }
+});
+
+
+test('Component gets date/viewDate from input value', function(){
+ datesEqual(this.dp.getUTCDate(), UTCDate(2012, 1, 12));
+ datesEqual(this.dp.viewDate, UTCDate(2012, 1, 12));
+});
+
+test('Activation by component', function(){
+ ok(!this.picker.is(':visible'));
+ this.addon.click();
+ ok(this.picker.is(':visible'));
+});
+
+test('Dont activation (by disabled) by component', function(){
+ ok(!this.picker.is(':visible'));
+ this.input.prop('disabled', true);
+ this.addon.click();
+ ok(!this.picker.is(':visible'));
+ this.input.prop('disabled', false);
+});
+
+test('simple keyboard nav test', function(){
+ var target;
+
+ // Keyboard nav only works with non-readonly inputs
+ this.input.removeAttr('readonly');
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'February 2012', 'Title is "February 2012"');
+ datesEqual(this.dp.getUTCDate(), UTCDate(2012, 1, 12));
+ datesEqual(this.dp.viewDate, UTCDate(2012, 1, 12));
+
+ // Focus/open
+ this.addon.click();
+
+ // Navigation: -1 day, left arrow key
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 37
+ });
+ datesEqual(this.dp.viewDate, UTCDate(2012, 1, 11));
+ datesEqual(this.dp.getUTCDate(), UTCDate(2012, 1, 12));
+ datesEqual(this.dp.focusDate, UTCDate(2012, 1, 11));
+ // Month not changed
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'February 2012', 'Title is "February 2012"');
+
+ // Navigation: +1 month, shift + right arrow key
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 39,
+ shiftKey: true
+ });
+ datesEqual(this.dp.viewDate, UTCDate(2012, 2, 11));
+ datesEqual(this.dp.getUTCDate(), UTCDate(2012, 1, 12));
+ datesEqual(this.dp.focusDate, UTCDate(2012, 2, 11));
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2012', 'Title is "March 2012"');
+
+ // Navigation: -1 year, ctrl + left arrow key
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 37,
+ ctrlKey: true
+ });
+ datesEqual(this.dp.viewDate, UTCDate(2011, 2, 11));
+ datesEqual(this.dp.getUTCDate(), UTCDate(2012, 1, 12));
+ datesEqual(this.dp.focusDate, UTCDate(2011, 2, 11));
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2011', 'Title is "March 2011"');
+});
+
+test('setValue', function(){
+ this.dp.dates.replace(UTCDate(2012, 2, 13));
+ this.dp.setValue();
+ datesEqual(this.dp.dates[0], UTCDate(2012, 2, 13));
+ equal(this.input.val(), '13-03-2012');
+});
+
+test('update', function(){
+ this.input.val('13-03-2012');
+ this.dp.update();
+ equal(this.dp.dates.length, 1);
+ datesEqual(this.dp.dates[0], UTCDate(2012, 2, 13));
+});
+
+test('Navigating to/from decade view', function(){
+ var target;
+
+ this.addon.click();
+ this.input.val('31-03-2012');
+ this.dp.update();
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ ok(target.is(':visible'), 'View switcher is visible');
+
+ target.click();
+ ok(this.picker.find('.datepicker-months').is(':visible'), 'Month picker is visible');
+ equal(this.dp.viewMode, 1);
+ // Not modified when switching modes
+ datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31));
+ datesEqual(this.dp.dates[0], UTCDate(2012, 2, 31));
+
+ target = this.picker.find('.datepicker-months thead th.datepicker-switch');
+ ok(target.is(':visible'), 'View switcher is visible');
+
+ target.click();
+ ok(this.picker.find('.datepicker-years').is(':visible'), 'Year picker is visible');
+ equal(this.dp.viewMode, 2);
+ // Not modified when switching modes
+ datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31));
+ datesEqual(this.dp.dates[0], UTCDate(2012, 2, 31));
+
+ // Change years to test internal state changes
+ target = this.picker.find('.datepicker-years tbody span:contains(2011)');
+ target.click();
+ equal(this.dp.viewMode, 1);
+ // Only viewDate modified
+ datesEqual(this.dp.viewDate, UTCDate(2011, 2, 1));
+ datesEqual(this.dp.dates[0], UTCDate(2012, 2, 31));
+
+ target = this.picker.find('.datepicker-months tbody span:contains(Apr)');
+ target.click();
+ equal(this.dp.viewMode, 0);
+ // Only viewDate modified
+ datesEqual(this.dp.viewDate, UTCDate(2011, 3, 1));
+ datesEqual(this.dp.dates[0], UTCDate(2012, 2, 31));
+});
+
+test('Selecting date resets viewDate and date', function(){
+ var target;
+
+ this.addon.click();
+ this.input.val('31-03-2012');
+ this.dp.update();
+
+ // Rendered correctly
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days tbody td:first');
+ equal(target.text(), '26'); // Should be Feb 26
+
+ // Updated internally on click
+ target.click();
+ datesEqual(this.dp.viewDate, UTCDate(2012, 1, 26));
+ datesEqual(this.dp.dates[0], UTCDate(2012, 1, 26));
+
+ // Re-rendered on click
+ target = this.picker.find('.datepicker-days tbody td:first');
+ equal(target.text(), '29'); // Should be Jan 29
+});
+
+test('"destroy" removes associated HTML', function(){
+ var datepickerDivSelector = '.datepicker';
+
+ $('#datepicker').datepicker('show');
+
+ //there should be one datepicker initiated so that means one hidden .datepicker div
+ equal($(datepickerDivSelector).length, 1);
+ this.component.datepicker('destroy');
+ equal($(datepickerDivSelector).length, 0);//hidden HTML should be gone
+});
+
+test('"remove" is an alias for "destroy"', function(){
+ var called, originalDestroy = this.dp.destroy;
+ this.dp.destroy = function () {
+ called = true;
+ return originalDestroy.apply(this, arguments);
+ };
+ this.dp.remove();
+ ok(called);
+});
+
+test('Does not block events', function(){
+ var clicks = 0;
+ function handler(){
+ clicks++;
+ }
+ $('#qunit-fixture').on('click', '.add-on', handler);
+ this.addon.click();
+ equal(clicks, 1);
+ $('#qunit-fixture').off('click', '.add-on', handler);
+});
+
+
+test('date and viewDate must be between startDate and endDate when setStartDate called', function() {
+ this.dp.setDate(new Date(2013, 1, 1));
+ datesEqual(this.dp.dates[0], UTCDate(2013, 1, 1));
+ datesEqual(this.dp.viewDate, UTCDate(2013, 1, 1));
+ this.dp.setStartDate(new Date(2013, 5, 6));
+ datesEqual(this.dp.viewDate, UTCDate(2013, 5, 6));
+ equal(this.dp.dates.length, 0);
+});
+
+test('date and viewDate must be between startDate and endDate when setEndDate called', function() {
+ this.dp.setDate(new Date(2013, 11, 1));
+ datesEqual(this.dp.dates[0], UTCDate(2013, 11, 1));
+ datesEqual(this.dp.viewDate, UTCDate(2013, 11, 1));
+ this.dp.setEndDate(new Date(2013, 5, 6));
+ datesEqual(this.dp.viewDate, UTCDate(2013, 5, 6));
+ equal(this.dp.dates.length, 0);
+});
+
+test('picker should render fine when `$.fn.show` and `$.fn.hide` are overridden', patch_show_hide(function () {
+ var viewModes = $.fn.datepicker.DPGlobal.viewModes,
+ minViewMode = this.dp.o.minViewMode,
+ maxViewMode = this.dp.o.maxViewMode,
+ childDivs = this.picker.children('div');
+
+ this.dp.setViewMode(minViewMode);
+
+ // Overwritten `$.fn.hide` method adds the `foo` class to its matched elements
+ var curDivShowing = childDivs.filter('.datepicker-' + viewModes[minViewMode].clsName);
+ ok(!curDivShowing.hasClass('foo'), 'Shown div does not have overridden `$.fn.hide` side-effects');
+
+ // Check that other classes do have `foo` class
+ var divNotShown;
+ for (var curViewMode = minViewMode + 1; curViewMode <= maxViewMode; curViewMode++) {
+ divNotShown = childDivs.filter('.datepicker-' + viewModes[curViewMode].clsName);
+ ok(divNotShown.hasClass('foo'), 'Other divs do have overridden `$.fn.hide` side-effects');
+ }
+}));
+
+test('Focused ceil for decade/century/millenium views', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .datepicker({
+ startView: 2,
+ defaultViewDate: {
+ year: 2115
+ }
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+
+ target = picker.find('.datepicker-years tbody .focused');
+ ok(target.text() === '2115', 'Year cell is focused');
+
+ picker.find('.datepicker-years thead th.datepicker-switch').click();
+ target = picker.find('.datepicker-decades tbody .focused');
+ ok(target.text() === '2110', 'Decade cell is focused');
+
+ picker.find('.datepicker-decades thead th.datepicker-switch').click();
+ target = picker.find('.datepicker-centuries tbody .focused');
+ ok(target.text() === '2100', 'Century cell is focused');
+});
diff --git a/public/bower_components/bootstrap-datepicker/tests/suites/data-api.js b/public/bower_components/bootstrap-datepicker/tests/suites/data-api.js
new file mode 100644
index 0000000..a751f57
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/suites/data-api.js
@@ -0,0 +1,114 @@
+module('DATA-API');
+
+test('DATA-API: data-provide="datepicker" on input; focus', function(){
+ var input = $('<input data-provide="datepicker" />')
+ .appendTo('#qunit-fixture');
+ input.focus();
+ ok(input.data('datepicker'), 'datepicker is initialized by "focus" event');
+});
+
+test('DATA-API: data-provide="datepicker" on input; click', function(){
+ var input = $('<input data-provide="datepicker" />')
+ .appendTo('#qunit-fixture');
+ input.click();
+ ok(input.data('datepicker'), 'datepicker is initialized by "focus" event');
+});
+
+test('DATA-API: data-provide="datepicker" on component', function(){
+ var html, comp;
+
+ html = '<div class="input-append date" data-provide="datepicker">'+
+ '<input><span class="add-on"><i class="icon-th"></i></span>'+
+ '</div>';
+
+ comp = $(html).appendTo('#qunit-fixture');
+ comp.find('input').focus();
+ ok(comp.data('datepicker'), 'append component initialized by "focus" event on input');
+ comp.remove();
+
+ comp = $(html).appendTo('#qunit-fixture');
+ comp.find('input').click();
+ ok(comp.data('datepicker'), 'append component initialized by "click" event on input');
+ comp.remove();
+
+ comp = $(html).appendTo('#qunit-fixture');
+ comp.find('.add-on').focus();
+ ok(comp.data('datepicker'), 'append component initialized by "focus" event on add-on');
+ comp.remove();
+
+ comp = $(html).appendTo('#qunit-fixture');
+ comp.find('.add-on').click();
+ ok(comp.data('datepicker'), 'append component initialized by "click" event on add-on');
+ comp.remove();
+
+
+ html = '<div class="input-prepend date" data-provide="datepicker">'+
+ '<span class="add-on"><i class="icon-th"></i></span><input>'+
+ '</div>';
+
+ comp = $(html).prependTo('#qunit-fixture');
+ comp.find('input').focus();
+ ok(comp.data('datepicker'), 'prepend component initialized by "focus" event on input');
+ comp.remove();
+
+ comp = $(html).prependTo('#qunit-fixture');
+ comp.find('input').click();
+ ok(comp.data('datepicker'), 'prepend component initialized by "click" event on input');
+ comp.remove();
+
+ comp = $(html).prependTo('#qunit-fixture');
+ comp.find('.add-on').focus();
+ ok(comp.data('datepicker'), 'prepend component initialized by "focus" event on add-on');
+ comp.remove();
+
+ comp = $(html).prependTo('#qunit-fixture');
+ comp.find('.add-on').click();
+ ok(comp.data('datepicker'), 'prepend component initialized by "click" event on add-on');
+ comp.remove();
+});
+
+test('DATA-API: data-provide="datepicker" on button', function(){
+ var html, comp;
+
+ html = '<button data-provide="datepicker">';
+
+ comp = $(html).appendTo('#qunit-fixture');
+ comp.focus();
+ ok(comp.data('datepicker'), 'button initialized by "focus" event on input');
+ comp.remove();
+
+ comp = $(html).appendTo('#qunit-fixture');
+ comp.click();
+ ok(comp.data('datepicker'), 'button initialized by "click" event on input');
+ comp.remove();
+});
+
+test('DATA-API: data-provide="datepicker" on rangepicker', function(){
+ var html, comp;
+
+ html = '<div class="input-daterange" data-provide="datepicker">'+
+ '<input class="datepicker">'+
+ '<span class="add-on">to</span>'+
+ '<input class="datepicker">'+
+ '</div>';
+
+ comp = $(html).appendTo('#qunit-fixture');
+ comp.find('input:first').focus();
+ ok(comp.data('datepicker'), 'range initialized by "focus" event on first input');
+ comp.remove();
+
+ comp = $(html).appendTo('#qunit-fixture');
+ comp.find('input:first').click();
+ ok(comp.data('datepicker'), 'range initialized by "click" event on first input');
+ comp.remove();
+
+ comp = $(html).appendTo('#qunit-fixture');
+ comp.find('input:last').focus();
+ ok(comp.data('datepicker'), 'range initialized by "focus" event on last input');
+ comp.remove();
+
+ comp = $(html).appendTo('#qunit-fixture');
+ comp.find('input:last').click();
+ ok(comp.data('datepicker'), 'range initialized by "click" event on last input');
+ comp.remove();
+});
diff --git a/public/bower_components/bootstrap-datepicker/tests/suites/events.js b/public/bower_components/bootstrap-datepicker/tests/suites/events.js
new file mode 100644
index 0000000..b1d92d2
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/suites/events.js
@@ -0,0 +1,507 @@
+module('Events on initialization', {
+ setup: function(){
+ this.input = $('<input type="text" value="31-03-2011">')
+ .appendTo('#qunit-fixture')
+ }
+});
+
+test('When initializing the datepicker, it should trigger no change or changeDate events', function(){
+ var triggered_change = 0,
+ triggered_changeDate = 0;
+
+ this.input.on({
+ change: function(){
+ triggered_change++;
+ },
+ changeDate: function(){
+ triggered_changeDate++;
+ }
+ });
+
+ this.input.datepicker({format: 'dd-mm-yyyy'});
+
+ equal(triggered_change, 0);
+ equal(triggered_changeDate, 0);
+});
+
+module('Events', {
+ setup: function(){
+ this.input = $('<input type="text" value="31-03-2011">')
+ .appendTo('#qunit-fixture')
+ .datepicker({format: "dd-mm-yyyy"})
+ .focus(); // Activate for visibility checks
+ this.dp = this.input.data('datepicker');
+ this.picker = this.dp.picker;
+ },
+ teardown: function(){
+ this.picker.remove();
+ }
+});
+
+test('Selecting a year from decade view triggers changeYear', function(){
+ var target,
+ triggered = 0;
+
+ this.input.on('changeYear', function(){
+ triggered++;
+ });
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ ok(target.is(':visible'), 'View switcher is visible');
+
+ target.click();
+ ok(this.picker.find('.datepicker-months').is(':visible'), 'Month picker is visible');
+ equal(this.dp.viewMode, 1);
+ // Not modified when switching modes
+ datesEqual(this.dp.viewDate, UTCDate(2011, 2, 31));
+ datesEqual(this.dp.dates[0], UTCDate(2011, 2, 31));
+
+ target = this.picker.find('.datepicker-months thead th.datepicker-switch');
+ ok(target.is(':visible'), 'View switcher is visible');
+
+ target.click();
+ ok(this.picker.find('.datepicker-years').is(':visible'), 'Year picker is visible');
+ equal(this.dp.viewMode, 2);
+ // Not modified when switching modes
+ datesEqual(this.dp.viewDate, UTCDate(2011, 2, 31));
+ datesEqual(this.dp.dates[0], UTCDate(2011, 2, 31));
+
+ // Change years to test internal state changes
+ target = this.picker.find('.datepicker-years tbody span:contains(2010)');
+ target.click();
+ equal(this.dp.viewMode, 1);
+ // Only viewDate modified
+ datesEqual(this.dp.viewDate, UTCDate(2010, 2, 1));
+ datesEqual(this.dp.dates[0], UTCDate(2011, 2, 31));
+ equal(triggered, 1);
+});
+
+test('Navigating forward/backward from month view triggers changeYear', function(){
+ var target,
+ triggered = 0;
+
+ this.input.on('changeYear', function(){
+ triggered++;
+ });
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ ok(target.is(':visible'), 'View switcher is visible');
+
+ target.click();
+ ok(this.picker.find('.datepicker-months').is(':visible'), 'Month picker is visible');
+ equal(this.dp.viewMode, 1);
+
+ target = this.picker.find('.datepicker-months thead th.prev');
+ ok(target.is(':visible'), 'Prev switcher is visible');
+
+ target.click();
+ ok(this.picker.find('.datepicker-months').is(':visible'), 'Month picker is visible');
+ equal(triggered, 1);
+
+ target = this.picker.find('.datepicker-months thead th.next');
+ ok(target.is(':visible'), 'Next switcher is visible');
+
+ target.click();
+ ok(this.picker.find('.datepicker-months').is(':visible'), 'Month picker is visible');
+ equal(triggered, 2);
+});
+
+test('Selecting a month from year view triggers changeMonth', function(){
+ var target,
+ triggered = 0;
+
+ this.input.on('changeMonth', function(){
+ triggered++;
+ });
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ ok(target.is(':visible'), 'View switcher is visible');
+
+ target.click();
+ ok(this.picker.find('.datepicker-months').is(':visible'), 'Month picker is visible');
+ equal(this.dp.viewMode, 1);
+ // Not modified when switching modes
+ datesEqual(this.dp.viewDate, UTCDate(2011, 2, 31));
+ datesEqual(this.dp.dates[0], UTCDate(2011, 2, 31));
+
+ target = this.picker.find('.datepicker-months tbody span:contains(Apr)');
+ target.click();
+ equal(this.dp.viewMode, 0);
+ // Only viewDate modified
+ datesEqual(this.dp.viewDate, UTCDate(2011, 3, 1));
+ datesEqual(this.dp.dates[0], UTCDate(2011, 2, 31));
+ equal(triggered, 1);
+});
+
+test('Navigating forward/backward from month view triggers changeMonth', function(){
+ var target,
+ triggered = 0;
+
+ this.input.on('changeMonth', function(){
+ triggered++;
+ });
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.prev');
+ ok(target.is(':visible'), 'Prev switcher is visible');
+
+ target.click();
+ ok(this.picker.find('.datepicker-days').is(':visible'), 'Day picker is visible');
+ equal(triggered, 1);
+
+ target = this.picker.find('.datepicker-days thead th.next');
+ ok(target.is(':visible'), 'Next switcher is visible');
+
+ target.click();
+ ok(this.picker.find('.datepicker-days').is(':visible'), 'Day picker is visible');
+ equal(triggered, 2);
+});
+
+test('format() returns a formatted date string', function(){
+ var target,
+ error, out;
+
+ this.input.on('changeDate', function(e){
+ try{
+ out = e.format();
+ }
+ catch(e){
+ error = e;
+ }
+ });
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days tbody td:nth(15)');
+ target.click();
+
+ datesEqual(this.dp.viewDate, UTCDate(2011, 2, 14));
+ datesEqual(this.dp.dates[0], UTCDate(2011, 2, 14));
+ equal(error, undefined);
+ equal(out, '14-03-2011');
+});
+
+test('format(altformat) returns a formatted date string', function(){
+ var target,
+ error, out;
+
+ this.input.on('changeDate', function(e){
+ try{
+ out = e.format('m/d/yy');
+ }
+ catch(e){
+ error = e;
+ }
+ });
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days tbody td:nth(15)');
+ target.click();
+
+ datesEqual(this.dp.viewDate, UTCDate(2011, 2, 14));
+ datesEqual(this.dp.dates[0], UTCDate(2011, 2, 14));
+ equal(error, undefined);
+ equal(out, '3/14/11');
+});
+
+test('format(ix) returns a formatted date string of the ix\'th date selected', function(){
+ var target,
+ error, out;
+
+ this.dp._process_options({multidate: true});
+
+ this.input.on('changeDate', function(e){
+ try{
+ out = e.format(2);
+ }
+ catch(e){
+ error = e;
+ }
+ });
+
+ target = this.picker.find('.datepicker-days tbody td:nth(7)');
+ equal(target.text(), '6'); // Mar 6
+ target.click();
+
+ target = this.picker.find('.datepicker-days tbody td:nth(15)');
+ equal(target.text(), '14'); // Mar 16
+ target.click();
+
+ equal(this.dp.dates.length, 3);
+
+ equal(error, undefined);
+ equal(out, '14-03-2011');
+});
+
+test('format(ix, altformat) returns a formatted date string', function(){
+ var target,
+ error, out;
+
+ this.dp._process_options({multidate: true});
+
+ this.input.on('changeDate', function(e){
+ try{
+ out = e.format(2, 'm/d/yy');
+ }
+ catch(e){
+ error = e;
+ }
+ });
+
+ target = this.picker.find('.datepicker-days tbody td:nth(7)');
+ equal(target.text(), '6'); // Mar 6
+ target.click();
+
+ target = this.picker.find('.datepicker-days tbody td:nth(15)');
+ equal(target.text(), '14'); // Mar 16
+ target.click();
+
+ equal(this.dp.dates.length, 3);
+
+ equal(error, undefined);
+ equal(out, '3/14/11');
+});
+
+test('Clear button: triggers change and changeDate events', function(){
+ this.input = $('<input type="text" value="31-03-2011">')
+ .appendTo('#qunit-fixture')
+ .datepicker({
+ format: "dd-mm-yyyy",
+ clearBtn: true
+ })
+ .focus(); // Activate for visibility checks
+ this.dp = this.input.data('datepicker');
+ this.picker = this.dp.picker;
+
+ var target,
+ triggered_change = 0,
+ triggered_changeDate = 0;
+
+ this.input.on({
+ changeDate: function(){
+ triggered_changeDate++;
+ },
+ change: function(){
+ triggered_change++;
+ }
+ });
+
+ this.input.focus();
+ ok(this.picker.find('.datepicker-days').is(':visible'), 'Days view visible');
+ ok(this.picker.find('.datepicker-days tfoot .clear').is(':visible'), 'Clear button visible');
+
+ target = this.picker.find('.datepicker-days tfoot .clear');
+ target.click();
+
+ equal(triggered_change, 1);
+ equal(triggered_changeDate, 1);
+});
+
+test('setDate: triggers change and changeDate events', function(){
+ this.input = $('<input type="text" value="31-03-2011">')
+ .appendTo('#qunit-fixture')
+ .datepicker({
+ format: "dd-mm-yyyy"
+ })
+ .focus(); // Activate for visibility checks
+ this.dp = this.input.data('datepicker');
+ this.picker = this.dp.picker;
+
+ var target,
+ triggered_change = 0,
+ triggered_changeDate = 0;
+
+ this.input.on({
+ changeDate: function(){
+ triggered_changeDate++;
+ },
+ change: function(){
+ triggered_change++;
+ }
+ });
+
+ this.input.focus();
+ ok(this.picker.find('.datepicker-days').is(':visible'), 'Days view visible');
+
+ this.dp.setDate(new Date(2011, 2, 5));
+
+ equal(triggered_change, 1);
+ equal(triggered_changeDate, 1);
+});
+
+test('paste must update the date', function() {
+ var dateToPaste = '22-07-2015';
+ var evt = {
+ type: 'paste',
+ originalEvent: {
+ clipboardData: {
+ types: ['text/plain'],
+ getData: function() { return dateToPaste; }
+ },
+ preventDefault: function() { evt.originalEvent.isDefaultPrevented = true; },
+ isDefaultPrevented: false
+ }
+ };
+ this.input.trigger(evt);
+ datesEqual(this.dp.dates[0], UTCDate(2015, 6, 22));
+
+ ok(evt.originalEvent.isDefaultPrevented, 'prevented original event');
+});
+
+test('clicking outside datepicker triggers \'hide\' event', function(){
+ var $otherelement = $('<div />');
+ $('body').append($otherelement);
+
+ var isHideTriggered;
+ this.input.on('hide', function() { isHideTriggered = true; });
+
+ $otherelement.trigger('mousedown');
+
+ ok(isHideTriggered, '\'hide\' event is not triggered');
+
+ $otherelement.remove();
+});
+
+test('Selecting date from previous month triggers changeMonth', function() {
+ var target,
+ triggered = 0;
+
+ this.input.on('changeMonth', function(){
+ triggered++;
+ });
+
+ // find first day of previous month
+ target = this.picker.find('.datepicker-days tbody td:first');
+ target.click();
+
+ // ensure event has been triggered
+ equal(triggered, 1);
+});
+
+test('Selecting date from previous month in january triggers changeMonth/changeYear', function() {
+ var target,
+ triggeredM = 0,
+ triggeredY = 0;
+
+ this.input.val('01-01-2011');
+ this.dp.update();
+
+ this.input.on('changeMonth', function(){
+ triggeredM++;
+ });
+
+ this.input.on('changeYear', function(){
+ triggeredY++;
+ });
+
+ // find first day of previous month
+ target = this.picker.find('.datepicker-days tbody td:first');
+ target.click();
+
+ // ensure event has been triggered
+ equal(triggeredM, 1);
+ equal(triggeredY, 1);
+});
+
+test('Selecting date from next month triggers changeMonth', function() {
+ var target,
+ triggered = 0;
+
+ this.input.on('changeMonth', function(){
+ triggered++;
+ });
+
+ // find first day of previous month
+ target = this.picker.find('.datepicker-days tbody td:last');
+ target.click();
+
+ // ensure event has been triggered
+ equal(triggered, 1);
+});
+
+test('Selecting date from next month in december triggers changeMonth/changeYear', function() {
+ var target,
+ triggeredM = 0,
+ triggeredY = 0;
+
+ this.input.val('01-12-2011');
+ this.dp.update();
+
+ this.input.on('changeMonth', function(){
+ triggeredM++;
+ });
+
+ this.input.on('changeYear', function(){
+ triggeredY++;
+ });
+
+ // find first day of previous month
+ target = this.picker.find('.datepicker-days tbody td:last');
+ target.click();
+
+ // ensure event has been triggered
+ equal(triggeredM, 1);
+ equal(triggeredY, 1);
+});
+
+test('Changing view mode triggers changeViewMode', function () {
+ var viewMode = -1,
+ triggered = 0;
+
+ this.input.val('22-07-2016');
+ this.dp.update();
+
+ this.input.on('changeViewMode', function (e) {
+ viewMode = e.viewMode;
+ triggered++;
+ });
+
+ // change from days to months
+ this.picker.find('.datepicker-days .datepicker-switch').click();
+ equal(triggered, 1);
+ equal(viewMode, 1);
+
+ // change from months to years
+ this.picker.find('.datepicker-months .datepicker-switch').click();
+ equal(triggered, 2);
+ equal(viewMode, 2);
+
+ // change from years to decade
+ this.picker.find('.datepicker-years .datepicker-switch').click();
+ equal(triggered, 3);
+ equal(viewMode, 3);
+
+ // change from decades to centuries
+ this.picker.find('.datepicker-decades .datepicker-switch').click();
+ equal(triggered, 4);
+ equal(viewMode, 4);
+
+});
+
+test('Clicking inside content of date with custom beforeShowDay content works', function(){
+ this.input = $('<input type="text" value="31-03-2011">')
+ .appendTo('#qunit-fixture')
+ .datepicker({
+ format: "dd-mm-yyyy",
+ beforeShowDay: function (date) { return { content: '<div><div>' + date.getDate() + '</div></div>' }; }
+ })
+ .focus(); // Activate for visibility checks
+ this.dp = this.input.data('datepicker');
+ this.picker = this.dp.picker;
+
+ var target,
+ triggered = 0;
+
+ this.input.on('changeDate', function(){
+ triggered++;
+ });
+
+ // find deepest date
+ target = this.picker.find('.datepicker-days tbody td:first div div');
+ target.click();
+
+ // ensure event has been triggered
+ equal(triggered, 1);
+});
diff --git a/public/bower_components/bootstrap-datepicker/tests/suites/formats.js b/public/bower_components/bootstrap-datepicker/tests/suites/formats.js
new file mode 100644
index 0000000..93fcb52
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/suites/formats.js
@@ -0,0 +1,314 @@
+module('Formats', {
+ setup: function(){
+ this.input = $('<input type="text">').appendTo('#qunit-fixture');
+ this.date = UTCDate(2012, 2, 15, 0, 0, 0, 0); // March 15, 2012
+ },
+ teardown: function(){
+ this.input.data('datepicker').picker.remove();
+ }
+});
+
+test('d: Day of month, no leading zero.', function(){
+ this.input
+ .val('2012-03-05')
+ .datepicker({format: 'yyyy-mm-d'})
+ .datepicker('setValue');
+ equal(this.input.val().split('-')[2], '5');
+});
+
+test('dd: Day of month, leading zero.', function(){
+ this.input
+ .val('2012-03-5')
+ .datepicker({format: 'yyyy-mm-dd'})
+ .datepicker('setValue');
+ equal(this.input.val().split('-')[2], '05');
+});
+
+test('D: Day of week, short.', function(){
+ this.input
+ .val('2012-03-05')
+ .datepicker({format: 'yyyy-mm-dd-D'})
+ .datepicker('setValue');
+ equal(this.input.val().split('-')[3], 'Mon');
+});
+
+test('DD: Day of week, long.', function(){
+ this.input
+ .val('2012-03-05')
+ .datepicker({format: 'yyyy-mm-dd-DD'})
+ .datepicker('setValue');
+ equal(this.input.val().split('-')[3], 'Monday');
+});
+
+test('m: Month, no leading zero.', function(){
+ this.input
+ .val('2012-03-05')
+ .datepicker({format: 'yyyy-m-dd'})
+ .datepicker('setValue');
+ equal(this.input.val().split('-')[1], '3');
+});
+
+test('mm: Month, leading zero.', function(){
+ this.input
+ .val('2012-3-5')
+ .datepicker({format: 'yyyy-mm-dd'})
+ .datepicker('setValue');
+ equal(this.input.val().split('-')[1], '03');
+});
+
+test('M: Month shortname.', function(){
+ this.input
+ .val('2012-Mar-05')
+ .datepicker({format: 'yyyy-M-dd'})
+ .datepicker('setValue');
+ equal(this.input.val().split('-')[1], 'Mar');
+});
+
+test('M: Month shortname case insensitive.', function(){
+ this.input
+ .val('2012-MAR-05')
+ .datepicker({format: 'yyyy-M-dd'})
+ .datepicker('setValue');
+ equal(this.input.val().split('-')[1], 'Mar');
+});
+
+test('MM: Month full name.', function(){
+ this.input
+ .val('2012-March-5')
+ .datepicker({format: 'yyyy-MM-dd'})
+ .datepicker('setValue');
+ equal(this.input.val().split('-')[1], 'March');
+});
+
+test('M: Month fullname case insensitive.', function(){
+ this.input
+ .val('2012-MARCH-05')
+ .datepicker({format: 'yyyy-MM-dd'})
+ .datepicker('setValue');
+ equal(this.input.val().split('-')[1], 'March');
+});
+
+test('yy: Year, two-digit.', function(){
+ this.input
+ .val('2012-03-05')
+ .datepicker({format: 'yy-mm-dd'})
+ .datepicker('setValue');
+ equal(this.input.val().split('-')[0], '12');
+});
+
+test('yyyy: Year, four-digit.', function(){
+ this.input
+ .val('2012-03-5')
+ .datepicker({format: 'yyyy-mm-dd'})
+ .datepicker('setValue');
+ equal(this.input.val().split('-')[0], '2012');
+});
+
+test('dd-mm-yyyy: Regression: Prevent potential month overflow in small-to-large formats (Mar 31, 2012 -> Mar 01, 2012)', function(){
+ this.input
+ .val('31-03-2012')
+ .datepicker({format: 'dd-mm-yyyy'})
+ .datepicker('setValue');
+ equal(this.input.val(), '31-03-2012');
+});
+
+test('dd-mm-yyyy: Leap day', function(){
+ this.input
+ .val('29-02-2012')
+ .datepicker({format: 'dd-mm-yyyy'})
+ .datepicker('setValue');
+ equal(this.input.val(), '29-02-2012');
+});
+
+test('yyyy-mm-dd: Alternative format', function(){
+ this.input
+ .val('2012-02-12')
+ .datepicker({format: 'yyyy-mm-dd'})
+ .datepicker('setValue');
+ equal(this.input.val(), '2012-02-12');
+});
+
+test('yyyy-MM-dd: Regression: Infinite loop when numbers used for month', function(){
+ this.input
+ .val('2012-02-12')
+ .datepicker({format: 'yyyy-MM-dd'})
+ .datepicker('setValue');
+ equal(this.input.val(), '2012-February-12');
+});
+
+test('+1d: Tomorrow', patch_date(function(Date){
+ Date.now = UTCDate(2012, 2, 15);
+ this.input
+ .val('+1d')
+ .datepicker({format: 'dd-mm-yyyy'})
+ .datepicker('setValue');
+ equal(this.input.val(), '16-03-2012');
+}));
+
+test('tomorrow (alias for +1d): Tomorrow', patch_date(function(Date){
+ Date.now = UTCDate(2012, 2, 15);
+ this.input
+ .val('tomorrow')
+ .datepicker({format: 'dd-mm-yyyy'})
+ .datepicker('setValue');
+ equal(this.input.val(), '16-03-2012');
+}));
+
+test('-1d: Yesterday', patch_date(function(Date){
+ Date.now = UTCDate(2012, 2, 15);
+ this.input
+ .val('-1d')
+ .datepicker({format: 'dd-mm-yyyy'})
+ .datepicker('setValue');
+ equal(this.input.val(), '14-03-2012');
+}));
+
+test('yesterday (alias for -1d): Yesterday', patch_date(function(Date){
+ Date.now = UTCDate(2012, 2, 15);
+ this.input
+ .val('yesterday')
+ .datepicker({format: 'dd-mm-yyyy'})
+ .datepicker('setValue');
+ equal(this.input.val(), '14-03-2012');
+}));
+
+test('+1w: Next week', patch_date(function(Date){
+ Date.now = UTCDate(2012, 2, 15);
+ this.input
+ .val('+1w')
+ .datepicker({format: 'dd-mm-yyyy'})
+ .datepicker('setValue');
+ equal(this.input.val(), '22-03-2012');
+}));
+
+test('-1w: Last week', patch_date(function(Date){
+ Date.now = UTCDate(2012, 2, 15);
+ this.input
+ .val('-1w')
+ .datepicker({format: 'dd-mm-yyyy'})
+ .datepicker('setValue');
+ equal(this.input.val(), '08-03-2012');
+}));
+
+test('+1m: Next month', patch_date(function(Date){
+ Date.now = UTCDate(2012, 2, 15);
+ this.input
+ .val('+1m')
+ .datepicker({format: 'dd-mm-yyyy'})
+ .datepicker('setValue');
+ equal(this.input.val(), '15-04-2012');
+}));
+
+test('-1m: Last month', patch_date(function(Date){
+ Date.now = UTCDate(2012, 2, 15);
+ this.input
+ .val('-1m')
+ .datepicker({format: 'dd-mm-yyyy'})
+ .datepicker('setValue');
+ equal(this.input.val(), '15-02-2012');
+}));
+
+test('+1y: Next year', patch_date(function(Date){
+ Date.now = UTCDate(2012, 2, 15);
+ this.input
+ .val('+1y')
+ .datepicker({format: 'dd-mm-yyyy'})
+ .datepicker('setValue');
+ equal(this.input.val(), '15-03-2013');
+}));
+
+test('-1y: Last year', patch_date(function(Date){
+ Date.now = UTCDate(2012, 2, 15);
+ this.input
+ .val('-1y')
+ .datepicker({format: 'dd-mm-yyyy'})
+ .datepicker('setValue');
+ equal(this.input.val(), '15-03-2011');
+}));
+
+test('-1y +2m: Multiformat', patch_date(function(Date){
+ Date.now = UTCDate(2012, 2, 15);
+ this.input
+ .val('-1y +2m')
+ .datepicker({format: 'dd-mm-yyyy'})
+ .datepicker('setValue');
+ equal(this.input.val(), '15-05-2011');
+}));
+
+test('Regression: End-of-month bug', patch_date(function(Date){
+ Date.now = UTCDate(2012, 4, 31);
+ this.input
+ .val('29-02-2012')
+ .datepicker({format: 'dd-mm-yyyy'})
+ .datepicker('setValue');
+ equal(this.input.val(), '29-02-2012');
+}));
+
+test('Invalid formats are force-parsed into a valid date on tab', patch_date(function(Date){
+ Date.now = UTCDate(2012, 4, 31);
+ this.input
+ .val('44-44-4444')
+ .datepicker({format: 'yyyy-MM-dd'})
+ .focus();
+
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 9
+ });
+
+ equal(this.input.val(), '56-September-30');
+}));
+
+test('Trailing separators', patch_date(function(Date){
+ Date.now = UTCDate(2012, 4, 31);
+ this.input
+ .val('29.02.2012.')
+ .datepicker({format: 'dd.mm.yyyy.'})
+ .datepicker('setValue');
+ equal(this.input.val(), '29.02.2012.');
+}));
+
+test('Assume nearby year - last century', patch_date(function(Date){
+ Date.now = UTCDate(2012, 4, 31);
+ this.input
+ .val('02/14/91')
+ .datepicker({format: 'mm/dd/yyyy', assumeNearbyYear: true})
+ .datepicker('setValue');
+ equal(this.input.val(), '02/14/1991');
+}));
+
+test('Assume nearby year - this century (- 1 year)', patch_date(function(Date){
+ Date.now = UTCDate(2012, 4, 31);
+ this.input
+ .val('02/14/01')
+ .datepicker({format: 'mm/dd/yyyy', assumeNearbyYear: true})
+ .datepicker('setValue');
+ equal(this.input.val(), '02/14/2001');
+}));
+
+test('Assume nearby year - this century (+ 7 years)', patch_date(function(Date){
+ Date.now = UTCDate(2012, 4, 31);
+ this.input
+ .val('02/14/19')
+ .datepicker({format: 'mm/dd/yyyy', assumeNearbyYear: true})
+ .datepicker('setValue');
+ equal(this.input.val(), '02/14/2019');
+}));
+
+test('Assume nearby year - this century (+ 13 years)', patch_date(function(Date){
+ Date.now = UTCDate(2012, 4, 31);
+ this.input
+ .val('02/14/23')
+ .datepicker({format: 'mm/dd/yyyy', assumeNearbyYear: true})
+ .datepicker('setValue');
+ equal(this.input.val(), '02/14/1923');
+}));
+
+test('Assume nearby year - this century (+ 13 years, threshold = 30)', patch_date(function(Date){
+ Date.now = UTCDate(2012, 4, 31);
+ this.input
+ .val('02/14/23')
+ .datepicker({format: 'mm/dd/yyyy', assumeNearbyYear: 30})
+ .datepicker('setValue');
+ equal(this.input.val(), '02/14/2023');
+}));
diff --git a/public/bower_components/bootstrap-datepicker/tests/suites/inline.js b/public/bower_components/bootstrap-datepicker/tests/suites/inline.js
new file mode 100644
index 0000000..e2b7e9c
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/suites/inline.js
@@ -0,0 +1,28 @@
+module('Inline', {
+ setup: function(){
+ this.component = $('<div data-date="12-02-2012"></div>')
+ .appendTo('#qunit-fixture')
+ .datepicker({format: "dd-mm-yyyy"});
+ this.dp = this.component.data('datepicker');
+ this.picker = this.dp.picker;
+ },
+ teardown: function(){
+ this.picker.remove();
+ }
+});
+
+
+test('Picker gets date/viewDate from data-date attr', function(){
+ datesEqual(this.dp.dates[0], UTCDate(2012, 1, 12));
+ datesEqual(this.dp.viewDate, UTCDate(2012, 1, 12));
+});
+
+
+test('Visible after init', function(){
+ ok(this.picker.is(':visible'));
+});
+
+test('update', function(){
+ this.dp.update('13-03-2012');
+ datesEqual(this.dp.dates[0], UTCDate(2012, 2, 13));
+});
diff --git a/public/bower_components/bootstrap-datepicker/tests/suites/keyboard_navigation/2011.js b/public/bower_components/bootstrap-datepicker/tests/suites/keyboard_navigation/2011.js
new file mode 100644
index 0000000..a64353a
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/suites/keyboard_navigation/2011.js
@@ -0,0 +1,228 @@
+module('Keyboard Navigation 2011', {
+ setup: function(){
+ /*
+ Tests start with picker on March 31, 2011. Fun facts:
+
+ * March 1, 2011 was on a Tuesday
+ * March 31, 2011 was on a Thursday
+ */
+ this.input = $('<input type="text" value="31-03-2011">')
+ .appendTo('#qunit-fixture')
+ .datepicker({format: "dd-mm-yyyy"})
+ .focus(); // Activate for visibility checks
+ this.dp = this.input.data('datepicker');
+ this.picker = this.dp.picker;
+ },
+ teardown: function(){
+ this.picker.remove();
+ }
+});
+
+test('Regression: by week (up/down arrows); up from Mar 6, 2011 should go to Feb 27, 2011', function(){
+ var target;
+
+ this.input.val('06-03-2011').datepicker('update');
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2011', 'Title is "March 2011"');
+ datesEqual(this.dp.viewDate, UTCDate(2011, 2, 6));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 6));
+ equal(this.dp.focusDate, null);
+
+ // Navigation: -1 week, up arrow key
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 38
+ });
+ datesEqual(this.dp.viewDate, UTCDate(2011, 1, 27));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 6));
+ datesEqual(this.dp.focusDate, UTCDate(2011, 1, 27));
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'February 2011', 'Title is "February 2011"');
+});
+
+test('Regression: by day (left/right arrows); left from Mar 1, 2011 should go to Feb 28, 2011', function(){
+ var target;
+
+ this.input.val('01-03-2011').datepicker('update');
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2011', 'Title is "March 2011"');
+ datesEqual(this.dp.viewDate, UTCDate(2011, 2, 1));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 1));
+ equal(this.dp.focusDate, null);
+
+ // Navigation: -1 day left arrow key
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 37
+ });
+ datesEqual(this.dp.viewDate, UTCDate(2011, 1, 28));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 1));
+ datesEqual(this.dp.focusDate, UTCDate(2011, 1, 28));
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'February 2011', 'Title is "February 2011"');
+});
+
+test('Regression: by month (shift + left/right arrows); left from Mar 15, 2011 should go to Feb 15, 2011', function(){
+ var target;
+
+ this.input.val('15-03-2011').datepicker('update');
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2011', 'Title is "March 2011"');
+ datesEqual(this.dp.viewDate, UTCDate(2011, 2, 15));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 15));
+ equal(this.dp.focusDate, null);
+
+ // Navigation: -1 month, shift + left arrow key
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 37,
+ shiftKey: true
+ });
+ datesEqual(this.dp.viewDate, UTCDate(2011, 1, 15));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 15));
+ datesEqual(this.dp.focusDate, UTCDate(2011, 1, 15));
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'February 2011', 'Title is "February 2011"');
+});
+
+test('Regression: by month with view mode = 1 (left/right arrow); left from March 15, 2011 should go to February 15, 2011', function () {
+ this.picker.remove();
+ this.input = $('<input type="text" value="15-03-2011">')
+ .appendTo('#qunit-fixture')
+ .datepicker({
+ format: "dd-mm-yyyy",
+ minViewMode: 1,
+ startView: 1
+ })
+ .focus(); // Activate for visibility checks
+ this.dp = this.input.data('datepicker');
+ this.picker = this.dp.picker;
+
+ this.input.val('15-03-2011').datepicker('update');
+ equal(this.dp.viewMode, 1);
+
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2011', 'Title is "March 2011"');
+ datesEqual(this.dp.viewDate, UTCDate(2011, 2, 15));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 15));
+ equal(this.dp.focusDate, null);
+
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 37
+ });
+
+ datesEqual(this.dp.viewDate, UTCDate(2011, 1, 15));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 15));
+ datesEqual(this.dp.focusDate, UTCDate(2011, 1, 15));
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'February 2011', 'Title is "February 2011"');
+});
+
+test('Regression: by month with view mode = 1 (up/down arrow); down from March 15, 2011 should go to July 15, 2010', function () {
+ this.picker.remove();
+ this.input = $('<input type="text" value="15-03-2011">')
+ .appendTo('#qunit-fixture')
+ .datepicker({
+ format: "dd-mm-yyyy",
+ minViewMode: 1,
+ startView: 1
+ })
+ .focus(); // Activate for visibility checks
+ this.dp = this.input.data('datepicker');
+ this.picker = this.dp.picker;
+
+ this.input.val('15-03-2011').datepicker('update');
+ equal(this.dp.viewMode, 1);
+
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2011', 'Title is "March 2011"');
+ datesEqual(this.dp.viewDate, UTCDate(2011, 2, 15));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 15));
+ equal(this.dp.focusDate, null);
+
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 40
+ });
+
+ datesEqual(this.dp.viewDate, UTCDate(2011, 6, 15));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 15));
+ datesEqual(this.dp.focusDate, UTCDate(2011, 6, 15));
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'July 2011', 'Title is "July 2011"');
+});
+
+test('Regression: by year with view mode = 2 (left/right arrow); left from March 15, 2011 should go to March 15, 2010', function () {
+ this.picker.remove();
+ this.input = $('<input type="text" value="15-03-2011">')
+ .appendTo('#qunit-fixture')
+ .datepicker({
+ format: "dd-mm-yyyy",
+ minViewMode: 2,
+ startView: 2
+ })
+ .focus(); // Activate for visibility checks
+ this.dp = this.input.data('datepicker');
+ this.picker = this.dp.picker;
+
+ this.input.val('15-03-2011').datepicker('update');
+ equal(this.dp.viewMode, 2);
+
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2011', 'Title is "March 2011"');
+ datesEqual(this.dp.viewDate, UTCDate(2011, 2, 15));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 15));
+ equal(this.dp.focusDate, null);
+
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 37
+ });
+
+ datesEqual(this.dp.viewDate, UTCDate(2010, 2, 15));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 15));
+ datesEqual(this.dp.focusDate, UTCDate(2010, 2, 15));
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2010', 'Title is "March 2010"');
+});
+
+test('Regression: by year with view mode = 2 (up/down arrow); dows from March 15, 2011 should go to March 15, 2015', function () {
+ this.picker.remove();
+ this.input = $('<input type="text" value="15-03-2011">')
+ .appendTo('#qunit-fixture')
+ .datepicker({
+ format: "dd-mm-yyyy",
+ minViewMode: 2,
+ startView: 2
+ })
+ .focus(); // Activate for visibility checks
+ this.dp = this.input.data('datepicker');
+ this.picker = this.dp.picker;
+
+ this.input.val('15-03-2011').datepicker('update');
+ equal(this.dp.viewMode, 2);
+
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2011', 'Title is "March 2011"');
+ datesEqual(this.dp.viewDate, UTCDate(2011, 2, 15));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 15));
+ equal(this.dp.focusDate, null);
+
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 40
+ });
+
+ datesEqual(this.dp.viewDate, UTCDate(2015, 2, 15));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 15));
+ datesEqual(this.dp.focusDate, UTCDate(2015, 2, 15));
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2015', 'Title is "March 2015"');
+});
diff --git a/public/bower_components/bootstrap-datepicker/tests/suites/keyboard_navigation/2012.js b/public/bower_components/bootstrap-datepicker/tests/suites/keyboard_navigation/2012.js
new file mode 100644
index 0000000..53dbb7d
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/suites/keyboard_navigation/2012.js
@@ -0,0 +1,483 @@
+module('Keyboard Navigation 2012', {
+ setup: function(){
+ /*
+ Tests start with picker on March 31, 2012. Fun facts:
+
+ * February 1, 2012 was on a Wednesday
+ * February 29, 2012 was on a Wednesday
+ * March 1, 2012 was on a Thursday
+ * March 31, 2012 was on a Saturday
+ */
+ this.input = $('<input type="text" value="31-03-2012">')
+ .appendTo('#qunit-fixture')
+ .datepicker({format: "dd-mm-yyyy"})
+ .focus(); // Activate for visibility checks
+ this.dp = this.input.data('datepicker');
+ this.picker = this.dp.picker;
+ },
+ teardown: function(){
+ this.picker.remove();
+ }
+});
+
+
+test('by day (right/left arrows)', function(){
+ var target;
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2012', 'Title is "March 2012"');
+
+ // Navigation: -1 day, left arrow key
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 37
+ });
+ // view and focus updated on keyboard navigation, not selected
+ datesEqual(this.dp.viewDate, UTCDate(2012, 2, 30));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+ datesEqual(this.dp.focusDate, UTCDate(2012, 2, 30));
+ // Month not changed
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2012', 'Title is "March 2012"');
+
+ // Navigation: +1 day, right arrow key
+ for (var i=0; i<2; i++)
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 39
+ });
+ datesEqual(this.dp.viewDate, UTCDate(2012, 3, 1));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+ datesEqual(this.dp.focusDate, UTCDate(2012, 3, 1));
+ // Month changed: April 1 (this is not a joke!)
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'April 2012', 'Title is "April 2012"');
+});
+
+test('by week (up/down arrows)', function(){
+ var target;
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2012', 'Title is "March 2012"');
+
+ // Navigation: -1 week, up arrow key
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 38
+ });
+ // view and focus updated on keyboard navigation, not selected
+ datesEqual(this.dp.viewDate, UTCDate(2012, 2, 24));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+ datesEqual(this.dp.focusDate, UTCDate(2012, 2, 24));
+ // Month not changed
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2012', 'Title is "March 2012"');
+
+ // Navigation: +1 week, down arrow key
+ for (var i=0; i<2; i++)
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 40
+ });
+ datesEqual(this.dp.viewDate, UTCDate(2012, 3, 7));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+ datesEqual(this.dp.focusDate, UTCDate(2012, 3, 7));
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'April 2012', 'Title is "April 2012"');
+});
+
+test('by month, v1 (shift + left/right arrows)', function(){
+ var target;
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2012', 'Title is "March 2012"');
+
+ // Navigation: -1 month, shift + left arrow key
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 37,
+ shiftKey: true
+ });
+ // view and focus updated on keyboard navigation w/ graceful date ends, not selected
+ datesEqual(this.dp.viewDate, UTCDate(2012, 1, 29));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+ datesEqual(this.dp.focusDate, UTCDate(2012, 1, 29));
+ // Month not changed
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'February 2012', 'Title is "February 2012"');
+
+ // Navigation: +1 month, shift + right arrow key
+ for (var i=0; i<2; i++)
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 39,
+ shiftKey: true
+ });
+ datesEqual(this.dp.viewDate, UTCDate(2012, 3, 29));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+ datesEqual(this.dp.focusDate, UTCDate(2012, 3, 29));
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'April 2012', 'Title is "April 2012"');
+});
+
+test('by month, v2 (shift + up/down arrows)', function(){
+ var target;
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2012', 'Title is "March 2012"');
+
+ // Navigation: -1 month, shift + up arrow key
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 38,
+ shiftKey: true
+ });
+ // view and focus updated on keyboard navigation w/ graceful date ends, not selected
+ datesEqual(this.dp.viewDate, UTCDate(2012, 1, 29));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+ datesEqual(this.dp.focusDate, UTCDate(2012, 1, 29));
+ // Month not changed
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'February 2012', 'Title is "February 2012"');
+
+ // Navigation: +1 month, shift + down arrow key
+ for (var i=0; i<2; i++)
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 40,
+ shiftKey: true
+ });
+ datesEqual(this.dp.viewDate, UTCDate(2012, 3, 29));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+ datesEqual(this.dp.focusDate, UTCDate(2012, 3, 29));
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'April 2012', 'Title is "April 2012"');
+});
+
+test('by year, v1 (ctrl + left/right arrows)', function(){
+ var target;
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2012', 'Title is "March 2012"');
+
+ // Navigation: -1 year, ctrl + left arrow key
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 37,
+ ctrlKey: true
+ });
+ // view and focus updated on keyboard navigation, not selected
+ datesEqual(this.dp.viewDate, UTCDate(2011, 2, 31));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+ datesEqual(this.dp.focusDate, UTCDate(2011, 2, 31));
+ // Month not changed
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2011', 'Title is "March 2011"');
+
+ // Navigation: +1 year, ctrl + right arrow key
+ for (var i=0; i<2; i++)
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 39,
+ ctrlKey: true
+ });
+ datesEqual(this.dp.viewDate, UTCDate(2013, 2, 31));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+ datesEqual(this.dp.focusDate, UTCDate(2013, 2, 31));
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2013', 'Title is "March 2013"');
+});
+
+test('by year, v2 (ctrl + up/down arrows)', function(){
+ var target;
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2012', 'Title is "March 2012"');
+
+ // Navigation: -1 year, ctrl + up arrow key
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 38,
+ ctrlKey: true
+ });
+ // view and focus updated on keyboard navigation, not selected
+ datesEqual(this.dp.viewDate, UTCDate(2011, 2, 31));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+ datesEqual(this.dp.focusDate, UTCDate(2011, 2, 31));
+ // Month not changed
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2011', 'Title is "March 2011"');
+
+ // Navigation: +1 year, ctrl + down arrow key
+ for (var i=0; i<2; i++)
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 40,
+ ctrlKey: true
+ });
+ datesEqual(this.dp.viewDate, UTCDate(2013, 2, 31));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+ datesEqual(this.dp.focusDate, UTCDate(2013, 2, 31));
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2013', 'Title is "March 2013"');
+});
+
+test('by year, v3 (ctrl + shift + left/right arrows)', function(){
+ var target;
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2012', 'Title is "March 2012"');
+
+ // Navigation: -1 year, ctrl + left arrow key
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 37,
+ ctrlKey: true,
+ shiftKey: true
+ });
+ // view and focus updated on keyboard navigation, not selected
+ datesEqual(this.dp.viewDate, UTCDate(2011, 2, 31));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+ datesEqual(this.dp.focusDate, UTCDate(2011, 2, 31));
+ // Month not changed
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2011', 'Title is "March 2011"');
+
+ // Navigation: +1 year, ctrl + right arrow key
+ for (var i=0; i<2; i++)
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 39,
+ ctrlKey: true,
+ shiftKey: true
+ });
+ datesEqual(this.dp.viewDate, UTCDate(2013, 2, 31));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+ datesEqual(this.dp.focusDate, UTCDate(2013, 2, 31));
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2013', 'Title is "March 2013"');
+});
+
+test('by year, v4 (ctrl + shift + up/down arrows)', function(){
+ var target;
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2012', 'Title is "March 2012"');
+
+ // Navigation: -1 year, ctrl + up arrow key
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 38,
+ ctrlKey: true,
+ shiftKey: true
+ });
+ // view and focus updated on keyboard navigation, not selected
+ datesEqual(this.dp.viewDate, UTCDate(2011, 2, 31));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+ datesEqual(this.dp.focusDate, UTCDate(2011, 2, 31));
+ // Month not changed
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2011', 'Title is "March 2011"');
+
+ // Navigation: +1 year, ctrl + down arrow key
+ for (var i=0; i<2; i++)
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 40,
+ ctrlKey: true,
+ shiftKey: true
+ });
+ datesEqual(this.dp.viewDate, UTCDate(2013, 2, 31));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+ datesEqual(this.dp.focusDate, UTCDate(2013, 2, 31));
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2013', 'Title is "March 2013"');
+});
+
+test('by year, from leap day', function(){
+ var target;
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+
+ this.input.val('29-02-2012').datepicker('update');
+ datesEqual(this.dp.viewDate, UTCDate(2012, 1, 29));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 1, 29));
+ equal(this.dp.focusDate, null);
+ equal(target.text(), 'February 2012', 'Title is "February 2012"');
+
+ // Navigation: -1 year
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 37,
+ ctrlKey: true
+ });
+ // view and focus updated on keyboard navigation w/ graceful month ends, not selected
+ datesEqual(this.dp.viewDate, UTCDate(2011, 1, 28));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 1, 29));
+ datesEqual(this.dp.focusDate, UTCDate(2011, 1, 28));
+ // Month not changed
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'February 2011', 'Title is "February 2011"');
+
+ // Navigation: +1 year, back to leap year
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 39,
+ ctrlKey: true
+ });
+ // view and focus updated on keyboard navigation w/ graceful month ends, not selected
+ datesEqual(this.dp.viewDate, UTCDate(2012, 1, 28));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 1, 29));
+ datesEqual(this.dp.focusDate, UTCDate(2012, 1, 28));
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'February 2012', 'Title is "February 2012"');
+
+ // Navigation: +1 year
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 39,
+ ctrlKey: true
+ });
+ // view and focus updated on keyboard navigation w/ graceful month ends, not selected
+ datesEqual(this.dp.viewDate, UTCDate(2013, 1, 28));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 1, 29));
+ datesEqual(this.dp.focusDate, UTCDate(2013, 1, 28));
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'February 2013', 'Title is "February 2013"');
+});
+
+test('Selection (enter)', function(){
+ var target;
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2012', 'Title is "March 2012"');
+
+ // Navigation: -1 day, left arrow key
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 37
+ });
+ // view and focus updated on keyboard navigation, not selected
+ datesEqual(this.dp.viewDate, UTCDate(2012, 2, 30));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+ datesEqual(this.dp.focusDate, UTCDate(2012, 2, 30));
+ // Month not changed
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2012', 'Title is "March 2012"');
+
+ // Selection: Enter
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 13
+ });
+ // view and selection updated, focus cleared
+ datesEqual(this.dp.viewDate, UTCDate(2012, 2, 30));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 30));
+ equal(this.dp.focusDate, null);
+ // Month not changed
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2012', 'Title is "March 2012"');
+
+ ok(this.picker.is(':visible'), 'Picker is not hidden');
+});
+
+test('Selection + hide (enter)', function(){
+ var target;
+
+ this.dp._process_options({autoclose: true});
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2012', 'Title is "March 2012"');
+
+ // Navigation: -1 day, left arrow key
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 37
+ });
+ // view and focus updated on keyboard navigation, not selected
+ datesEqual(this.dp.viewDate, UTCDate(2012, 2, 30));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+ datesEqual(this.dp.focusDate, UTCDate(2012, 2, 30));
+ // Month not changed
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2012', 'Title is "March 2012"');
+
+ // Selection: Enter
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 13
+ });
+ // view and selection updatedfocus cleared
+ datesEqual(this.dp.viewDate, UTCDate(2012, 2, 30));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 30));
+ equal(this.dp.focusDate, null);
+ // Month not changed
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2012', 'Title is "March 2012"');
+
+ ok(this.picker.is(':not(:visible)'), 'Picker is hidden');
+});
+
+test('Toggle hide/show (escape); navigation while hidden is suppressed', function(){
+ var target;
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ equal(target.text(), 'March 2012', 'Title is "March 2012"');
+
+ ok(this.picker.is(':visible'), 'Picker is visible');
+
+ // Hide
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 27
+ });
+
+ ok(this.picker.is(':not(:visible)'), 'Picker is hidden');
+ datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+
+ // left arrow key, *doesn't* navigate
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 37
+ });
+
+ datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+
+ // Show - with escape key
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 27
+ });
+
+ ok(this.picker.is(':visible'), 'Picker is visible');
+ datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+
+ // Hide
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 27
+ });
+
+ // Show - with down key
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 40
+ });
+
+ ok(this.picker.is(':visible'), 'Picker is visible');
+});
+
diff --git a/public/bower_components/bootstrap-datepicker/tests/suites/keyboard_navigation/all.js b/public/bower_components/bootstrap-datepicker/tests/suites/keyboard_navigation/all.js
new file mode 100644
index 0000000..4fb6d2f
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/suites/keyboard_navigation/all.js
@@ -0,0 +1,62 @@
+module('Keyboard Navigation (All)', {
+ setup: function(){
+ this.input = $('<input type="text">')
+ .appendTo('#qunit-fixture')
+ .datepicker({format: "dd-mm-yyyy"})
+ .focus(); // Activate for visibility checks
+ this.dp = this.input.data('datepicker');
+ this.picker = this.dp.picker;
+ },
+ teardown: function(){
+ this.picker.remove();
+ }
+});
+
+test('TAB hides picker', function(){
+ var target;
+
+ ok(this.picker.is(':visible'), 'Picker is visible');
+
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 9
+ });
+
+ ok(this.picker.is(':not(:visible)'), 'Picker is hidden');
+});
+
+test('by day (right/left arrows) with daysOfWeekDisabled', function(){
+ var target;
+
+ this.input.val('04-03-2013');
+ this.dp.setDaysOfWeekDisabled('0,6');
+ this.dp.update();
+
+ this.input.focus();
+
+ // Navigation: -1 day left arrow key
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 37
+ });
+
+ datesEqual(this.dp.viewDate, UTCDate(2013, 2, 1));
+});
+
+test('by day (right/left arrows) with datesDisabled', function(){
+ var target;
+
+ this.input.val('04-03-2013');
+ this.dp.setDatesDisabled(['05-03-2013']);
+ this.dp.update();
+
+ this.input.focus();
+
+ // Navigation: +1 day right arrow key
+ this.input.trigger({
+ type: 'keydown',
+ keyCode: 39
+ });
+
+ datesEqual(this.dp.viewDate, UTCDate(2013, 2, 6));
+});
diff --git a/public/bower_components/bootstrap-datepicker/tests/suites/methods.js b/public/bower_components/bootstrap-datepicker/tests/suites/methods.js
new file mode 100644
index 0000000..b70834f
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/suites/methods.js
@@ -0,0 +1,188 @@
+module('Methods', {
+ setup: function(){
+ this.input = $('<input type="text" value="31-03-2011">')
+ .appendTo('#qunit-fixture')
+ .datepicker({format: "dd-mm-yyyy"});
+ this.dp = this.input.data('datepicker');
+ this.picker = this.dp.picker;
+ },
+ teardown: function(){
+ this.dp.remove();
+ }
+});
+
+test('remove', function(){
+ var returnedObject = this.dp.remove();
+ // ...
+ strictEqual(returnedObject, this.dp, "is chainable");
+});
+
+test('show', function(){
+ var returnedObject = this.dp.show();
+ // ...
+ strictEqual(returnedObject, this.dp, "is chainable");
+});
+
+test('hide', function(){
+ var returnedObject = this.dp.hide();
+ // ...
+ strictEqual(returnedObject, this.dp, "is chainable");
+});
+
+test('update - String', function(){
+ var returnedObject = this.dp.update('13-03-2012');
+ datesEqual(this.dp.dates[0], UTCDate(2012, 2, 13));
+ var date = this.dp.picker.find('.datepicker-days td:contains(13)');
+ ok(date.hasClass('active'), 'Date is selected');
+ strictEqual(returnedObject, this.dp, "is chainable");
+});
+
+test('update - Date', function(){
+ var returnedObject = this.dp.update(new Date(2012, 2, 13));
+ datesEqual(this.dp.dates[0], UTCDate(2012, 2, 13));
+ var date = this.dp.picker.find('.datepicker-days td:contains(13)');
+ ok(date.hasClass('active'), 'Date is selected');
+ strictEqual(returnedObject, this.dp, "is chainable");
+});
+
+test('update - Date with time', function(){
+ var returnedObject = this.dp.update(new Date(2012, 2, 13, 23, 59, 59, 999));
+ datesEqual(this.dp.dates[0], UTCDate(2012, 2, 13, 23, 59, 59, 999));
+ var date = this.dp.picker.find('.datepicker-days td:contains(13)');
+ ok(date.hasClass('active'), 'Date is selected');
+ strictEqual(returnedObject, this.dp, "is chainable");
+});
+
+test('update - null', function(){
+ var returnedObject = this.dp.update(null);
+ equal(this.dp.dates[0], undefined);
+ var selected = this.dp.picker.find('.datepicker-days td.active');
+ equal(selected.length, 0, 'No date is selected');
+ strictEqual(returnedObject, this.dp, "is chainable");
+});
+
+test('setDate', function(){
+ var date_in = new Date(2013, 1, 1),
+ expected_date = new Date(Date.UTC(2013, 1, 1)),
+ returnedObject;
+
+ notEqual(this.dp.dates[0], date_in);
+ returnedObject = this.dp.setDate(date_in);
+ strictEqual(returnedObject, this.dp, "is chainable");
+ datesEqual(this.dp.dates[0], expected_date);
+});
+
+test('setUTCDate', function(){
+ var date_in = new Date(Date.UTC(2012, 3, 5)),
+ expected_date = date_in,
+ returnedObject;
+
+ notEqual(this.dp.dates[0], date_in);
+ returnedObject = this.dp.setUTCDate(date_in);
+ strictEqual(returnedObject, this.dp, "is chainable");
+ datesEqual(this.dp.dates[0], expected_date);
+});
+
+test('setStartDate', function(){
+ var date_in = new Date(2012, 3, 5),
+ expected_date = new Date(Date.UTC(2012, 3, 5)),
+ returnedObject = this.dp.setStartDate(date_in);
+ // ...
+ datesEqual(this.dp.o.startDate, expected_date);
+ strictEqual(returnedObject, this.dp, "is chainable");
+});
+
+test('setEndDate', function(){
+ var date_in = new Date(2012, 3, 5),
+ expected_date = new Date(Date.UTC(2012, 3, 5)),
+ returnedObject = this.dp.setEndDate(date_in);
+ // ...
+ datesEqual(this.dp.o.endDate, expected_date);
+ strictEqual(returnedObject, this.dp, "is chainable");
+});
+
+test('getStartDate', function(){
+ var date_in = new Date(2012, 3, 5),
+ expected_date = new Date(Date.UTC(2012, 3, 5)),
+ returnedObject = this.dp.setStartDate(date_in);
+ // ...
+ datesEqual(returnedObject.getStartDate(), expected_date);
+ strictEqual(returnedObject, this.dp, "is chainable");
+});
+
+test('getEndDate', function(){
+ var date_in = new Date(2012, 3, 5),
+ expected_date = new Date(Date.UTC(2012, 3, 5)),
+ returnedObject = this.dp.setEndDate(date_in);
+ // ...
+ datesEqual(returnedObject.getEndDate(), expected_date);
+ strictEqual(returnedObject, this.dp, "is chainable");
+});
+
+test('setDaysOfWeekDisabled - String', function(){
+ var days_in = "0,6",
+ expected_days = [0,6],
+ returnedObject = this.dp.setDaysOfWeekDisabled(days_in);
+ // ...
+ deepEqual(this.dp.o.daysOfWeekDisabled, expected_days);
+ strictEqual(returnedObject, this.dp, "is chainable");
+});
+
+test('setDaysOfWeekDisabled - Array', function(){
+ var days_in = [0,6],
+ expected_days = days_in,
+ returnedObject = this.dp.setDaysOfWeekDisabled(days_in);
+ // ...
+ deepEqual(this.dp.o.daysOfWeekDisabled, expected_days);
+ strictEqual(returnedObject, this.dp, "is chainable");
+});
+
+test('setDatesDisabled', function(){
+ var monthShown = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ var returnedObject = this.dp.setDatesDisabled(['01-03-2011']);
+ ok(this.picker.find('.datepicker-days tbody td.day:not(.old):first').hasClass('disabled'), 'day is disabled');
+ this.dp.setDatesDisabled(['01-01-2011']);
+ equal(monthShown.text(), 'March 2011', 'should not change viewDate');
+ strictEqual(returnedObject, this.dp, "is chainable");
+});
+
+test('setValue', function(){
+ var returnedObject = this.dp.setValue();
+ // ...
+ strictEqual(returnedObject, this.dp, "is chainable");
+});
+
+test('place', function(){
+ var returnedObject = this.dp.place();
+ // ...
+ strictEqual(returnedObject, this.dp, "is chainable");
+});
+
+test('moveMonth - can handle invalid date', function(){
+ // any input which results in an invalid date, f.e. an incorrectly formatted.
+ var invalidDate = new Date("invalid"),
+ returnedObject = this.dp.moveMonth(invalidDate, 1);
+ // ...
+ equal(this.input.val(), "31-03-2011", "date is reset");
+});
+
+test('parseDate - outputs correct value', function(){
+ var parsedDate = $.fn.datepicker.DPGlobal.parseDate('11/13/2015', $.fn.datepicker.DPGlobal.parseFormat('mm/dd/yyyy'), 'en');
+ equal(parsedDate.getUTCDate(), "13", "date is correct");
+ equal(parsedDate.getUTCMonth(), "10", "month is correct");
+ equal(parsedDate.getUTCFullYear(), "2015", "fullyear is correct");
+});
+
+test('parseDate - outputs correct value for yyyy\u5E74mm\u6708dd\u65E5 format', function(){
+ var parsedDate = $.fn.datepicker.DPGlobal.parseDate('2015\u5E7411\u670813', $.fn.datepicker.DPGlobal.parseFormat('yyyy\u5E74mm\u6708dd\u65E5'), 'ja');
+ equal(parsedDate.getUTCDate(), "13", "date is correct");
+ equal(parsedDate.getUTCMonth(), "10", "month is correct");
+ equal(parsedDate.getUTCFullYear(), "2015", "fullyear is correct");
+});
+
+test('parseDate - outputs correct value for dates containing unicodes', function(){
+ var parsedDate = $.fn.datepicker.DPGlobal.parseDate('\u5341\u4E00\u6708 13 2015', $.fn.datepicker.DPGlobal.parseFormat('MM dd yyyy'), 'zh-CN');
+ equal(parsedDate.getUTCDate(), "13", "date is correct");
+ equal(parsedDate.getUTCMonth(), "10", "month is correct");
+ equal(parsedDate.getUTCFullYear(), "2015", "fullyear is correct");
+});
diff --git a/public/bower_components/bootstrap-datepicker/tests/suites/methods_jquery.js b/public/bower_components/bootstrap-datepicker/tests/suites/methods_jquery.js
new file mode 100644
index 0000000..e934d49
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/suites/methods_jquery.js
@@ -0,0 +1,26 @@
+module('Methods (jQuery)', {
+ setup: function(){
+ this.$inputs = $('<input><input>')
+ .datepicker()
+ .appendTo('#qunit-fixture');
+ },
+ teardown: function(){
+ this.$inputs.each(function(){
+ $.data(this, 'datepicker').picker.remove();
+ });
+ }
+});
+
+test('Methods', function(){
+ [
+ 'show',
+ 'hide',
+ 'setValue',
+ 'place'
+ ].forEach($.proxy(function(index, value){
+ var returnedObject = this.$inputs.datepicker(value);
+
+ strictEqual(returnedObject, this.$inputs, "is jQuery element");
+ strictEqual(returnedObject.length, 2, "correct length of jQuery elements");
+ }, this));
+});
diff --git a/public/bower_components/bootstrap-datepicker/tests/suites/mouse_navigation/2011.js b/public/bower_components/bootstrap-datepicker/tests/suites/mouse_navigation/2011.js
new file mode 100644
index 0000000..9aa4628
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/suites/mouse_navigation/2011.js
@@ -0,0 +1,66 @@
+module('Mouse Navigation 2011', {
+ setup: function(){
+ /*
+ Tests start with picker on March 31, 2011.
+ */
+ this.input = $('<input type="text" value="31-03-2011">')
+ .appendTo('#qunit-fixture')
+ .datepicker({format: "dd-mm-yyyy"})
+ .focus(); // Activate for visibility checks
+ this.dp = this.input.data('datepicker');
+ this.picker = this.dp.picker;
+ },
+ teardown: function(){
+ this.picker.remove();
+ }
+});
+
+test('Selecting date from previous month while in January changes month and year displayed', function(){
+ var target;
+
+ this.input.val('01-01-2011');
+ this.dp.update();
+ datesEqual(this.dp.viewDate, UTCDate(2011, 0, 1));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2011, 0, 1));
+
+ // Rendered correctly
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days tbody td:first');
+ equal(target.text(), '26'); // Should be Dec 26
+ equal(this.picker.find('.datepicker-days thead th.datepicker-switch').text(), 'January 2011');
+
+ // Updated internally on click
+ target.click();
+ equal(this.picker.find('.datepicker-days thead th.datepicker-switch').text(), 'December 2010');
+ datesEqual(this.dp.viewDate, UTCDate(2010, 11, 26));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2010, 11, 26));
+
+ // Re-rendered on click
+ target = this.picker.find('.datepicker-days tbody td:first');
+ equal(target.text(), '28'); // Should be Nov 28
+});
+
+test('Selecting date from next month while in December changes month and year displayed', function(){
+ var target;
+
+ this.input.val('01-12-2010');
+ this.dp.update();
+ datesEqual(this.dp.viewDate, UTCDate(2010, 11, 1));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2010, 11, 1));
+
+ // Rendered correctly
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days tbody td:last');
+ equal(target.text(), '8'); // Should be Jan 8
+ equal(this.picker.find('.datepicker-days thead th.datepicker-switch').text(), 'December 2010');
+
+ // Updated internally on click
+ target.click();
+ equal(this.picker.find('.datepicker-days thead th.datepicker-switch').text(), 'January 2011');
+ datesEqual(this.dp.viewDate, UTCDate(2011, 0, 8));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2011, 0, 8));
+
+ // Re-rendered on click
+ target = this.picker.find('.datepicker-days tbody td:first');
+ equal(target.text(), '26'); // Should be Dec 26
+});
diff --git a/public/bower_components/bootstrap-datepicker/tests/suites/mouse_navigation/2012.js b/public/bower_components/bootstrap-datepicker/tests/suites/mouse_navigation/2012.js
new file mode 100644
index 0000000..071df9b
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/suites/mouse_navigation/2012.js
@@ -0,0 +1,266 @@
+module('Mouse Navigation 2012', {
+ setup: function(){
+ /*
+ Tests start with picker on March 31, 2012. Fun facts:
+
+ * February 1, 2012 was on a Wednesday
+ * February 29, 2012 was on a Wednesday
+ * March 1, 2012 was on a Thursday
+ * March 31, 2012 was on a Saturday
+ */
+ this.input = $('<input type="text" value="31-03-2012">')
+ .appendTo('#qunit-fixture')
+ .datepicker({format: "dd-mm-yyyy"})
+ .focus(); // Activate for visibility checks
+ this.dp = this.input.data('datepicker');
+ this.picker = this.dp.picker;
+ },
+ teardown: function(){
+ this.picker.remove();
+ }
+});
+
+test('Selecting date resets viewDate and date', function(){
+ var target;
+
+ // Rendered correctly
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days tbody td:nth(7)');
+ equal(target.text(), '4'); // Should be Mar 4
+
+ // Updated internally on click
+ target.click();
+ datesEqual(this.dp.viewDate, UTCDate(2012, 2, 4));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 4));
+
+ // Re-rendered on click
+ target = this.picker.find('.datepicker-days tbody td:first');
+ equal(target.text(), '26'); // Should be Feb 29
+});
+
+test('Navigating next/prev by month', function(){
+ var target;
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.prev');
+ ok(target.is(':visible'), 'Month:prev nav is visible');
+
+ // Updated internally on click
+ target.click();
+ // Should handle month-length changes gracefully
+ datesEqual(this.dp.viewDate, UTCDate(2012, 1, 29));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+
+ // Re-rendered on click
+ target = this.picker.find('.datepicker-days tbody td:first');
+ equal(target.text(), '29'); // Should be Jan 29
+
+ target = this.picker.find('.datepicker-days thead th.next');
+ ok(target.is(':visible'), 'Month:next nav is visible');
+
+ // Updated internally on click
+ target.click().click();
+ // Graceful moonth-end handling carries over
+ datesEqual(this.dp.viewDate, UTCDate(2012, 3, 29));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+
+ // Re-rendered on click
+ target = this.picker.find('.datepicker-days tbody td:first');
+ equal(target.text(), '25'); // Should be Mar 25
+ // (includes "old" days at start of month, even if that's all the first week-row consists of)
+});
+
+test('Navigating to/from year view', function(){
+ var target;
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ ok(target.is(':visible'), 'View switcher is visible');
+
+ target.click();
+ ok(this.picker.find('.datepicker-months').is(':visible'), 'Month picker is visible');
+ equal(this.dp.viewMode, 1);
+ // Not modified when switching modes
+ datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+
+ // Change months to test internal state
+ target = this.picker.find('.datepicker-months tbody span:contains(Apr)');
+ target.click();
+ equal(this.dp.viewMode, 0);
+ // Only viewDate modified
+ datesEqual(this.dp.viewDate, UTCDate(2012, 3, 1)); // Apr 30
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+});
+
+test('Navigating to/from decade view', function(){
+ var target;
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ ok(target.is(':visible'), 'View switcher is visible');
+
+ target.click();
+ ok(this.picker.find('.datepicker-months').is(':visible'), 'Month picker is visible');
+ equal(this.dp.viewMode, 1);
+ // Not modified when switching modes
+ datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+
+ target = this.picker.find('.datepicker-months thead th.datepicker-switch');
+ ok(target.is(':visible'), 'View switcher is visible');
+
+ target.click();
+ ok(this.picker.find('.datepicker-years').is(':visible'), 'Year picker is visible');
+ equal(this.dp.viewMode, 2);
+ // Not modified when switching modes
+ datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+
+ // Change years to test internal state changes
+ target = this.picker.find('.datepicker-years tbody span:contains(2011)');
+ target.click();
+ equal(this.dp.viewMode, 1);
+ // Only viewDate modified
+ datesEqual(this.dp.viewDate, UTCDate(2011, 2, 1));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+
+ target = this.picker.find('.datepicker-months tbody span:contains(Apr)');
+ target.click();
+ equal(this.dp.viewMode, 0);
+ // Only viewDate modified
+ datesEqual(this.dp.viewDate, UTCDate(2011, 3, 1));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+});
+
+test('Navigating prev/next in year view', function(){
+ var target;
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ ok(target.is(':visible'), 'View switcher is visible');
+
+ target.click();
+ ok(this.picker.find('.datepicker-months').is(':visible'), 'Month picker is visible');
+ equal(this.dp.viewMode, 1);
+ equal(this.picker.find('.datepicker-months thead th.datepicker-switch').text(), '2012');
+ // Not modified when switching modes
+ datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+
+ // Go to next year (2013)
+ target = this.picker.find('.datepicker-months thead th.next');
+ target.click();
+ equal(this.picker.find('.datepicker-months thead th.datepicker-switch').text(), '2013');
+ // Only viewDate modified
+ datesEqual(this.dp.viewDate, UTCDate(2013, 2, 31));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+
+ // Go to prev year (x2 == 2011)
+ target = this.picker.find('.datepicker-months thead th.prev');
+ target.click().click();
+ equal(this.picker.find('.datepicker-months thead th.datepicker-switch').text(), '2011');
+ // Only viewDate modified
+ datesEqual(this.dp.viewDate, UTCDate(2011, 2, 31));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+});
+
+test('Navigating prev/next in decade view', function(){
+ var target;
+
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days thead th.datepicker-switch');
+ ok(target.is(':visible'), 'View switcher is visible');
+
+ target.click();
+ ok(this.picker.find('.datepicker-months').is(':visible'), 'Month picker is visible');
+ equal(this.dp.viewMode, 1);
+ // Not modified when switching modes
+ datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+
+ target = this.picker.find('.datepicker-months thead th.datepicker-switch');
+ ok(target.is(':visible'), 'View switcher is visible');
+
+ target.click();
+ ok(this.picker.find('.datepicker-years').is(':visible'), 'Year picker is visible');
+ equal(this.dp.viewMode, 2);
+ equal(this.picker.find('.datepicker-years thead th.datepicker-switch').text(), '2010-2019');
+ // Not modified when switching modes
+ datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+
+ // Go to next decade (2020-29)
+ target = this.picker.find('.datepicker-years thead th.next');
+ target.click();
+ equal(this.picker.find('.datepicker-years thead th.datepicker-switch').text(), '2020-2029');
+ // Only viewDate modified
+ datesEqual(this.dp.viewDate, UTCDate(2022, 2, 31));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+
+ // Go to prev year (x2 == 2000-09)
+ target = this.picker.find('.datepicker-years thead th.prev');
+ target.click().click();
+ equal(this.picker.find('.datepicker-years thead th.datepicker-switch').text(), '2000-2009');
+ // Only viewDate modified
+ datesEqual(this.dp.viewDate, UTCDate(2002, 2, 31));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31));
+});
+
+test('Selecting date from previous month resets viewDate and date, changing month displayed', function(){
+ var target;
+
+ // Rendered correctly
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days tbody td:first');
+ equal(target.text(), '26'); // Should be Feb 26
+ equal(this.picker.find('.datepicker-days thead th.datepicker-switch').text(), 'March 2012');
+
+ // Updated internally on click
+ target.click();
+ equal(this.picker.find('.datepicker-days thead th.datepicker-switch').text(), 'February 2012');
+ datesEqual(this.dp.viewDate, UTCDate(2012, 1, 26));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 1, 26));
+
+ // Re-rendered on click
+ target = this.picker.find('.datepicker-days tbody td:first');
+ equal(target.text(), '29'); // Should be Jan 29
+});
+
+test('Selecting date from next month resets viewDate and date, changing month displayed', function(){
+ var target;
+
+ this.input.val('01-04-2012');
+ this.dp.update();
+
+ // Rendered correctly
+ equal(this.dp.viewMode, 0);
+ target = this.picker.find('.datepicker-days tbody td:last');
+ equal(target.text(), '5'); // Should be May 5
+ equal(this.picker.find('.datepicker-days thead th.datepicker-switch').text(), 'April 2012');
+
+ // Updated internally on click
+ target.click();
+ equal(this.picker.find('.datepicker-days thead th.datepicker-switch').text(), 'May 2012');
+ datesEqual(this.dp.viewDate, UTCDate(2012, 4, 5));
+ datesEqual(this.dp.dates.get(-1), UTCDate(2012, 4, 5));
+
+ // Re-rendered on click
+ target = this.picker.find('.datepicker-days tbody td:first');
+ equal(target.text(), '29'); // Should be Apr 29
+});
+
+test('Selecting today from next month', patch_date(function(Date){
+ var target;
+ this.dp.o.todayHighlight = true;
+ Date.now = new Date(2012, 2, 3); // Mar 3
+ this.input.val('01-02-2012'); // Feb 1
+ this.dp.update();
+
+ // Click the today button
+ target = this.picker.find('.datepicker-days tbody td.today');
+ equal(target.text(), '3'); // Should be Mar 3
+ target.click();
+
+ datesEqual(this.dp.viewDate, UTCDate(2012, 2, 3));
+}));
diff --git a/public/bower_components/bootstrap-datepicker/tests/suites/mouse_navigation/all.js b/public/bower_components/bootstrap-datepicker/tests/suites/mouse_navigation/all.js
new file mode 100644
index 0000000..5f1436e
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/suites/mouse_navigation/all.js
@@ -0,0 +1,33 @@
+module('Mouse Navigation (All)', {
+ setup: function(){
+ this.input = $('<input type="text">')
+ .appendTo('#qunit-fixture')
+ .datepicker({format: "dd-mm-yyyy"})
+ .focus(); // Activate for visibility checks
+ this.dp = this.input.data('datepicker');
+ this.picker = this.dp.picker;
+ },
+ teardown: function(){
+ this.picker.remove();
+ }
+});
+
+test('Clicking datepicker does not hide datepicker', function(){
+ ok(this.picker.is(':visible'), 'Picker is visible');
+ this.picker.trigger('mousedown');
+ ok(this.picker.is(':visible'), 'Picker is still visible');
+});
+
+test('Clicking outside datepicker hides datepicker', function(){
+ var $otherelement = $('<div />');
+ $('body').append($otherelement);
+
+ ok(this.picker.is(':visible'), 'Picker is visible');
+ this.input.trigger('click');
+ ok(this.picker.is(':visible'), 'Picker is still visible');
+
+ $otherelement.trigger('mousedown');
+ ok(this.picker.is(':not(:visible)'), 'Picker is hidden');
+
+ $otherelement.remove();
+});
diff --git a/public/bower_components/bootstrap-datepicker/tests/suites/noconflict.js b/public/bower_components/bootstrap-datepicker/tests/suites/noconflict.js
new file mode 100644
index 0000000..58bff1a
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/suites/noconflict.js
@@ -0,0 +1,20 @@
+module('NoConflict', {
+ setup: function(){
+ var datepicker = $.fn.datepicker.noConflict();
+ $.fn.bootstrapDP = datepicker;
+ },
+ teardown: function(){
+ $.fn.datepicker = $.fn.bootstrapDP;
+ delete $.fn.bootstrapDP;
+ }
+});
+
+test('Datepicker starts after calling noConflict() (no undefined defaults or locale_opts)', function(){
+ $('<div class="input-append date" id="datepicker">'+
+ '<input size="16" type="text" value="12-02-2012" readonly>'+
+ '<span class="add-on"><i class="icon-th"></i></span>'+
+ '</div>')
+ .appendTo('#qunit-fixture')
+ .bootstrapDP();
+ expect(0);
+});
diff --git a/public/bower_components/bootstrap-datepicker/tests/suites/options.js b/public/bower_components/bootstrap-datepicker/tests/suites/options.js
new file mode 100644
index 0000000..5a22c9f
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/suites/options.js
@@ -0,0 +1,1802 @@
+module('Options', {
+ setup: function(){},
+ teardown: function(){
+ $('#qunit-fixture *').each(function(){
+ var t = $(this);
+ if ('datepicker' in t.data())
+ t.datepicker('remove');
+ });
+ }
+});
+
+test('Autoclose', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ autoclose: true
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+
+ input.focus();
+ ok(picker.is(':visible'), 'Picker is visible');
+ target = picker.find('.datepicker-days tbody td:nth(7)');
+ equal(target.text(), '4'); // Mar 4
+
+ target.click();
+ ok(picker.is(':not(:visible)'), 'Picker is hidden');
+ datesEqual(dp.dates[0], UTCDate(2012, 2, 4));
+ datesEqual(dp.viewDate, UTCDate(2012, 2, 4));
+});
+
+test('Custom date formatter functions', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2015-09-18T00:00:00.000Z')
+ .datepicker({
+ format: {
+ /*
+ Say our UI should display a week ahead,
+ but textbox should store the actual date.
+ This is useful if we need UI to select local dates,
+ but store in UTC
+ */
+ toDisplay: function (date, format, language) {
+ var d = new Date(date);
+ d.setDate(d.getDate() - 7);
+ return d.toISOString();
+ },
+ toValue: function (date, format, language) {
+ var d = new Date(date);
+ d.setDate(d.getDate() + 7);
+ return new Date(d);
+ }
+ },
+ autoclose: true
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+ //Value is ISO format and is 7 days older than UI
+ equal(input.val(), '2015-09-18T00:00:00.000Z');
+ datesEqual(dp.dates[0], UTCDate(2015, 8, 25));
+ datesEqual(dp.viewDate, UTCDate(2015, 8, 25));
+
+ input.focus();
+ ok(picker.is(':visible'), 'Picker is visible');
+ target = picker.find('.datepicker-days tbody td:nth(5)');
+ equal(target.text(), '4'); // Sep 4
+
+ target.click();
+ ok(picker.is(':not(:visible)'), 'Picker is hidden');
+ //Value is now 28th Aug 2015 in ISO format
+ //and is 7 days older than UI
+ equal(input.val(), '2015-08-28T00:00:00.000Z');
+ datesEqual(dp.dates[0], UTCDate(2015, 8, 4));
+ datesEqual(dp.viewDate, UTCDate(2015, 8, 4));
+});
+
+test('Startview: year view (integer)', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ startView: 1
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden');
+ ok(picker.find('.datepicker-months').is(':visible'), 'Months view visible');
+ ok(picker.find('.datepicker-years').is(':not(:visible)'), 'Years view hidden');
+ ok(picker.find('.datepicker-decades').is(':not(:visible)'), 'Decades view hidden');
+ ok(picker.find('.datepicker-centuries').is(':not(:visible)'), 'Centuries view hidden');
+});
+
+test('Startview: year view (string)', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ startView: 'year'
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden');
+ ok(picker.find('.datepicker-months').is(':visible'), 'Months view visible');
+ ok(picker.find('.datepicker-years').is(':not(:visible)'), 'Years view hidden');
+ ok(picker.find('.datepicker-decades').is(':not(:visible)'), 'Decades view hidden');
+ ok(picker.find('.datepicker-centuries').is(':not(:visible)'), 'Centuries view hidden');
+});
+
+test('Startview: decade view (integer)', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ startView: 2
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden');
+ ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden');
+ ok(picker.find('.datepicker-years').is(':visible'), 'Years view visible');
+ ok(picker.find('.datepicker-decades').is(':not(:visible)'), 'Decades view hidden');
+ ok(picker.find('.datepicker-centuries').is(':not(:visible)'), 'Centuries view hidden');
+});
+
+test('Startview: decade view (string)', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ startView: 'decade'
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden');
+ ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden');
+ ok(picker.find('.datepicker-years').is(':visible'), 'Years view visible');
+ ok(picker.find('.datepicker-decades').is(':not(:visible)'), 'Decades view hidden');
+ ok(picker.find('.datepicker-centuries').is(':not(:visible)'), 'Centuries view hidden');
+});
+
+test('Startview: century view (integer)', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ startView: 3
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden');
+ ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden');
+ ok(picker.find('.datepicker-years').is(':not(:visible)'), 'Years view hidden');
+ ok(picker.find('.datepicker-decades').is(':visible'), 'Decades view visible');
+ ok(picker.find('.datepicker-centuries').is(':not(:visible)'), 'Centuries view hidden');
+});
+
+test('Startview: century view (string)', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ startView: 'century'
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden');
+ ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden');
+ ok(picker.find('.datepicker-years').is(':not(:visible)'), 'Years view hidden');
+ ok(picker.find('.datepicker-decades').is(':visible'), 'Decades view visible');
+ ok(picker.find('.datepicker-centuries').is(':not(:visible)'), 'Centuries view hidden');
+});
+
+test('Startview: millennium view (integer)', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ startView: 4
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden');
+ ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden');
+ ok(picker.find('.datepicker-years').is(':not(:visible)'), 'Years view hidden');
+ ok(picker.find('.datepicker-decades').is(':not(:visible)'), 'Decades view hidden');
+ ok(picker.find('.datepicker-centuries').is(':visible'), 'Centuries view visible');
+});
+
+test('Startview: millennium view (string)', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ startView: 'millennium'
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden');
+ ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden');
+ ok(picker.find('.datepicker-years').is(':not(:visible)'), 'Years view hidden');
+ ok(picker.find('.datepicker-decades').is(':not(:visible)'), 'Decades view hidden');
+ ok(picker.find('.datepicker-centuries').is(':visible'), 'Centuries view visible');
+});
+
+test('Today Button: today button not default', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd'
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
+ ok(picker.find('.datepicker-days tfoot .today').is(':not(:visible)'), 'Today button not visible');
+});
+
+test('Today Button: today visibility when enabled', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ todayBtn: true
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
+ ok(picker.find('.datepicker-days tfoot .today').is(':visible'), 'Today button visible');
+
+ picker.find('.datepicker-days thead th.datepicker-switch').click();
+ ok(picker.find('.datepicker-months').is(':visible'), 'Months view visible');
+ ok(picker.find('.datepicker-months tfoot .today').is(':visible'), 'Today button visible');
+
+ picker.find('.datepicker-months thead th.datepicker-switch').click();
+ ok(picker.find('.datepicker-years').is(':visible'), 'Years view visible');
+ ok(picker.find('.datepicker-years tfoot .today').is(':visible'), 'Today button visible');
+});
+
+test('Today Button: data-api', function(){
+ var input = $('<input data-date-today-btn="true" />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd'
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
+ ok(picker.find('.datepicker-days tfoot .today').is(':visible'), 'Today button visible');
+});
+
+test('Today Button: moves to today\'s date', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ todayBtn: true
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
+ ok(picker.find('.datepicker-days tfoot .today').is(':visible'), 'Today button visible');
+
+ target = picker.find('.datepicker-days tfoot .today');
+ target.click();
+
+ var d = new Date(),
+ today = UTCDate(d.getFullYear(), d.getMonth(), d.getDate());
+ datesEqual(dp.viewDate, today);
+ datesEqual(dp.dates[0], UTCDate(2012, 2, 5));
+});
+
+test('Today Button: moves to days view', function(){
+ var viewModes = $.fn.datepicker.DPGlobal.viewModes;
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ startView: viewModes.length - 1,
+ todayBtn: true
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ target = picker.find('tfoot .today').filter(':visible');
+
+ target.click();
+ ok(picker.find('.datepicker-days tfoot .today').is(':visible'), 'Today button visible');
+});
+
+test('Today Button: "linked" selects today\'s date', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ todayBtn: "linked"
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
+ ok(picker.find('.datepicker-days tfoot .today').is(':visible'), 'Today button visible');
+
+ target = picker.find('.datepicker-days tfoot .today');
+ target.click();
+
+ var d = new Date(),
+ today = UTCDate(d.getFullYear(), d.getMonth(), d.getDate());
+ datesEqual(dp.viewDate, today);
+ datesEqual(dp.dates[0], today);
+});
+
+test('Today Highlight: today\'s date is not highlighted by default', patch_date(function(Date){
+ Date.now = UTCDate(2012, 2, 15);
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd'
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
+ equal(picker.find('.datepicker-days thead .datepicker-switch').text(), 'March 2012', 'Title is "March 2012"');
+
+ target = picker.find('.datepicker-days tbody td:contains(15)');
+ ok(!target.hasClass('today'), 'Today is not marked with "today" class');
+ target = picker.find('.datepicker-days tbody td:contains(14)');
+ ok(!target.hasClass('today'), 'Yesterday is not marked with "today" class');
+ target = picker.find('.datepicker-days tbody td:contains(16)');
+ ok(!target.hasClass('today'), 'Tomorrow is not marked with "today" class');
+}));
+
+test('Today Highlight: today\'s date is highlighted when not active', patch_date(function(Date){
+ Date.now = new Date(2012, 2, 15);
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ todayHighlight: true
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
+ equal(picker.find('.datepicker-days thead .datepicker-switch').text(), 'March 2012', 'Title is "March 2012"');
+
+ target = picker.find('.datepicker-days tbody td:contains(15)');
+ ok(target.hasClass('today'), 'Today is marked with "today" class');
+ target = picker.find('.datepicker-days tbody td:contains(14)');
+ ok(!target.hasClass('today'), 'Yesterday is not marked with "today" class');
+ target = picker.find('.datepicker-days tbody td:contains(16)');
+ ok(!target.hasClass('today'), 'Tomorrow is not marked with "today" class');
+}));
+
+test('Clear Button: clear visibility when enabled', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ clearBtn: true
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
+ ok(picker.find('.datepicker-days tfoot .clear').is(':visible'), 'Clear button visible');
+
+ picker.find('.datepicker-days thead th.datepicker-switch').click();
+ ok(picker.find('.datepicker-months').is(':visible'), 'Months view visible');
+ ok(picker.find('.datepicker-months tfoot .clear').is(':visible'), 'Clear button visible');
+
+ picker.find('.datepicker-months thead th.datepicker-switch').click();
+ ok(picker.find('.datepicker-years').is(':visible'), 'Years view visible');
+ ok(picker.find('.datepicker-years tfoot .clear').is(':visible'), 'Clear button visible');
+});
+
+test('Clear Button: clears input value', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ clearBtn: true
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
+ ok(picker.find('.datepicker-days tfoot .clear').is(':visible'), 'Today button visible');
+
+ target = picker.find('.datepicker-days tfoot .clear');
+ target.click();
+
+ equal(input.val(),'',"Input value has been cleared.");
+ ok(picker.is(':visible'), 'Picker is visible');
+});
+
+test('Clear Button: hides datepicker if autoclose is on', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ clearBtn: true,
+ autoclose: true
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
+ ok(picker.find('.datepicker-days tfoot .clear').is(':visible'), 'Today button visible');
+
+ target = picker.find('.datepicker-days tfoot .clear');
+ target.click();
+
+ equal(input.val(),'',"Input value has been cleared.");
+ ok(picker.is(':not(:visible)'), 'Picker is hidden');
+});
+
+test('Active Toggle Default: when active date is selected it is not unset', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd'
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ // open our datepicker
+ input.focus();
+
+ // Initial value is selected
+ ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 selected');
+
+ // click on our active date
+ target = picker.find('.datepicker-days .day.active');
+ target.click();
+
+ // make sure it's still set
+ equal(input.val(), '2012-03-05', "Input value has not been cleared.");
+});
+
+test('Active Toggle Enabled (single date): when active date is selected it is unset', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ toggleActive: true
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ // open our datepicker
+ input.focus();
+
+ // Initial value is selected
+ ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 selected');
+
+ // click on our active date
+ target = picker.find('.datepicker-days .day.active');
+ target.click();
+
+ // make sure it's no longer set
+ equal(input.val(), '', "Input value has been cleared.");
+});
+
+test('Active Toggle Multidate Default: when one of the active dates is selected it is unset', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ multidate: true
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ // open our datepicker
+ input.focus();
+
+ // Initial value is selected
+ ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 in dates');
+
+ // Select additional date
+ target = picker.find('.datepicker-days tbody td:nth(7)');
+ target.click();
+ datesEqual(dp.dates.get(-1), UTCDate(2012, 2, 4), '2012-03-04 in dates');
+ datesEqual(dp.viewDate, UTCDate(2012, 2, 4));
+ equal(input.val(), '2012-03-05,2012-03-04');
+
+ // Unselect additional date
+ target = picker.find('.datepicker-days tbody td:nth(7)');
+ target.click();
+ ok(dp.dates.contains(UTCDate(2012, 2, 4)) === -1, '2012-03-04 no longer in dates');
+ datesEqual(dp.viewDate, UTCDate(2012, 2, 4));
+ equal(input.val(), '2012-03-05');
+});
+
+test('Active Toggle Disabled: when active date is selected it remains', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ toggleActive: false
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ // open our datepicker
+ input.focus();
+
+ // Initial value is selected
+ ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 selected');
+
+ // click on our active date
+ target = picker.find('.datepicker-days .day.active');
+ target.click();
+
+ // make sure it's still set
+ ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 still selected');
+ datesEqual(dp.viewDate, UTCDate(2012, 2, 5));
+ equal(input.val(), '2012-03-05');
+});
+
+test('Active Toggle Multidate Disabled: when activeToggle is set to false, but multidate is set, the option is ignored and selecting an active date it is unset', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ multidate: true,
+ toggleActive: false
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ // open our datepicker
+ input.focus();
+
+ // Initial value is selected
+ ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 in dates');
+
+ // Select additional date
+ target = picker.find('.datepicker-days tbody td:nth(7)');
+ target.click();
+ datesEqual(dp.dates.get(-1), UTCDate(2012, 2, 4), '2012-03-04 in dates');
+ datesEqual(dp.viewDate, UTCDate(2012, 2, 4));
+ equal(input.val(), '2012-03-05,2012-03-04');
+
+ // Unselect additional date
+ target = picker.find('.datepicker-days tbody td:nth(7)');
+ target.click();
+ ok(dp.dates.contains(UTCDate(2012, 2, 4)) === -1, '2012-03-04 no longer in dates');
+ datesEqual(dp.viewDate, UTCDate(2012, 2, 4));
+ equal(input.val(), '2012-03-05');
+});
+
+test('DaysOfWeekDisabled', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-10-26')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ daysOfWeekDisabled: '1,5'
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ target = picker.find('.datepicker-days tbody td:nth(22)');
+ ok(target.hasClass('disabled'), 'Day of week is disabled');
+ target = picker.find('.datepicker-days tbody td:nth(24)');
+ ok(!target.hasClass('disabled'), 'Day of week is enabled');
+ target = picker.find('.datepicker-days tbody td:nth(26)');
+ ok(target.hasClass('disabled'), 'Day of week is disabled');
+});
+
+test('DaysOfWeekHighlighted', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-10-26')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ startDate: '2012-10-02',
+ daysOfWeekHighlighted: '1,5'
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ target = picker.find('.datepicker-days tbody td:nth(0)');
+ ok(!target.hasClass('highlighted'), 'Day of week is not highlighted');
+ target = picker.find('.datepicker-days tbody td:nth(22)');
+ ok(target.hasClass('highlighted'), 'Day of week is highlighted');
+ target = picker.find('.datepicker-days tbody td:nth(24)');
+ ok(!target.hasClass('highlighted'), 'Day of week is not highlighted');
+ target = picker.find('.datepicker-days tbody td:nth(26)');
+ ok(target.hasClass('highlighted'), 'Day of week is highlighted');
+});
+
+test('DatesDisabled', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-10-26')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ datesDisabled: ['2012-10-1', '2012-10-10', '2012-10-20']
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ target = picker.find('.datepicker-days tbody td:nth(1)');
+ ok(target.hasClass('disabled'), 'Day of week is disabled');
+ ok(target.hasClass('disabled-date'), 'Date is disabled');
+ target = picker.find('.datepicker-days tbody td:nth(2)');
+ ok(!target.hasClass('disabled'), 'Day of week is enabled');
+ target = picker.find('.datepicker-days tbody td:nth(10)');
+ ok(target.hasClass('disabled'), 'Day of week is disabled');
+ ok(target.hasClass('disabled-date'), 'Date is disabled');
+ target = picker.find('.datepicker-days tbody td:nth(11)');
+ ok(!target.hasClass('disabled'), 'Day of week is enabled');
+ target = picker.find('.datepicker-days tbody td:nth(20)');
+ ok(target.hasClass('disabled'), 'Day of week is disabled');
+ ok(target.hasClass('disabled-date'), 'Date is disabled');
+ target = picker.find('.datepicker-days tbody td:nth(21)');
+ ok(!target.hasClass('disabled'), 'Day of week is enabled');
+});
+
+test('DatesDisabled as attribute', function(){
+ var input = $('<input data-date-dates-disabled="2012-10-1,2012-10-10,2012-10-20" />')
+ .appendTo('#qunit-fixture')
+ .val('2012-10-26')
+ .datepicker({
+ format: 'yyyy-mm-dd'
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ target = picker.find('.datepicker-days tbody td:nth(1)');
+ ok(target.hasClass('disabled'), 'Day of week is disabled');
+ ok(target.hasClass('disabled-date'), 'Date is disabled');
+ target = picker.find('.datepicker-days tbody td:nth(2)');
+ ok(!target.hasClass('disabled'), 'Day of week is enabled');
+ target = picker.find('.datepicker-days tbody td:nth(10)');
+ ok(target.hasClass('disabled'), 'Day of week is disabled');
+ ok(target.hasClass('disabled-date'), 'Date is disabled');
+ target = picker.find('.datepicker-days tbody td:nth(11)');
+ ok(!target.hasClass('disabled'), 'Day of week is enabled');
+ target = picker.find('.datepicker-days tbody td:nth(20)');
+ ok(target.hasClass('disabled'), 'Day of week is disabled');
+ ok(target.hasClass('disabled-date'), 'Date is disabled');
+ target = picker.find('.datepicker-days tbody td:nth(21)');
+ ok(!target.hasClass('disabled'), 'Day of week is enabled');
+});
+
+test('BeforeShowDay', function(){
+
+ var beforeShowDay = function(date) {
+ switch (date.getDate()){
+ case 25:
+ return {
+ tooltip: 'Example tooltip',
+ classes: 'active'
+ };
+ case 26:
+ return "test26";
+ case 27:
+ return {enabled: false, classes: 'test27'};
+ case 28:
+ return false;
+ case 30:
+ return { content: "foo" + date.getDate() }
+ }
+ };
+
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-10-26')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ beforeShowDay: beforeShowDay
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ target = picker.find('.datepicker-days tbody td:nth(25)');
+ equal(target.attr('title'), 'Example tooltip', '25th has tooltip');
+ ok(!target.hasClass('disabled'), '25th is enabled');
+ target = picker.find('.datepicker-days tbody td:nth(26)');
+ ok(target.hasClass('test26'), '26th has test26 class');
+ ok(!target.hasClass('disabled'), '26th is enabled');
+ target = picker.find('.datepicker-days tbody td:nth(27)');
+ ok(target.hasClass('test27'), '27th has test27 class');
+ ok(target.hasClass('disabled'), '27th is disabled');
+ target = picker.find('.datepicker-days tbody td:nth(28)');
+ ok(target.hasClass('disabled'), '28th is disabled');
+ target = picker.find('.datepicker-days tbody td:nth(29)');
+ ok(!target.hasClass('disabled'), '29th is enabled');
+ target = picker.find('.datepicker-days tbody td:nth(30)');
+ ok(target.text() == "foo30", '30th has custom content');
+});
+
+test('BeforeShowMonth regress .day content', function() {
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-10-26')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ beforeShowDay: function(date) {
+ return {
+ content: '<strong>foo123</strong>'
+ };
+ }
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ target = picker.find('.datepicker-days tbody td:nth(30)');
+ target.trigger('click');
+ datesEqual(dp.viewDate, UTCDate(2012, 9, 30));
+});
+
+test('BeforeShowMonth', function () {
+
+ var beforeShowMonth = function (date) {
+ switch (date.getMonth()) {
+ case 0:
+ return {
+ tooltip: 'Example tooltip',
+ classes: 'active'
+ };
+ case 2:
+ return "testMarch";
+ case 4:
+ return {enabled: false, classes: 'testMay'};
+ case 5:
+ return false;
+ }
+ };
+
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-10-26')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ beforeShowMonth: beforeShowMonth
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ target = picker.find('.datepicker-months tbody span:nth(0)');
+ equal(target.attr('title'), 'Example tooltip', '1st has tooltip');
+ ok(!target.hasClass('disabled'), 'January is enabled');
+ target = picker.find('.datepicker-months tbody span:nth(2)');
+ ok(target.hasClass('testMarch'), 'March has testMarch class');
+ ok(!target.hasClass('disabled'), 'March enabled');
+ target = picker.find('.datepicker-months tbody span:nth(4)');
+ ok(target.hasClass('testMay'), 'May has testMay class');
+ ok(target.hasClass('disabled'), 'May is disabled');
+ target = picker.find('.datepicker-months tbody span:nth(5)');
+ ok(target.hasClass('disabled'), 'June is disabled');
+ target = picker.find('.datepicker-months tbody span:nth(6)');
+ ok(!target.hasClass('disabled'), 'July is enabled');
+});
+
+
+test('BeforeShowYear', function () {
+
+ var beforeShowYear = function (date) {
+ switch (date.getFullYear()) {
+ case 2013:
+ return {
+ tooltip: 'Example tooltip',
+ classes: 'active'
+ };
+ case 2014:
+ return "test2014";
+ case 2015:
+ return {enabled: false, classes: 'test2015'};
+ case 2016:
+ return false;
+ }
+ };
+
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-10-26')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ beforeShowYear: beforeShowYear
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ target = picker.find('.datepicker-years tbody span:nth(4)');
+ equal(target.attr('title'), 'Example tooltip', '5th has tooltip');
+ ok(!target.hasClass('disabled'), '2013, 5th is enabled');
+ target = picker.find('.datepicker-years tbody span:nth(5)');
+ ok(target.hasClass('test2014'), '6th has test2014 class');
+ ok(!target.hasClass('disabled'), '2014, 6th is enabled');
+ target = picker.find('.datepicker-years tbody span:nth(6)');
+ ok(target.hasClass('test2015'), '2015, 7th has test2015 class');
+ ok(target.hasClass('disabled'), '2015, 7th is disabled');
+ target = picker.find('.datepicker-years tbody span:nth(7)');
+ ok(target.hasClass('disabled'), '2016, 8th is disabled');
+ target = picker.find('.datepicker-years tbody span:nth(8)');
+ ok(!target.hasClass('disabled'), '2017, 9th is enabled');
+});
+
+test('beforeShowDecade', function () {
+ var beforeShowDecade = function (date) {
+ switch (date.getFullYear()) {
+ case 2030:
+ return {
+ tooltip: 'Example tooltip',
+ classes: 'active'
+ };
+ case 2040:
+ return "test2040";
+ case 2050:
+ return {enabled: false, classes: 'test2050'};
+ case 2060:
+ return false;
+ }
+ };
+
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('03/05/2012')
+ .datepicker({ beforeShowDecade: beforeShowDecade }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ target = picker.find('.datepicker-decades tbody span:nth(4)');
+ equal(target.attr('title'), 'Example tooltip', '5th has tooltip');
+ ok(!target.hasClass('disabled'), '2030, 5th is enabled');
+
+ target = picker.find('.datepicker-decades tbody span:nth(5)');
+ ok(target.hasClass('test2040'), '6th has test2040 class');
+ ok(!target.hasClass('disabled'), '2040, 6th is enabled');
+
+ target = picker.find('.datepicker-decades tbody span:nth(6)');
+ ok(target.hasClass('test2050'), '2050, 7th has test2050 class');
+ ok(target.hasClass('disabled'), '2050, 7th is disabled');
+
+ target = picker.find('.datepicker-decades tbody span:nth(7)');
+ ok(target.hasClass('disabled'), '2060, 8th is disabled');
+
+ target = picker.find('.datepicker-decades tbody span:nth(8)');
+ ok(!target.hasClass('disabled'), '2070, 9th is enabled');
+});
+
+test('beforeShowCentury', function () {
+ var beforeShowCentury = function (date) {
+ switch (date.getFullYear()) {
+ case 2300:
+ return {
+ tooltip: 'Example tooltip',
+ classes: 'active'
+ };
+ case 2400:
+ return "test2400";
+ case 2500:
+ return {enabled: false, classes: 'test2500'};
+ case 2600:
+ return false;
+ }
+ };
+
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('03/05/2012')
+ .datepicker({ beforeShowCentury: beforeShowCentury }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ target = picker.find('.datepicker-centuries tbody span:nth(4)');
+ equal(target.attr('title'), 'Example tooltip', '5th has tooltip');
+ ok(!target.hasClass('disabled'), '2300, 5th is enabled');
+
+ target = picker.find('.datepicker-centuries tbody span:nth(5)');
+ ok(target.hasClass('test2400'), '6th has test2400 class');
+ ok(!target.hasClass('disabled'), '2400, 6th is enabled');
+
+ target = picker.find('.datepicker-centuries tbody span:nth(6)');
+ ok(target.hasClass('test2500'), '2500, 7th has test2500 class');
+ ok(target.hasClass('disabled'), '2500, 7th is disabled');
+
+ target = picker.find('.datepicker-centuries tbody span:nth(7)');
+ ok(target.hasClass('disabled'), '2600, 8th is disabled');
+
+ target = picker.find('.datepicker-centuries tbody span:nth(8)');
+ ok(!target.hasClass('disabled'), '2700, 9th is enabled');
+});
+
+test('Orientation: values are parsed correctly', function(){
+
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-10-26')
+ .datepicker({
+ format: 'yyyy-mm-dd'
+ }),
+ dp = input.data('datepicker');
+
+ equal(dp.o.orientation.x, 'auto');
+ equal(dp.o.orientation.y, 'auto');
+
+ dp._process_options({orientation: ''});
+ equal(dp.o.orientation.x, 'auto', 'Empty value');
+ equal(dp.o.orientation.y, 'auto', 'Empty value');
+
+ dp._process_options({orientation: 'left'});
+ equal(dp.o.orientation.x, 'left', '"left"');
+ equal(dp.o.orientation.y, 'auto', '"left"');
+
+ dp._process_options({orientation: 'right'});
+ equal(dp.o.orientation.x, 'right', '"right"');
+ equal(dp.o.orientation.y, 'auto', '"right"');
+
+ dp._process_options({orientation: 'top'});
+ equal(dp.o.orientation.x, 'auto', '"top"');
+ equal(dp.o.orientation.y, 'top', '"top"');
+
+ dp._process_options({orientation: 'bottom'});
+ equal(dp.o.orientation.x, 'auto', '"bottom"');
+ equal(dp.o.orientation.y, 'bottom', '"bottom"');
+
+ dp._process_options({orientation: 'left top'});
+ equal(dp.o.orientation.x, 'left', '"left top"');
+ equal(dp.o.orientation.y, 'top', '"left top"');
+
+ dp._process_options({orientation: 'left bottom'});
+ equal(dp.o.orientation.x, 'left', '"left bottom"');
+ equal(dp.o.orientation.y, 'bottom', '"left bottom"');
+
+ dp._process_options({orientation: 'right top'});
+ equal(dp.o.orientation.x, 'right', '"right top"');
+ equal(dp.o.orientation.y, 'top', '"right top"');
+
+ dp._process_options({orientation: 'right bottom'});
+ equal(dp.o.orientation.x, 'right', '"right bottom"');
+ equal(dp.o.orientation.y, 'bottom', '"right bottom"');
+
+ dp._process_options({orientation: 'left right'});
+ equal(dp.o.orientation.x, 'left', '"left right"');
+ equal(dp.o.orientation.y, 'auto', '"left right"');
+
+ dp._process_options({orientation: 'right left'});
+ equal(dp.o.orientation.x, 'right', '"right left"');
+ equal(dp.o.orientation.y, 'auto', '"right left"');
+
+ dp._process_options({orientation: 'top bottom'});
+ equal(dp.o.orientation.x, 'auto', '"top bottom"');
+ equal(dp.o.orientation.y, 'top', '"top bottom"');
+
+ dp._process_options({orientation: 'bottom top'});
+ equal(dp.o.orientation.x, 'auto', '"bottom top"');
+ equal(dp.o.orientation.y, 'bottom', '"bottom top"');
+
+ dp._process_options({orientation: 'foo bar'});
+ equal(dp.o.orientation.x, 'auto', '"foo bar"');
+ equal(dp.o.orientation.y, 'auto', '"foo bar"');
+
+ dp._process_options({orientation: 'foo left'});
+ equal(dp.o.orientation.x, 'left', '"foo left"');
+ equal(dp.o.orientation.y, 'auto', '"foo left"');
+
+ dp._process_options({orientation: 'top bar'});
+ equal(dp.o.orientation.x, 'auto', '"top bar"');
+ equal(dp.o.orientation.y, 'top', '"top bar"');
+});
+
+test('startDate', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-10-26')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ startDate: new Date(2012, 9, 26)
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ target = picker.find('.datepicker-days tbody td:nth(25)');
+ ok(target.hasClass('disabled'), 'Previous day is disabled');
+ target = picker.find('.datepicker-days tbody td:nth(26)');
+ ok(!target.hasClass('disabled'), 'Specified date is enabled');
+ target = picker.find('.datepicker-days tbody td:nth(27)');
+ ok(!target.hasClass('disabled'), 'Next day is enabled');
+});
+
+test('endDate', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-10-26')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ endDate: new Date(2012, 9, 26)
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ target = picker.find('.datepicker-days tbody td:nth(25)');
+ ok(!target.hasClass('disabled'), 'Previous day is enabled');
+ target = picker.find('.datepicker-days tbody td:nth(26)');
+ ok(!target.hasClass('disabled'), 'Specified date is enabled');
+ target = picker.find('.datepicker-days tbody td:nth(27)');
+ ok(target.hasClass('disabled'), 'Next day is disabled');
+});
+
+test('Multidate', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ multidate: true
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+
+ // Initial value is selected
+ ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 (initial date) in dates');
+
+ // Select first
+ target = picker.find('.datepicker-days tbody td:nth(7)');
+ equal(target.text(), '4'); // Mar 4
+
+ target.click();
+ datesEqual(dp.dates.get(-1), UTCDate(2012, 2, 4), '2012-03-04 in dates');
+ datesEqual(dp.viewDate, UTCDate(2012, 2, 4));
+ equal(input.val(), '2012-03-05,2012-03-04');
+
+ // Select second
+ target = picker.find('.datepicker-days tbody td:nth(15)');
+ equal(target.text(), '12'); // Mar 12
+
+ target.click();
+ datesEqual(dp.dates.get(-1), UTCDate(2012, 2, 12), '2012-03-12 in dates');
+ datesEqual(dp.viewDate, UTCDate(2012, 2, 12));
+ equal(input.val(), '2012-03-05,2012-03-04,2012-03-12');
+
+ // Deselect first
+ target = picker.find('.datepicker-days tbody td:nth(7)');
+ equal(target.text(), '4'); // Mar 4
+
+ target.click();
+ ok(dp.dates.contains(UTCDate(2012, 2, 4)) === -1, '2012-03-04 no longer in dates');
+ datesEqual(dp.viewDate, UTCDate(2012, 2, 4));
+ equal(input.val(), '2012-03-05,2012-03-12');
+});
+
+test('Multidate with limit', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ multidate: 2
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+
+ // Initial value is selected
+ ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 (initial date) in dates');
+
+ // Select first
+ target = picker.find('.datepicker-days tbody td:nth(7)');
+ equal(target.text(), '4'); // Mar 4
+
+ target.click();
+ datesEqual(dp.dates.get(-1), UTCDate(2012, 2, 4), '2012-03-04 in dates');
+ datesEqual(dp.viewDate, UTCDate(2012, 2, 4));
+ equal(input.val(), '2012-03-05,2012-03-04');
+
+ // Select second
+ target = picker.find('.datepicker-days tbody td:nth(15)');
+ equal(target.text(), '12'); // Mar 12
+
+ target.click();
+ datesEqual(dp.dates.get(-1), UTCDate(2012, 2, 12), '2012-03-12 in dates');
+ datesEqual(dp.viewDate, UTCDate(2012, 2, 12));
+ equal(input.val(), '2012-03-04,2012-03-12');
+
+ // Select third
+ target = picker.find('.datepicker-days tbody td:nth(20)');
+ equal(target.text(), '17'); // Mar 17
+
+ target.click();
+ datesEqual(dp.dates.get(-1), UTCDate(2012, 2, 17), '2012-03-17 in dates');
+ ok(dp.dates.contains(UTCDate(2012, 2, 4)) === -1, '2012-03-04 no longer in dates');
+ datesEqual(dp.viewDate, UTCDate(2012, 2, 17));
+ equal(input.val(), '2012-03-12,2012-03-17');
+});
+
+test('Multidate Separator', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ multidate: true,
+ multidateSeparator: ' '
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+
+ // Select first
+ target = picker.find('.datepicker-days tbody td:nth(7)');
+ equal(target.text(), '4'); // Mar 4
+
+ target.click();
+ equal(input.val(), '2012-03-05 2012-03-04');
+
+ // Select second
+ target = picker.find('.datepicker-days tbody td:nth(15)');
+ equal(target.text(), '12'); // Mar 12
+
+ target.click();
+ equal(input.val(), '2012-03-05 2012-03-04 2012-03-12');
+});
+
+
+test("Picker is shown on input focus when showOnFocus is not defined", function () {
+
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2014-01-01')
+ .datepicker({
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker;
+
+ input.focus();
+
+ ok(picker.is(":visible"), "Datepicker is visible");
+
+});
+
+test("Picker is shown on input focus when showOnFocus is true", function () {
+
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2014-01-01')
+ .datepicker({
+ showOnFocus: true
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker;
+
+ input.focus();
+
+ ok(picker.is(":visible"), "Datepicker is visible");
+
+});
+
+test("Picker is hidden on input focus when showOnFocus is false", function () {
+
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2014-01-01')
+ .datepicker({
+ showOnFocus: false
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker;
+
+ input.focus();
+
+ ok(picker.is(":hidden"), "Datepicker is hidden");
+
+});
+
+test('Container', function(){
+ var testContainer = $('<div class="date-picker-container"/>')
+ .appendTo('#qunit-fixture'),
+ input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-10-26')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ container: '.date-picker-container',
+ startDate: new Date(2012, 9, 26)
+ }),
+ dp = input.data('datepicker'),
+ target = dp.picker;
+ input.focus();
+ equal(target.parent()[0], testContainer[0], 'Container is not the testContainer that was specificed');
+});
+
+test('Default View Date (Object)', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ defaultViewDate: { year: 1977, month: 04, day: 25 }
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+
+ equal(picker.find('.datepicker-days thead .datepicker-switch').text(), 'May 1977');
+});
+
+test('Default View Date (Date)', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ defaultViewDate: new Date(1977, 4, 25)
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+
+ equal(picker.find('.datepicker-days thead .datepicker-switch').text(), 'May 1977');
+});
+
+test('Default View Date (String)', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ defaultViewDate: "1977-05-24"
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+
+ equal(picker.find('.datepicker-days thead .datepicker-switch').text(), 'May 1977');
+});
+
+test('Immediate Updates', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2014-01-01')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ immediateUpdates: true
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker;
+
+ // Change month
+ input.focus();
+ picker.find('.datepicker-days .next').click();
+ equal(input.val(), '2014-02-01');
+
+ // Change year
+ picker.find('.datepicker-days .datepicker-switch').click();
+ picker.find('.datepicker-months .next').click();
+ equal(input.val(), '2015-02-01');
+
+ // Change decade set (doesn't update input)
+ picker.find('.datepicker-months .datepicker-switch').click();
+ picker.find('.datepicker-years .next').click();
+ equal(input.val(), '2015-02-01');
+
+ // Change century set (doesn't update input)
+ picker.find('.datepicker-years .datepicker-switch').click();
+ picker.find('.datepicker-decades .next').click();
+ equal(input.val(), '2015-02-01');
+
+ // Change millennium set (doesn't update input)
+ picker.find('.datepicker-decades .datepicker-switch').click();
+ picker.find('.datepicker-centuries .next').click();
+ equal(input.val(), '2015-02-01');
+});
+
+test('forceParse: false on enter on invalid date', function () {
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('123456789')
+ .datepicker({forceParse: false})
+ .focus();
+
+ input.trigger({
+ type: 'keydown',
+ keyCode: 13,
+ shiftKey: false
+ });
+
+ equal(input.val(), '123456789', 'date not parsed');
+});
+
+test('forceParse: false on mousedown on invalid date', function () {
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('123456789')
+ .datepicker({forceParse: false})
+ .focus();
+
+ $(document).trigger({
+ type: 'mousedown'
+ });
+
+ equal(input.val(), '123456789', 'date not parsed');
+});
+
+//datepicker-dropdown
+
+test('Enable on readonly options (default)', function(){
+ var input = $('<input readonly="readonly" />')
+ .appendTo('#qunit-fixture')
+ .datepicker({format: "dd-mm-yyyy"}),
+ dp = input.data('datepicker'),
+ picker = dp.picker;
+
+ ok(!picker.is(':visible'));
+ input.focus();
+ ok(picker.is(':visible'));
+});
+
+test('Enable on readonly options (false)', function(){
+ var input = $('<input readonly="readonly" />')
+ .appendTo('#qunit-fixture')
+ .datepicker({
+ format: "dd-mm-yyyy",
+ enableOnReadonly: false
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker;
+
+ ok(!picker.is(':visible'));
+ input.focus();
+ ok(!picker.is(':visible'));
+});
+
+test('Startview: year view visible after date pick', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .datepicker({
+ startView: 2,
+ minViewMode: 1,
+ autoclose: true
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden');
+ ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden');
+ ok(picker.find('.datepicker-years').is(':visible'), 'Years view visible');
+
+ target = picker.find('.datepicker-years tbody td:nth(7)');
+ target.click();
+ target = picker.find('.datepicker-years tbody td:nth(4)');
+ target.click();
+ target = picker.find('.datepicker-years tbody td:nth(20)');
+ target.click();
+
+ input.focus();
+ ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden');
+ ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden');
+ ok(picker.find('.datepicker-years').is(':visible'), 'Years view visible');
+});
+
+test('Title: none', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .datepicker({
+ format: 'yyyy-mm-dd'
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.is(':visible'), 'Picker is visible');
+
+ target = picker.find('.datepicker-days thead .datepicker-title');
+ ok(target.is(':not(:visible)'), 'Title is hidden');
+});
+
+test('Title: with value', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ title: 'Some Title'
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.is(':visible'), 'Picker is visible');
+
+ target = picker.find('.datepicker-days thead .datepicker-title');
+ ok(target.is(':visible'), 'Title is visible');
+ equal(target.text(), 'Some Title');
+});
+
+test('i18n: Leverage i18n titleFormat when available.', patch_date(function(Date){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2015年04月21日')
+ .datepicker({
+ language: 'zh-CN'
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker;
+
+ input.focus();
+ equal(picker.find('.datepicker-days thead .datepicker-switch').text(), '2015年04月', 'Title is in Chinese: 2015年04月');
+}));
+
+test('i18n: Leverage English (default) i18n titleFormat when translation key for specified language is not available.', patch_date(function(Date){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('04/21/2015')
+ .datepicker({
+ language: 'aa-BB'
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker;
+
+ input.focus();
+ equal(picker.find('.datepicker-days thead .datepicker-switch').text(), 'April 2015', 'Title is in default format: April 2015');
+}));
+
+test('Z-index Offset: none', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .datepicker(),
+ dp = input.data('datepicker'),
+ picker = dp.picker;
+
+ input.parent().css('z-index', 234);
+ input.focus();
+
+ equal(dp.o.zIndexOffset, 10, 'Z-index offset option defaults to 10.');
+ equal(picker.css('z-index'), 244, 'Picker Z-index offset is respected.');
+});
+
+test('Z-index Offset: with value', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .datepicker({
+ zIndexOffset: 1000
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker;
+
+ input.parent().css('z-index', 234);
+ input.focus();
+
+ equal(dp.o.zIndexOffset, 1000, 'Z-index offset option is accepted.');
+ equal(picker.css('z-index'), 1234, 'Picker Z-index offset is respected.');
+});
+
+test('templates', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .datepicker({
+ templates: {
+ leftArrow: '<span class="glyphicon glyphicon-arrow-left"></span>',
+ rightArrow: '</table>'
+ }
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker;
+
+ input.focus();
+ equal(picker.find('.datepicker-days .prev').prop('innerHTML'), '<span class="glyphicon glyphicon-arrow-left"></span>');
+ equal(picker.find('.datepicker-days .next').prop('innerHTML'), $('<div>').html('&raquo;').text());
+});
+
+test('Nav arrow html templates with span tag', function () {
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-10-26')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ templates: {
+ leftArrow: '<span></span>',
+ rightArrow: '<span></span>'
+ }
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ target = picker.find('.datepicker-months tbody span:nth(9)');
+ ok(target.hasClass('active'), 'Month is selected');
+});
+
+test('Nav arrow html templates .prev click', function () {
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-10-26')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ startView: 1,
+ templates: {
+ leftArrow: '<i></i>'
+ }
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ picker.find('.datepicker-months thead .prev i').trigger('click');
+ target = picker.find('.datepicker-months thead .datepicker-switch');
+ equal(target.text(), '2011');
+});
+
+test('Visibility of the prev and next arrows for year/decade/century/millenium views with startDate and endDate', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('01/01/2015')
+ .datepicker({
+ format: 'dd/mm/yyyy',
+ startView: 1,
+ startDate: '01/12/2014',
+ endDate: '01/12/2016'
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+
+ target = picker.find('.datepicker-months thead th.prev');
+ ok(!target.hasClass('disabled'), 'Prev switcher is not hidden');
+ target = picker.find('.datepicker-months thead th.next');
+ ok(!target.hasClass('disabled'), 'Next switcher is not hidden');
+
+ picker.find('.datepicker-months thead th.datepicker-switch').click();
+ target = picker.find('.datepicker-years thead th.prev');
+ ok(target.hasClass('disabled'), 'Prev switcher is hidden');
+ target = picker.find('.datepicker-years thead th.next');
+ ok(target.hasClass('disabled'), 'Next switcher is hidden');
+
+ picker.find('.datepicker-years thead th.datepicker-switch').click();
+ target = picker.find('.datepicker-decades thead th.prev');
+ ok(target.hasClass('disabled'), 'Prev switcher is hidden');
+ target = picker.find('.datepicker-decades thead th.next');
+ ok(target.hasClass('disabled'), 'Next switcher is hidden');
+
+ picker.find('.datepicker-decades thead th.datepicker-switch').click();
+ target = picker.find('.datepicker-centuries thead th.prev');
+ ok(target.hasClass('disabled'), 'Prev switcher is hidden');
+ target = picker.find('.datepicker-centuries thead th.next');
+ ok(target.hasClass('disabled'), 'Next switcher is hidden');
+});
+
+test('date cells (outdated)', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .datepicker(),
+ dp = input.data('datepicker'),
+ picker = dp.picker;
+
+ input.focus();
+ picker.find('.datepicker-days .day').each(function(){
+ ok(this.hasAttribute('data-date'));
+ });
+});
+
+test('keepEmptyValues: none (default is false)', function() {
+ var proxy_element = $('<div />').appendTo('#qunit-fixture'),
+ input_from = $('<input />').val('2016-04-01').appendTo('#qunit-fixture'),
+ input_to = $('<input />').appendTo('#qunit-fixture'),
+ dp = proxy_element.datepicker({
+ format: 'yyyy-mm-dd',
+ inputs: [input_from, input_to]
+ }),
+ input_from_dp = input_from.data('datepicker');
+
+ input_from.focus();
+ input_from_dp.picker.find('.old.day').eq(0).click();
+
+ equal(input_from.val(), '2016-03-27');
+ equal(input_to.val(), '2016-03-27', 'Input_from value should be distributed.');
+});
+
+test('keepEmptyValues: true', function() {
+ var proxy_element = $('<div />').appendTo('#qunit-fixture'),
+ input_from = $('<input />').val('2016-04-01').appendTo('#qunit-fixture'),
+ input_to = $('<input />').appendTo('#qunit-fixture'),
+ dp = proxy_element.datepicker({
+ format: 'yyyy-mm-dd',
+ inputs: [input_from, input_to],
+ keepEmptyValues: true
+ }),
+ input_from_dp = input_from.data('datepicker');
+
+ input_from.focus();
+ input_from_dp.picker.find('.old.day').eq(0).click();
+
+ equal(input_from.val(), '2016-03-27');
+ equal(input_to.val(), '', 'Input_from value should not be distributed.');
+});
+
+test('maxViewMode and navigation switch', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .datepicker({
+ maxViewMode: 0
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker;
+
+ input.focus();
+
+ picker.find('.datepicker-days thead th.datepicker-switch').click();
+ ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
+});
+
+test('updateViewDate', function() {
+ expect(8);
+
+ var input = $('<input value="08/03/1990"/>')
+ .appendTo('#qunit-fixture')
+ .datepicker({
+ defaultViewDate: {
+ year: 1945,
+ month: 4,
+ day: 8
+ },
+ updateViewDate: false
+ })
+ .on('changeMonth', function() {
+ var msg = shouldTriggerChangeMonth ? 'changeMonth must be triggered' : 'changeMonth must not be triggered';
+ ok(shouldTriggerChangeMonth, msg);
+ })
+ .on('changeYear', function() {
+ var msg = shouldTriggerChangeYear ? 'changeYear must be triggered' : 'changeYear must not be triggered';
+ ok(shouldTriggerChangeYear, msg);
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ shouldTriggerChangeMonth = false,
+ shouldTriggerChangeYear = false,
+ monthShown = picker.find('.datepicker-days thead th.datepicker-switch');
+
+ equal(monthShown.text(), "May 1945", 'uses defaultViewDate on initialization');
+ input.datepicker('setDate', new Date(1945, 8, 2));
+ equal(monthShown.text(), "May 1945", 'does not change viewDate on `setDate` method');
+ input.focus();
+ picker.find('.datepicker-days tbody tr td.day.new:first').click();
+ equal(monthShown.text(), "May 1945", 'does not change viewDate if a day in next month is selected');
+ shouldTriggerChangeMonth = true;
+ picker.find('.datepicker-days thead th.next').click();
+ equal(monthShown.text(), 'June 1945', 'changing month must still be possible'); // and must trigger `changeMonth` event
+ shouldTriggerChangeYear = true;
+ picker.find('.datepicker-days thead th.datepicker-switch').click();
+ picker.find('.datepicker-months thead th.next').click();
+ picker.find('.datepicker-months tbody .month:first').click();
+ equal(monthShown.text(), 'January 1946', 'changing year must still be possible'); // and must trigger `changeYear` and `changeMonth` events
+});
+test('Week Days: Week days default visibility (or enabled)', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd'
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.find('.dow').length > 0, 'Week days added to view');
+});
+test('Week Days: Week days visibility when disabled', function(){
+ var input = $('<input />')
+ .appendTo('#qunit-fixture')
+ .val('2012-03-05')
+ .datepicker({
+ format: 'yyyy-mm-dd',
+ showWeekDays: false
+ }),
+ dp = input.data('datepicker'),
+ picker = dp.picker,
+ target;
+
+ input.focus();
+ ok(picker.find('.dow').length === 0, 'Week days not added to view');
+});
diff --git a/public/bower_components/bootstrap-datepicker/tests/suites/timezone.js b/public/bower_components/bootstrap-datepicker/tests/suites/timezone.js
new file mode 100644
index 0000000..f522c5c
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/suites/timezone.js
@@ -0,0 +1,24 @@
+module('Component', {
+ setup: function(){
+ this.component = $('<div class="input-append date" id="datepicker">'+
+ '<input type="text">'+
+ '</div>')
+ .appendTo('#qunit-fixture')
+ .datepicker();
+ this.dp = this.component.data('datepicker');
+ this.picker = this.dp.picker;
+ },
+ teardown: function(){
+ this.picker.remove();
+ }
+});
+
+test('Check title with timezone', function(){
+ var target;
+
+ this.dp.viewDate = UTCDate(2015, 7, 1);
+ this.dp.fill();
+
+ target = this.picker.find('.datepicker-days .datepicker-switch');
+ equal(target.text(), 'August 2015', 'Title is "August 2015"');
+});
diff --git a/public/bower_components/bootstrap-datepicker/tests/suites/touch_navigation/all.js b/public/bower_components/bootstrap-datepicker/tests/suites/touch_navigation/all.js
new file mode 100644
index 0000000..99b570d
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/suites/touch_navigation/all.js
@@ -0,0 +1,27 @@
+module('Touch Navigation (All)', {
+ setup: function(){
+ this.input = $('<input type="text">')
+ .appendTo('#qunit-fixture')
+ .datepicker({format: "dd-mm-yyyy"})
+ .focus(); // Activate for visibility checks
+ this.dp = this.input.data('datepicker');
+ this.picker = this.dp.picker;
+ },
+ teardown: function(){
+ this.picker.remove();
+ }
+});
+
+test('Tapping outside datepicker hides datepicker', function(){
+ var $otherelement = $('<div />');
+ $('body').append($otherelement);
+
+ ok(this.picker.is(':visible'), 'Picker is visible');
+ this.input.trigger('click');
+ ok(this.picker.is(':visible'), 'Picker is still visible');
+
+ $otherelement.trigger('touchstart');
+ ok(this.picker.is(':not(:visible)'), 'Picker is hidden');
+
+ $otherelement.remove();
+});
diff --git a/public/bower_components/bootstrap-datepicker/tests/tests.html b/public/bower_components/bootstrap-datepicker/tests/tests.html
new file mode 100644
index 0000000..27fd150
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/tests.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <link rel="stylesheet" href="assets/qunit.css">
+ <script src="assets/qunit.js"></script>
+ <!-- console.log for test failures: enable locally if you need extra debug info-->
+ <!--<script src="assets/qunit-logging.js"></script>-->
+ <script src="assets/jquery-1.7.1.min.js"></script>
+ <script src="../js/bootstrap-datepicker.js"></script>
+ <!-- This locale is included to test usage of titleFormat when available: see tests/suites/options.js -->
+ <script src="../js/locales/bootstrap-datepicker.zh-CN.js"></script>
+
+ <style>
+ .datepicker {
+ /* Appended to body, abs-pos off the page */
+ position: absolute;
+ display: none;
+ top: -9999em;
+ left: -9999em;
+ }
+ </style>
+
+ <!-- Utilities -->
+ <script src="assets/utils.js"></script>
+ <script src="assets/mock.js"></script>
+
+ <!-- Test suites -->
+ <script src="suites/formats.js"></script>
+ <script src="suites/mouse_navigation/all.js"></script>
+ <script src="suites/mouse_navigation/2012.js"></script>
+ <script src="suites/mouse_navigation/2011.js"></script>
+ <script src="suites/keyboard_navigation/all.js"></script>
+ <script src="suites/keyboard_navigation/2012.js"></script>
+ <script src="suites/keyboard_navigation/2011.js"></script>
+ <script src="suites/touch_navigation/all.js"></script>
+ <script src="suites/component.js"></script>
+ <script src="suites/events.js"></script>
+ <script src="suites/options.js"></script>
+ <script src="suites/inline.js"></script>
+ <script src="suites/calendar-weeks.js"></script>
+ <script src="suites/data-api.js"></script>
+ <script src="suites/noconflict.js"></script>
+ <script src="suites/methods.js"></script>
+ <script src="suites/methods_jquery.js"></script>
+ </head>
+ <body>
+ <h1 id="qunit-header">bootstrap-datepicker</h1>
+ <h2 id="qunit-banner"></h2>
+ <div id="qunit-testrunner-toolbar"></div>
+ <h2 id="qunit-userAgent"></h2>
+ <ol id="qunit-tests"></ol>
+ <div id="qunit-fixture"></div>
+ </body>
+</html>
diff --git a/public/bower_components/bootstrap-datepicker/tests/timezone.html b/public/bower_components/bootstrap-datepicker/tests/timezone.html
new file mode 100644
index 0000000..5cb15fa
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/tests/timezone.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <link rel="stylesheet" href="assets/qunit.css">
+ <script src="assets/qunit.js"></script>
+ <!-- console.log for test failures: enable locally if you need extra debug info-->
+ <!--<script src="assets/qunit-logging.js"></script>-->
+ <script src="assets/jquery-1.7.1.min.js"></script>
+ <script src="../js/bootstrap-datepicker.js"></script>
+
+ <style>
+ .datepicker {
+ /* Appended to body, abs-pos off the page */
+ position: absolute;
+ display: none;
+ top: -9999em;
+ left: -9999em;
+ }
+ </style>
+
+ <!-- Utilities -->
+ <script src="assets/utils.js"></script>
+
+ <!-- Test suites -->
+ <script src="suites/timezone.js"></script>
+ </head>
+ <body>
+ <h1 id="qunit-header">bootstrap-datepicker</h1>
+ <h2 id="qunit-banner"></h2>
+ <div id="qunit-testrunner-toolbar"></div>
+ <h2 id="qunit-userAgent"></h2>
+ <ol id="qunit-tests"></ol>
+ <div id="qunit-fixture"></div>
+ </body>
+</html>
diff --git a/public/bower_components/bootstrap-datepicker/yarn.lock b/public/bower_components/bootstrap-datepicker/yarn.lock
new file mode 100644
index 0000000..2e8ec4d
--- /dev/null
+++ b/public/bower_components/bootstrap-datepicker/yarn.lock
@@ -0,0 +1,1963 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"JSV@>= 4.0.x":
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57"
+
+abbrev@1:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
+
+align-text@^0.1.1, align-text@^0.1.3:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
+ dependencies:
+ kind-of "^3.0.2"
+ longest "^1.0.1"
+ repeat-string "^1.5.2"
+
+amdefine@>=0.0.4:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
+
+ansi-regex@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+
+ansi-styles@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+
+ansi-styles@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178"
+
+archiver-utils@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-1.3.0.tgz#e50b4c09c70bf3d680e32ff1b7994e9f9d895174"
+ dependencies:
+ glob "^7.0.0"
+ graceful-fs "^4.1.0"
+ lazystream "^1.0.0"
+ lodash "^4.8.0"
+ normalize-path "^2.0.0"
+ readable-stream "^2.0.0"
+
+archiver@^1.0.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/archiver/-/archiver-1.3.0.tgz#4f2194d6d8f99df3f531e6881f14f15d55faaf22"
+ dependencies:
+ archiver-utils "^1.3.0"
+ async "^2.0.0"
+ buffer-crc32 "^0.2.1"
+ glob "^7.0.0"
+ lodash "^4.8.0"
+ readable-stream "^2.0.0"
+ tar-stream "^1.5.0"
+ walkdir "^0.0.11"
+ zip-stream "^1.1.0"
+
+argparse@^1.0.2:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
+ dependencies:
+ sprintf-js "~1.0.2"
+
+array-differ@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031"
+
+array-find-index@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
+
+array-union@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
+ dependencies:
+ array-uniq "^1.0.1"
+
+array-uniq@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
+
+arrify@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
+
+asap@~2.0.3:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f"
+
+asn1@~0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
+
+assert-plus@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
+
+assert-plus@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+
+async@0.2.x, async@~0.2.6, async@~0.2.9:
+ version "0.2.10"
+ resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
+
+async@^1.5.2, async@~1.5.2:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
+
+async@^2.0.0:
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4"
+ dependencies:
+ lodash "^4.14.0"
+
+asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+
+aws-sign2@~0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
+
+aws4@^1.2.1:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755"
+
+babel-runtime@^6.9.2:
+ version "6.22.0"
+ resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.22.0.tgz#1cf8b4ac67c77a4ddb0db2ae1f74de52ac4ca611"
+ dependencies:
+ core-js "^2.4.0"
+ regenerator-runtime "^0.10.0"
+
+babylon@^6.8.1:
+ version "6.15.0"
+ resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.15.0.tgz#ba65cfa1a80e1759b0e89fb562e27dccae70348e"
+
+balanced-match@^0.4.1:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
+
+bcrypt-pbkdf@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4"
+ dependencies:
+ tweetnacl "^0.14.3"
+
+bl@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.0.tgz#1397e7ec42c5f5dc387470c500e34a9f6be9ea98"
+ dependencies:
+ readable-stream "^2.0.5"
+
+boom@2.x.x:
+ version "2.10.1"
+ resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
+ dependencies:
+ hoek "2.x.x"
+
+brace-expansion@^1.0.0:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9"
+ dependencies:
+ balanced-match "^0.4.1"
+ concat-map "0.0.1"
+
+browserify-zlib@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d"
+ dependencies:
+ pako "~0.2.0"
+
+buffer-crc32@^0.2.1:
+ version "0.2.13"
+ resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
+
+buffer-shims@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
+
+builtin-modules@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
+
+camelcase-keys@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
+ dependencies:
+ camelcase "^2.0.0"
+ map-obj "^1.0.0"
+
+camelcase@^1.0.2:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
+
+camelcase@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
+
+caseless@~0.11.0:
+ version "0.11.0"
+ resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
+
+center-align@^0.1.1:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
+ dependencies:
+ align-text "^0.1.3"
+ lazy-cache "^1.0.3"
+
+chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@~1.1.0, chalk@~1.1.1:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+ dependencies:
+ ansi-styles "^2.2.1"
+ escape-string-regexp "^1.0.2"
+ has-ansi "^2.0.0"
+ strip-ansi "^3.0.0"
+ supports-color "^2.0.0"
+
+chalk@~0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f"
+ dependencies:
+ ansi-styles "~1.0.0"
+ has-color "~0.1.0"
+ strip-ansi "~0.1.0"
+
+clean-css@~3.4.2:
+ version "3.4.24"
+ resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-3.4.24.tgz#89f5a5e9da37ae02394fe049a41388abbe72c3b5"
+ dependencies:
+ commander "2.8.x"
+ source-map "0.4.x"
+
+cli-table@~0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23"
+ dependencies:
+ colors "1.0.3"
+
+cli@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/cli/-/cli-1.0.1.tgz#22817534f24bfa4950c34d532d48ecbc621b8c14"
+ dependencies:
+ exit "0.1.2"
+ glob "^7.1.1"
+
+cliui@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
+ dependencies:
+ center-align "^0.1.1"
+ right-align "^0.1.1"
+ wordwrap "0.0.2"
+
+clone@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.0.tgz#9c715bfbd39aa197c8ee0f8e65c3912ba34f8cd6"
+
+coffee-script@~1.10.0:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.10.0.tgz#12938bcf9be1948fa006f92e0c4c9e81705108c0"
+
+colors@0.6.x:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc"
+
+colors@1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b"
+
+colors@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
+
+combined-stream@^1.0.5, combined-stream@~1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
+ dependencies:
+ delayed-stream "~1.0.0"
+
+commander@2.8.x:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4"
+ dependencies:
+ graceful-readlink ">= 1.0.0"
+
+commander@^2.9.0, commander@~2.9.0:
+ version "2.9.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
+ dependencies:
+ graceful-readlink ">= 1.0.0"
+
+comment-parser@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-0.3.1.tgz#fd657aac8c1492d308c9a6100fc9b49d2435aba1"
+ dependencies:
+ readable-stream "^2.0.4"
+
+compress-commons@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-1.1.0.tgz#9f4460bb1288564c7473916e0298aa3c320dcadb"
+ dependencies:
+ buffer-crc32 "^0.2.1"
+ crc32-stream "^1.0.0"
+ normalize-path "^2.0.0"
+ readable-stream "^2.0.0"
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+
+concat-stream@1.5.0, concat-stream@^1.4.1:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.0.tgz#53f7d43c51c5e43f81c8fdd03321c631be68d611"
+ dependencies:
+ inherits "~2.0.1"
+ readable-stream "~2.0.0"
+ typedarray "~0.0.5"
+
+console-browserify@1.1.x:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
+ dependencies:
+ date-now "^0.1.4"
+
+core-js@^2.4.0:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e"
+
+core-util-is@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+
+crc32-stream@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-1.0.1.tgz#ce2c5dc3bd8ffb3830f9cb47f540222c63c90fab"
+ dependencies:
+ crc "^3.4.4"
+ readable-stream "^2.0.0"
+
+crc@^3.4.4:
+ version "3.4.4"
+ resolved "https://registry.yarnpkg.com/crc/-/crc-3.4.4.tgz#9da1e980e3bd44fc5c93bf5ab3da3378d85e466b"
+
+cryptiles@2.x.x:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
+ dependencies:
+ boom "2.x.x"
+
+csslint@^1.0.0:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/csslint/-/csslint-1.0.5.tgz#19cc3eda322160fd3f7232af1cb2a360e898a2e9"
+ dependencies:
+ clone "~2.1.0"
+ parserlib "~1.1.1"
+
+cst@^0.4.3:
+ version "0.4.9"
+ resolved "https://registry.yarnpkg.com/cst/-/cst-0.4.9.tgz#51af14213bf5f8e8e715966ac645e1e2a56c6834"
+ dependencies:
+ babel-runtime "^6.9.2"
+ babylon "^6.8.1"
+ source-map-support "^0.4.0"
+
+currently-unhandled@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
+ dependencies:
+ array-find-index "^1.0.1"
+
+cycle@1.0.x:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2"
+
+dashdash@^1.12.0:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+ dependencies:
+ assert-plus "^1.0.0"
+
+date-now@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
+
+date-time@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/date-time/-/date-time-1.1.0.tgz#18876d0bda4c19fe70dd3bf4b034f281b12a40b6"
+ dependencies:
+ time-zone "^0.1.0"
+
+dateformat@~1.0.12:
+ version "1.0.12"
+ resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9"
+ dependencies:
+ get-stdin "^4.0.1"
+ meow "^3.3.0"
+
+debug@0.7.4:
+ version "0.7.4"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39"
+
+decamelize@^1.0.0, decamelize@^1.1.2:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+
+deep-equal@*:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
+
+delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+
+dom-serializer@0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"
+ dependencies:
+ domelementtype "~1.1.1"
+ entities "~1.1.1"
+
+domelementtype@1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2"
+
+domelementtype@~1.1.1:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b"
+
+domhandler@2.3:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738"
+ dependencies:
+ domelementtype "1"
+
+domutils@1.5:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
+ dependencies:
+ dom-serializer "0"
+ domelementtype "1"
+
+ecc-jsbn@~0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
+ dependencies:
+ jsbn "~0.1.0"
+
+end-of-stream@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.1.0.tgz#e9353258baa9108965efc41cb0ef8ade2f3cfb07"
+ dependencies:
+ once "~1.3.0"
+
+entities@1.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26"
+
+entities@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
+
+errno@^0.1.1:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d"
+ dependencies:
+ prr "~0.0.0"
+
+error-ex@^1.2.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9"
+ dependencies:
+ is-arrayish "^0.2.1"
+
+es6-promise@~4.0.3:
+ version "4.0.5"
+ resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.0.5.tgz#7882f30adde5b240ccfa7f7d78c548330951ae42"
+
+escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+
+esprima@^2.6.0:
+ version "2.7.3"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
+
+estraverse@^4.1.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
+
+eventemitter2@^0.4.9, eventemitter2@~0.4.13:
+ version "0.4.14"
+ resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-0.4.14.tgz#8f61b75cde012b2e9eb284d4545583b5643b61ab"
+
+exit@0.1.2, exit@0.1.x, exit@~0.1.1, exit@~0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
+
+extend@~3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4"
+
+extract-zip@~1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.5.0.tgz#92ccf6d81ef70a9fa4c1747114ccef6d8688a6c4"
+ dependencies:
+ concat-stream "1.5.0"
+ debug "0.7.4"
+ mkdirp "0.5.0"
+ yauzl "2.4.1"
+
+extsprintf@1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550"
+
+eyes@0.1.x:
+ version "0.1.8"
+ resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0"
+
+fd-slicer@~1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"
+ dependencies:
+ pend "~1.2.0"
+
+figures@^1.0.0, figures@^1.0.1:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
+ dependencies:
+ escape-string-regexp "^1.0.5"
+ object-assign "^4.1.0"
+
+find-up@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
+ dependencies:
+ path-exists "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+findup-sync@~0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.3.0.tgz#37930aa5d816b777c03445e1966cc6790a4c0b16"
+ dependencies:
+ glob "~5.0.0"
+
+forever-agent@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+
+form-data@~2.1.1:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4"
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.5"
+ mime-types "^2.1.12"
+
+fs-extra@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950"
+ dependencies:
+ graceful-fs "^4.1.2"
+ jsonfile "^2.1.0"
+ klaw "^1.0.0"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+
+generate-function@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
+
+generate-object-property@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
+ dependencies:
+ is-property "^1.0.0"
+
+get-stdin@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
+
+getobject@~0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/getobject/-/getobject-0.1.0.tgz#047a449789fa160d018f5486ed91320b6ec7885c"
+
+getpass@^0.1.1:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6"
+ dependencies:
+ assert-plus "^1.0.0"
+
+glob@^5.0.1, glob@~5.0.0:
+ version "5.0.15"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
+ dependencies:
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "2 || 3"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+glob@^7.0.0, glob@^7.0.5, glob@~7.0.0:
+ version "7.0.6"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a"
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.2"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+glob@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.2"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+graceful-fs@^4.1.0, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
+ version "4.1.11"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
+
+"graceful-readlink@>= 1.0.0":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
+
+grunt-banner@~0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/grunt-banner/-/grunt-banner-0.6.0.tgz#3f879021d123fa58a7ba5a0b6fb6be412b5885ac"
+ dependencies:
+ chalk "^1.1.0"
+
+grunt-cli@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/grunt-cli/-/grunt-cli-1.2.0.tgz#562b119ebb069ddb464ace2845501be97b35b6a8"
+ dependencies:
+ findup-sync "~0.3.0"
+ grunt-known-options "~1.1.0"
+ nopt "~3.0.6"
+ resolve "~1.1.0"
+
+grunt-contrib-clean@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/grunt-contrib-clean/-/grunt-contrib-clean-1.0.0.tgz#6b2ed94117e2c7ffe32ee04578c96fe4625a9b6d"
+ dependencies:
+ async "^1.5.2"
+ rimraf "^2.5.1"
+
+grunt-contrib-compress@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/grunt-contrib-compress/-/grunt-contrib-compress-1.4.1.tgz#36212e9bbb41e9b41ff6fbe2fc77281c69ab02a0"
+ dependencies:
+ archiver "^1.0.0"
+ chalk "^1.1.1"
+ lodash "^4.7.0"
+ pretty-bytes "^3.0.1"
+ stream-buffers "^2.1.0"
+ optionalDependencies:
+ iltorb "^1.0.13"
+
+grunt-contrib-concat@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz#61509863084e871d7e86de48c015259ed97745bd"
+ dependencies:
+ chalk "^1.0.0"
+ source-map "^0.5.3"
+
+grunt-contrib-csslint@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/grunt-contrib-csslint/-/grunt-contrib-csslint-2.0.0.tgz#3129d94dfe507357f23337d24ae9e9aa4b9d57df"
+ dependencies:
+ chalk "^1.0.0"
+ csslint "^1.0.0"
+ lodash "^4.8.2"
+ strip-json-comments "^2.0.1"
+
+grunt-contrib-cssmin@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/grunt-contrib-cssmin/-/grunt-contrib-cssmin-1.0.2.tgz#1734cbd3d84ca7364758b7e58ff18e52aa60bb76"
+ dependencies:
+ chalk "^1.0.0"
+ clean-css "~3.4.2"
+ maxmin "^1.1.0"
+
+grunt-contrib-jshint@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/grunt-contrib-jshint/-/grunt-contrib-jshint-1.1.0.tgz#369d909b2593c40e8be79940b21340850c7939ac"
+ dependencies:
+ chalk "^1.1.1"
+ hooker "^0.2.3"
+ jshint "~2.9.4"
+
+grunt-contrib-less@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/grunt-contrib-less/-/grunt-contrib-less-1.4.0.tgz#17ee79cad21c9720ee07b3a991fab5103b513514"
+ dependencies:
+ async "^2.0.0"
+ chalk "^1.0.0"
+ less "~2.7.1"
+ lodash "^4.8.2"
+
+grunt-contrib-qunit@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/grunt-contrib-qunit/-/grunt-contrib-qunit-1.2.0.tgz#76ee87ce8cc157592802bb7545392f671ccb4956"
+ dependencies:
+ grunt-lib-phantomjs "^1.0.0"
+
+grunt-contrib-uglify@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/grunt-contrib-uglify/-/grunt-contrib-uglify-2.0.0.tgz#8c9970d690936cde6d25aa1193549bd929016930"
+ dependencies:
+ chalk "^1.0.0"
+ lodash.assign "^4.0.9"
+ maxmin "^1.1.0"
+ uglify-js "~2.7.0"
+ uri-path "^1.0.0"
+
+grunt-jscs@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/grunt-jscs/-/grunt-jscs-3.0.1.tgz#1fae50e3e955df9e3a9d9425aec22accae008092"
+ dependencies:
+ hooker "~0.2.3"
+ jscs "~3.0.5"
+ lodash "~4.6.1"
+ vow "~0.4.1"
+
+grunt-known-options@~1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/grunt-known-options/-/grunt-known-options-1.1.0.tgz#a4274eeb32fa765da5a7a3b1712617ce3b144149"
+
+grunt-legacy-log-utils@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/grunt-legacy-log-utils/-/grunt-legacy-log-utils-1.0.0.tgz#a7b8e2d0fb35b5a50f4af986fc112749ebc96f3d"
+ dependencies:
+ chalk "~1.1.1"
+ lodash "~4.3.0"
+
+grunt-legacy-log@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/grunt-legacy-log/-/grunt-legacy-log-1.0.0.tgz#fb86f1809847bc07dc47843f9ecd6cacb62df2d5"
+ dependencies:
+ colors "~1.1.2"
+ grunt-legacy-log-utils "~1.0.0"
+ hooker "~0.2.3"
+ lodash "~3.10.1"
+ underscore.string "~3.2.3"
+
+grunt-legacy-util@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/grunt-legacy-util/-/grunt-legacy-util-1.0.0.tgz#386aa78dc6ed50986c2b18957265b1b48abb9b86"
+ dependencies:
+ async "~1.5.2"
+ exit "~0.1.1"
+ getobject "~0.1.0"
+ hooker "~0.2.3"
+ lodash "~4.3.0"
+ underscore.string "~3.2.3"
+ which "~1.2.1"
+
+grunt-lib-phantomjs@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/grunt-lib-phantomjs/-/grunt-lib-phantomjs-1.1.0.tgz#9e9edcdd9fd2dd40e0c181c94371d572aa5eead2"
+ dependencies:
+ eventemitter2 "^0.4.9"
+ phantomjs-prebuilt "^2.1.3"
+ rimraf "^2.5.2"
+ semver "^5.1.0"
+ temporary "^0.0.8"
+
+grunt-string-replace@^1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/grunt-string-replace/-/grunt-string-replace-1.3.1.tgz#633a03bc78482a0e0e1f9df7f645811fc1fbb162"
+ dependencies:
+ async "^2.0.0"
+ chalk "^1.0.0"
+
+grunt@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/grunt/-/grunt-1.0.1.tgz#e8778764e944b18f32bb0f10b9078475c9dfb56b"
+ dependencies:
+ coffee-script "~1.10.0"
+ dateformat "~1.0.12"
+ eventemitter2 "~0.4.13"
+ exit "~0.1.1"
+ findup-sync "~0.3.0"
+ glob "~7.0.0"
+ grunt-cli "~1.2.0"
+ grunt-known-options "~1.1.0"
+ grunt-legacy-log "~1.0.0"
+ grunt-legacy-util "~1.0.0"
+ iconv-lite "~0.4.13"
+ js-yaml "~3.5.2"
+ minimatch "~3.0.0"
+ nopt "~3.0.6"
+ path-is-absolute "~1.0.0"
+ rimraf "~2.2.8"
+
+gzip-size@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-1.0.0.tgz#66cf8b101047227b95bace6ea1da0c177ed5c22f"
+ dependencies:
+ browserify-zlib "^0.1.4"
+ concat-stream "^1.4.1"
+
+har-validator@~2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"
+ dependencies:
+ chalk "^1.1.1"
+ commander "^2.9.0"
+ is-my-json-valid "^2.12.4"
+ pinkie-promise "^2.0.0"
+
+has-ansi@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
+ dependencies:
+ ansi-regex "^2.0.0"
+
+has-color@~0.1.0:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f"
+
+hasha@~2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1"
+ dependencies:
+ is-stream "^1.0.1"
+ pinkie-promise "^2.0.0"
+
+hawk@~3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
+ dependencies:
+ boom "2.x.x"
+ cryptiles "2.x.x"
+ hoek "2.x.x"
+ sntp "1.x.x"
+
+hoek@2.x.x:
+ version "2.16.3"
+ resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
+
+hooker@^0.2.3, hooker@~0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/hooker/-/hooker-0.2.3.tgz#b834f723cc4a242aa65963459df6d984c5d3d959"
+
+hosted-git-info@^2.1.4:
+ version "2.1.5"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b"
+
+htmlparser2@3.8.3, htmlparser2@3.8.x:
+ version "3.8.3"
+ resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068"
+ dependencies:
+ domelementtype "1"
+ domhandler "2.3"
+ domutils "1.5"
+ entities "1.0"
+ readable-stream "1.1"
+
+http-signature@~1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
+ dependencies:
+ assert-plus "^0.2.0"
+ jsprim "^1.2.2"
+ sshpk "^1.7.0"
+
+i@0.3.x:
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/i/-/i-0.3.5.tgz#1d2b854158ec8169113c6cb7f6b6801e99e211d5"
+
+iconv-lite@~0.4.13:
+ version "0.4.15"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb"
+
+iltorb@^1.0.13:
+ version "1.0.13"
+ resolved "https://registry.yarnpkg.com/iltorb/-/iltorb-1.0.13.tgz#9913538457bf39d3dac223ebb4d9990dbda1354f"
+ dependencies:
+ nan "^2.4.0"
+
+image-size@~0.5.0:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.1.tgz#28eea8548a4b1443480ddddc1e083ae54652439f"
+
+indent-string@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
+ dependencies:
+ repeating "^2.0.0"
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherit@^2.2.2:
+ version "2.2.6"
+ resolved "https://registry.yarnpkg.com/inherit/-/inherit-2.2.6.tgz#f1614b06c8544e8128e4229c86347db73ad9788d"
+
+inherits@2, inherits@~2.0.1:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+
+is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+
+is-buffer@^1.0.2:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b"
+
+is-builtin-module@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
+ dependencies:
+ builtin-modules "^1.0.0"
+
+is-finite@^1.0.0, is-finite@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
+ dependencies:
+ number-is-nan "^1.0.0"
+
+is-my-json-valid@^2.12.4:
+ version "2.15.0"
+ resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b"
+ dependencies:
+ generate-function "^2.0.0"
+ generate-object-property "^1.1.0"
+ jsonpointer "^4.0.0"
+ xtend "^4.0.0"
+
+is-property@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
+
+is-stream@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+
+is-typedarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+
+is-utf8@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
+
+isarray@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
+
+isarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+
+isexe@^1.1.1:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0"
+
+isstream@0.1.x, isstream@~0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+
+jodid25519@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967"
+ dependencies:
+ jsbn "~0.1.0"
+
+"jquery@>=1.7.1 <4.0.0":
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.1.1.tgz#347c1c21c7e004115e0a4da32cece041fad3c8a3"
+
+js-yaml@~3.4.0:
+ version "3.4.6"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.4.6.tgz#6be1b23f6249f53d293370fd4d1aaa63ce1b4eb0"
+ dependencies:
+ argparse "^1.0.2"
+ esprima "^2.6.0"
+ inherit "^2.2.2"
+
+js-yaml@~3.5.2:
+ version "3.5.5"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.5.5.tgz#0377c38017cabc7322b0d1fbcd25a491641f2fbe"
+ dependencies:
+ argparse "^1.0.2"
+ esprima "^2.6.0"
+
+jsbn@~0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd"
+
+jscs-jsdoc@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/jscs-jsdoc/-/jscs-jsdoc-2.0.0.tgz#f53ebce029aa3125bd88290ba50d64d4510a4871"
+ dependencies:
+ comment-parser "^0.3.1"
+ jsdoctypeparser "~1.2.0"
+
+jscs-preset-wikimedia@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/jscs-preset-wikimedia/-/jscs-preset-wikimedia-1.0.0.tgz#fff563342038fc2e8826b7bb7309c3ae3406fc7e"
+
+jscs@~3.0.5:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/jscs/-/jscs-3.0.7.tgz#7141b4dff5b86e32d0e99d764b836767c30d201a"
+ dependencies:
+ chalk "~1.1.0"
+ cli-table "~0.3.1"
+ commander "~2.9.0"
+ cst "^0.4.3"
+ estraverse "^4.1.0"
+ exit "~0.1.2"
+ glob "^5.0.1"
+ htmlparser2 "3.8.3"
+ js-yaml "~3.4.0"
+ jscs-jsdoc "^2.0.0"
+ jscs-preset-wikimedia "~1.0.0"
+ jsonlint "~1.6.2"
+ lodash "~3.10.0"
+ minimatch "~3.0.0"
+ natural-compare "~1.2.2"
+ pathval "~0.1.1"
+ prompt "~0.2.14"
+ reserved-words "^0.1.1"
+ resolve "^1.1.6"
+ strip-bom "^2.0.0"
+ strip-json-comments "~1.0.2"
+ to-double-quotes "^2.0.0"
+ to-single-quotes "^2.0.0"
+ vow "~0.4.8"
+ vow-fs "~0.3.4"
+ xmlbuilder "^3.1.0"
+
+jsdoctypeparser@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/jsdoctypeparser/-/jsdoctypeparser-1.2.0.tgz#e7dedc153a11849ffc5141144ae86a7ef0c25392"
+ dependencies:
+ lodash "^3.7.0"
+
+jshint@~2.9.4:
+ version "2.9.4"
+ resolved "https://registry.yarnpkg.com/jshint/-/jshint-2.9.4.tgz#5e3ba97848d5290273db514aee47fe24cf592934"
+ dependencies:
+ cli "~1.0.0"
+ console-browserify "1.1.x"
+ exit "0.1.x"
+ htmlparser2 "3.8.x"
+ lodash "3.7.x"
+ minimatch "~3.0.2"
+ shelljs "0.3.x"
+ strip-json-comments "1.0.x"
+
+json-schema@0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
+
+json-stringify-safe@~5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
+
+jsonfile@^2.1.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+jsonlint@~1.6.2:
+ version "1.6.2"
+ resolved "https://registry.yarnpkg.com/jsonlint/-/jsonlint-1.6.2.tgz#5737045085f55eb455c68b1ff4ebc01bd50e8830"
+ dependencies:
+ JSV ">= 4.0.x"
+ nomnom ">= 1.5.x"
+
+jsonpointer@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
+
+jsprim@^1.2.2:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252"
+ dependencies:
+ extsprintf "1.0.2"
+ json-schema "0.2.3"
+ verror "1.3.6"
+
+kew@~0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b"
+
+kind-of@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47"
+ dependencies:
+ is-buffer "^1.0.2"
+
+klaw@^1.0.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
+ optionalDependencies:
+ graceful-fs "^4.1.9"
+
+lazy-cache@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
+
+lazystream@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4"
+ dependencies:
+ readable-stream "^2.0.5"
+
+less@~2.7.1:
+ version "2.7.2"
+ resolved "https://registry.yarnpkg.com/less/-/less-2.7.2.tgz#368d6cc73e1fb03981183280918743c5dcf9b3df"
+ optionalDependencies:
+ errno "^0.1.1"
+ graceful-fs "^4.1.2"
+ image-size "~0.5.0"
+ mime "^1.2.11"
+ mkdirp "^0.5.0"
+ promise "^7.1.1"
+ request "^2.72.0"
+ source-map "^0.5.3"
+
+load-grunt-tasks@^3.5.2:
+ version "3.5.2"
+ resolved "https://registry.yarnpkg.com/load-grunt-tasks/-/load-grunt-tasks-3.5.2.tgz#0728561180fd20ff8a6927505852fc58aaea0c88"
+ dependencies:
+ arrify "^1.0.0"
+ multimatch "^2.0.0"
+ pkg-up "^1.0.0"
+ resolve-pkg "^0.1.0"
+
+load-json-file@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^2.2.0"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+ strip-bom "^2.0.0"
+
+lodash.assign@^4.0.9:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
+
+lodash@3.7.x:
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.7.0.tgz#3678bd8ab995057c07ade836ed2ef087da811d45"
+
+lodash@^3.5.0, lodash@^3.7.0, lodash@~3.10.0, lodash@~3.10.1:
+ version "3.10.1"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
+
+lodash@^4.14.0, lodash@^4.7.0, lodash@^4.8.0, lodash@^4.8.2:
+ version "4.17.4"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
+
+lodash@~4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.3.0.tgz#efd9c4a6ec53f3b05412429915c3e4824e4d25a4"
+
+lodash@~4.6.1:
+ version "4.6.1"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.6.1.tgz#df00c1164ad236b183cfc3887a5e8d38cc63cbbc"
+
+longest@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
+
+loud-rejection@^1.0.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
+ dependencies:
+ currently-unhandled "^0.4.1"
+ signal-exit "^3.0.0"
+
+map-obj@^1.0.0, map-obj@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
+
+maxmin@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/maxmin/-/maxmin-1.1.0.tgz#71365e84a99dd8f8b3f7d5fde2f00d1e7f73be61"
+ dependencies:
+ chalk "^1.0.0"
+ figures "^1.0.1"
+ gzip-size "^1.0.0"
+ pretty-bytes "^1.0.0"
+
+meow@^3.1.0, meow@^3.3.0:
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
+ dependencies:
+ camelcase-keys "^2.0.0"
+ decamelize "^1.1.2"
+ loud-rejection "^1.0.0"
+ map-obj "^1.0.1"
+ minimist "^1.1.3"
+ normalize-package-data "^2.3.4"
+ object-assign "^4.0.1"
+ read-pkg-up "^1.0.1"
+ redent "^1.0.0"
+ trim-newlines "^1.0.0"
+
+mime-db@~1.26.0:
+ version "1.26.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff"
+
+mime-types@^2.1.12, mime-types@~2.1.7:
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee"
+ dependencies:
+ mime-db "~1.26.0"
+
+mime@^1.2.11:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
+
+"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@~3.0.0, minimatch@~3.0.2:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
+ dependencies:
+ brace-expansion "^1.0.0"
+
+minimist@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+
+minimist@^1.1.3:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+
+mkdirp@0.5.0, mkdirp@0.x.x, mkdirp@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12"
+ dependencies:
+ minimist "0.0.8"
+
+multimatch@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b"
+ dependencies:
+ array-differ "^1.0.0"
+ array-union "^1.0.1"
+ arrify "^1.0.0"
+ minimatch "^3.0.0"
+
+mute-stream@~0.0.4:
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
+
+nan@^2.4.0:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.5.1.tgz#d5b01691253326a97a2bbee9e61c55d8d60351e2"
+
+natural-compare@~1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.2.2.tgz#1f96d60e3141cac1b6d05653ce0daeac763af6aa"
+
+ncp@0.4.x:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/ncp/-/ncp-0.4.2.tgz#abcc6cbd3ec2ed2a729ff6e7c1fa8f01784a8574"
+
+"nomnom@>= 1.5.x":
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7"
+ dependencies:
+ chalk "~0.4.0"
+ underscore "~1.6.0"
+
+nopt@~3.0.6:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
+ dependencies:
+ abbrev "1"
+
+normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
+ version "2.3.5"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.5.tgz#8d924f142960e1777e7ffe170543631cc7cb02df"
+ dependencies:
+ hosted-git-info "^2.1.4"
+ is-builtin-module "^1.0.0"
+ semver "2 || 3 || 4 || 5"
+ validate-npm-package-license "^3.0.1"
+
+normalize-path@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a"
+
+number-is-nan@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+
+oauth-sign@~0.8.1:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
+
+object-assign@^4.0.1, object-assign@^4.1.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+
+once@^1.3.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ dependencies:
+ wrappy "1"
+
+once@~1.3.0:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20"
+ dependencies:
+ wrappy "1"
+
+"package@>= 1.0.0 < 1.2.0":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/package/-/package-1.0.1.tgz#d25a1f99e2506dcb27d6704b83dca8a312e4edcc"
+
+pako@~0.2.0:
+ version "0.2.9"
+ resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
+
+parse-json@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
+ dependencies:
+ error-ex "^1.2.0"
+
+parse-ms@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-1.0.1.tgz#56346d4749d78f23430ca0c713850aef91aa361d"
+
+parserlib@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/parserlib/-/parserlib-1.1.1.tgz#a64cfa724062434fdfc351c9a4ec2d92b94c06f4"
+
+path-exists@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
+ dependencies:
+ pinkie-promise "^2.0.0"
+
+path-is-absolute@^1.0.0, path-is-absolute@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+
+path-type@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
+ dependencies:
+ graceful-fs "^4.1.2"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+pathval@~0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/pathval/-/pathval-0.1.1.tgz#08f911cdca9cce5942880da7817bc0b723b66d82"
+
+pend@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
+
+phantomjs-prebuilt@^2.1.3, phantomjs-prebuilt@~2.1.8:
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.14.tgz#d53d311fcfb7d1d08ddb24014558f1188c516da0"
+ dependencies:
+ es6-promise "~4.0.3"
+ extract-zip "~1.5.0"
+ fs-extra "~1.0.0"
+ hasha "~2.2.0"
+ kew "~0.7.0"
+ progress "~1.1.8"
+ request "~2.79.0"
+ request-progress "~2.0.1"
+ which "~1.2.10"
+
+pify@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+
+pinkie-promise@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
+ dependencies:
+ pinkie "^2.0.0"
+
+pinkie@^2.0.0:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
+
+pkg-up@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-1.0.0.tgz#3e08fb461525c4421624a33b9f7e6d0af5b05a26"
+ dependencies:
+ find-up "^1.0.0"
+
+pkginfo@0.3.x:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21"
+
+pkginfo@0.x.x:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.0.tgz#349dbb7ffd38081fcadc0853df687f0c7744cd65"
+
+plur@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/plur/-/plur-1.0.0.tgz#db85c6814f5e5e5a3b49efc28d604fec62975156"
+
+pretty-bytes@^1.0.0:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84"
+ dependencies:
+ get-stdin "^4.0.1"
+ meow "^3.1.0"
+
+pretty-bytes@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-3.0.1.tgz#27d0008d778063a0b4811bb35c79f1bd5d5fbccf"
+ dependencies:
+ number-is-nan "^1.0.0"
+
+pretty-ms@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-2.1.0.tgz#4257c256df3fb0b451d6affaab021884126981dc"
+ dependencies:
+ is-finite "^1.0.1"
+ parse-ms "^1.0.0"
+ plur "^1.0.0"
+
+process-nextick-args@~1.0.6:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
+
+progress@~1.1.8:
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
+
+promise@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf"
+ dependencies:
+ asap "~2.0.3"
+
+prompt@~0.2.14:
+ version "0.2.14"
+ resolved "https://registry.yarnpkg.com/prompt/-/prompt-0.2.14.tgz#57754f64f543fd7b0845707c818ece618f05ffdc"
+ dependencies:
+ pkginfo "0.x.x"
+ read "1.0.x"
+ revalidator "0.1.x"
+ utile "0.2.x"
+ winston "0.8.x"
+
+prr@~0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a"
+
+punycode@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+
+qs@~6.3.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442"
+
+read-pkg-up@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
+ dependencies:
+ find-up "^1.0.0"
+ read-pkg "^1.0.0"
+
+read-pkg@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
+ dependencies:
+ load-json-file "^1.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^1.0.0"
+
+read@1.0.x:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4"
+ dependencies:
+ mute-stream "~0.0.4"
+
+readable-stream@1.1:
+ version "1.1.13"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e"
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.1"
+ isarray "0.0.1"
+ string_decoder "~0.10.x"
+
+readable-stream@^2.0.0, readable-stream@^2.0.4, readable-stream@^2.0.5:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e"
+ dependencies:
+ buffer-shims "^1.0.0"
+ core-util-is "~1.0.0"
+ inherits "~2.0.1"
+ isarray "~1.0.0"
+ process-nextick-args "~1.0.6"
+ string_decoder "~0.10.x"
+ util-deprecate "~1.0.1"
+
+readable-stream@~2.0.0:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e"
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.1"
+ isarray "~1.0.0"
+ process-nextick-args "~1.0.6"
+ string_decoder "~0.10.x"
+ util-deprecate "~1.0.1"
+
+redent@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
+ dependencies:
+ indent-string "^2.1.0"
+ strip-indent "^1.0.1"
+
+regenerator-runtime@^0.10.0:
+ version "0.10.1"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.1.tgz#257f41961ce44558b18f7814af48c17559f9faeb"
+
+repeat-string@^1.5.2:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+
+repeating@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
+ dependencies:
+ is-finite "^1.0.0"
+
+request-progress@~2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08"
+ dependencies:
+ throttleit "^1.0.0"
+
+request@^2.72.0, request@~2.79.0:
+ version "2.79.0"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de"
+ dependencies:
+ aws-sign2 "~0.6.0"
+ aws4 "^1.2.1"
+ caseless "~0.11.0"
+ combined-stream "~1.0.5"
+ extend "~3.0.0"
+ forever-agent "~0.6.1"
+ form-data "~2.1.1"
+ har-validator "~2.0.6"
+ hawk "~3.1.3"
+ http-signature "~1.1.0"
+ is-typedarray "~1.0.0"
+ isstream "~0.1.2"
+ json-stringify-safe "~5.0.1"
+ mime-types "~2.1.7"
+ oauth-sign "~0.8.1"
+ qs "~6.3.0"
+ stringstream "~0.0.4"
+ tough-cookie "~2.3.0"
+ tunnel-agent "~0.4.1"
+ uuid "^3.0.0"
+
+reserved-words@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/reserved-words/-/reserved-words-0.1.1.tgz#6f7c15e5e5614c50da961630da46addc87c0cef2"
+
+resolve-from@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57"
+
+resolve-pkg@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/resolve-pkg/-/resolve-pkg-0.1.0.tgz#02cc993410e2936962bd97166a1b077da9725531"
+ dependencies:
+ resolve-from "^2.0.0"
+
+resolve@^1.1.6, resolve@~1.1.0:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
+
+revalidator@0.1.x:
+ version "0.1.8"
+ resolved "https://registry.yarnpkg.com/revalidator/-/revalidator-0.1.8.tgz#fece61bfa0c1b52a206bd6b18198184bdd523a3b"
+
+right-align@^0.1.1:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
+ dependencies:
+ align-text "^0.1.1"
+
+rimraf@2.x.x, rimraf@^2.5.1, rimraf@^2.5.2:
+ version "2.5.4"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04"
+ dependencies:
+ glob "^7.0.5"
+
+rimraf@~2.2.8:
+ version "2.2.8"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582"
+
+"semver@2 || 3 || 4 || 5", semver@^5.1.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
+
+shelljs@0.3.x:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.3.0.tgz#3596e6307a781544f591f37da618360f31db57b1"
+
+signal-exit@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
+
+sntp@1.x.x:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
+ dependencies:
+ hoek "2.x.x"
+
+source-map-support@^0.4.0:
+ version "0.4.10"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.10.tgz#d7b19038040a14c0837a18e630a196453952b378"
+ dependencies:
+ source-map "^0.5.3"
+
+source-map@0.4.x:
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
+ dependencies:
+ amdefine ">=0.0.4"
+
+source-map@^0.5.3, source-map@~0.5.1:
+ version "0.5.6"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
+
+spdx-correct@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
+ dependencies:
+ spdx-license-ids "^1.0.2"
+
+spdx-expression-parse@~1.0.0:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c"
+
+spdx-license-ids@^1.0.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
+
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+
+sshpk@^1.7.0:
+ version "1.10.2"
+ resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.2.tgz#d5a804ce22695515638e798dbe23273de070a5fa"
+ dependencies:
+ asn1 "~0.2.3"
+ assert-plus "^1.0.0"
+ dashdash "^1.12.0"
+ getpass "^0.1.1"
+ optionalDependencies:
+ bcrypt-pbkdf "^1.0.0"
+ ecc-jsbn "~0.1.1"
+ jodid25519 "^1.0.0"
+ jsbn "~0.1.0"
+ tweetnacl "~0.14.0"
+
+stack-trace@0.0.x:
+ version "0.0.9"
+ resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.9.tgz#a8f6eaeca90674c333e7c43953f275b451510695"
+
+stream-buffers@^2.1.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4"
+
+string_decoder@~0.10.x:
+ version "0.10.31"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
+
+stringstream@~0.0.4:
+ version "0.0.5"
+ resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
+
+strip-ansi@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+ dependencies:
+ ansi-regex "^2.0.0"
+
+strip-ansi@~0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991"
+
+strip-bom@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
+ dependencies:
+ is-utf8 "^0.2.0"
+
+strip-indent@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
+ dependencies:
+ get-stdin "^4.0.1"
+
+strip-json-comments@1.0.x, strip-json-comments@~1.0.2:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91"
+
+strip-json-comments@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+
+supports-color@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+
+tar-stream@^1.5.0:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.2.tgz#fbc6c6e83c1a19d4cb48c7d96171fc248effc7bf"
+ dependencies:
+ bl "^1.0.0"
+ end-of-stream "^1.0.0"
+ readable-stream "^2.0.0"
+ xtend "^4.0.0"
+
+temporary@^0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/temporary/-/temporary-0.0.8.tgz#a18a981d28ba8ca36027fb3c30538c3ecb740ac0"
+ dependencies:
+ package ">= 1.0.0 < 1.2.0"
+
+text-table@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+
+throttleit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c"
+
+time-grunt@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/time-grunt/-/time-grunt-1.4.0.tgz#062213e660c907e86f440556c01ea6597b712420"
+ dependencies:
+ chalk "^1.0.0"
+ date-time "^1.1.0"
+ figures "^1.0.0"
+ hooker "^0.2.3"
+ number-is-nan "^1.0.0"
+ pretty-ms "^2.1.0"
+ text-table "^0.2.0"
+
+time-zone@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/time-zone/-/time-zone-0.1.0.tgz#4a7728b6ac28db0e008f514043fd555bd5573b46"
+
+to-double-quotes@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/to-double-quotes/-/to-double-quotes-2.0.0.tgz#aaf231d6fa948949f819301bbab4484d8588e4a7"
+
+to-single-quotes@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/to-single-quotes/-/to-single-quotes-2.0.1.tgz#7cc29151f0f5f2c41946f119f5932fe554170125"
+
+tough-cookie@~2.3.0:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a"
+ dependencies:
+ punycode "^1.4.1"
+
+trim-newlines@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
+
+tunnel-agent@~0.4.1:
+ version "0.4.3"
+ resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
+
+tweetnacl@^0.14.3, tweetnacl@~0.14.0:
+ version "0.14.5"
+ resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
+
+typedarray@~0.0.5:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+
+uglify-js@~2.7.0:
+ version "2.7.5"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8"
+ dependencies:
+ async "~0.2.6"
+ source-map "~0.5.1"
+ uglify-to-browserify "~1.0.0"
+ yargs "~3.10.0"
+
+uglify-to-browserify@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
+
+underscore.string@~3.2.3:
+ version "3.2.3"
+ resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-3.2.3.tgz#806992633665d5e5fcb4db1fb3a862eb68e9e6da"
+
+underscore@~1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8"
+
+uri-path@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/uri-path/-/uri-path-1.0.0.tgz#9747f018358933c31de0fccfd82d138e67262e32"
+
+util-deprecate@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+
+utile@0.2.x:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/utile/-/utile-0.2.1.tgz#930c88e99098d6220834c356cbd9a770522d90d7"
+ dependencies:
+ async "~0.2.9"
+ deep-equal "*"
+ i "0.3.x"
+ mkdirp "0.x.x"
+ ncp "0.4.x"
+ rimraf "2.x.x"
+
+uuid@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a"
+
+uuid@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"
+
+validate-npm-package-license@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
+ dependencies:
+ spdx-correct "~1.0.0"
+ spdx-expression-parse "~1.0.0"
+
+verror@1.3.6:
+ version "1.3.6"
+ resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c"
+ dependencies:
+ extsprintf "1.0.2"
+
+vow-fs@~0.3.4:
+ version "0.3.6"
+ resolved "https://registry.yarnpkg.com/vow-fs/-/vow-fs-0.3.6.tgz#2d4c59be22e2bf2618ddf597ab4baa923be7200d"
+ dependencies:
+ glob "^7.0.5"
+ uuid "^2.0.2"
+ vow "^0.4.7"
+ vow-queue "^0.4.1"
+
+vow-queue@^0.4.1:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/vow-queue/-/vow-queue-0.4.2.tgz#e7fe17160e15c7c4184d1b666a9bc64e18e30184"
+ dependencies:
+ vow "~0.4.0"
+
+vow@^0.4.7, vow@~0.4.0, vow@~0.4.1, vow@~0.4.8:
+ version "0.4.13"
+ resolved "https://registry.yarnpkg.com/vow/-/vow-0.4.13.tgz#e7c14f1bd9c8be0e7359a4597fe2d1ef6d1a7e88"
+
+walkdir@^0.0.11:
+ version "0.0.11"
+ resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.0.11.tgz#a16d025eb931bd03b52f308caed0f40fcebe9532"
+
+which@~1.2.1, which@~1.2.10:
+ version "1.2.12"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192"
+ dependencies:
+ isexe "^1.1.1"
+
+window-size@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
+
+winston@0.8.x:
+ version "0.8.3"
+ resolved "https://registry.yarnpkg.com/winston/-/winston-0.8.3.tgz#64b6abf4cd01adcaefd5009393b1d8e8bec19db0"
+ dependencies:
+ async "0.2.x"
+ colors "0.6.x"
+ cycle "1.0.x"
+ eyes "0.1.x"
+ isstream "0.1.x"
+ pkginfo "0.3.x"
+ stack-trace "0.0.x"
+
+wordwrap@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+
+xmlbuilder@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-3.1.0.tgz#2c86888f2d4eade850fa38ca7f7223f7209516e1"
+ dependencies:
+ lodash "^3.5.0"
+
+xtend@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
+
+yargs@~3.10.0:
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
+ dependencies:
+ camelcase "^1.0.2"
+ cliui "^2.1.0"
+ decamelize "^1.0.0"
+ window-size "0.1.0"
+
+yauzl@2.4.1:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"
+ dependencies:
+ fd-slicer "~1.0.1"
+
+zip-stream@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-1.1.1.tgz#5216b48bbb4d2651f64d5c6e6f09eb4a7399d557"
+ dependencies:
+ archiver-utils "^1.3.0"
+ compress-commons "^1.1.0"
+ lodash "^4.8.0"
+ readable-stream "^2.0.0"